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