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