DI-Guy SDK Documentation  13.2
diguy_graphics_api.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3  ** Copyright (c) 1992-2019 VT MAK
4  ** All rights reserved.
5  *********************************************************************/
6 
7 /*********************************************************************
8  **
9  *t DI-Guy API, Info Graphics Module
10  **
11  *b Link against: libdiguy_graphics_api
12  */
13 
14 #ifndef __diguy_graphics_api_H
15 #define __diguy_graphics_api_H
16 
17 #include <diguy_api.h>
18 #include <diguy_typedefs.h>
19 
20 #ifndef BDI_GRAPHICS_API_ogl
22 #endif
23 
24 // these typedefs have actually been moved to diguy_typedefs.h but very few files depend on this
25 // header file so it's not worth breaking backwards compatibility to remove these.
26 #include <diguyGraphicsLink.h> // for diguyGraphicsLinkCreateFunc
27 #include <diguyGraphicsShape.h> // for diguyGraphicsShapeCreateFunc
28 #include <diguyGraphicsFile.h> // for diguyGraphicsFileCreateFunc
29 #include <diguyGraphicsState.h> // for diguyGraphicsStateCreateFunc
30 #include <diguyGraphicsMaterial.h> // for diguyGraphicsMaterialCreateFunc
31 #include <diguyGraphicsTexture.h> // for diguyGraphicsTextureCreateFunc
32 #include <diguyGraphicsMesh.h> // for diguyGraphicsMeshCreateFunc
33 #include <diguyGraphicsShaderProgram.h> // for diguyGraphicsShaderProgramCreateFunc
34 #include <diguyGraphicsShaderInstance.h> // for diguyGraphicsShaderInstanceCreateFunc
35 #include <diguyGraphicsInstanceGroup.h> // for diguyGraphicsInstanceGroupCreateFunc
36 
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 
44 /*****************************************************************************/
51 #ifndef BDI_GRAPHICS_API_ogl
52 
53 /*l
54  *b Description:
55  **
56  ** This function initializes the DI-Guy Runtime API for accessing
57  ** information about DI-Guy graphics and geometry.
58  **
59  ** Use diguy_graphics_get_defaults() to fill out the init structure
60  ** before changing specific entries.
61  **
62  *b Arguments:
63  **
64  *a init - pointer to type bdiGraphicsInitGraphicsAPI; passing NULL
65  *a will cause defaults to be used for all values
66  **
67  *b Returns:
68  **
69  ** 0 on success, non-zero error code on failure
70  **
71  ** Refer to diguy_constants.h for error code values.
72  **
73  ** \ingroup diguyGraphicsAPI
74  */
75 BDI_DECLSPEC_diguy_graphics int
77 
78 /*l
79  *b Description:
80  **
81  ** Fills out the init structure with default values. Selected entries
82  ** can then be changed before calling diguy_graphics_initialize().
83  **
84  ** The default values are:
85  *- - init->use_shaders = 1;
86  *- - init->shader_language = DIGUY_GRAPHICS_SHADER_LANGUAGE_GLSL;
87  *- - init->transpose_shader_matrices = 0;
88  *- - init->use_4x3_shader_matrices = 1;
89  *- - init->use_cached_optimized_geometry = 1;
90  *- - init->use_cached_compressed_textures = 1;
91  *- - init->use_sRGB_corrected_textures = 1;
92  *- - init->characters_have_world_space_triangle_query = 1;
93  *- - init->scene_objects_have_world_space_triangle_query = 0;
94  **
95  *b Arguments:
96  **
97  *a init - pointer to type bdiGraphicsInitGraphicsAPI
98  **
99  *b Returns:
100  **
101  ** 0 on success, -1 on failure
102  */
103 BDI_DECLSPEC_diguy_graphics int
105 
106 /*l
107  *b Description:
108  **
109  ** Fills out the init structure with default OSG values. Selected entries
110  ** can then be changed before calling diguy_graphics_initialize().
111  **
112  ** The differences for the default values are:
113  *- - init->transpose_shader_matrices = 1;
114  *- - init->use_4x3_shader_matrices = 0;
115  *- - init->use_sRGB_corrected_textures = 0;
116  **
117  *b Arguments:
118  **
119  *a init - pointer to type bdiGraphicsInitGraphicsAPI
120  **
121  *b Returns:
122  **
123  ** 0 on success, -1 on failure
124  */
125 BDI_DECLSPEC_diguy_graphics int
127 
128 /*l
129  *b Description:
130  **
131  ** Fills out the init structure with default values. Selected entries
132  ** can then be changed before calling diguy_graphics_initialize().
133  **
134  ** The differences for the default values are:
135  *- - init->transpose_shader_matrices = 1
136  *- - init->use_4x3_shader_matrices = 0
137  *- - init->shader_language = DIGUY_GRAPHICS_SHADER_LANGUAGE_HLSL
138  **
139  *b Arguments:
140  **
141  *a init - pointer to type bdiGraphicsInitGraphicsAPI
142  **
143  *b Returns:
144  **
145  ** 0 on success, -1 on failure
146  */
147 
148 BDI_DECLSPEC_diguy_graphics int
150 
151 #endif
152 
153 /*l
154  *b Description:
155  **
156  ** This function turns far position rendering on or off. It must be
157  ** called after diguy_graphics_initialize().
158  **
159  *b Arguments:
160  **
161  *a flag - pass 1 to turn far positions on, 0 to turn them off
162  **
163  */
164 BDI_DECLSPEC_diguy_graphics
166 
167 /*l
168  *b Description:
169  **
170  ** This function gets the status of far position rendering.
171  ** It can only be called after diguy_graphics_initialize().
172  **
173  *b Returns:
174  **
175  ** 1 if far position rendering is on, 0 if not
176  **
177  */
178 BDI_DECLSPEC_diguy_graphics
180 
181 
182 /*****************************************************************************/
196 BDI_DECLSPEC_diguy_graphics int
198 
203 BDI_DECLSPEC_diguy_graphics int
205 
209 BDI_DECLSPEC_diguy_graphics int
211 
215 BDI_DECLSPEC_diguy_graphics int
217 
221 BDI_DECLSPEC_diguy_graphics int
223 
227 BDI_DECLSPEC_diguy_graphics int
229 
233 BDI_DECLSPEC_diguy_graphics int
235 
239 BDI_DECLSPEC_diguy_graphics int
241 
245 BDI_DECLSPEC_diguy_graphics int
247 
251 BDI_DECLSPEC_diguy_graphics int
253 
257 BDI_DECLSPEC_diguy_graphics int
259 
263 BDI_DECLSPEC_diguy_graphics int
265 
269 BDI_DECLSPEC_diguy_graphics int
271 
275 BDI_DECLSPEC_diguy_graphics int
277 
278 
284 BDI_DECLSPEC_diguy_graphics int
286 
292 BDI_DECLSPEC_diguy_graphics int
294 
295 
296 #ifdef __cplusplus
297 }
298 #endif
299 
300 
301 #endif /* __diguy_graphics_api_H */
302 
303 
304 /*********************************************************************
305  ** Copyright (c) 1992-2019 VT MAK
306  ** All rights reserved.
307  *********************************************************************/
308 
This class is an abstract wrapper around shader constants for use with DI-Guy rendering.
Definition: diguyUniformBufferUpdater.h:61
diguyGraphicsShape * diguyGraphicsShapeCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:276
diguyGraphicsTexture * diguyGraphicsTextureCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:278
diguyGraphicsLink * diguyGraphicsLinkCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:270
diguyGraphicsMesh * diguyGraphicsMeshCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:272
int diguy_graphics_get_defaults(bdiGraphicsInitGraphicsAPI *init)
Fills out the init structure with default values.
int diguy_graphics_set_link_create_func(diguyGraphicsLinkCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsLink. ...
int diguy_graphics_set_shader_program_create_func(diguyGraphicsShaderProgramCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsShaderProgram.
Definition: bdiGraphicsInitGraphicsAPI.h:18
diguyGraphicsInstanceGroup * diguyGraphicsInstanceGroupCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:269
int diguy_graphics_get_osg_defaults(bdiGraphicsInitGraphicsAPI *init)
Fills out the init structure with default OSG values.
int diguy_graphics_get_dx9_defaults(bdiGraphicsInitGraphicsAPI *init)
Fills out the init structure with default values.
int diguy_graphics_set_shader_technique_create_func(diguyGraphicsShaderTechniqueCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsShaderTechnique.
int diguy_graphics_set_uniform_updater(diguyUniformBufferUpdater *uniform_buffer_updater)
Function responsible for allowing end users to implement their own diguyUniformBufferUpdater see digu...
int diguy_graphics_initialize(bdiGraphicsInitGraphicsAPI *init)
This function initializes the DI-Guy Runtime API for accessing information about DI-Guy graphics and ...
int diguy_graphics_set_particle_system_create_func(diguyParticleSystemCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyParticleSystem currently this is ...
int diguy_graphics_set_painter_create_func(diguyViewPainterCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyViewPainter.
diguyParticleSystemRenderer * diguyParticleRendererCreateFunc(void)
Definition: diguy_typedefs.h:280
diguyGraphicsFrameBuffer * diguyGraphicsFrameBufferCreateFunc(void)
Definition: diguy_typedefs.h:268
int diguy_graphics_set_shader_instance_create_func(diguyGraphicsShaderInstanceCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsShaderInstance.
int diguy_graphics_set_texture_create_func(diguyGraphicsTextureCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsTexture.
int diguy_graphics_set_file_create_func(diguyGraphicsFileCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsFile. ...
int diguy_graphics_set_shape_create_func(diguyGraphicsShapeCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsShape.
void diguy_graphics_set_use_far_positions(int flag)
This function turns far position rendering on or off.
diguyGraphicsShaderTechnique * diguyGraphicsShaderTechniqueCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:275
int diguy_graphics_set_particle_renderer_create_func(diguyParticleRendererCreateFunc *func)
Function responsible for allowing end users to provide their own particle renderer implementation we ...
diguyGraphicsFile * diguyGraphicsFileCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:267
int diguy_graphics_set_instance_group_create_func(diguyGraphicsInstanceGroupCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsInstanceGroup.
diguyViewPainter * diguyViewPainterCreateFunc()
Definition: diguy_typedefs.h:220
int diguy_graphics_set_state_create_func(diguyGraphicsStateCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsState.
diguyGraphicsShaderProgram * diguyGraphicsShaderProgramCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:274
diguyGraphicsShaderInstance * diguyGraphicsShaderInstanceCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:273
int diguy_graphics_set_frame_buffer_create_func(diguyGraphicsFrameBufferCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsFrameBuffer.
diguyParticleSystem * diguyParticleSystemCreateFunc(void *internal_data, const char *particle_system_name)
Definition: diguy_typedefs.h:279
int diguy_graphics_get_use_far_positions()
This function gets the status of far position rendering.
int diguy_graphics_set_material_create_func(diguyGraphicsMaterialCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsMaterial.
diguyGraphicsState * diguyGraphicsStateCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:277
int diguy_graphics_set_mesh_create_func(diguyGraphicsMeshCreateFunc *func)
Function responsible for allowing end users to subclass from a diguyGraphicsMesh. ...
diguyGraphicsMaterial * diguyGraphicsMaterialCreateFunc(void *internal_data)
Definition: diguy_typedefs.h:271