DI-Guy SDK Documentation  13.7.1
bdiGraphicsInitGraphicsAPI.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3  ** Copyright (c) 1992-2022 MAK Technologies, Inc.
4  ** All rights reserved.
5  *********************************************************************/
6 
7 
8 #ifndef __bdiGraphicsInitGraphicsAPI_H
9 #define __bdiGraphicsInitGraphicsAPI_H
10 
12 
13  /*********************************************************************
14  **
15  *! \struct bdiGraphicsInitGraphicsAPI
16  ** DI-Guy Graphics Init Structure, Graphics API. Initialization parameters
17  ** for various options for the Graphics API
18  **
19  */
21 {
22 
23 
24  /*l
25  *b Description:
26  **
27  ** Sets the shader language for loading shaders.
28  **
29  ** Possible values are:
30  **
31  *a DIGUY_GRAPHICS_SHADER_LANGUAGE_GLSL
32  *a DIGUY_GRAPHICS_SHADER_LANGUAGE_HLSL
33  **
34  ** Default is DIGUY_GRAPHICS_SHADER_LANGUAGE_GLSL
35  */
37 
38  /*l
39  *b Description:
40  **
41  ** Whether matrices that will be used as transforms in shaders
42  ** should be transposed from the DI-Guy default order.
43  **
44  ** This affects the data passed to/retrieved from the following DI-Guy
45  ** Graphics API functions:
46  **
47  *- - diguyGraphicsShaderProgram::bind_link_matrices()
48  *- - diguyGraphicsShape::get_shader_matrix_data()
49  **
50  ** Set to 1 (the default) to transpose, 0 to not.
51  **
52  *b Note: Change in 12.5
53  ** Open Scene Graph uses the transposed form.
54  ** OpenGL the transpose is done by the video card.
55  */
57 
58  /*l
59  *b Description:
60  **
61  ** Whether matrices that will be used as transforms in shaders
62  ** should be sent as 4x3 matrix instead of 4x4.
63  **
64  ** This affects the data passed to/retrieved from the following DI-Guy
65  ** Graphics API functions:
66  **
67  *- - diguyGraphicsShaderProgram::bind_link_matrices()
68  *- - diguyGraphicsShape::get_shader_matrix_data()
69  **
70  ** Set to 1 (the default) to send the more efficient structures.
71  **
72  *- - OpenGL uses 4x3 matrices.
73  *- - Open Scene Graph and directX use 4x4.
74  */
76 
77  /*l
78  *b Description:
79  **
80  ** Sets whether .flt and .dae files will be loaded as geometry
81  ** files optimized for DI-Guy use.
82  **
83  ** Generated files will be put into a subdirectory of the DI-Guy
84  ** geometry directory, and will be automatically updated as needed
85  ** (doesn't exist, or original file is newer).
86  **
87  ** The .bdg geometry format is a smaller, more efficient version of
88  ** the geometry data encoded in .flt and .dae files. It is an
89  ** internal DI-Guy format that is not directly supported by geometry
90  ** editing programs.
91  **
92  ** There is no quality trade-off in using optimized geometry files,
93  ** so it is recommended that they always be enabled.
94  **
95  ** Default is 1.
96  */
98 
99  /*l
100  *b Description:
101  **
102  ** Sets whether compressed texture files should be generated from
103  ** source uncompressed texture files in order to reduce texture
104  ** memory usage.
105  **
106  ** There is a quality trade-off when using compressed textures. If
107  ** there are too many undesired artifacts in the generated textures,
108  ** they should not be used.
109  **
110  ** Generated files will be put into a subdirectory of the DI-Guy
111  ** geometry directory, and will be automatically updated as needed
112  ** (doesn't exist, or original file is newer).
113  **
114  ** The compressed texture files will be in the .dds (DirectDraw
115  ** Surface) format.
116  **
117  ** Default is 0.
118  */
120 
121  /*l
122  *b Description:
123  **
124  ** Sets whether SRGB textures should be used, these allow a relatively
125  ** free lookup into texture maps that have been transformed into sRGB space
126  ** allowing a linear lighting pipeline to be setup. OSG 3.0 does not support
127  ** sRGB textures properly.
128  **
129  ** Default is 1.
130  */
132 
133 
134  /*l
135  *b Description:
136  **
137  ** Experimental bits that allow the octtree and bounding boxes to be built from
138  ** internally loaded vehicles to calculate their
139  ** bounding box.
140  **
141  ** Default is 1 (on); set to 0 to turn off.
142  **
143  ** Note: this functionality requires that diguyGraphicsMesh::free_loader_memory()
144  ** is not called during the build process.
145  */
147 
148  /*l
149  *b Description:
150  **
151  ** Experimental bits that allow the octtree to be built from
152  ** internally loaded scene objects and vehicles to calculate their
153  ** bounding box.
154  **
155  ** Default is 0 (off); set to 1 to turn on.
156  **
157  ** Note: this functionality requires that diguyGraphicsMesh::free_loader_memory()
158  ** is not called during the build process.
159  */
161 
162  /*l
163  *b Description:
164  **
165  ** Experimental to support instancing.
166  **
167  ** Default is 0 (off).
168  */
170 
171  /*l
172  *b Description:
173  **
174  ** Experimental to support instancing.
175  **
176  ** Instructs the instancing system to respect the graphics state switch
177  ** of geometry when constructing instance groups. Setting value to 0
178  ** while not graphically correct results in increased performance
179  **
180  ** Default is 1 (on).
181  */
183 
184 
185  /*l
186  *b Description:
187  **
188  ** Instructs the initializing system to pop up a Qt based dialog box for setting up licensing
189  **
190  ** Default is 1.
191  */
192 
194 
195 } ;
196 
197 
198 #endif /* __bdiGraphicsInitGraphicsAPI_H */
199 
200 
201 /*********************************************************************
202  ** Copyright (c) 1992-2022 MAK Technologies, Inc.
203  ** All rights reserved.
204  *********************************************************************/
205 
int use_cached_optimized_geometry
Sets whether .flt and .dae files will be loaded as geometry files optimized for DI-Guy use...
Definition: bdiGraphicsInitGraphicsAPI.h:91
int use_qt_license_dialog
Instructs the initializing system to pop up a Qt based dialog box for setting up licensing.
Definition: bdiGraphicsInitGraphicsAPI.h:178
int characters_have_world_space_triangle_query
Experimental bits that allow the octtree and bounding boxes to be built from internally loaded vehicl...
Definition: bdiGraphicsInitGraphicsAPI.h:136
diguyGraphicsShaderLanguage
This enumeration lists supported shader languages.
Definition: diguy_constants.h:1835
Definition: bdiGraphicsInitGraphicsAPI.h:19
int use_shader_instancing
Experimental to support instancing.
Definition: bdiGraphicsInitGraphicsAPI.h:157
bool use_4x3_shader_matrices
Whether matrices that will be used as transforms in shaders should be sent as 4x3 matrix instead of 4...
Definition: bdiGraphicsInitGraphicsAPI.h:70
int use_sRGB_corrected_textures
Sets whether SRGB textures should be used, these allow a relatively free lookup into texture maps tha...
Definition: bdiGraphicsInitGraphicsAPI.h:123
int instancing_respect_graphics_state_switch
Experimental to support instancing.
Definition: bdiGraphicsInitGraphicsAPI.h:169
diguyGraphicsShaderLanguage shader_language
Sets the shader language for loading shaders.
Definition: bdiGraphicsInitGraphicsAPI.h:33
int transpose_shader_matrices
Whether matrices that will be used as transforms in shaders should be transposed from the DI-Guy defa...
Definition: bdiGraphicsInitGraphicsAPI.h:52
int use_cached_compressed_textures
Sets whether compressed texture files should be generated from source uncompressed texture files in o...
Definition: bdiGraphicsInitGraphicsAPI.h:112
int scene_objects_have_world_space_triangle_query
Experimental bits that allow the octtree to be built from internally loaded scene objects and vehicle...
Definition: bdiGraphicsInitGraphicsAPI.h:149