RetroArch
Versions.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
3 // Copyright (C) 2012-2013 LunarG, Inc.
4 // Copyright (C) 2017 ARM Limited.
5 //
6 // All rights reserved.
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions
10 // are met:
11 //
12 // Redistributions of source code must retain the above copyright
13 // notice, this list of conditions and the following disclaimer.
14 //
15 // Redistributions in binary form must reproduce the above
16 // copyright notice, this list of conditions and the following
17 // disclaimer in the documentation and/or other materials provided
18 // with the distribution.
19 //
20 // Neither the name of 3Dlabs Inc. Ltd. nor the names of its
21 // contributors may be used to endorse or promote products derived
22 // from this software without specific prior written permission.
23 //
24 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 // POSSIBILITY OF SUCH DAMAGE.
36 //
37 #ifndef _VERSIONS_INCLUDED_
38 #define _VERSIONS_INCLUDED_
39 
40 //
41 // Help manage multiple profiles, versions, extensions etc.
42 //
43 
44 //
45 // Profiles are set up for masking operations, so queries can be done on multiple
46 // profiles at the same time.
47 //
48 // Don't maintain an ordinal set of enums (0,1,2,3...) to avoid all possible
49 // defects from mixing the two different forms.
50 //
51 typedef enum {
53  ENoProfile = (1 << 0), // only for desktop, before profiles showed up
54  ECoreProfile = (1 << 1),
56  EEsProfile = (1 << 3)
57 } EProfile;
58 
59 namespace glslang {
60 
61 //
62 // Map from profile enum to externally readable text name.
63 //
64 inline const char* ProfileName(EProfile profile)
65 {
66  switch (profile) {
67  case ENoProfile: return "none";
68  case ECoreProfile: return "core";
69  case ECompatibilityProfile: return "compatibility";
70  case EEsProfile: return "es";
71  default: return "unknown profile";
72  }
73 }
74 
75 //
76 // What source rules, validation rules, target language, etc. are needed
77 // desired for SPIR-V?
78 //
79 // 0 means a target or rule set is not enabled (ignore rules from that entity).
80 // Non-0 means to apply semantic rules arising from that version of its rule set.
81 // The union of all requested rule sets will be applied.
82 //
83 struct SpvVersion {
84  SpvVersion() : spv(0), vulkanGlsl(0), vulkan(0), openGl(0) {}
85  unsigned int spv; // the version of SPIR-V to target, as defined by "word 1" of the SPIR-V binary header
86  int vulkanGlsl; // the version of GLSL semantics for Vulkan, from GL_KHR_vulkan_glsl, for "#define VULKAN XXX"
87  int vulkan; // the version of Vulkan, for which SPIR-V execution environment rules to use
88  int openGl; // the version of GLSL semantics for OpenGL, from GL_ARB_gl_spirv, for "#define GL_SPIRV XXX"
89 };
90 
91 //
92 // The behaviors from the GLSL "#extension extension_name : behavior"
93 //
94 typedef enum {
100  EBhDisablePartial // use as initial state of an extension that is only partially implemented
102 
103 //
104 // Symbolic names for extensions. Strings may be directly used when calling the
105 // functions, but better to have the compiler do spelling checks.
106 //
107 const char* const E_GL_OES_texture_3D = "GL_OES_texture_3D";
108 const char* const E_GL_OES_standard_derivatives = "GL_OES_standard_derivatives";
109 const char* const E_GL_EXT_frag_depth = "GL_EXT_frag_depth";
110 const char* const E_GL_OES_EGL_image_external = "GL_OES_EGL_image_external";
111 const char* const E_GL_OES_EGL_image_external_essl3 = "GL_OES_EGL_image_external_essl3";
112 const char* const E_GL_EXT_shader_texture_lod = "GL_EXT_shader_texture_lod";
113 const char* const E_GL_EXT_shadow_samplers = "GL_EXT_shadow_samplers";
114 
115 const char* const E_GL_ARB_texture_rectangle = "GL_ARB_texture_rectangle";
116 const char* const E_GL_3DL_array_objects = "GL_3DL_array_objects";
117 const char* const E_GL_ARB_shading_language_420pack = "GL_ARB_shading_language_420pack";
118 const char* const E_GL_ARB_texture_gather = "GL_ARB_texture_gather";
119 const char* const E_GL_ARB_gpu_shader5 = "GL_ARB_gpu_shader5";
120 const char* const E_GL_ARB_separate_shader_objects = "GL_ARB_separate_shader_objects";
121 const char* const E_GL_ARB_compute_shader = "GL_ARB_compute_shader";
122 const char* const E_GL_ARB_tessellation_shader = "GL_ARB_tessellation_shader";
123 const char* const E_GL_ARB_enhanced_layouts = "GL_ARB_enhanced_layouts";
124 const char* const E_GL_ARB_texture_cube_map_array = "GL_ARB_texture_cube_map_array";
125 const char* const E_GL_ARB_shader_texture_lod = "GL_ARB_shader_texture_lod";
126 const char* const E_GL_ARB_explicit_attrib_location = "GL_ARB_explicit_attrib_location";
127 const char* const E_GL_ARB_shader_image_load_store = "GL_ARB_shader_image_load_store";
128 const char* const E_GL_ARB_shader_atomic_counters = "GL_ARB_shader_atomic_counters";
129 const char* const E_GL_ARB_shader_draw_parameters = "GL_ARB_shader_draw_parameters";
130 const char* const E_GL_ARB_shader_group_vote = "GL_ARB_shader_group_vote";
131 const char* const E_GL_ARB_derivative_control = "GL_ARB_derivative_control";
132 const char* const E_GL_ARB_shader_texture_image_samples = "GL_ARB_shader_texture_image_samples";
133 const char* const E_GL_ARB_viewport_array = "GL_ARB_viewport_array";
134 const char* const E_GL_ARB_gpu_shader_int64 = "GL_ARB_gpu_shader_int64";
135 const char* const E_GL_ARB_shader_ballot = "GL_ARB_shader_ballot";
136 const char* const E_GL_ARB_sparse_texture2 = "GL_ARB_sparse_texture2";
137 const char* const E_GL_ARB_sparse_texture_clamp = "GL_ARB_sparse_texture_clamp";
138 const char* const E_GL_ARB_shader_stencil_export = "GL_ARB_shader_stencil_export";
139 // const char* const E_GL_ARB_cull_distance = "GL_ARB_cull_distance"; // present for 4.5, but need extension control over block members
140 const char* const E_GL_ARB_post_depth_coverage = "GL_ARB_post_depth_coverage";
141 const char* const E_GL_ARB_shader_viewport_layer_array = "GL_ARB_shader_viewport_layer_array";
142 
143 const char* const E_GL_KHR_shader_subgroup_basic = "GL_KHR_shader_subgroup_basic";
144 const char* const E_GL_KHR_shader_subgroup_vote = "GL_KHR_shader_subgroup_vote";
145 const char* const E_GL_KHR_shader_subgroup_arithmetic = "GL_KHR_shader_subgroup_arithmetic";
146 const char* const E_GL_KHR_shader_subgroup_ballot = "GL_KHR_shader_subgroup_ballot";
147 const char* const E_GL_KHR_shader_subgroup_shuffle = "GL_KHR_shader_subgroup_shuffle";
148 const char* const E_GL_KHR_shader_subgroup_shuffle_relative = "GL_KHR_shader_subgroup_shuffle_relative";
149 const char* const E_GL_KHR_shader_subgroup_clustered = "GL_KHR_shader_subgroup_clustered";
150 const char* const E_GL_KHR_shader_subgroup_quad = "GL_KHR_shader_subgroup_quad";
151 
152 const char* const E_GL_EXT_shader_non_constant_global_initializers = "GL_EXT_shader_non_constant_global_initializers";
153 const char* const E_GL_EXT_shader_image_load_formatted = "GL_EXT_shader_image_load_formatted";
154 
155 // EXT extensions
156 const char* const E_GL_EXT_device_group = "GL_EXT_device_group";
157 const char* const E_GL_EXT_multiview = "GL_EXT_multiview";
158 const char* const E_GL_EXT_post_depth_coverage = "GL_EXT_post_depth_coverage";
159 const char* const E_GL_EXT_control_flow_attributes = "GL_EXT_control_flow_attributes";
160 const char* const E_GL_EXT_nonuniform_qualifier = "GL_EXT_nonuniform_qualifier";
161 
162 // Arrays of extensions for the above viewportEXTs duplications
163 
166 
167 // OVR extensions
168 const char* const E_GL_OVR_multiview = "GL_OVR_multiview";
169 const char* const E_GL_OVR_multiview2 = "GL_OVR_multiview2";
170 
173 
174 // #line and #include
175 const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp_style_line_directive";
176 const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive";
177 
178 #ifdef AMD_EXTENSIONS
179 const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot";
180 const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax";
181 const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter";
182 const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader";
183 const char* const E_GL_AMD_gpu_shader_half_float = "GL_AMD_gpu_shader_half_float";
184 const char* const E_GL_AMD_texture_gather_bias_lod = "GL_AMD_texture_gather_bias_lod";
185 const char* const E_GL_AMD_gpu_shader_int16 = "GL_AMD_gpu_shader_int16";
186 const char* const E_GL_AMD_shader_image_load_store_lod = "GL_AMD_shader_image_load_store_lod";
187 const char* const E_GL_AMD_shader_fragment_mask = "GL_AMD_shader_fragment_mask";
188 const char* const E_GL_AMD_gpu_shader_half_float_fetch = "GL_AMD_gpu_shader_half_float_fetch";
189 #endif
190 
191 #ifdef NV_EXTENSIONS
192 
193 const char* const E_GL_NV_sample_mask_override_coverage = "GL_NV_sample_mask_override_coverage";
194 const char* const E_SPV_NV_geometry_shader_passthrough = "GL_NV_geometry_shader_passthrough";
195 const char* const E_GL_NV_viewport_array2 = "GL_NV_viewport_array2";
196 const char* const E_GL_NV_stereo_view_rendering = "GL_NV_stereo_view_rendering";
197 const char* const E_GL_NVX_multiview_per_view_attributes = "GL_NVX_multiview_per_view_attributes";
198 const char* const E_GL_NV_shader_atomic_int64 = "GL_NV_shader_atomic_int64";
199 const char* const E_GL_NV_conservative_raster_underestimation = "GL_NV_conservative_raster_underestimation";
200 const char* const E_GL_NV_shader_noperspective_interpolation = "GL_NV_shader_noperspective_interpolation";
201 const char* const E_GL_NV_shader_subgroup_partitioned = "GL_NV_shader_subgroup_partitioned";
202 
203 // Arrays of extensions for the above viewportEXTs duplications
204 
205 const char* const viewportEXTs[] = { E_GL_ARB_shader_viewport_layer_array, E_GL_NV_viewport_array2 };
206 const int Num_viewportEXTs = sizeof(viewportEXTs) / sizeof(viewportEXTs[0]);
207 #endif
208 
209 // AEP
210 const char* const E_GL_ANDROID_extension_pack_es31a = "GL_ANDROID_extension_pack_es31a";
211 const char* const E_GL_KHR_blend_equation_advanced = "GL_KHR_blend_equation_advanced";
212 const char* const E_GL_OES_sample_variables = "GL_OES_sample_variables";
213 const char* const E_GL_OES_shader_image_atomic = "GL_OES_shader_image_atomic";
214 const char* const E_GL_OES_shader_multisample_interpolation = "GL_OES_shader_multisample_interpolation";
215 const char* const E_GL_OES_texture_storage_multisample_2d_array = "GL_OES_texture_storage_multisample_2d_array";
216 const char* const E_GL_EXT_geometry_shader = "GL_EXT_geometry_shader";
217 const char* const E_GL_EXT_geometry_point_size = "GL_EXT_geometry_point_size";
218 const char* const E_GL_EXT_gpu_shader5 = "GL_EXT_gpu_shader5";
219 const char* const E_GL_EXT_primitive_bounding_box = "GL_EXT_primitive_bounding_box";
220 const char* const E_GL_EXT_shader_io_blocks = "GL_EXT_shader_io_blocks";
221 const char* const E_GL_EXT_tessellation_shader = "GL_EXT_tessellation_shader";
222 const char* const E_GL_EXT_tessellation_point_size = "GL_EXT_tessellation_point_size";
223 const char* const E_GL_EXT_texture_buffer = "GL_EXT_texture_buffer";
224 const char* const E_GL_EXT_texture_cube_map_array = "GL_EXT_texture_cube_map_array";
225 
226 // OES matching AEP
227 const char* const E_GL_OES_geometry_shader = "GL_OES_geometry_shader";
228 const char* const E_GL_OES_geometry_point_size = "GL_OES_geometry_point_size";
229 const char* const E_GL_OES_gpu_shader5 = "GL_OES_gpu_shader5";
230 const char* const E_GL_OES_primitive_bounding_box = "GL_OES_primitive_bounding_box";
231 const char* const E_GL_OES_shader_io_blocks = "GL_OES_shader_io_blocks";
232 const char* const E_GL_OES_tessellation_shader = "GL_OES_tessellation_shader";
233 const char* const E_GL_OES_tessellation_point_size = "GL_OES_tessellation_point_size";
234 const char* const E_GL_OES_texture_buffer = "GL_OES_texture_buffer";
235 const char* const E_GL_OES_texture_cube_map_array = "GL_OES_texture_cube_map_array";
236 
237 // KHX
238 const char* const E_GL_KHX_shader_explicit_arithmetic_types = "GL_KHX_shader_explicit_arithmetic_types";
239 const char* const E_GL_KHX_shader_explicit_arithmetic_types_int8 = "GL_KHX_shader_explicit_arithmetic_types_int8";
240 const char* const E_GL_KHX_shader_explicit_arithmetic_types_int16 = "GL_KHX_shader_explicit_arithmetic_types_int16";
241 const char* const E_GL_KHX_shader_explicit_arithmetic_types_int32 = "GL_KHX_shader_explicit_arithmetic_types_int32";
242 const char* const E_GL_KHX_shader_explicit_arithmetic_types_int64 = "GL_KHX_shader_explicit_arithmetic_types_int64";
243 const char* const E_GL_KHX_shader_explicit_arithmetic_types_float16 = "GL_KHX_shader_explicit_arithmetic_types_float16";
244 const char* const E_GL_KHX_shader_explicit_arithmetic_types_float32 = "GL_KHX_shader_explicit_arithmetic_types_float32";
245 const char* const E_GL_KHX_shader_explicit_arithmetic_types_float64 = "GL_KHX_shader_explicit_arithmetic_types_float64";
246 
247 // Arrays of extensions for the above AEP duplications
248 
251 
254 
256 const int Num_AEP_gpu_shader5 = sizeof(AEP_gpu_shader5)/sizeof(AEP_gpu_shader5[0]);
257 
260 
263 
266 
269 
272 
275 
276 } // end namespace glslang
277 
278 #endif // _VERSIONS_INCLUDED_
const char *const AEP_texture_cube_map_array[]
Definition: Versions.h:273
const char *const E_GL_ARB_texture_gather
Definition: Versions.h:118
const char *const E_GL_OES_texture_3D
Definition: Versions.h:107
const char *const E_GL_KHR_shader_subgroup_shuffle
Definition: Versions.h:147
Definition: Versions.h:53
const char *const E_GL_EXT_shader_io_blocks
Definition: Versions.h:220
const char *const E_GL_EXT_tessellation_point_size
Definition: Versions.h:222
const char *const E_GL_KHR_shader_subgroup_quad
Definition: Versions.h:150
const int Num_AEP_texture_cube_map_array
Definition: Versions.h:274
int vulkanGlsl
Definition: Versions.h:86
Definition: Versions.h:52
const char *const AEP_gpu_shader5[]
Definition: Versions.h:255
const char *const E_GL_ARB_sparse_texture2
Definition: Versions.h:136
Definition: Versions.h:83
Definition: disassemble.cpp:50
const char *const E_GL_OES_EGL_image_external_essl3
Definition: Versions.h:111
const char *const OVR_multiview_EXTs[]
Definition: Versions.h:171
const char *const E_GL_KHR_shader_subgroup_arithmetic
Definition: Versions.h:145
const char *const E_GL_EXT_multiview
Definition: Versions.h:157
const char *const E_GL_KHX_shader_explicit_arithmetic_types_float32
Definition: Versions.h:244
const char *const E_GL_OES_sample_variables
Definition: Versions.h:212
const char *const E_GL_OES_gpu_shader5
Definition: Versions.h:229
const char *const E_GL_OES_primitive_bounding_box
Definition: Versions.h:230
Definition: Versions.h:54
const int Num_AEP_geometry_shader
Definition: Versions.h:250
const char *const E_GL_ARB_enhanced_layouts
Definition: Versions.h:123
const char *const E_GL_EXT_shader_image_load_formatted
Definition: Versions.h:153
Definition: Versions.h:55
const char *const E_GL_OVR_multiview
Definition: Versions.h:168
const char *const E_GL_EXT_post_depth_coverage
Definition: Versions.h:158
const char *const E_GL_ARB_tessellation_shader
Definition: Versions.h:122
int vulkan
Definition: Versions.h:87
TExtensionBehavior
Definition: Versions.h:94
const char *const E_GL_EXT_nonuniform_qualifier
Definition: Versions.h:160
const char *const E_GL_EXT_geometry_point_size
Definition: Versions.h:217
const char *const E_GL_ARB_separate_shader_objects
Definition: Versions.h:120
const char *const E_GL_KHR_shader_subgroup_ballot
Definition: Versions.h:146
const char *const E_GL_OES_shader_multisample_interpolation
Definition: Versions.h:214
const char *const E_GL_KHX_shader_explicit_arithmetic_types_int32
Definition: Versions.h:241
const char *const E_GL_OES_shader_image_atomic
Definition: Versions.h:213
Definition: Versions.h:99
const char *const E_GL_ARB_shading_language_420pack
Definition: Versions.h:117
const char *const E_GL_OES_texture_cube_map_array
Definition: Versions.h:235
const char *const E_GL_ARB_shader_ballot
Definition: Versions.h:135
const char *const E_GL_KHX_shader_explicit_arithmetic_types_int8
Definition: Versions.h:239
const char *const E_GL_OES_geometry_point_size
Definition: Versions.h:228
Definition: Versions.h:95
const char *const E_GL_KHR_shader_subgroup_vote
Definition: Versions.h:144
const int Num_post_depth_coverageEXTs
Definition: Versions.h:165
const int Num_AEP_texture_buffer
Definition: Versions.h:271
const char *const E_GL_KHR_shader_subgroup_shuffle_relative
Definition: Versions.h:148
const char *const E_GL_OES_shader_io_blocks
Definition: Versions.h:231
const char *const AEP_texture_buffer[]
Definition: Versions.h:270
const int Num_AEP_geometry_point_size
Definition: Versions.h:253
Definition: Versions.h:100
const char *const E_GL_OES_texture_storage_multisample_2d_array
Definition: Versions.h:215
const int Num_AEP_gpu_shader5
Definition: Versions.h:256
const char *const E_GL_EXT_gpu_shader5
Definition: Versions.h:218
const char *const E_GL_OES_standard_derivatives
Definition: Versions.h:108
const char *const AEP_primitive_bounding_box[]
Definition: Versions.h:258
const int Num_AEP_tessellation_point_size
Definition: Versions.h:268
const char *const E_GL_ARB_shader_stencil_export
Definition: Versions.h:138
EProfile
Definition: Versions.h:51
const int Num_AEP_tessellation_shader
Definition: Versions.h:265
const char *const E_GL_ARB_shader_texture_image_samples
Definition: Versions.h:132
const char * ProfileName(EProfile profile)
Definition: Versions.h:64
const char *const E_GL_GOOGLE_include_directive
Definition: Versions.h:176
const char *const E_GL_KHX_shader_explicit_arithmetic_types_int16
Definition: Versions.h:240
const char *const E_GL_GOOGLE_cpp_style_line_directive
Definition: Versions.h:175
const char *const AEP_geometry_point_size[]
Definition: Versions.h:252
const char *const E_GL_EXT_device_group
Definition: Versions.h:156
const char *const E_GL_EXT_shadow_samplers
Definition: Versions.h:113
const char *const E_GL_EXT_control_flow_attributes
Definition: Versions.h:159
const char *const E_GL_EXT_shader_texture_lod
Definition: Versions.h:112
const char *const E_SPV_NV_geometry_shader_passthrough
Definition: GLSL.ext.NV.h:42
const char *const E_GL_KHX_shader_explicit_arithmetic_types_float16
Definition: Versions.h:243
const char *const E_GL_KHX_shader_explicit_arithmetic_types
Definition: Versions.h:238
const char *const E_GL_ARB_shader_image_load_store
Definition: Versions.h:127
const char *const E_GL_ARB_texture_cube_map_array
Definition: Versions.h:124
const char *const E_GL_KHR_shader_subgroup_basic
Definition: Versions.h:143
const char *const E_GL_ARB_texture_rectangle
Definition: Versions.h:115
const char *const E_GL_ARB_shader_texture_lod
Definition: Versions.h:125
const char *const E_GL_ARB_shader_group_vote
Definition: Versions.h:130
const char *const E_GL_EXT_texture_buffer
Definition: Versions.h:223
const char *const E_GL_ARB_compute_shader
Definition: Versions.h:121
const char *const E_GL_OES_geometry_shader
Definition: Versions.h:227
const char *const post_depth_coverageEXTs[]
Definition: Versions.h:164
const char *const E_GL_KHX_shader_explicit_arithmetic_types_float64
Definition: Versions.h:245
Definition: Versions.h:96
const char *const E_GL_OVR_multiview2
Definition: Versions.h:169
const char *const E_GL_OES_EGL_image_external
Definition: Versions.h:110
SpvVersion()
Definition: Versions.h:84
const char *const E_GL_ARB_shader_draw_parameters
Definition: Versions.h:129
Definition: arrays.h:46
const char *const AEP_geometry_shader[]
Definition: Versions.h:249
const char *const AEP_tessellation_shader[]
Definition: Versions.h:264
const char *const E_GL_KHX_shader_explicit_arithmetic_types_int64
Definition: Versions.h:242
const char *const E_GL_EXT_frag_depth
Definition: Versions.h:109
Definition: Versions.h:56
const char *const E_GL_KHR_shader_subgroup_clustered
Definition: Versions.h:149
const int Num_AEP_primitive_bounding_box
Definition: Versions.h:259
const int Num_AEP_shader_io_blocks
Definition: Versions.h:262
const char *const E_GL_EXT_primitive_bounding_box
Definition: Versions.h:219
const char *const E_GL_OES_texture_buffer
Definition: Versions.h:234
const char *const E_GL_ARB_sparse_texture_clamp
Definition: Versions.h:137
const char *const E_GL_ARB_derivative_control
Definition: Versions.h:131
unsigned int spv
Definition: Versions.h:85
const char *const E_GL_ARB_shader_atomic_counters
Definition: Versions.h:128
const char *const E_GL_3DL_array_objects
Definition: Versions.h:116
const char *const E_GL_EXT_texture_cube_map_array
Definition: Versions.h:224
Definition: Versions.h:97
const char *const E_GL_ARB_gpu_shader5
Definition: Versions.h:119
Definition: Versions.h:98
const int Num_OVR_multiview_EXTs
Definition: Versions.h:172
const char *const E_GL_ARB_viewport_array
Definition: Versions.h:133
const char *const AEP_tessellation_point_size[]
Definition: Versions.h:267
const char *const E_GL_ARB_shader_viewport_layer_array
Definition: Versions.h:141
const char *const E_GL_OES_tessellation_shader
Definition: Versions.h:232
const char *const E_GL_EXT_tessellation_shader
Definition: Versions.h:221
int openGl
Definition: Versions.h:88
const char *const E_GL_ANDROID_extension_pack_es31a
Definition: Versions.h:210
const char *const E_GL_KHR_blend_equation_advanced
Definition: Versions.h:211
const char *const E_GL_OES_tessellation_point_size
Definition: Versions.h:233
const char *const E_GL_EXT_geometry_shader
Definition: Versions.h:216
const char *const AEP_shader_io_blocks[]
Definition: Versions.h:261
const char *const E_GL_ARB_explicit_attrib_location
Definition: Versions.h:126
const char *const E_GL_EXT_shader_non_constant_global_initializers
Definition: Versions.h:152
const char *const E_GL_ARB_post_depth_coverage
Definition: Versions.h:140
const char *const E_GL_ARB_gpu_shader_int64
Definition: Versions.h:134