1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 module derelict.gles.ext2; 29 30 private { 31 import derelict.gles.types2; 32 import derelict.gles.constants2; 33 import derelict.gles.internal; 34 } 35 36 private __gshared bool _GL_KHR_blend_equation_advanced; 37 bool GL_KHR_blend_equation_advanced() @property { return _GL_KHR_blend_equation_advanced; } 38 enum : uint { 39 GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285, 40 GL_MULTIPLY_KHR = 0x9294, 41 GL_SCREEN_KHR = 0x9295, 42 GL_OVERLAY_KHR = 0x9296, 43 GL_DARKEN_KHR = 0x9297, 44 GL_LIGHTEN_KHR = 0x9298, 45 GL_COLORDODGE_KHR = 0x9299, 46 GL_COLORBURN_KHR = 0x929A, 47 GL_HARDLIGHT_KHR = 0x929B, 48 GL_SOFTLIGHT_KHR = 0x929C, 49 GL_DIFFERENCE_KHR = 0x929E, 50 GL_EXCLUSION_KHR = 0x92A0, 51 GL_HSL_HUE_KHR = 0x92AD, 52 GL_HSL_SATURATION_KHR = 0x92AE, 53 GL_HSL_COLOR_KHR = 0x92AF, 54 GL_HSL_LUMINOSITY_KHR = 0x92B0, 55 } 56 extern( System ) nothrow { 57 alias da_glBlendBarrierKHR = void function( ); 58 } 59 __gshared { 60 da_glBlendBarrierKHR glBlendBarrierKHR; 61 } 62 private void load_GL_KHR_blend_equation_advanced() { 63 try { 64 bindGLFunc( cast( void** )&glBlendBarrierKHR, "glBlendBarrierKHR" ); 65 66 _GL_KHR_blend_equation_advanced = true; 67 } catch( Exception e ) { 68 _GL_KHR_blend_equation_advanced = false; 69 } 70 } 71 72 private __gshared bool _GL_KHR_debug; 73 bool GL_KHR_debug() @property { return _GL_KHR_debug; } 74 alias GLDEBUGPROCKHR = void function( GLenum, GLenum, GLuint, GLenum, GLsizei, const( GLchar )*, const( void )* ); 75 enum : uint { 76 GL_SAMPLER = 0x82E6, 77 GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242, 78 GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243, 79 GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244, 80 GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245, 81 GL_DEBUG_SOURCE_API_KHR = 0x8246, 82 GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247, 83 GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248, 84 GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249, 85 GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A, 86 GL_DEBUG_SOURCE_OTHER_KHR = 0x824B, 87 GL_DEBUG_TYPE_ERROR_KHR = 0x824C, 88 GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D, 89 GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E, 90 GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F, 91 GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250, 92 GL_DEBUG_TYPE_OTHER_KHR = 0x8251, 93 GL_DEBUG_TYPE_MARKER_KHR = 0x8268, 94 GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269, 95 GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A, 96 GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B, 97 GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C, 98 GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D, 99 GL_BUFFER_KHR = 0x82E0, 100 GL_SHADER_KHR = 0x82E1, 101 GL_PROGRAM_KHR = 0x82E2, 102 GL_VERTEX_ARRAY_KHR = 0x8074, 103 GL_QUERY_KHR = 0x82E3, 104 GL_SAMPLER_KHR = 0x82E6, 105 GL_MAX_LABEL_LENGTH_KHR = 0x82E8, 106 GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143, 107 GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144, 108 GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145, 109 GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146, 110 GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147, 111 GL_DEBUG_SEVERITY_LOW_KHR = 0x9148, 112 GL_DEBUG_OUTPUT_KHR = 0x92E0, 113 GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002, 114 GL_STACK_OVERFLOW_KHR = 0x0503, 115 GL_STACK_UNDERFLOW_KHR = 0x0504, 116 } 117 extern( System ) nothrow { 118 alias da_glDebugMessageControlKHR = void function( GLenum, GLenum, GLenum, GLsizei, const( GLuint )*, GLboolean ); 119 alias da_glDebugMessageInsertKHR = void function( GLenum, GLenum, GLuint, GLenum, GLsizei, const( GLchar )* ); 120 alias da_glDebugMessageCallbackKHR = void function( GLDEBUGPROCKHR, const( void )* ); 121 alias da_glGetDebugMessageLogKHR = GLuint function ( GLuint, GLsizei, GLenum*, GLenum*, GLuint*, GLenum*, GLsizei*, GLchar* ); 122 alias da_glPushDebugGroupKHR = void function( GLenum, GLuint, GLsizei, const( GLchar )* ); 123 alias da_glPopDebugGroupKHR = void function( ); 124 alias da_glObjectLabelKHR = void function( GLenum, GLuint, GLsizei, const( GLchar )* ); 125 alias da_glGetObjectLabelKHR = void function( GLenum, GLuint, GLsizei, GLsizei*, GLchar* ); 126 alias da_glObjectPtrLabelKHR = void function( const( void )*, GLsizei, const( GLchar )* ); 127 alias da_glGetObjectPtrLabelKHR = void function( const( void )*, GLsizei, GLsizei*, GLchar* ); 128 alias da_glGetPointervKHR = void function( GLenum, void** ); 129 } 130 __gshared { 131 da_glDebugMessageControlKHR glDebugMessageControlKHR; 132 da_glDebugMessageInsertKHR glDebugMessageInsertKHR; 133 da_glDebugMessageCallbackKHR glDebugMessageCallbackKHR; 134 da_glGetDebugMessageLogKHR glGetDebugMessageLogKHR; 135 da_glPushDebugGroupKHR glPushDebugGroupKHR; 136 da_glPopDebugGroupKHR glPopDebugGroupKHR; 137 da_glObjectLabelKHR glObjectLabelKHR; 138 da_glGetObjectLabelKHR glGetObjectLabelKHR; 139 da_glObjectPtrLabelKHR glObjectPtrLabelKHR; 140 da_glGetObjectPtrLabelKHR glGetObjectPtrLabelKHR; 141 da_glGetPointervKHR glGetPointervKHR; 142 } 143 private void load_GL_KHR_debug() { 144 try { 145 bindGLFunc( cast( void** )&glDebugMessageControlKHR, "glDebugMessageControlKHR" ); 146 bindGLFunc( cast( void** )&glDebugMessageInsertKHR, "glDebugMessageInsertKHR" ); 147 bindGLFunc( cast( void** )&glDebugMessageCallbackKHR, "glDebugMessageCallbackKHR" ); 148 bindGLFunc( cast( void** )&glGetDebugMessageLogKHR, "glGetDebugMessageLogKHR" ); 149 bindGLFunc( cast( void** )&glPushDebugGroupKHR, "glPushDebugGroupKHR" ); 150 bindGLFunc( cast( void** )&glPopDebugGroupKHR, "glPopDebugGroupKHR" ); 151 bindGLFunc( cast( void** )&glObjectLabelKHR, "glObjectLabelKHR" ); 152 bindGLFunc( cast( void** )&glGetObjectLabelKHR, "glGetObjectLabelKHR" ); 153 bindGLFunc( cast( void** )&glObjectPtrLabelKHR, "glObjectPtrLabelKHR" ); 154 bindGLFunc( cast( void** )&glGetObjectPtrLabelKHR, "glGetObjectPtrLabelKHR" ); 155 bindGLFunc( cast( void** )&glGetPointervKHR, "glGetPointervKHR" ); 156 157 _GL_KHR_debug = true; 158 } catch( Exception e ) { 159 _GL_KHR_debug = false; 160 } 161 } 162 163 private __gshared bool _GL_KHR_texture_compression_astc_hdr; 164 bool GL_KHR_texture_compression_astc_hdr() @property { return _GL_KHR_texture_compression_astc_hdr; } 165 enum : uint { 166 GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0, 167 GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1, 168 GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2, 169 GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3, 170 GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4, 171 GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5, 172 GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6, 173 GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7, 174 GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8, 175 GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9, 176 GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA, 177 GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB, 178 GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC, 179 GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD, 180 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0, 181 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1, 182 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2, 183 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3, 184 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4, 185 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5, 186 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6, 187 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7, 188 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8, 189 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9, 190 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA, 191 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB, 192 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC, 193 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD, 194 } 195 196 private __gshared bool _GL_KHR_texture_compression_astc_ldr; 197 bool GL_KHR_texture_compression_astc_ldr() @property { return _GL_KHR_texture_compression_astc_ldr; } 198 199 private __gshared bool _GL_OES_EGL_image; 200 bool GL_OES_EGL_image() @property { return _GL_OES_EGL_image; } 201 alias GLeglImageOES = void*; 202 extern( System ) nothrow { 203 alias da_glEGLImageTargetTexture2DOES = void function( GLenum, GLeglImageOES ); 204 alias da_glEGLImageTargetRenderbufferStorageOES = void function( GLenum, GLeglImageOES ); 205 } 206 __gshared { 207 da_glEGLImageTargetTexture2DOES glEGLImageTargetTexture2DOES; 208 da_glEGLImageTargetRenderbufferStorageOES glEGLImageTargetRenderbufferStorageOES; 209 } 210 private void load_GL_OES_EGL_image() { 211 try { 212 bindGLFunc( cast( void** )&glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES" ); 213 bindGLFunc( cast( void** )&glEGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES" ); 214 215 _GL_OES_EGL_image = true; 216 } catch( Exception e ) { 217 _GL_OES_EGL_image = false; 218 } 219 } 220 221 private __gshared bool _GL_OES_EGL_image_external; 222 bool GL_OES_EGL_image_external() @property { return _GL_OES_EGL_image_external; } 223 enum : uint { 224 GL_TEXTURE_EXTERNAL_OES = 0x8D65, 225 GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67, 226 GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68, 227 GL_SAMPLER_EXTERNAL_OES = 0x8D66, 228 } 229 230 private __gshared bool _GL_OES_compressed_ETC1_RGB8_texture; 231 bool GL_OES_compressed_ETC1_RGB8_texture() @property { return _GL_OES_compressed_ETC1_RGB8_texture; } 232 enum : uint { 233 GL_ETC1_RGB8_OES = 0x8D64, 234 } 235 236 private __gshared bool _GL_OES_compressed_paletted_texture; 237 bool GL_OES_compressed_paletted_texture() @property { return _GL_OES_compressed_paletted_texture; } 238 enum : uint { 239 GL_PALETTE4_RGB8_OES = 0x8B90, 240 GL_PALETTE4_RGBA8_OES = 0x8B91, 241 GL_PALETTE4_R5_G6_B5_OES = 0x8B92, 242 GL_PALETTE4_RGBA4_OES = 0x8B93, 243 GL_PALETTE4_RGB5_A1_OES = 0x8B94, 244 GL_PALETTE8_RGB8_OES = 0x8B95, 245 GL_PALETTE8_RGBA8_OES = 0x8B96, 246 GL_PALETTE8_R5_G6_B5_OES = 0x8B97, 247 GL_PALETTE8_RGBA4_OES = 0x8B98, 248 GL_PALETTE8_RGB5_A1_OES = 0x8B99, 249 } 250 251 private __gshared bool _GL_OES_depth24; 252 bool GL_OES_depth24() @property { return _GL_OES_depth24; } 253 enum : uint { 254 GL_DEPTH_COMPONENT24_OES = 0x81A6, 255 } 256 257 private __gshared bool _GL_OES_depth32; 258 bool GL_OES_depth32() @property { return _GL_OES_depth32; } 259 enum : uint { 260 GL_DEPTH_COMPONENT32_OES = 0x81A7, 261 } 262 263 private __gshared bool _GL_OES_depth_texture; 264 bool GL_OES_depth_texture() @property { return _GL_OES_depth_texture; } 265 266 private __gshared bool _GL_OES_element_index_uint; 267 bool GL_OES_element_index_uint() @property { return _GL_OES_element_index_uint; } 268 269 private __gshared bool _GL_OES_fbo_render_mipmap; 270 bool GL_OES_fbo_render_mipmap() @property { return _GL_OES_fbo_render_mipmap; } 271 272 private __gshared bool _GL_OES_fragment_precision_high; 273 bool GL_OES_fragment_precision_high() @property { return _GL_OES_fragment_precision_high; } 274 275 private __gshared bool _GL_OES_get_program_binary; 276 bool GL_OES_get_program_binary() @property { return _GL_OES_get_program_binary; } 277 enum : uint { 278 GL_PROGRAM_BINARY_LENGTH_OES = 0x8741, 279 GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE, 280 GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF, 281 } 282 extern( System ) nothrow { 283 alias da_glGetProgramBinaryOES = void function( GLuint, GLsizei, GLsizei*, GLenum*, void* ); 284 alias da_glProgramBinaryOES = void function( GLuint, GLenum, const( void )*, GLint ); 285 } 286 __gshared { 287 da_glGetProgramBinaryOES glGetProgramBinaryOES; 288 da_glProgramBinaryOES glProgramBinaryOES; 289 } 290 private void load_GL_OES_get_program_binary() { 291 try { 292 bindGLFunc( cast( void** )&glGetProgramBinaryOES, "glGetProgramBinaryOES" ); 293 bindGLFunc( cast( void** )&glProgramBinaryOES, "glProgramBinaryOES" ); 294 295 _GL_OES_get_program_binary = true; 296 } catch( Exception e ) { 297 _GL_OES_get_program_binary = false; 298 } 299 } 300 301 private __gshared bool _GL_OES_mapbuffer; 302 bool GL_OES_mapbuffer() @property { return _GL_OES_mapbuffer; } 303 enum : uint { 304 GL_WRITE_ONLY_OES = 0x88B9, 305 GL_BUFFER_ACCESS_OES = 0x88BB, 306 GL_BUFFER_MAPPED_OES = 0x88BC, 307 GL_BUFFER_MAP_POINTER_OES = 0x88BD, 308 } 309 extern( System ) nothrow { 310 alias da_glMapBufferOES = void* function( GLenum, GLenum ); 311 alias da_glUnmapBufferOES = GLboolean function( GLenum ); 312 alias da_glGetBufferPointervOES = void function( GLenum, GLenum, void** ); 313 } 314 __gshared { 315 da_glMapBufferOES glMapBufferOES; 316 da_glUnmapBufferOES glUnmapBufferOES; 317 da_glGetBufferPointervOES glGetBufferPointervOES; 318 } 319 private void load_GL_OES_mapbuffer() { 320 try { 321 bindGLFunc( cast( void** )&glMapBufferOES, "glMapBufferOES" ); 322 bindGLFunc( cast( void** )&glUnmapBufferOES, "glUnmapBufferOES" ); 323 bindGLFunc( cast( void** )&glGetBufferPointervOES, "glGetBufferPointervOES" ); 324 325 _GL_OES_mapbuffer = true; 326 } catch( Exception e ) { 327 _GL_OES_mapbuffer = false; 328 } 329 } 330 331 private __gshared bool _GL_OES_packed_depth_stencil; 332 bool GL_OES_packed_depth_stencil() @property { return _GL_OES_packed_depth_stencil; } 333 enum : uint { 334 GL_DEPTH_STENCIL_OES = 0x84F9, 335 GL_UNSIGNED_INT_24_8_OES = 0x84FA, 336 GL_DEPTH24_STENCIL8_OES = 0x88F0, 337 } 338 339 private __gshared bool _GL_OES_required_internalformat; 340 bool GL_OES_required_internalformat() @property { return _GL_OES_required_internalformat; } 341 enum : uint { 342 GL_ALPHA8_OES = 0x803C, 343 GL_DEPTH_COMPONENT16_OES = 0x81A5, 344 GL_LUMINANCE4_ALPHA4_OES = 0x8043, 345 GL_LUMINANCE8_ALPHA8_OES = 0x8045, 346 GL_LUMINANCE8_OES = 0x8040, 347 GL_RGBA4_OES = 0x8056, 348 GL_RGB5_A1_OES = 0x8057, 349 GL_RGB565_OES = 0x8D62, 350 GL_RGB8_OES = 0x8051, 351 GL_RGBA8_OES = 0x8058, 352 GL_RGB10_EXT = 0x8052, 353 GL_RGB10_A2_EXT = 0x8059, 354 } 355 356 private __gshared bool _GL_OES_rgb8_rgba8; 357 bool GL_OES_rgb8_rgba8() @property { return _GL_OES_rgb8_rgba8; } 358 359 private __gshared bool _GL_OES_sample_shading; 360 bool GL_OES_sample_shading() @property { return _GL_OES_sample_shading; } 361 enum : uint { 362 GL_SAMPLE_SHADING_OES = 0x8C36, 363 GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37, 364 } 365 extern( System ) nothrow { 366 alias da_glMinSampleShadingOES = void function( GLfloat ); 367 } 368 __gshared { 369 da_glMinSampleShadingOES glMinSampleShadingOES; 370 } 371 private void load_GL_OES_sample_shading() { 372 try { 373 bindGLFunc( cast( void** )&glMinSampleShadingOES, "glMinSampleShadingOES" ); 374 375 _GL_OES_sample_shading = true; 376 } catch( Exception e ) { 377 _GL_OES_sample_shading = false; 378 } 379 } 380 381 private __gshared bool _GL_OES_sample_variables; 382 bool GL_OES_sample_variables() @property { return _GL_OES_sample_variables; } 383 384 private __gshared bool _GL_OES_shader_image_atomic; 385 bool GL_OES_shader_image_atomic() @property { return _GL_OES_shader_image_atomic; } 386 387 private __gshared bool _GL_OES_shader_multisample_interpolation; 388 bool GL_OES_shader_multisample_interpolation() @property { return _GL_OES_shader_multisample_interpolation; } 389 enum : uint { 390 GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B, 391 GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C, 392 GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D, 393 } 394 395 private __gshared bool _GL_OES_standard_derivatives; 396 bool GL_OES_standard_derivatives() @property { return _GL_OES_standard_derivatives; } 397 enum : uint { 398 GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B, 399 } 400 401 private __gshared bool _GL_OES_stencil1; 402 bool GL_OES_stencil1() @property { return _GL_OES_stencil1; } 403 enum : uint { 404 GL_STENCIL_INDEX1_OES = 0x8D46, 405 } 406 407 private __gshared bool _GL_OES_stencil4; 408 bool GL_OES_stencil4() @property { return _GL_OES_stencil4; } 409 enum : uint { 410 GL_STENCIL_INDEX4_OES = 0x8D47, 411 } 412 413 private __gshared bool _GL_OES_surfaceless_context; 414 bool GL_OES_surfaceless_context() @property { return _GL_OES_surfaceless_context; } 415 enum : uint { 416 GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219, 417 } 418 419 private __gshared bool _GL_OES_texture_3D; 420 bool GL_OES_texture_3D() @property { return _GL_OES_texture_3D; } 421 enum : uint { 422 GL_TEXTURE_WRAP_R_OES = 0x8072, 423 GL_TEXTURE_3D_OES = 0x806F, 424 GL_TEXTURE_BINDING_3D_OES = 0x806A, 425 GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073, 426 GL_SAMPLER_3D_OES = 0x8B5F, 427 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4, 428 } 429 extern( System ) nothrow { 430 alias da_glTexImage3DOES = void function( GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const( void )* ); 431 alias da_glTexSubImage3DOES = void function( GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const( void )* ); 432 alias da_glCopyTexSubImage3DOES = void function( GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei ); 433 alias da_glCompressedTexImage3DOES = void function( GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const( void )* ); 434 alias da_glCompressedTexSubImage3DOES = void function( GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const( void )* ); 435 alias da_glFramebufferTexture3DOES = void function( GLenum, GLenum, GLenum, GLuint, GLint, GLint ); 436 } 437 __gshared { 438 da_glTexImage3DOES glTexImage3DOES; 439 da_glTexSubImage3DOES glTexSubImage3DOES; 440 da_glCopyTexSubImage3DOES glCopyTexSubImage3DOES; 441 da_glCompressedTexImage3DOES glCompressedTexImage3DOES; 442 da_glCompressedTexSubImage3DOES glCompressedTexSubImage3DOES; 443 da_glFramebufferTexture3DOES glFramebufferTexture3DOES; 444 } 445 private void load_GL_OES_texture_3D() { 446 try { 447 bindGLFunc( cast( void** )&glTexImage3DOES, "glTexImage3DOES" ); 448 bindGLFunc( cast( void** )&glTexSubImage3DOES, "glTexSubImage3DOES" ); 449 bindGLFunc( cast( void** )&glCopyTexSubImage3DOES, "glCopyTexSubImage3DOES" ); 450 bindGLFunc( cast( void** )&glCompressedTexImage3DOES, "glCompressedTexImage3DOES" ); 451 bindGLFunc( cast( void** )&glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DOES" ); 452 bindGLFunc( cast( void** )&glFramebufferTexture3DOES, "glFramebufferTexture3DOES" ); 453 454 _GL_OES_texture_3D = true; 455 } catch( Exception e ) { 456 _GL_OES_texture_3D = false; 457 } 458 } 459 460 private __gshared bool _GL_OES_texture_compression_astc; 461 bool GL_OES_texture_compression_astc() @property { return _GL_OES_texture_compression_astc; } 462 enum : uint { 463 GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0, 464 GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1, 465 GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2, 466 GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3, 467 GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4, 468 GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5, 469 GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6, 470 GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7, 471 GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8, 472 GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9, 473 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0, 474 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1, 475 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2, 476 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3, 477 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4, 478 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5, 479 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6, 480 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7, 481 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8, 482 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9, 483 } 484 485 private __gshared bool _GL_OES_texture_float; 486 bool GL_OES_texture_float() @property { return _GL_OES_texture_float; } 487 488 private __gshared bool _GL_OES_texture_float_linear; 489 bool GL_OES_texture_float_linear() @property { return _GL_OES_texture_float_linear; } 490 491 private __gshared bool _GL_OES_texture_half_float; 492 bool GL_OES_texture_half_float() @property { return _GL_OES_texture_half_float; } 493 enum : uint { 494 GL_HALF_FLOAT_OES = 0x8D61, 495 } 496 497 private __gshared bool _GL_OES_texture_half_float_linear; 498 bool GL_OES_texture_half_float_linear() @property { return _GL_OES_texture_half_float_linear; } 499 500 private __gshared bool _GL_OES_texture_npot; 501 bool GL_OES_texture_npot() @property { return _GL_OES_texture_npot; } 502 503 private __gshared bool _GL_OES_texture_stencil8; 504 bool GL_OES_texture_stencil8() @property { return _GL_OES_texture_stencil8; } 505 enum : uint { 506 GL_STENCIL_INDEX_OES = 0x1901, 507 GL_STENCIL_INDEX8_OES = 0x8D48, 508 } 509 510 private __gshared bool _GL_OES_texture_storage_multisample_2d_array; 511 bool GL_OES_texture_storage_multisample_2d_array() @property { return _GL_OES_texture_storage_multisample_2d_array; } 512 enum : uint { 513 GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102, 514 GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105, 515 GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B, 516 GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C, 517 GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D, 518 } 519 extern( System ) nothrow { 520 alias da_glTexStorage3DMultisampleOES = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean ); 521 } 522 __gshared { 523 da_glTexStorage3DMultisampleOES glTexStorage3DMultisampleOES; 524 } 525 private void load_GL_OES_texture_storage_multisample_2d_array() { 526 try { 527 bindGLFunc( cast( void** )&glTexStorage3DMultisampleOES, "glTexStorage3DMultisampleOES" ); 528 529 _GL_OES_texture_storage_multisample_2d_array = true; 530 } catch( Exception e ) { 531 _GL_OES_texture_storage_multisample_2d_array = false; 532 } 533 } 534 535 private __gshared bool _GL_OES_vertex_array_object; 536 bool GL_OES_vertex_array_object() @property { return _GL_OES_vertex_array_object; } 537 enum : uint { 538 GL_VERTEX_ARRAY_BINDING_OES = 0x85B5, 539 } 540 extern( System ) nothrow { 541 alias da_glBindVertexArrayOES = void function( GLuint ); 542 alias da_glDeleteVertexArraysOES = void function( GLsizei, const( GLuint )* ); 543 alias da_glGenVertexArraysOES = void function( GLsizei, GLuint* ); 544 alias da_glIsVertexArrayOES = GLboolean function( GLuint ); 545 } 546 __gshared { 547 da_glBindVertexArrayOES glBindVertexArrayOES; 548 da_glDeleteVertexArraysOES glDeleteVertexArraysOES; 549 da_glGenVertexArraysOES glGenVertexArraysOES; 550 da_glIsVertexArrayOES glIsVertexArrayOES; 551 } 552 private void load_GL_OES_vertex_array_object() { 553 try { 554 bindGLFunc( cast( void** )&glBindVertexArrayOES, "glBindVertexArrayOES" ); 555 bindGLFunc( cast( void** )&glDeleteVertexArraysOES, "glDeleteVertexArraysOES" ); 556 bindGLFunc( cast( void** )&glGenVertexArraysOES, "glGenVertexArraysOES" ); 557 bindGLFunc( cast( void** )&glIsVertexArrayOES, "glIsVertexArrayOES" ); 558 559 _GL_OES_vertex_array_object = true; 560 } catch( Exception e ) { 561 _GL_OES_vertex_array_object = false; 562 } 563 } 564 565 private __gshared bool _GL_OES_vertex_half_float; 566 bool GL_OES_vertex_half_float() @property { return _GL_OES_vertex_half_float; } 567 568 private __gshared bool _GL_OES_vertex_type_10_10_10_2; 569 bool GL_OES_vertex_type_10_10_10_2() @property { return _GL_OES_vertex_type_10_10_10_2; } 570 enum : uint { 571 GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6, 572 GL_INT_10_10_10_2_OES = 0x8DF7, 573 } 574 575 private __gshared bool _GL_AMD_compressed_3DC_texture; 576 bool GL_AMD_compressed_3DC_texture() @property { return _GL_AMD_compressed_3DC_texture; } 577 enum : uint { 578 GL_3DC_X_AMD = 0x87F9, 579 GL_3DC_XY_AMD = 0x87FA, 580 } 581 582 private __gshared bool _GL_AMD_compressed_ATC_texture; 583 bool GL_AMD_compressed_ATC_texture() @property { return _GL_AMD_compressed_ATC_texture; } 584 enum : uint { 585 GL_ATC_RGB_AMD = 0x8C92, 586 GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93, 587 GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE, 588 } 589 590 private __gshared bool _GL_AMD_performance_monitor; 591 bool GL_AMD_performance_monitor() @property { return _GL_AMD_performance_monitor; } 592 enum : uint { 593 GL_COUNTER_TYPE_AMD = 0x8BC0, 594 GL_COUNTER_RANGE_AMD = 0x8BC1, 595 GL_UNSIGNED_INT64_AMD = 0x8BC2, 596 GL_PERCENTAGE_AMD = 0x8BC3, 597 GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4, 598 GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5, 599 GL_PERFMON_RESULT_AMD = 0x8BC6, 600 } 601 extern( System ) nothrow { 602 alias da_glGetPerfMonitorGroupsAMD = void function( GLint*, GLsizei, GLuint* ); 603 alias da_glGetPerfMonitorCountersAMD = void function( GLuint, GLint*, GLint*, GLsizei, GLuint* ); 604 alias da_glGetPerfMonitorGroupStringAMD = void function( GLuint, GLsizei, GLsizei*, GLchar* ); 605 alias da_glGetPerfMonitorCounterStringAMD = void function( GLuint, GLuint, GLsizei, GLsizei*, GLchar* ); 606 alias da_glGetPerfMonitorCounterInfoAMD = void function( GLuint, GLuint, GLenum, void* ); 607 alias da_glGenPerfMonitorsAMD = void function( GLsizei, GLuint* ); 608 alias da_glDeletePerfMonitorsAMD = void function( GLsizei, GLuint* ); 609 alias da_glSelectPerfMonitorCountersAMD = void function( GLuint, GLboolean, GLuint, GLint, GLuint* ); 610 alias da_glBeginPerfMonitorAMD = void function( GLuint ); 611 alias da_glEndPerfMonitorAMD = void function( GLuint ); 612 alias da_glGetPerfMonitorCounterDataAMD = void function( GLuint, GLenum, GLsizei, GLuint*, GLint* ); 613 } 614 __gshared { 615 da_glGetPerfMonitorGroupsAMD glGetPerfMonitorGroupsAMD; 616 da_glGetPerfMonitorCountersAMD glGetPerfMonitorCountersAMD; 617 da_glGetPerfMonitorGroupStringAMD glGetPerfMonitorGroupStringAMD; 618 da_glGetPerfMonitorCounterStringAMD glGetPerfMonitorCounterStringAMD; 619 da_glGetPerfMonitorCounterInfoAMD glGetPerfMonitorCounterInfoAMD; 620 da_glGenPerfMonitorsAMD glGenPerfMonitorsAMD; 621 da_glDeletePerfMonitorsAMD glDeletePerfMonitorsAMD; 622 da_glSelectPerfMonitorCountersAMD glSelectPerfMonitorCountersAMD; 623 da_glBeginPerfMonitorAMD glBeginPerfMonitorAMD; 624 da_glEndPerfMonitorAMD glEndPerfMonitorAMD; 625 da_glGetPerfMonitorCounterDataAMD glGetPerfMonitorCounterDataAMD; 626 } 627 private void load_GL_AMD_performance_monitor() { 628 try { 629 bindGLFunc( cast( void** )&glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD" ); 630 bindGLFunc( cast( void** )&glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD" ); 631 bindGLFunc( cast( void** )&glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD" ); 632 bindGLFunc( cast( void** )&glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD" ); 633 bindGLFunc( cast( void** )&glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD" ); 634 bindGLFunc( cast( void** )&glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD" ); 635 bindGLFunc( cast( void** )&glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD" ); 636 bindGLFunc( cast( void** )&glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD" ); 637 bindGLFunc( cast( void** )&glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD" ); 638 bindGLFunc( cast( void** )&glEndPerfMonitorAMD, "glEndPerfMonitorAMD" ); 639 bindGLFunc( cast( void** )&glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD" ); 640 641 _GL_AMD_performance_monitor = true; 642 } catch( Exception e ) { 643 _GL_AMD_performance_monitor = false; 644 } 645 } 646 647 private __gshared bool _GL_AMD_program_binary_Z400; 648 bool GL_AMD_program_binary_Z400() @property { return _GL_AMD_program_binary_Z400; } 649 enum : uint { 650 GL_Z400_BINARY_AMD = 0x8740, 651 } 652 653 private __gshared bool _GL_ANGLE_depth_texture; 654 bool GL_ANGLE_depth_texture() @property { return _GL_ANGLE_depth_texture; } 655 656 private __gshared bool _GL_ANGLE_framebuffer_blit; 657 bool GL_ANGLE_framebuffer_blit() @property { return _GL_ANGLE_framebuffer_blit; } 658 enum : uint { 659 GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8, 660 GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9, 661 GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6, 662 GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA, 663 } 664 extern( System ) nothrow { 665 alias da_glBlitFramebufferANGLE = void function( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield, GLenum ); 666 } 667 __gshared { 668 da_glBlitFramebufferANGLE glBlitFramebufferANGLE; 669 } 670 private void load_GL_ANGLE_framebuffer_blit() { 671 try { 672 bindGLFunc( cast( void** )&glBlitFramebufferANGLE, "glBlitFramebufferANGLE" ); 673 674 _GL_ANGLE_framebuffer_blit = true; 675 } catch( Exception e ) { 676 _GL_ANGLE_framebuffer_blit = false; 677 } 678 } 679 680 private __gshared bool _GL_ANGLE_framebuffer_multisample; 681 bool GL_ANGLE_framebuffer_multisample() @property { return _GL_ANGLE_framebuffer_multisample; } 682 enum : uint { 683 GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB, 684 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56, 685 GL_MAX_SAMPLES_ANGLE = 0x8D57, 686 } 687 extern( System ) nothrow { 688 alias da_glRenderbufferStorageMultisampleANGLE = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); 689 } 690 __gshared { 691 da_glRenderbufferStorageMultisampleANGLE glRenderbufferStorageMultisampleANGLE; 692 } 693 private void load_GL_ANGLE_framebuffer_multisample() { 694 try { 695 bindGLFunc( cast( void** )&glRenderbufferStorageMultisampleANGLE, "glRenderbufferStorageMultisampleANGLE" ); 696 697 _GL_ANGLE_framebuffer_multisample = true; 698 } catch( Exception e ) { 699 _GL_ANGLE_framebuffer_multisample = false; 700 } 701 } 702 703 private __gshared bool _GL_ANGLE_instanced_arrays; 704 bool GL_ANGLE_instanced_arrays() @property { return _GL_ANGLE_instanced_arrays; } 705 enum : uint { 706 GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE, 707 } 708 extern( System ) nothrow { 709 alias da_glDrawArraysInstancedANGLE = void function( GLenum, GLint, GLsizei, GLsizei ); 710 alias da_glDrawElementsInstancedANGLE = void function( GLenum, GLsizei, GLenum, const( void )*, GLsizei ); 711 alias da_glVertexAttribDivisorANGLE = void function( GLuint, GLuint ); 712 } 713 __gshared { 714 da_glDrawArraysInstancedANGLE glDrawArraysInstancedANGLE; 715 da_glDrawElementsInstancedANGLE glDrawElementsInstancedANGLE; 716 da_glVertexAttribDivisorANGLE glVertexAttribDivisorANGLE; 717 } 718 private void load_GL_ANGLE_instanced_arrays() { 719 try { 720 bindGLFunc( cast( void** )&glDrawArraysInstancedANGLE, "glDrawArraysInstancedANGLE" ); 721 bindGLFunc( cast( void** )&glDrawElementsInstancedANGLE, "glDrawElementsInstancedANGLE" ); 722 bindGLFunc( cast( void** )&glVertexAttribDivisorANGLE, "glVertexAttribDivisorANGLE" ); 723 724 _GL_ANGLE_instanced_arrays = true; 725 } catch( Exception e ) { 726 _GL_ANGLE_instanced_arrays = false; 727 } 728 } 729 730 private __gshared bool _GL_ANGLE_pack_reverse_row_order; 731 bool GL_ANGLE_pack_reverse_row_order() @property { return _GL_ANGLE_pack_reverse_row_order; } 732 enum : uint { 733 GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4, 734 } 735 736 private __gshared bool _GL_ANGLE_program_binary; 737 bool GL_ANGLE_program_binary() @property { return _GL_ANGLE_program_binary; } 738 enum : uint { 739 GL_PROGRAM_BINARY_ANGLE = 0x93A6, 740 } 741 742 private __gshared bool _GL_ANGLE_texture_compression_dxt3; 743 bool GL_ANGLE_texture_compression_dxt3() @property { return _GL_ANGLE_texture_compression_dxt3; } 744 enum : uint { 745 GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2, 746 } 747 748 private __gshared bool _GL_ANGLE_texture_compression_dxt5; 749 bool GL_ANGLE_texture_compression_dxt5() @property { return _GL_ANGLE_texture_compression_dxt5; } 750 enum : uint { 751 GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3, 752 } 753 754 private __gshared bool _GL_ANGLE_texture_usage; 755 bool GL_ANGLE_texture_usage() @property { return _GL_ANGLE_texture_usage; } 756 enum : uint { 757 GL_TEXTURE_USAGE_ANGLE = 0x93A2, 758 GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3, 759 } 760 761 private __gshared bool _GL_ANGLE_translated_shader_source; 762 bool GL_ANGLE_translated_shader_source() @property { return _GL_ANGLE_translated_shader_source; } 763 enum : uint { 764 GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0, 765 } 766 extern( System ) nothrow { 767 alias da_glGetTranslatedShaderSourceANGLE = void function( GLuint, GLsizei, GLsizei*, GLchar* ); 768 } 769 __gshared { 770 da_glGetTranslatedShaderSourceANGLE glGetTranslatedShaderSourceANGLE; 771 } 772 private void load_GL_ANGLE_translated_shader_source() { 773 try { 774 bindGLFunc( cast( void** )&glGetTranslatedShaderSourceANGLE, "glGetTranslatedShaderSourceANGLE" ); 775 776 _GL_ANGLE_translated_shader_source = true; 777 } catch( Exception e ) { 778 _GL_ANGLE_translated_shader_source = false; 779 } 780 } 781 782 private __gshared bool _GL_APPLE_copy_texture_levels; 783 bool GL_APPLE_copy_texture_levels() @property { return _GL_APPLE_copy_texture_levels; } 784 extern( System ) nothrow { 785 alias da_glCopyTextureLevelsAPPLE = void function( GLuint, GLuint, GLint, GLsizei ); 786 } 787 __gshared { 788 da_glCopyTextureLevelsAPPLE glCopyTextureLevelsAPPLE; 789 } 790 private void load_GL_APPLE_copy_texture_levels() { 791 try { 792 bindGLFunc( cast( void** )&glCopyTextureLevelsAPPLE, "glCopyTextureLevelsAPPLE" ); 793 794 _GL_APPLE_copy_texture_levels = true; 795 } catch( Exception e ) { 796 _GL_APPLE_copy_texture_levels = false; 797 } 798 } 799 800 private __gshared bool _GL_APPLE_framebuffer_multisample; 801 bool GL_APPLE_framebuffer_multisample() @property { return _GL_APPLE_framebuffer_multisample; } 802 enum : uint { 803 GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB, 804 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56, 805 GL_MAX_SAMPLES_APPLE = 0x8D57, 806 GL_READ_FRAMEBUFFER_APPLE = 0x8CA8, 807 GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9, 808 GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6, 809 GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA, 810 } 811 extern( System ) nothrow { 812 alias da_glRenderbufferStorageMultisampleAPPLE = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); 813 alias da_glResolveMultisampleFramebufferAPPLE = void function( ); 814 } 815 __gshared { 816 da_glRenderbufferStorageMultisampleAPPLE glRenderbufferStorageMultisampleAPPLE; 817 da_glResolveMultisampleFramebufferAPPLE glResolveMultisampleFramebufferAPPLE; 818 } 819 private void load_GL_APPLE_framebuffer_multisample() { 820 try { 821 bindGLFunc( cast( void** )&glRenderbufferStorageMultisampleAPPLE, "glRenderbufferStorageMultisampleAPPLE" ); 822 bindGLFunc( cast( void** )&glResolveMultisampleFramebufferAPPLE, "glResolveMultisampleFramebufferAPPLE" ); 823 824 _GL_APPLE_framebuffer_multisample = true; 825 } catch( Exception e ) { 826 _GL_APPLE_framebuffer_multisample = false; 827 } 828 } 829 830 private __gshared bool _GL_APPLE_rgb_422; 831 bool GL_APPLE_rgb_422() @property { return _GL_APPLE_rgb_422; } 832 enum : uint { 833 GL_RGB_422_APPLE = 0x8A1F, 834 GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA, 835 GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB, 836 GL_RGB_RAW_422_APPLE = 0x8A51, 837 } 838 839 private __gshared bool _GL_APPLE_sync; 840 bool GL_APPLE_sync() @property { return _GL_APPLE_sync; } 841 enum : ulong { 842 GL_SYNC_OBJECT_APPLE = 0x8A53, 843 GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111, 844 GL_OBJECT_TYPE_APPLE = 0x9112, 845 GL_SYNC_CONDITION_APPLE = 0x9113, 846 GL_SYNC_STATUS_APPLE = 0x9114, 847 GL_SYNC_FLAGS_APPLE = 0x9115, 848 GL_SYNC_FENCE_APPLE = 0x9116, 849 GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117, 850 GL_UNSIGNALED_APPLE = 0x9118, 851 GL_SIGNALED_APPLE = 0x9119, 852 GL_ALREADY_SIGNALED_APPLE = 0x911A, 853 GL_TIMEOUT_EXPIRED_APPLE = 0x911B, 854 GL_CONDITION_SATISFIED_APPLE = 0x911C, 855 GL_WAIT_FAILED_APPLE = 0x911D, 856 GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001, 857 GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFFU, 858 } 859 extern( System ) nothrow { 860 alias da_glFenceSyncAPPLE = GLsync function( GLenum, GLbitfield ); 861 alias da_glIsSyncAPPLE = GLboolean function( GLsync ); 862 alias da_glDeleteSyncAPPLE = void function( GLsync ); 863 alias da_glClientWaitSyncAPPLE = GLenum function( GLsync, GLbitfield, GLuint64 ); 864 alias da_glWaitSyncAPPLE = void function( GLsync, GLbitfield, GLuint64 ); 865 alias da_glGetInteger64vAPPLE = void function( GLenum, GLint64* ); 866 alias da_glGetSyncivAPPLE = void function( GLsync, GLenum, GLsizei, GLsizei*, GLint* ); 867 } 868 __gshared { 869 da_glFenceSyncAPPLE glFenceSyncAPPLE; 870 da_glIsSyncAPPLE glIsSyncAPPLE; 871 da_glDeleteSyncAPPLE glDeleteSyncAPPLE; 872 da_glClientWaitSyncAPPLE glClientWaitSyncAPPLE; 873 da_glWaitSyncAPPLE glWaitSyncAPPLE; 874 da_glGetInteger64vAPPLE glGetInteger64vAPPLE; 875 da_glGetSyncivAPPLE glGetSyncivAPPLE; 876 } 877 private void load_GL_APPLE_sync() { 878 try { 879 bindGLFunc( cast( void** )&glFenceSyncAPPLE, "glFenceSyncAPPLE" ); 880 bindGLFunc( cast( void** )&glIsSyncAPPLE, "glIsSyncAPPLE" ); 881 bindGLFunc( cast( void** )&glDeleteSyncAPPLE, "glDeleteSyncAPPLE" ); 882 bindGLFunc( cast( void** )&glClientWaitSyncAPPLE, "glClientWaitSyncAPPLE" ); 883 bindGLFunc( cast( void** )&glWaitSyncAPPLE, "glWaitSyncAPPLE" ); 884 bindGLFunc( cast( void** )&glGetInteger64vAPPLE, "glGetInteger64vAPPLE" ); 885 bindGLFunc( cast( void** )&glGetSyncivAPPLE, "glGetSyncivAPPLE" ); 886 887 _GL_APPLE_sync = true; 888 } catch( Exception e ) { 889 _GL_APPLE_sync = false; 890 } 891 } 892 893 private __gshared bool _GL_APPLE_texture_format_BGRA8888; 894 bool GL_APPLE_texture_format_BGRA8888() @property { return _GL_APPLE_texture_format_BGRA8888; } 895 enum : uint { 896 GL_BGRA_EXT = 0x80E1, 897 GL_BGRA8_EXT = 0x93A1, 898 } 899 900 private __gshared bool _GL_APPLE_texture_max_level; 901 bool GL_APPLE_texture_max_level() @property { return _GL_APPLE_texture_max_level; } 902 enum : uint { 903 GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D, 904 } 905 906 private __gshared bool _GL_ARM_mali_program_binary; 907 bool GL_ARM_mali_program_binary() @property { return _GL_ARM_mali_program_binary; } 908 enum : uint { 909 GL_MALI_PROGRAM_BINARY_ARM = 0x8F61, 910 } 911 912 private __gshared bool _GL_ARM_mali_shader_binary; 913 bool GL_ARM_mali_shader_binary() @property { return _GL_ARM_mali_shader_binary; } 914 enum : uint { 915 GL_MALI_SHADER_BINARY_ARM = 0x8F60, 916 } 917 918 private __gshared bool _GL_ARM_rgba8; 919 bool GL_ARM_rgba8() @property { return _GL_ARM_rgba8; } 920 921 private __gshared bool _GL_ARM_shader_framebuffer_fetch; 922 bool GL_ARM_shader_framebuffer_fetch() @property { return _GL_ARM_shader_framebuffer_fetch; } 923 enum : uint { 924 GL_FETCH_PER_SAMPLE_ARM = 0x8F65, 925 GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66, 926 } 927 928 private __gshared bool _GL_ARM_shader_framebuffer_fetch_depth_stencil; 929 bool GL_ARM_shader_framebuffer_fetch_depth_stencil() @property { return _GL_ARM_shader_framebuffer_fetch_depth_stencil; } 930 931 private __gshared bool _GL_DMP_shader_binary; 932 bool GL_DMP_shader_binary() @property { return _GL_DMP_shader_binary; } 933 enum : uint { 934 GL_SHADER_BINARY_DMP = 0x9250, 935 } 936 937 private __gshared bool _GL_EXT_blend_minmax; 938 bool GL_EXT_blend_minmax() @property { return _GL_EXT_blend_minmax; } 939 enum : uint { 940 GL_MIN_EXT = 0x8007, 941 GL_MAX_EXT = 0x8008, 942 } 943 944 private __gshared bool _GL_EXT_color_buffer_half_float; 945 bool GL_EXT_color_buffer_half_float() @property { return _GL_EXT_color_buffer_half_float; } 946 enum : uint { 947 GL_RGBA16F_EXT = 0x881A, 948 GL_RGB16F_EXT = 0x881B, 949 GL_RG16F_EXT = 0x822F, 950 GL_R16F_EXT = 0x822D, 951 GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211, 952 GL_UNSIGNED_NORMALIZED_EXT = 0x8C17, 953 } 954 955 private __gshared bool _GL_EXT_debug_label; 956 bool GL_EXT_debug_label() @property { return _GL_EXT_debug_label; } 957 enum : uint { 958 GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F, 959 GL_PROGRAM_OBJECT_EXT = 0x8B40, 960 GL_SHADER_OBJECT_EXT = 0x8B48, 961 GL_BUFFER_OBJECT_EXT = 0x9151, 962 GL_QUERY_OBJECT_EXT = 0x9153, 963 GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154, 964 GL_TRANSFORM_FEEDBACK = 0x8E22, 965 } 966 extern( System ) nothrow { 967 alias da_glLabelObjectEXT = void function( GLenum, GLuint, GLsizei, const( GLchar )* ); 968 alias da_glGetObjectLabelEXT = void function( GLenum, GLuint, GLsizei, GLsizei*, GLchar* ); 969 } 970 __gshared { 971 da_glLabelObjectEXT glLabelObjectEXT; 972 da_glGetObjectLabelEXT glGetObjectLabelEXT; 973 } 974 private void load_GL_EXT_debug_label() { 975 try { 976 bindGLFunc( cast( void** )&glLabelObjectEXT, "glLabelObjectEXT" ); 977 bindGLFunc( cast( void** )&glGetObjectLabelEXT, "glGetObjectLabelEXT" ); 978 979 _GL_EXT_debug_label = true; 980 } catch( Exception e ) { 981 _GL_EXT_debug_label = false; 982 } 983 } 984 985 private __gshared bool _GL_EXT_debug_marker; 986 bool GL_EXT_debug_marker() @property { return _GL_EXT_debug_marker; } 987 extern( System ) nothrow { 988 alias da_glInsertEventMarkerEXT = void function( GLsizei, const( GLchar )* ); 989 alias da_glPushGroupMarkerEXT = void function( GLsizei, const( GLchar )* ); 990 alias da_glPopGroupMarkerEXT = void function( ); 991 } 992 __gshared { 993 da_glInsertEventMarkerEXT glInsertEventMarkerEXT; 994 da_glPushGroupMarkerEXT glPushGroupMarkerEXT; 995 da_glPopGroupMarkerEXT glPopGroupMarkerEXT; 996 } 997 private void load_GL_EXT_debug_marker() { 998 try { 999 bindGLFunc( cast( void** )&glInsertEventMarkerEXT, "glInsertEventMarkerEXT" ); 1000 bindGLFunc( cast( void** )&glPushGroupMarkerEXT, "glPushGroupMarkerEXT" ); 1001 bindGLFunc( cast( void** )&glPopGroupMarkerEXT, "glPopGroupMarkerEXT" ); 1002 1003 _GL_EXT_debug_marker = true; 1004 } catch( Exception e ) { 1005 _GL_EXT_debug_marker = false; 1006 } 1007 } 1008 1009 private __gshared bool _GL_EXT_discard_framebuffer; 1010 bool GL_EXT_discard_framebuffer() @property { return _GL_EXT_discard_framebuffer; } 1011 enum : uint { 1012 GL_COLOR_EXT = 0x1800, 1013 GL_DEPTH_EXT = 0x1801, 1014 GL_STENCIL_EXT = 0x1802, 1015 } 1016 extern( System ) nothrow { 1017 alias da_glDiscardFramebufferEXT = void function( GLenum, GLsizei, const( GLenum )* ); 1018 } 1019 __gshared { 1020 da_glDiscardFramebufferEXT glDiscardFramebufferEXT; 1021 } 1022 private void load_GL_EXT_discard_framebuffer() { 1023 try { 1024 bindGLFunc( cast( void** )&glDiscardFramebufferEXT, "glDiscardFramebufferEXT" ); 1025 1026 _GL_EXT_discard_framebuffer = true; 1027 } catch( Exception e ) { 1028 _GL_EXT_discard_framebuffer = false; 1029 } 1030 } 1031 1032 private __gshared bool _GL_EXT_disjoint_timer_query; 1033 bool GL_EXT_disjoint_timer_query() @property { return _GL_EXT_disjoint_timer_query; } 1034 enum : uint { 1035 GL_QUERY_COUNTER_BITS_EXT = 0x8864, 1036 GL_CURRENT_QUERY_EXT = 0x8865, 1037 GL_QUERY_RESULT_EXT = 0x8866, 1038 GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867, 1039 GL_TIME_ELAPSED_EXT = 0x88BF, 1040 GL_TIMESTAMP_EXT = 0x8E28, 1041 GL_GPU_DISJOINT_EXT = 0x8FBB, 1042 } 1043 extern( System ) nothrow { 1044 alias da_glGenQueriesEXT = void function( GLsizei, GLuint* ); 1045 alias da_glDeleteQueriesEXT = void function( GLsizei, const( GLuint )* ); 1046 alias da_glIsQueryEXT = GLboolean function( GLuint ); 1047 alias da_glBeginQueryEXT = void function( GLenum, GLuint ); 1048 alias da_glEndQueryEXT = void function( GLenum ); 1049 alias da_glQueryCounterEXT = void function( GLuint, GLenum ); 1050 alias da_glGetQueryivEXT = void function( GLenum, GLenum, GLint* ); 1051 alias da_glGetQueryObjectivEXT = void function( GLuint, GLenum, GLint* ); 1052 alias da_glGetQueryObjectuivEXT = void function( GLuint, GLenum, GLuint* ); 1053 alias da_glGetQueryObjecti64vEXT = void function( GLuint, GLenum, GLint64* ); 1054 alias da_glGetQueryObjectui64vEXT = void function( GLuint, GLenum, GLuint64* ); 1055 } 1056 __gshared { 1057 da_glGenQueriesEXT glGenQueriesEXT; 1058 da_glDeleteQueriesEXT glDeleteQueriesEXT; 1059 da_glIsQueryEXT glIsQueryEXT; 1060 da_glBeginQueryEXT glBeginQueryEXT; 1061 da_glEndQueryEXT glEndQueryEXT; 1062 da_glQueryCounterEXT glQueryCounterEXT; 1063 da_glGetQueryivEXT glGetQueryivEXT; 1064 da_glGetQueryObjectivEXT glGetQueryObjectivEXT; 1065 da_glGetQueryObjectuivEXT glGetQueryObjectuivEXT; 1066 da_glGetQueryObjecti64vEXT glGetQueryObjecti64vEXT; 1067 da_glGetQueryObjectui64vEXT glGetQueryObjectui64vEXT; 1068 } 1069 private void load_GL_EXT_disjoint_timer_query() { 1070 try { 1071 bindGLFunc( cast( void** )&glGenQueriesEXT, "glGenQueriesEXT" ); 1072 bindGLFunc( cast( void** )&glDeleteQueriesEXT, "glDeleteQueriesEXT" ); 1073 bindGLFunc( cast( void** )&glIsQueryEXT, "glIsQueryEXT" ); 1074 bindGLFunc( cast( void** )&glBeginQueryEXT, "glBeginQueryEXT" ); 1075 bindGLFunc( cast( void** )&glEndQueryEXT, "glEndQueryEXT" ); 1076 bindGLFunc( cast( void** )&glQueryCounterEXT, "glQueryCounterEXT" ); 1077 bindGLFunc( cast( void** )&glGetQueryivEXT, "glGetQueryivEXT" ); 1078 bindGLFunc( cast( void** )&glGetQueryObjectivEXT, "glGetQueryObjectivEXT" ); 1079 bindGLFunc( cast( void** )&glGetQueryObjectuivEXT, "glGetQueryObjectuivEXT" ); 1080 bindGLFunc( cast( void** )&glGetQueryObjecti64vEXT, "glGetQueryObjecti64vEXT" ); 1081 bindGLFunc( cast( void** )&glGetQueryObjectui64vEXT, "glGetQueryObjectui64vEXT" ); 1082 1083 _GL_EXT_disjoint_timer_query = true; 1084 } catch( Exception e ) { 1085 _GL_EXT_disjoint_timer_query = false; 1086 } 1087 } 1088 1089 private __gshared bool _GL_EXT_draw_buffers; 1090 bool GL_EXT_draw_buffers() @property { return _GL_EXT_draw_buffers; } 1091 enum : uint { 1092 GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF, 1093 GL_MAX_DRAW_BUFFERS_EXT = 0x8824, 1094 GL_DRAW_BUFFER0_EXT = 0x8825, 1095 GL_DRAW_BUFFER1_EXT = 0x8826, 1096 GL_DRAW_BUFFER2_EXT = 0x8827, 1097 GL_DRAW_BUFFER3_EXT = 0x8828, 1098 GL_DRAW_BUFFER4_EXT = 0x8829, 1099 GL_DRAW_BUFFER5_EXT = 0x882A, 1100 GL_DRAW_BUFFER6_EXT = 0x882B, 1101 GL_DRAW_BUFFER7_EXT = 0x882C, 1102 GL_DRAW_BUFFER8_EXT = 0x882D, 1103 GL_DRAW_BUFFER9_EXT = 0x882E, 1104 GL_DRAW_BUFFER10_EXT = 0x882F, 1105 GL_DRAW_BUFFER11_EXT = 0x8830, 1106 GL_DRAW_BUFFER12_EXT = 0x8831, 1107 GL_DRAW_BUFFER13_EXT = 0x8832, 1108 GL_DRAW_BUFFER14_EXT = 0x8833, 1109 GL_DRAW_BUFFER15_EXT = 0x8834, 1110 GL_COLOR_ATTACHMENT0_EXT = 0x8CE0, 1111 GL_COLOR_ATTACHMENT1_EXT = 0x8CE1, 1112 GL_COLOR_ATTACHMENT2_EXT = 0x8CE2, 1113 GL_COLOR_ATTACHMENT3_EXT = 0x8CE3, 1114 GL_COLOR_ATTACHMENT4_EXT = 0x8CE4, 1115 GL_COLOR_ATTACHMENT5_EXT = 0x8CE5, 1116 GL_COLOR_ATTACHMENT6_EXT = 0x8CE6, 1117 GL_COLOR_ATTACHMENT7_EXT = 0x8CE7, 1118 GL_COLOR_ATTACHMENT8_EXT = 0x8CE8, 1119 GL_COLOR_ATTACHMENT9_EXT = 0x8CE9, 1120 GL_COLOR_ATTACHMENT10_EXT = 0x8CEA, 1121 GL_COLOR_ATTACHMENT11_EXT = 0x8CEB, 1122 GL_COLOR_ATTACHMENT12_EXT = 0x8CEC, 1123 GL_COLOR_ATTACHMENT13_EXT = 0x8CED, 1124 GL_COLOR_ATTACHMENT14_EXT = 0x8CEE, 1125 GL_COLOR_ATTACHMENT15_EXT = 0x8CEF, 1126 } 1127 extern( System ) nothrow { 1128 alias da_glDrawBuffersEXT = void function( GLsizei, const( GLenum )* ); 1129 } 1130 __gshared { 1131 da_glDrawBuffersEXT glDrawBuffersEXT; 1132 } 1133 private void load_GL_EXT_draw_buffers() { 1134 try { 1135 bindGLFunc( cast( void** )&glDrawBuffersEXT, "glDrawBuffersEXT" ); 1136 1137 _GL_EXT_draw_buffers = true; 1138 } catch( Exception e ) { 1139 _GL_EXT_draw_buffers = false; 1140 } 1141 } 1142 1143 private __gshared bool _GL_EXT_draw_instanced; 1144 bool GL_EXT_draw_instanced() @property { return _GL_EXT_draw_instanced; } 1145 extern( System ) nothrow { 1146 alias da_glDrawArraysInstancedEXT = void function( GLenum, GLint, GLsizei, GLsizei ); 1147 alias da_glDrawElementsInstancedEXT = void function( GLenum, GLsizei, GLenum, const( void )*, GLsizei ); 1148 } 1149 __gshared { 1150 da_glDrawArraysInstancedEXT glDrawArraysInstancedEXT; 1151 da_glDrawElementsInstancedEXT glDrawElementsInstancedEXT; 1152 } 1153 private void load_GL_EXT_draw_instanced() { 1154 try { 1155 bindGLFunc( cast( void** )&glDrawArraysInstancedEXT, "glDrawArraysInstancedEXT" ); 1156 bindGLFunc( cast( void** )&glDrawElementsInstancedEXT, "glDrawElementsInstancedEXT" ); 1157 1158 _GL_EXT_draw_instanced = true; 1159 } catch( Exception e ) { 1160 _GL_EXT_draw_instanced = false; 1161 } 1162 } 1163 1164 private __gshared bool _GL_EXT_instanced_arrays; 1165 bool GL_EXT_instanced_arrays() @property { return _GL_EXT_instanced_arrays; } 1166 enum : uint { 1167 GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE, 1168 } 1169 extern( System ) nothrow { 1170 alias da_glVertexAttribDivisorEXT = void function( GLuint, GLuint ); 1171 } 1172 __gshared { 1173 da_glVertexAttribDivisorEXT glVertexAttribDivisorEXT; 1174 } 1175 private void load_GL_EXT_instanced_arrays() { 1176 try { 1177 bindGLFunc( cast( void** )&glVertexAttribDivisorEXT, "glVertexAttribDivisorEXT" ); 1178 1179 _GL_EXT_instanced_arrays = true; 1180 } catch( Exception e ) { 1181 _GL_EXT_instanced_arrays = false; 1182 } 1183 } 1184 1185 private __gshared bool _GL_EXT_map_buffer_range; 1186 bool GL_EXT_map_buffer_range() @property { return _GL_EXT_map_buffer_range; } 1187 enum : uint { 1188 GL_MAP_READ_BIT_EXT = 0x0001, 1189 GL_MAP_WRITE_BIT_EXT = 0x0002, 1190 GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004, 1191 GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008, 1192 GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010, 1193 GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020, 1194 } 1195 extern( System ) nothrow { 1196 alias da_glMapBufferRangeEXT = void* function( GLenum, GLintptr, GLsizeiptr, GLbitfield ); 1197 alias da_glFlushMappedBufferRangeEXT = void function( GLenum, GLintptr, GLsizeiptr ); 1198 } 1199 __gshared { 1200 da_glMapBufferRangeEXT glMapBufferRangeEXT; 1201 da_glFlushMappedBufferRangeEXT glFlushMappedBufferRangeEXT; 1202 } 1203 private void load_GL_EXT_map_buffer_range() { 1204 try { 1205 bindGLFunc( cast( void** )&glMapBufferRangeEXT, "glMapBufferRangeEXT" ); 1206 bindGLFunc( cast( void** )&glFlushMappedBufferRangeEXT, "glFlushMappedBufferRangeEXT" ); 1207 1208 _GL_EXT_map_buffer_range = true; 1209 } catch( Exception e ) { 1210 _GL_EXT_map_buffer_range = false; 1211 } 1212 } 1213 1214 private __gshared bool _GL_EXT_multi_draw_arrays; 1215 bool GL_EXT_multi_draw_arrays() @property { return _GL_EXT_multi_draw_arrays; } 1216 extern( System ) nothrow { 1217 alias da_glMultiDrawArraysEXT = void function( GLenum, const( GLint )*, const( GLsizei )*, GLsizei ); 1218 alias da_glMultiDrawElementsEXT = void function( GLenum, const( GLsizei )*, GLenum, const( const( void )* )*, GLsizei ); 1219 } 1220 __gshared { 1221 da_glMultiDrawArraysEXT glMultiDrawArraysEXT; 1222 da_glMultiDrawElementsEXT glMultiDrawElementsEXT; 1223 } 1224 private void load_GL_EXT_multi_draw_arrays() { 1225 try { 1226 bindGLFunc( cast( void** )&glMultiDrawArraysEXT, "glMultiDrawArraysEXT" ); 1227 bindGLFunc( cast( void** )&glMultiDrawElementsEXT, "glMultiDrawElementsEXT" ); 1228 1229 _GL_EXT_multi_draw_arrays = true; 1230 } catch( Exception e ) { 1231 _GL_EXT_multi_draw_arrays = false; 1232 } 1233 } 1234 1235 private __gshared bool _GL_EXT_multisampled_render_to_texture; 1236 bool GL_EXT_multisampled_render_to_texture() @property { return _GL_EXT_multisampled_render_to_texture; } 1237 enum : uint { 1238 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C, 1239 GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB, 1240 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56, 1241 GL_MAX_SAMPLES_EXT = 0x8D57, 1242 } 1243 extern( System ) nothrow { 1244 alias da_glRenderbufferStorageMultisampleEXT = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); 1245 alias da_glFramebufferTexture2DMultisampleEXT = void function( GLenum, GLenum, GLenum, GLuint, GLint, GLsizei ); 1246 } 1247 __gshared { 1248 da_glRenderbufferStorageMultisampleEXT glRenderbufferStorageMultisampleEXT; 1249 da_glFramebufferTexture2DMultisampleEXT glFramebufferTexture2DMultisampleEXT; 1250 } 1251 private void load_GL_EXT_multisampled_render_to_texture() { 1252 try { 1253 bindGLFunc( cast( void** )&glRenderbufferStorageMultisampleEXT, "glRenderbufferStorageMultisampleEXT" ); 1254 bindGLFunc( cast( void** )&glFramebufferTexture2DMultisampleEXT, "glFramebufferTexture2DMultisampleEXT" ); 1255 1256 _GL_EXT_multisampled_render_to_texture = true; 1257 } catch( Exception e ) { 1258 _GL_EXT_multisampled_render_to_texture = false; 1259 } 1260 } 1261 1262 private __gshared bool _GL_EXT_multiview_draw_buffers; 1263 bool GL_EXT_multiview_draw_buffers() @property { return _GL_EXT_multiview_draw_buffers; } 1264 enum : uint { 1265 GL_COLOR_ATTACHMENT_EXT = 0x90F0, 1266 GL_MULTIVIEW_EXT = 0x90F1, 1267 GL_DRAW_BUFFER_EXT = 0x0C01, 1268 GL_READ_BUFFER_EXT = 0x0C02, 1269 GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2, 1270 } 1271 extern( System ) nothrow { 1272 alias da_glReadBufferIndexedEXT = void function( GLenum, GLint ); 1273 alias da_glDrawBuffersIndexedEXT = void function( GLint, const( GLenum )*, const( GLint )* ); 1274 alias da_glGetIntegeri_vEXT = void function( GLenum, GLuint, GLint* ); 1275 } 1276 __gshared { 1277 da_glReadBufferIndexedEXT glReadBufferIndexedEXT; 1278 da_glDrawBuffersIndexedEXT glDrawBuffersIndexedEXT; 1279 da_glGetIntegeri_vEXT glGetIntegeri_vEXT; 1280 } 1281 private void load_GL_EXT_multiview_draw_buffers() { 1282 try { 1283 bindGLFunc( cast( void** )&glReadBufferIndexedEXT, "glReadBufferIndexedEXT" ); 1284 bindGLFunc( cast( void** )&glDrawBuffersIndexedEXT, "glDrawBuffersIndexedEXT" ); 1285 bindGLFunc( cast( void** )&glGetIntegeri_vEXT, "glGetIntegeri_vEXT" ); 1286 1287 _GL_EXT_multiview_draw_buffers = true; 1288 } catch( Exception e ) { 1289 _GL_EXT_multiview_draw_buffers = false; 1290 } 1291 } 1292 1293 private __gshared bool _GL_EXT_occlusion_query_boolean; 1294 bool GL_EXT_occlusion_query_boolean() @property { return _GL_EXT_occlusion_query_boolean; } 1295 enum : uint { 1296 GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F, 1297 GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A, 1298 } 1299 1300 private __gshared bool _GL_EXT_pvrtc_sRGB; 1301 bool GL_EXT_pvrtc_sRGB() @property { return _GL_EXT_pvrtc_sRGB; } 1302 enum : uint { 1303 GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54, 1304 GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55, 1305 GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56, 1306 GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57, 1307 } 1308 1309 private __gshared bool _GL_EXT_read_format_bgra; 1310 bool GL_EXT_read_format_bgra() @property { return _GL_EXT_read_format_bgra; } 1311 enum : uint { 1312 GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365, 1313 GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366, 1314 } 1315 1316 private __gshared bool _GL_EXT_robustness; 1317 bool GL_EXT_robustness() @property { return _GL_EXT_robustness; } 1318 enum : uint { 1319 GL_GUILTY_CONTEXT_RESET_EXT = 0x8253, 1320 GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254, 1321 GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255, 1322 GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3, 1323 GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256, 1324 GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252, 1325 GL_NO_RESET_NOTIFICATION_EXT = 0x8261, 1326 } 1327 extern( System ) nothrow { 1328 alias da_glGetGraphicsResetStatusEXT = GLenum function( ); 1329 alias da_glReadnPixelsEXT = void function( GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, void* ); 1330 alias da_glGetnUniformfvEXT = void function( GLuint, GLint, GLsizei, GLfloat* ); 1331 alias da_glGetnUniformivEXT = void function( GLuint, GLint, GLsizei, GLint* ); 1332 } 1333 __gshared { 1334 da_glGetGraphicsResetStatusEXT glGetGraphicsResetStatusEXT; 1335 da_glReadnPixelsEXT glReadnPixelsEXT; 1336 da_glGetnUniformfvEXT glGetnUniformfvEXT; 1337 da_glGetnUniformivEXT glGetnUniformivEXT; 1338 } 1339 private void load_GL_EXT_robustness() { 1340 try { 1341 bindGLFunc( cast( void** )&glGetGraphicsResetStatusEXT, "glGetGraphicsResetStatusEXT" ); 1342 bindGLFunc( cast( void** )&glReadnPixelsEXT, "glReadnPixelsEXT" ); 1343 bindGLFunc( cast( void** )&glGetnUniformfvEXT, "glGetnUniformfvEXT" ); 1344 bindGLFunc( cast( void** )&glGetnUniformivEXT, "glGetnUniformivEXT" ); 1345 1346 _GL_EXT_robustness = true; 1347 } catch( Exception e ) { 1348 _GL_EXT_robustness = false; 1349 } 1350 } 1351 1352 private __gshared bool _GL_EXT_sRGB; 1353 bool GL_EXT_sRGB() @property { return _GL_EXT_sRGB; } 1354 enum : uint { 1355 GL_SRGB_EXT = 0x8C40, 1356 GL_SRGB_ALPHA_EXT = 0x8C42, 1357 GL_SRGB8_ALPHA8_EXT = 0x8C43, 1358 GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210, 1359 } 1360 1361 private __gshared bool _GL_EXT_sRGB_write_control; 1362 bool GL_EXT_sRGB_write_control() @property { return _GL_EXT_sRGB_write_control; } 1363 enum : uint { 1364 GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9, 1365 } 1366 1367 private __gshared bool _GL_EXT_separate_shader_objects; 1368 bool GL_EXT_separate_shader_objects() @property { return _GL_EXT_separate_shader_objects; } 1369 enum : uint { 1370 GL_ACTIVE_PROGRAM_EXT = 0x8259, 1371 GL_VERTEX_SHADER_BIT_EXT = 0x00000001, 1372 GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002, 1373 GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF, 1374 GL_PROGRAM_SEPARABLE_EXT = 0x8258, 1375 GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A, 1376 } 1377 extern( System ) nothrow { 1378 alias da_glActiveShaderProgramEXT = void function( GLuint, GLuint ); 1379 alias da_glBindProgramPipelineEXT = void function( GLuint ); 1380 alias da_glCreateShaderProgramvEXT = GLuint function( GLenum, GLsizei, const( GLchar )** ); 1381 alias da_glDeleteProgramPipelinesEXT = void function( GLsizei, const( GLuint )* ); 1382 alias da_glGenProgramPipelinesEXT = void function( GLsizei, GLuint* ); 1383 alias da_glGetProgramPipelineInfoLogEXT = void function( GLuint, GLsizei, GLsizei*, GLchar* ); 1384 alias da_glGetProgramPipelineivEXT = void function( GLuint, GLenum, GLint* ); 1385 alias da_glIsProgramPipelineEXT = GLboolean function( GLuint ); 1386 alias da_glProgramParameteriEXT = void function( GLuint, GLenum, GLint ); 1387 alias da_glProgramUniform1fEXT = void function( GLuint, GLint, GLfloat ); 1388 alias da_glProgramUniform1fvEXT = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); 1389 alias da_glProgramUniform1iEXT = void function( GLuint, GLint, GLint ); 1390 alias da_glProgramUniform1ivEXT = void function( GLuint, GLint, GLsizei, const( GLint )* ); 1391 alias da_glProgramUniform2fEXT = void function( GLuint, GLint, GLfloat, GLfloat ); 1392 alias da_glProgramUniform2fvEXT = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); 1393 alias da_glProgramUniform2iEXT = void function( GLuint, GLint, GLint, GLint ); 1394 alias da_glProgramUniform2ivEXT = void function( GLuint, GLint, GLsizei, const( GLint )* ); 1395 alias da_glProgramUniform3fEXT = void function( GLuint, GLint, GLfloat, GLfloat, GLfloat ); 1396 alias da_glProgramUniform3fvEXT = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); 1397 alias da_glProgramUniform3iEXT = void function( GLuint, GLint, GLint, GLint, GLint ); 1398 alias da_glProgramUniform3ivEXT = void function( GLuint, GLint, GLsizei, const( GLint )* ); 1399 alias da_glProgramUniform4fEXT = void function( GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat ); 1400 alias da_glProgramUniform4fvEXT = void function( GLuint, GLint, GLsizei, const( GLfloat )* ); 1401 alias da_glProgramUniform4iEXT = void function( GLuint, GLint, GLint, GLint, GLint, GLint ); 1402 alias da_glProgramUniform4ivEXT = void function( GLuint, GLint, GLsizei, const( GLint )* ); 1403 alias da_glProgramUniformMatrix2fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1404 alias da_glProgramUniformMatrix3fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1405 alias da_glProgramUniformMatrix4fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1406 alias da_glUseProgramStagesEXT = void function( GLuint, GLbitfield, GLuint ); 1407 alias da_glValidateProgramPipelineEXT = void function( GLuint ); 1408 alias da_glProgramUniform1uiEXT = void function( GLuint, GLint, GLuint ); 1409 alias da_glProgramUniform2uiEXT = void function( GLuint, GLint, GLuint, GLuint ); 1410 alias da_glProgramUniform3uiEXT = void function( GLuint, GLint, GLuint, GLuint, GLuint ); 1411 alias da_glProgramUniform4uiEXT = void function( GLuint, GLint, GLuint, GLuint, GLuint, GLuint ); 1412 alias da_glProgramUniform1uivEXT = void function( GLuint, GLint, GLsizei, const( GLuint )* ); 1413 alias da_glProgramUniform2uivEXT = void function( GLuint, GLint, GLsizei, const( GLuint )* ); 1414 alias da_glProgramUniform3uivEXT = void function( GLuint, GLint, GLsizei, const( GLuint )* ); 1415 alias da_glProgramUniform4uivEXT = void function( GLuint, GLint, GLsizei, const( GLuint )* ); 1416 alias da_glProgramUniformMatrix2x3fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1417 alias da_glProgramUniformMatrix3x2fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1418 alias da_glProgramUniformMatrix2x4fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1419 alias da_glProgramUniformMatrix4x2fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1420 alias da_glProgramUniformMatrix3x4fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1421 alias da_glProgramUniformMatrix4x3fvEXT = void function( GLuint, GLint, GLsizei, GLboolean, const( GLfloat )* ); 1422 } 1423 __gshared { 1424 da_glActiveShaderProgramEXT glActiveShaderProgramEXT; 1425 da_glBindProgramPipelineEXT glBindProgramPipelineEXT; 1426 da_glCreateShaderProgramvEXT glCreateShaderProgramvEXT; 1427 da_glDeleteProgramPipelinesEXT glDeleteProgramPipelinesEXT; 1428 da_glGenProgramPipelinesEXT glGenProgramPipelinesEXT; 1429 da_glGetProgramPipelineInfoLogEXT glGetProgramPipelineInfoLogEXT; 1430 da_glGetProgramPipelineivEXT glGetProgramPipelineivEXT; 1431 da_glIsProgramPipelineEXT glIsProgramPipelineEXT; 1432 da_glProgramParameteriEXT glProgramParameteriEXT; 1433 da_glProgramUniform1fEXT glProgramUniform1fEXT; 1434 da_glProgramUniform1fvEXT glProgramUniform1fvEXT; 1435 da_glProgramUniform1iEXT glProgramUniform1iEXT; 1436 da_glProgramUniform1ivEXT glProgramUniform1ivEXT; 1437 da_glProgramUniform2fEXT glProgramUniform2fEXT; 1438 da_glProgramUniform2fvEXT glProgramUniform2fvEXT; 1439 da_glProgramUniform2iEXT glProgramUniform2iEXT; 1440 da_glProgramUniform2ivEXT glProgramUniform2ivEXT; 1441 da_glProgramUniform3fEXT glProgramUniform3fEXT; 1442 da_glProgramUniform3fvEXT glProgramUniform3fvEXT; 1443 da_glProgramUniform3iEXT glProgramUniform3iEXT; 1444 da_glProgramUniform3ivEXT glProgramUniform3ivEXT; 1445 da_glProgramUniform4fEXT glProgramUniform4fEXT; 1446 da_glProgramUniform4fvEXT glProgramUniform4fvEXT; 1447 da_glProgramUniform4iEXT glProgramUniform4iEXT; 1448 da_glProgramUniform4ivEXT glProgramUniform4ivEXT; 1449 da_glProgramUniformMatrix2fvEXT glProgramUniformMatrix2fvEXT; 1450 da_glProgramUniformMatrix3fvEXT glProgramUniformMatrix3fvEXT; 1451 da_glProgramUniformMatrix4fvEXT glProgramUniformMatrix4fvEXT; 1452 da_glUseProgramStagesEXT glUseProgramStagesEXT; 1453 da_glValidateProgramPipelineEXT glValidateProgramPipelineEXT; 1454 da_glProgramUniform1uiEXT glProgramUniform1uiEXT; 1455 da_glProgramUniform2uiEXT glProgramUniform2uiEXT; 1456 da_glProgramUniform3uiEXT glProgramUniform3uiEXT; 1457 da_glProgramUniform4uiEXT glProgramUniform4uiEXT; 1458 da_glProgramUniform1uivEXT glProgramUniform1uivEXT; 1459 da_glProgramUniform2uivEXT glProgramUniform2uivEXT; 1460 da_glProgramUniform3uivEXT glProgramUniform3uivEXT; 1461 da_glProgramUniform4uivEXT glProgramUniform4uivEXT; 1462 da_glProgramUniformMatrix2x3fvEXT glProgramUniformMatrix2x3fvEXT; 1463 da_glProgramUniformMatrix3x2fvEXT glProgramUniformMatrix3x2fvEXT; 1464 da_glProgramUniformMatrix2x4fvEXT glProgramUniformMatrix2x4fvEXT; 1465 da_glProgramUniformMatrix4x2fvEXT glProgramUniformMatrix4x2fvEXT; 1466 da_glProgramUniformMatrix3x4fvEXT glProgramUniformMatrix3x4fvEXT; 1467 da_glProgramUniformMatrix4x3fvEXT glProgramUniformMatrix4x3fvEXT; 1468 } 1469 private void load_GL_EXT_separate_shader_objects() { 1470 try { 1471 bindGLFunc( cast( void** )&glActiveShaderProgramEXT, "glActiveShaderProgramEXT" ); 1472 bindGLFunc( cast( void** )&glBindProgramPipelineEXT, "glBindProgramPipelineEXT" ); 1473 bindGLFunc( cast( void** )&glCreateShaderProgramvEXT, "glCreateShaderProgramvEXT" ); 1474 bindGLFunc( cast( void** )&glDeleteProgramPipelinesEXT, "glDeleteProgramPipelinesEXT" ); 1475 bindGLFunc( cast( void** )&glGenProgramPipelinesEXT, "glGenProgramPipelinesEXT" ); 1476 bindGLFunc( cast( void** )&glGetProgramPipelineInfoLogEXT, "glGetProgramPipelineInfoLogEXT" ); 1477 bindGLFunc( cast( void** )&glGetProgramPipelineivEXT, "glGetProgramPipelineivEXT" ); 1478 bindGLFunc( cast( void** )&glIsProgramPipelineEXT, "glIsProgramPipelineEXT" ); 1479 bindGLFunc( cast( void** )&glProgramParameteriEXT, "glProgramParameteriEXT" ); 1480 bindGLFunc( cast( void** )&glProgramUniform1fEXT, "glProgramUniform1fEXT" ); 1481 bindGLFunc( cast( void** )&glProgramUniform1fvEXT, "glProgramUniform1fvEXT" ); 1482 bindGLFunc( cast( void** )&glProgramUniform1iEXT, "glProgramUniform1iEXT" ); 1483 bindGLFunc( cast( void** )&glProgramUniform1ivEXT, "glProgramUniform1ivEXT" ); 1484 bindGLFunc( cast( void** )&glProgramUniform2fEXT, "glProgramUniform2fEXT" ); 1485 bindGLFunc( cast( void** )&glProgramUniform2fvEXT, "glProgramUniform2fvEXT" ); 1486 bindGLFunc( cast( void** )&glProgramUniform2iEXT, "glProgramUniform2iEXT" ); 1487 bindGLFunc( cast( void** )&glProgramUniform2ivEXT, "glProgramUniform2ivEXT" ); 1488 bindGLFunc( cast( void** )&glProgramUniform3fEXT, "glProgramUniform3fEXT" ); 1489 bindGLFunc( cast( void** )&glProgramUniform3fvEXT, "glProgramUniform3fvEXT" ); 1490 bindGLFunc( cast( void** )&glProgramUniform3iEXT, "glProgramUniform3iEXT" ); 1491 bindGLFunc( cast( void** )&glProgramUniform3ivEXT, "glProgramUniform3ivEXT" ); 1492 bindGLFunc( cast( void** )&glProgramUniform4fEXT, "glProgramUniform4fEXT" ); 1493 bindGLFunc( cast( void** )&glProgramUniform4fvEXT, "glProgramUniform4fvEXT" ); 1494 bindGLFunc( cast( void** )&glProgramUniform4iEXT, "glProgramUniform4iEXT" ); 1495 bindGLFunc( cast( void** )&glProgramUniform4ivEXT, "glProgramUniform4ivEXT" ); 1496 bindGLFunc( cast( void** )&glProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT" ); 1497 bindGLFunc( cast( void** )&glProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT" ); 1498 bindGLFunc( cast( void** )&glProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT" ); 1499 bindGLFunc( cast( void** )&glUseProgramStagesEXT, "glUseProgramStagesEXT" ); 1500 bindGLFunc( cast( void** )&glValidateProgramPipelineEXT, "glValidateProgramPipelineEXT" ); 1501 bindGLFunc( cast( void** )&glProgramUniform1uiEXT, "glProgramUniform1uiEXT" ); 1502 bindGLFunc( cast( void** )&glProgramUniform2uiEXT, "glProgramUniform2uiEXT" ); 1503 bindGLFunc( cast( void** )&glProgramUniform3uiEXT, "glProgramUniform3uiEXT" ); 1504 bindGLFunc( cast( void** )&glProgramUniform4uiEXT, "glProgramUniform4uiEXT" ); 1505 bindGLFunc( cast( void** )&glProgramUniform1uivEXT, "glProgramUniform1uivEXT" ); 1506 bindGLFunc( cast( void** )&glProgramUniform2uivEXT, "glProgramUniform2uivEXT" ); 1507 bindGLFunc( cast( void** )&glProgramUniform3uivEXT, "glProgramUniform3uivEXT" ); 1508 bindGLFunc( cast( void** )&glProgramUniform4uivEXT, "glProgramUniform4uivEXT" ); 1509 bindGLFunc( cast( void** )&glProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT" ); 1510 bindGLFunc( cast( void** )&glProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT" ); 1511 bindGLFunc( cast( void** )&glProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT" ); 1512 bindGLFunc( cast( void** )&glProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT" ); 1513 bindGLFunc( cast( void** )&glProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT" ); 1514 bindGLFunc( cast( void** )&glProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT" ); 1515 1516 _GL_EXT_separate_shader_objects = true; 1517 } catch( Exception e ) { 1518 _GL_EXT_separate_shader_objects = false; 1519 } 1520 } 1521 1522 private __gshared bool _GL_EXT_shader_framebuffer_fetch; 1523 bool GL_EXT_shader_framebuffer_fetch() @property { return _GL_EXT_shader_framebuffer_fetch; } 1524 enum : uint { 1525 GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52, 1526 } 1527 1528 private __gshared bool _GL_EXT_shader_integer_mix; 1529 bool GL_EXT_shader_integer_mix() @property { return _GL_EXT_shader_integer_mix; } 1530 1531 private __gshared bool _GL_EXT_shader_pixel_local_storage; 1532 bool GL_EXT_shader_pixel_local_storage() @property { return _GL_EXT_shader_pixel_local_storage; } 1533 enum : uint { 1534 GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63, 1535 GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67, 1536 GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64, 1537 } 1538 1539 private __gshared bool _GL_EXT_shader_texture_lod; 1540 bool GL_EXT_shader_texture_lod() @property { return _GL_EXT_shader_texture_lod; } 1541 1542 private __gshared bool _GL_EXT_shadow_samplers; 1543 bool GL_EXT_shadow_samplers() @property { return _GL_EXT_shadow_samplers; } 1544 enum : uint { 1545 GL_TEXTURE_COMPARE_MODE_EXT = 0x884C, 1546 GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D, 1547 GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E, 1548 GL_SAMPLER_2D_SHADOW_EXT = 0x8B62, 1549 } 1550 1551 private __gshared bool _GL_EXT_texture_compression_dxt1; 1552 bool GL_EXT_texture_compression_dxt1() @property { return _GL_EXT_texture_compression_dxt1; } 1553 enum : uint { 1554 GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0, 1555 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1, 1556 } 1557 1558 private __gshared bool _GL_EXT_texture_compression_s3tc; 1559 bool GL_EXT_texture_compression_s3tc() @property { return _GL_EXT_texture_compression_s3tc; } 1560 enum : uint { 1561 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2, 1562 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3, 1563 } 1564 1565 private __gshared bool _GL_EXT_texture_filter_anisotropic; 1566 bool GL_EXT_texture_filter_anisotropic() @property { return _GL_EXT_texture_filter_anisotropic; } 1567 enum : uint { 1568 GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE, 1569 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF, 1570 } 1571 1572 private __gshared bool _GL_EXT_texture_format_BGRA8888; 1573 bool GL_EXT_texture_format_BGRA8888() @property { return _GL_EXT_texture_format_BGRA8888; } 1574 1575 private __gshared bool _GL_EXT_texture_rg; 1576 bool GL_EXT_texture_rg() @property { return _GL_EXT_texture_rg; } 1577 enum : uint { 1578 GL_RED_EXT = 0x1903, 1579 GL_RG_EXT = 0x8227, 1580 GL_R8_EXT = 0x8229, 1581 GL_RG8_EXT = 0x822B, 1582 } 1583 1584 private __gshared bool _GL_EXT_texture_sRGB_decode; 1585 bool GL_EXT_texture_sRGB_decode() @property { return _GL_EXT_texture_sRGB_decode; } 1586 enum : uint { 1587 GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48, 1588 GL_DECODE_EXT = 0x8A49, 1589 GL_SKIP_DECODE_EXT = 0x8A4A, 1590 } 1591 1592 private __gshared bool _GL_EXT_texture_storage; 1593 bool GL_EXT_texture_storage() @property { return _GL_EXT_texture_storage; } 1594 enum : uint { 1595 GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F, 1596 GL_ALPHA8_EXT = 0x803C, 1597 GL_LUMINANCE8_EXT = 0x8040, 1598 GL_LUMINANCE8_ALPHA8_EXT = 0x8045, 1599 GL_RGBA32F_EXT = 0x8814, 1600 GL_RGB32F_EXT = 0x8815, 1601 GL_ALPHA32F_EXT = 0x8816, 1602 GL_LUMINANCE32F_EXT = 0x8818, 1603 GL_LUMINANCE_ALPHA32F_EXT = 0x8819, 1604 GL_ALPHA16F_EXT = 0x881C, 1605 GL_LUMINANCE16F_EXT = 0x881E, 1606 GL_LUMINANCE_ALPHA16F_EXT = 0x881F, 1607 GL_R32F_EXT = 0x822E, 1608 GL_RG32F_EXT = 0x8230, 1609 } 1610 extern( System ) nothrow { 1611 alias da_glTexStorage1DEXT = void function( GLenum, GLsizei, GLenum, GLsizei ); 1612 alias da_glTexStorage2DEXT = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); 1613 alias da_glTexStorage3DEXT = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei ); 1614 alias da_glTextureStorage1DEXT = void function( GLuint, GLenum, GLsizei, GLenum, GLsizei ); 1615 alias da_glTextureStorage2DEXT = void function( GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei ); 1616 alias da_glTextureStorage3DEXT = void function( GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei ); 1617 } 1618 __gshared { 1619 da_glTexStorage1DEXT glTexStorage1DEXT; 1620 da_glTexStorage2DEXT glTexStorage2DEXT; 1621 da_glTexStorage3DEXT glTexStorage3DEXT; 1622 da_glTextureStorage1DEXT glTextureStorage1DEXT; 1623 da_glTextureStorage2DEXT glTextureStorage2DEXT; 1624 da_glTextureStorage3DEXT glTextureStorage3DEXT; 1625 } 1626 private void load_GL_EXT_texture_storage() { 1627 try { 1628 bindGLFunc( cast( void** )&glTexStorage1DEXT, "glTexStorage1DEXT" ); 1629 bindGLFunc( cast( void** )&glTexStorage2DEXT, "glTexStorage2DEXT" ); 1630 bindGLFunc( cast( void** )&glTexStorage3DEXT, "glTexStorage3DEXT" ); 1631 bindGLFunc( cast( void** )&glTextureStorage1DEXT, "glTextureStorage1DEXT" ); 1632 bindGLFunc( cast( void** )&glTextureStorage2DEXT, "glTextureStorage2DEXT" ); 1633 bindGLFunc( cast( void** )&glTextureStorage3DEXT, "glTextureStorage3DEXT" ); 1634 1635 _GL_EXT_texture_storage = true; 1636 } catch( Exception e ) { 1637 _GL_EXT_texture_storage = false; 1638 } 1639 } 1640 1641 private __gshared bool _GL_EXT_texture_type_2_10_10_10_REV; 1642 bool GL_EXT_texture_type_2_10_10_10_REV() @property { return _GL_EXT_texture_type_2_10_10_10_REV; } 1643 enum : uint { 1644 GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368, 1645 } 1646 1647 private __gshared bool _GL_EXT_unpack_subimage; 1648 bool GL_EXT_unpack_subimage() @property { return _GL_EXT_unpack_subimage; } 1649 enum : uint { 1650 GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2, 1651 GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3, 1652 GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4, 1653 } 1654 1655 private __gshared bool _GL_FJ_shader_binary_GCCSO; 1656 bool GL_FJ_shader_binary_GCCSO() @property { return _GL_FJ_shader_binary_GCCSO; } 1657 enum : uint { 1658 GL_GCCSO_SHADER_BINARY_FJ = 0x9260, 1659 } 1660 1661 private __gshared bool _GL_IMG_multisampled_render_to_texture; 1662 bool GL_IMG_multisampled_render_to_texture() @property { return _GL_IMG_multisampled_render_to_texture; } 1663 enum : uint { 1664 GL_RENDERBUFFER_SAMPLES_IMG = 0x9133, 1665 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134, 1666 GL_MAX_SAMPLES_IMG = 0x9135, 1667 GL_TEXTURE_SAMPLES_IMG = 0x9136, 1668 } 1669 extern( System ) nothrow { 1670 alias da_glRenderbufferStorageMultisampleIMG = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); 1671 alias da_glFramebufferTexture2DMultisampleIMG = void function( GLenum, GLenum, GLenum, GLuint, GLint, GLsizei ); 1672 } 1673 __gshared { 1674 da_glRenderbufferStorageMultisampleIMG glRenderbufferStorageMultisampleIMG; 1675 da_glFramebufferTexture2DMultisampleIMG glFramebufferTexture2DMultisampleIMG; 1676 } 1677 private void load_GL_IMG_multisampled_render_to_texture() { 1678 try { 1679 bindGLFunc( cast( void** )&glRenderbufferStorageMultisampleIMG, "glRenderbufferStorageMultisampleIMG" ); 1680 bindGLFunc( cast( void** )&glFramebufferTexture2DMultisampleIMG, "glFramebufferTexture2DMultisampleIMG" ); 1681 1682 _GL_IMG_multisampled_render_to_texture = true; 1683 } catch( Exception e ) { 1684 _GL_IMG_multisampled_render_to_texture = false; 1685 } 1686 } 1687 1688 private __gshared bool _GL_IMG_program_binary; 1689 bool GL_IMG_program_binary() @property { return _GL_IMG_program_binary; } 1690 enum : uint { 1691 GL_SGX_PROGRAM_BINARY_IMG = 0x9130, 1692 } 1693 1694 private __gshared bool _GL_IMG_read_format; 1695 bool GL_IMG_read_format() @property { return _GL_IMG_read_format; } 1696 enum : uint { 1697 GL_BGRA_IMG = 0x80E1, 1698 GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365, 1699 } 1700 1701 private __gshared bool _GL_IMG_shader_binary; 1702 bool GL_IMG_shader_binary() @property { return _GL_IMG_shader_binary; } 1703 enum : uint { 1704 GL_SGX_BINARY_IMG = 0x8C0A, 1705 } 1706 1707 private __gshared bool _GL_IMG_texture_compression_pvrtc; 1708 bool GL_IMG_texture_compression_pvrtc() @property { return _GL_IMG_texture_compression_pvrtc; } 1709 enum : uint { 1710 GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00, 1711 GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01, 1712 GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02, 1713 GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03, 1714 } 1715 1716 private __gshared bool _GL_IMG_texture_compression_pvrtc2; 1717 bool GL_IMG_texture_compression_pvrtc2() @property { return _GL_IMG_texture_compression_pvrtc2; } 1718 enum : uint { 1719 GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137, 1720 GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138, 1721 } 1722 1723 private __gshared bool _GL_INTEL_performance_query; 1724 bool GL_INTEL_performance_query() @property { return _GL_INTEL_performance_query; } 1725 enum : uint { 1726 GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000, 1727 GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001, 1728 GL_PERFQUERY_WAIT_INTEL = 0x83FB, 1729 GL_PERFQUERY_FLUSH_INTEL = 0x83FA, 1730 GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9, 1731 GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0, 1732 GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1, 1733 GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2, 1734 GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3, 1735 GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4, 1736 GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5, 1737 GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8, 1738 GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9, 1739 GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA, 1740 GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB, 1741 GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC, 1742 GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD, 1743 GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE, 1744 GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF, 1745 GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500, 1746 } 1747 extern( System ) nothrow { 1748 alias da_glBeginPerfQueryINTEL = void function( GLuint ); 1749 alias da_glCreatePerfQueryINTEL = void function( GLuint, GLuint* ); 1750 alias da_glDeletePerfQueryINTEL = void function( GLuint ); 1751 alias da_glEndPerfQueryINTEL = void function( GLuint ); 1752 alias da_glGetFirstPerfQueryIdINTEL = void function( GLuint* ); 1753 alias da_glGetNextPerfQueryIdINTEL = void function( GLuint, GLuint* ); 1754 alias da_glGetPerfCounterInfoINTEL = void function( GLuint, GLuint, GLuint, GLchar*, GLuint, GLchar*, GLuint*, GLuint*, GLuint*, GLuint*, GLuint64* ); 1755 alias da_glGetPerfQueryDataINTEL = void function( GLuint, GLuint, GLsizei, GLvoid*, GLuint* ); 1756 alias da_glGetPerfQueryIdByNameINTEL = void function( GLchar*, GLuint* ); 1757 alias da_glGetPerfQueryInfoINTEL = void function( GLuint, GLuint, GLchar*, GLuint*, GLuint*, GLuint*, GLuint* ); 1758 } 1759 __gshared { 1760 da_glBeginPerfQueryINTEL glBeginPerfQueryINTEL; 1761 da_glCreatePerfQueryINTEL glCreatePerfQueryINTEL; 1762 da_glDeletePerfQueryINTEL glDeletePerfQueryINTEL; 1763 da_glEndPerfQueryINTEL glEndPerfQueryINTEL; 1764 da_glGetFirstPerfQueryIdINTEL glGetFirstPerfQueryIdINTEL; 1765 da_glGetNextPerfQueryIdINTEL glGetNextPerfQueryIdINTEL; 1766 da_glGetPerfCounterInfoINTEL glGetPerfCounterInfoINTEL; 1767 da_glGetPerfQueryDataINTEL glGetPerfQueryDataINTEL; 1768 da_glGetPerfQueryIdByNameINTEL glGetPerfQueryIdByNameINTEL; 1769 da_glGetPerfQueryInfoINTEL glGetPerfQueryInfoINTEL; 1770 } 1771 private void load_GL_INTEL_performance_query() { 1772 try { 1773 bindGLFunc( cast( void** )&glBeginPerfQueryINTEL, "glBeginPerfQueryINTEL" ); 1774 bindGLFunc( cast( void** )&glCreatePerfQueryINTEL, "glCreatePerfQueryINTEL" ); 1775 bindGLFunc( cast( void** )&glDeletePerfQueryINTEL, "glDeletePerfQueryINTEL" ); 1776 bindGLFunc( cast( void** )&glEndPerfQueryINTEL, "glEndPerfQueryINTEL" ); 1777 bindGLFunc( cast( void** )&glGetFirstPerfQueryIdINTEL, "glGetFirstPerfQueryIdINTEL" ); 1778 bindGLFunc( cast( void** )&glGetNextPerfQueryIdINTEL, "glGetNextPerfQueryIdINTEL" ); 1779 bindGLFunc( cast( void** )&glGetPerfCounterInfoINTEL, "glGetPerfCounterInfoINTEL" ); 1780 bindGLFunc( cast( void** )&glGetPerfQueryDataINTEL, "glGetPerfQueryDataINTEL" ); 1781 bindGLFunc( cast( void** )&glGetPerfQueryIdByNameINTEL, "glGetPerfQueryIdByNameINTEL" ); 1782 bindGLFunc( cast( void** )&glGetPerfQueryInfoINTEL, "glGetPerfQueryInfoINTEL" ); 1783 1784 _GL_INTEL_performance_query = true; 1785 } catch( Exception e ) { 1786 _GL_INTEL_performance_query = false; 1787 } 1788 } 1789 1790 private __gshared bool _GL_NV_blend_equation_advanced; 1791 bool GL_NV_blend_equation_advanced() @property { return _GL_NV_blend_equation_advanced; } 1792 enum : uint { 1793 GL_BLEND_OVERLAP_NV = 0x9281, 1794 GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280, 1795 GL_BLUE_NV = 0x1905, 1796 GL_COLORBURN_NV = 0x929A, 1797 GL_COLORDODGE_NV = 0x9299, 1798 GL_CONJOINT_NV = 0x9284, 1799 GL_CONTRAST_NV = 0x92A1, 1800 GL_DARKEN_NV = 0x9297, 1801 GL_DIFFERENCE_NV = 0x929E, 1802 GL_DISJOINT_NV = 0x9283, 1803 GL_DST_ATOP_NV = 0x928F, 1804 GL_DST_IN_NV = 0x928B, 1805 GL_DST_NV = 0x9287, 1806 GL_DST_OUT_NV = 0x928D, 1807 GL_DST_OVER_NV = 0x9289, 1808 GL_EXCLUSION_NV = 0x92A0, 1809 GL_GREEN_NV = 0x1904, 1810 GL_HARDLIGHT_NV = 0x929B, 1811 GL_HARDMIX_NV = 0x92A9, 1812 GL_HSL_COLOR_NV = 0x92AF, 1813 GL_HSL_HUE_NV = 0x92AD, 1814 GL_HSL_LUMINOSITY_NV = 0x92B0, 1815 GL_HSL_SATURATION_NV = 0x92AE, 1816 GL_INVERT_OVG_NV = 0x92B4, 1817 GL_INVERT_RGB_NV = 0x92A3, 1818 GL_LIGHTEN_NV = 0x9298, 1819 GL_LINEARBURN_NV = 0x92A5, 1820 GL_LINEARDODGE_NV = 0x92A4, 1821 GL_LINEARLIGHT_NV = 0x92A7, 1822 GL_MINUS_CLAMPED_NV = 0x92B3, 1823 GL_MINUS_NV = 0x929F, 1824 GL_MULTIPLY_NV = 0x9294, 1825 GL_OVERLAY_NV = 0x9296, 1826 GL_PINLIGHT_NV = 0x92A8, 1827 GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2, 1828 GL_PLUS_CLAMPED_NV = 0x92B1, 1829 GL_PLUS_DARKER_NV = 0x9292, 1830 GL_PLUS_NV = 0x9291, 1831 GL_RED_NV = 0x1903, 1832 GL_SCREEN_NV = 0x9295, 1833 GL_SOFTLIGHT_NV = 0x929C, 1834 GL_SRC_ATOP_NV = 0x928E, 1835 GL_SRC_IN_NV = 0x928A, 1836 GL_SRC_NV = 0x9286, 1837 GL_SRC_OUT_NV = 0x928C, 1838 GL_SRC_OVER_NV = 0x9288, 1839 GL_UNCORRELATED_NV = 0x9282, 1840 GL_VIVIDLIGHT_NV = 0x92A6, 1841 GL_XOR_NV = 0x1506, 1842 } 1843 extern( System ) nothrow { 1844 alias da_glBlendParameteriNV = void function( GLenum, GLint ); 1845 alias da_glBlendBarrierNV = void function( ); 1846 } 1847 __gshared { 1848 da_glBlendParameteriNV glBlendParameteriNV; 1849 da_glBlendBarrierNV glBlendBarrierNV; 1850 } 1851 private void load_GL_NV_blend_equation_advanced() { 1852 try { 1853 bindGLFunc( cast( void** )&glBlendParameteriNV, "glBlendParameteriNV" ); 1854 bindGLFunc( cast( void** )&glBlendBarrierNV, "glBlendBarrierNV" ); 1855 1856 _GL_NV_blend_equation_advanced = true; 1857 } catch( Exception e ) { 1858 _GL_NV_blend_equation_advanced = false; 1859 } 1860 } 1861 1862 private __gshared bool _GL_NV_blend_equation_advanced_coherent; 1863 bool GL_NV_blend_equation_advanced_coherent() @property { return _GL_NV_blend_equation_advanced_coherent; } 1864 enum : uint { 1865 GL_BLEND_ADVANCED_COHERENT_NV = 0x9285, 1866 } 1867 1868 private __gshared bool _GL_NV_copy_buffer; 1869 bool GL_NV_copy_buffer() @property { return _GL_NV_copy_buffer; } 1870 enum : uint { 1871 GL_COPY_READ_BUFFER_NV = 0x8F36, 1872 GL_COPY_WRITE_BUFFER_NV = 0x8F37, 1873 } 1874 extern( System ) nothrow { 1875 alias da_glCopyBufferSubDataNV = void function( GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr ); 1876 } 1877 __gshared { 1878 da_glCopyBufferSubDataNV glCopyBufferSubDataNV; 1879 } 1880 private void load_GL_NV_copy_buffer() { 1881 try { 1882 bindGLFunc( cast( void** )&glCopyBufferSubDataNV, "glCopyBufferSubDataNV" ); 1883 1884 _GL_NV_copy_buffer = true; 1885 } catch( Exception e ) { 1886 _GL_NV_copy_buffer = false; 1887 } 1888 } 1889 1890 private __gshared bool _GL_NV_coverage_sample; 1891 bool GL_NV_coverage_sample() @property { return _GL_NV_coverage_sample; } 1892 enum : uint { 1893 GL_COVERAGE_COMPONENT_NV = 0x8ED0, 1894 GL_COVERAGE_COMPONENT4_NV = 0x8ED1, 1895 GL_COVERAGE_ATTACHMENT_NV = 0x8ED2, 1896 GL_COVERAGE_BUFFERS_NV = 0x8ED3, 1897 GL_COVERAGE_SAMPLES_NV = 0x8ED4, 1898 GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5, 1899 GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6, 1900 GL_COVERAGE_AUTOMATIC_NV = 0x8ED7, 1901 GL_COVERAGE_BUFFER_BIT_NV = 0x00008000, 1902 } 1903 extern( System ) nothrow { 1904 alias da_glCoverageMaskNV = void function( GLboolean ); 1905 alias da_glCoverageOperationNV = void function( GLenum ); 1906 } 1907 __gshared { 1908 da_glCoverageMaskNV glCoverageMaskNV; 1909 da_glCoverageOperationNV glCoverageOperationNV; 1910 } 1911 private void load_GL_NV_coverage_sample() { 1912 try { 1913 bindGLFunc( cast( void** )&glCoverageMaskNV, "glCoverageMaskNV" ); 1914 bindGLFunc( cast( void** )&glCoverageOperationNV, "glCoverageOperationNV" ); 1915 1916 _GL_NV_coverage_sample = true; 1917 } catch( Exception e ) { 1918 _GL_NV_coverage_sample = false; 1919 } 1920 } 1921 1922 private __gshared bool _GL_NV_depth_nonlinear; 1923 bool GL_NV_depth_nonlinear() @property { return _GL_NV_depth_nonlinear; } 1924 enum : uint { 1925 GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C, 1926 } 1927 1928 private __gshared bool _GL_NV_draw_buffers; 1929 bool GL_NV_draw_buffers() @property { return _GL_NV_draw_buffers; } 1930 enum : uint { 1931 GL_MAX_DRAW_BUFFERS_NV = 0x8824, 1932 GL_DRAW_BUFFER0_NV = 0x8825, 1933 GL_DRAW_BUFFER1_NV = 0x8826, 1934 GL_DRAW_BUFFER2_NV = 0x8827, 1935 GL_DRAW_BUFFER3_NV = 0x8828, 1936 GL_DRAW_BUFFER4_NV = 0x8829, 1937 GL_DRAW_BUFFER5_NV = 0x882A, 1938 GL_DRAW_BUFFER6_NV = 0x882B, 1939 GL_DRAW_BUFFER7_NV = 0x882C, 1940 GL_DRAW_BUFFER8_NV = 0x882D, 1941 GL_DRAW_BUFFER9_NV = 0x882E, 1942 GL_DRAW_BUFFER10_NV = 0x882F, 1943 GL_DRAW_BUFFER11_NV = 0x8830, 1944 GL_DRAW_BUFFER12_NV = 0x8831, 1945 GL_DRAW_BUFFER13_NV = 0x8832, 1946 GL_DRAW_BUFFER14_NV = 0x8833, 1947 GL_DRAW_BUFFER15_NV = 0x8834, 1948 GL_COLOR_ATTACHMENT0_NV = 0x8CE0, 1949 GL_COLOR_ATTACHMENT1_NV = 0x8CE1, 1950 GL_COLOR_ATTACHMENT2_NV = 0x8CE2, 1951 GL_COLOR_ATTACHMENT3_NV = 0x8CE3, 1952 GL_COLOR_ATTACHMENT4_NV = 0x8CE4, 1953 GL_COLOR_ATTACHMENT5_NV = 0x8CE5, 1954 GL_COLOR_ATTACHMENT6_NV = 0x8CE6, 1955 GL_COLOR_ATTACHMENT7_NV = 0x8CE7, 1956 GL_COLOR_ATTACHMENT8_NV = 0x8CE8, 1957 GL_COLOR_ATTACHMENT9_NV = 0x8CE9, 1958 GL_COLOR_ATTACHMENT10_NV = 0x8CEA, 1959 GL_COLOR_ATTACHMENT11_NV = 0x8CEB, 1960 GL_COLOR_ATTACHMENT12_NV = 0x8CEC, 1961 GL_COLOR_ATTACHMENT13_NV = 0x8CED, 1962 GL_COLOR_ATTACHMENT14_NV = 0x8CEE, 1963 GL_COLOR_ATTACHMENT15_NV = 0x8CEF, 1964 } 1965 extern( System ) nothrow { 1966 alias da_glDrawBuffersNV = void function( GLsizei, const( GLenum )* ); 1967 } 1968 __gshared { 1969 da_glDrawBuffersNV glDrawBuffersNV; 1970 } 1971 private void load_GL_NV_draw_buffers() { 1972 try { 1973 bindGLFunc( cast( void** )&glDrawBuffersNV, "glDrawBuffersNV" ); 1974 1975 _GL_NV_draw_buffers = true; 1976 } catch( Exception e ) { 1977 _GL_NV_draw_buffers = false; 1978 } 1979 } 1980 1981 private __gshared bool _GL_NV_draw_instanced; 1982 bool GL_NV_draw_instanced() @property { return _GL_NV_draw_instanced; } 1983 extern( System ) nothrow { 1984 alias da_glDrawArraysInstancedNV = void function( GLenum, GLint, GLsizei, GLsizei ); 1985 alias da_glDrawElementsInstancedNV = void function( GLenum, GLsizei, GLenum, const( void )*, GLsizei ); 1986 } 1987 __gshared { 1988 da_glDrawArraysInstancedNV glDrawArraysInstancedNV; 1989 da_glDrawElementsInstancedNV glDrawElementsInstancedNV; 1990 } 1991 private void load_GL_NV_draw_instanced() { 1992 try { 1993 bindGLFunc( cast( void** )&glDrawArraysInstancedNV, "glDrawArraysInstancedNV" ); 1994 bindGLFunc( cast( void** )&glDrawElementsInstancedNV, "glDrawElementsInstancedNV" ); 1995 1996 _GL_NV_draw_instanced = true; 1997 } catch( Exception e ) { 1998 _GL_NV_draw_instanced = false; 1999 } 2000 } 2001 2002 private __gshared bool _GL_NV_explicit_attrib_location; 2003 bool GL_NV_explicit_attrib_location() @property { return _GL_NV_explicit_attrib_location; } 2004 2005 private __gshared bool _GL_NV_fbo_color_attachments; 2006 bool GL_NV_fbo_color_attachments() @property { return _GL_NV_fbo_color_attachments; } 2007 enum : uint { 2008 GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF, 2009 } 2010 2011 private __gshared bool _GL_NV_fence; 2012 bool GL_NV_fence() @property { return _GL_NV_fence; } 2013 enum : uint { 2014 GL_ALL_COMPLETED_NV = 0x84F2, 2015 GL_FENCE_STATUS_NV = 0x84F3, 2016 GL_FENCE_CONDITION_NV = 0x84F4, 2017 } 2018 extern( System ) nothrow { 2019 alias da_glDeleteFencesNV = void function( GLsizei, const( GLuint )* ); 2020 alias da_glGenFencesNV = void function( GLsizei, GLuint* ); 2021 alias da_glIsFenceNV = GLboolean function( GLuint ); 2022 alias da_glTestFenceNV = GLboolean function( GLuint ); 2023 alias da_glGetFenceivNV = void function( GLuint, GLenum, GLint* ); 2024 alias da_glFinishFenceNV = void function( GLuint ); 2025 alias da_glSetFenceNV = void function( GLuint, GLenum ); 2026 } 2027 __gshared { 2028 da_glDeleteFencesNV glDeleteFencesNV; 2029 da_glGenFencesNV glGenFencesNV; 2030 da_glIsFenceNV glIsFenceNV; 2031 da_glTestFenceNV glTestFenceNV; 2032 da_glGetFenceivNV glGetFenceivNV; 2033 da_glFinishFenceNV glFinishFenceNV; 2034 da_glSetFenceNV glSetFenceNV; 2035 } 2036 private void load_GL_NV_fence() { 2037 try { 2038 bindGLFunc( cast( void** )&glDeleteFencesNV, "glDeleteFencesNV" ); 2039 bindGLFunc( cast( void** )&glGenFencesNV, "glGenFencesNV" ); 2040 bindGLFunc( cast( void** )&glIsFenceNV, "glIsFenceNV" ); 2041 bindGLFunc( cast( void** )&glTestFenceNV, "glTestFenceNV" ); 2042 bindGLFunc( cast( void** )&glGetFenceivNV, "glGetFenceivNV" ); 2043 bindGLFunc( cast( void** )&glFinishFenceNV, "glFinishFenceNV" ); 2044 bindGLFunc( cast( void** )&glSetFenceNV, "glSetFenceNV" ); 2045 2046 _GL_NV_fence = true; 2047 } catch( Exception e ) { 2048 _GL_NV_fence = false; 2049 } 2050 } 2051 2052 private __gshared bool _GL_NV_framebuffer_blit; 2053 bool GL_NV_framebuffer_blit() @property { return _GL_NV_framebuffer_blit; } 2054 enum : uint { 2055 GL_READ_FRAMEBUFFER_NV = 0x8CA8, 2056 GL_DRAW_FRAMEBUFFER_NV = 0x8CA9, 2057 GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6, 2058 GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA, 2059 } 2060 extern( System ) nothrow { 2061 alias da_glBlitFramebufferNV = void function( GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum ); 2062 } 2063 __gshared { 2064 da_glBlitFramebufferNV glBlitFramebufferNV; 2065 } 2066 private void load_GL_NV_framebuffer_blit() { 2067 try { 2068 bindGLFunc( cast( void** )&glBlitFramebufferNV, "glBlitFramebufferNV" ); 2069 2070 _GL_NV_framebuffer_blit = true; 2071 } catch( Exception e ) { 2072 _GL_NV_framebuffer_blit = false; 2073 } 2074 } 2075 2076 private __gshared bool _GL_NV_framebuffer_multisample; 2077 bool GL_NV_framebuffer_multisample() @property { return _GL_NV_framebuffer_multisample; } 2078 enum : uint { 2079 GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB, 2080 GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56, 2081 GL_MAX_SAMPLES_NV = 0x8D57, 2082 } 2083 extern( System ) nothrow { 2084 alias da_glRenderbufferStorageMultisampleNV = void function( GLenum, GLsizei, GLenum, GLsizei, GLsizei ); 2085 } 2086 __gshared { 2087 da_glRenderbufferStorageMultisampleNV glRenderbufferStorageMultisampleNV; 2088 } 2089 private void load_GL_NV_framebuffer_multisample() { 2090 try { 2091 bindGLFunc( cast( void** )&glRenderbufferStorageMultisampleNV, "glRenderbufferStorageMultisampleNV" ); 2092 2093 _GL_NV_framebuffer_multisample = true; 2094 } catch( Exception e ) { 2095 _GL_NV_framebuffer_multisample = false; 2096 } 2097 } 2098 2099 private __gshared bool _GL_NV_generate_mipmap_sRGB; 2100 bool GL_NV_generate_mipmap_sRGB() @property { return _GL_NV_generate_mipmap_sRGB; } 2101 2102 private __gshared bool _GL_NV_instanced_arrays; 2103 bool GL_NV_instanced_arrays() @property { return _GL_NV_instanced_arrays; } 2104 enum : uint { 2105 GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE, 2106 } 2107 extern( System ) nothrow { 2108 alias da_glVertexAttribDivisorNV = void function( GLuint, GLuint ); 2109 } 2110 __gshared { 2111 da_glVertexAttribDivisorNV glVertexAttribDivisorNV; 2112 } 2113 private void load_GL_NV_instanced_arrays() { 2114 try { 2115 bindGLFunc( cast( void** )&glVertexAttribDivisorNV, "glVertexAttribDivisorNV" ); 2116 2117 _GL_NV_instanced_arrays = true; 2118 } catch( Exception e ) { 2119 _GL_NV_instanced_arrays = false; 2120 } 2121 } 2122 2123 private __gshared bool _GL_NV_non_square_matrices; 2124 bool GL_NV_non_square_matrices() @property { return _GL_NV_non_square_matrices; } 2125 enum : uint { 2126 GL_FLOAT_MAT2x3_NV = 0x8B65, 2127 GL_FLOAT_MAT2x4_NV = 0x8B66, 2128 GL_FLOAT_MAT3x2_NV = 0x8B67, 2129 GL_FLOAT_MAT3x4_NV = 0x8B68, 2130 GL_FLOAT_MAT4x2_NV = 0x8B69, 2131 GL_FLOAT_MAT4x3_NV = 0x8B6A, 2132 } 2133 extern( System ) nothrow { 2134 alias da_glUniformMatrix2x3fvNV = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); 2135 alias da_glUniformMatrix3x2fvNV = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); 2136 alias da_glUniformMatrix2x4fvNV = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); 2137 alias da_glUniformMatrix4x2fvNV = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); 2138 alias da_glUniformMatrix3x4fvNV = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); 2139 alias da_glUniformMatrix4x3fvNV = void function( GLint, GLsizei, GLboolean, const( GLfloat )* ); 2140 } 2141 __gshared { 2142 da_glUniformMatrix2x3fvNV glUniformMatrix2x3fvNV; 2143 da_glUniformMatrix3x2fvNV glUniformMatrix3x2fvNV; 2144 da_glUniformMatrix2x4fvNV glUniformMatrix2x4fvNV; 2145 da_glUniformMatrix4x2fvNV glUniformMatrix4x2fvNV; 2146 da_glUniformMatrix3x4fvNV glUniformMatrix3x4fvNV; 2147 da_glUniformMatrix4x3fvNV glUniformMatrix4x3fvNV; 2148 } 2149 private void load_GL_NV_non_square_matrices() { 2150 try { 2151 bindGLFunc( cast( void** )&glUniformMatrix2x3fvNV, "glUniformMatrix2x3fvNV" ); 2152 bindGLFunc( cast( void** )&glUniformMatrix3x2fvNV, "glUniformMatrix3x2fvNV" ); 2153 bindGLFunc( cast( void** )&glUniformMatrix2x4fvNV, "glUniformMatrix2x4fvNV" ); 2154 bindGLFunc( cast( void** )&glUniformMatrix4x2fvNV, "glUniformMatrix4x2fvNV" ); 2155 bindGLFunc( cast( void** )&glUniformMatrix3x4fvNV, "glUniformMatrix3x4fvNV" ); 2156 bindGLFunc( cast( void** )&glUniformMatrix4x3fvNV, "glUniformMatrix4x3fvNV" ); 2157 2158 _GL_NV_non_square_matrices = true; 2159 } catch( Exception e ) { 2160 _GL_NV_non_square_matrices = false; 2161 } 2162 } 2163 2164 private __gshared bool _GL_NV_read_buffer; 2165 bool GL_NV_read_buffer() @property { return _GL_NV_read_buffer; } 2166 enum : uint { 2167 GL_READ_BUFFER_NV = 0x0C02, 2168 } 2169 extern( System ) nothrow { 2170 void glReadBufferNV ( GLenum ); 2171 } 2172 2173 private __gshared bool _GL_NV_read_buffer_front; 2174 bool GL_NV_read_buffer_front() @property { return _GL_NV_read_buffer_front; } 2175 2176 private __gshared bool _GL_NV_read_depth; 2177 bool GL_NV_read_depth() @property { return _GL_NV_read_depth; } 2178 2179 private __gshared bool _GL_NV_read_depth_stencil; 2180 bool GL_NV_read_depth_stencil() @property { return _GL_NV_read_depth_stencil; } 2181 2182 private __gshared bool _GL_NV_read_stencil; 2183 bool GL_NV_read_stencil() @property { return _GL_NV_read_stencil; } 2184 2185 private __gshared bool _GL_NV_sRGB_formats; 2186 bool GL_NV_sRGB_formats() @property { return _GL_NV_sRGB_formats; } 2187 enum : uint { 2188 GL_SLUMINANCE_NV = 0x8C46, 2189 GL_SLUMINANCE_ALPHA_NV = 0x8C44, 2190 GL_SRGB8_NV = 0x8C41, 2191 GL_SLUMINANCE8_NV = 0x8C47, 2192 GL_SLUMINANCE8_ALPHA8_NV = 0x8C45, 2193 GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C, 2194 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D, 2195 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E, 2196 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F, 2197 GL_ETC1_SRGB8_NV = 0x88EE, 2198 } 2199 2200 private __gshared bool _GL_NV_shadow_samplers_array; 2201 bool GL_NV_shadow_samplers_array() @property { return _GL_NV_shadow_samplers_array; } 2202 enum : uint { 2203 GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4, 2204 } 2205 2206 private __gshared bool _GL_NV_shadow_samplers_cube; 2207 bool GL_NV_shadow_samplers_cube() @property { return _GL_NV_shadow_samplers_cube; } 2208 enum : uint { 2209 GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5, 2210 } 2211 2212 private __gshared bool _GL_NV_texture_border_clamp; 2213 bool GL_NV_texture_border_clamp() @property { return _GL_NV_texture_border_clamp; } 2214 enum : uint { 2215 GL_TEXTURE_BORDER_COLOR_NV = 0x1004, 2216 GL_CLAMP_TO_BORDER_NV = 0x812D, 2217 } 2218 2219 private __gshared bool _GL_NV_texture_compression_s3tc_update; 2220 bool GL_NV_texture_compression_s3tc_update() @property { return _GL_NV_texture_compression_s3tc_update; } 2221 2222 private __gshared bool _GL_NV_texture_npot_2D_mipmap; 2223 bool GL_NV_texture_npot_2D_mipmap() @property { return _GL_NV_texture_npot_2D_mipmap; } 2224 2225 private __gshared bool _GL_QCOM_alpha_test; 2226 bool GL_QCOM_alpha_test() @property { return _GL_QCOM_alpha_test; } 2227 enum : uint { 2228 GL_ALPHA_TEST_QCOM = 0x0BC0, 2229 GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1, 2230 GL_ALPHA_TEST_REF_QCOM = 0x0BC2, 2231 } 2232 extern( System ) nothrow { 2233 alias da_glAlphaFuncQCOM = void function( GLenum, GLclampf ); 2234 } 2235 __gshared { 2236 da_glAlphaFuncQCOM glAlphaFuncQCOM; 2237 } 2238 private void load_GL_QCOM_alpha_test() { 2239 try { 2240 bindGLFunc( cast( void** )&glAlphaFuncQCOM, "glAlphaFuncQCOM" ); 2241 2242 _GL_QCOM_alpha_test = true; 2243 } catch( Exception e ) { 2244 _GL_QCOM_alpha_test = false; 2245 } 2246 } 2247 2248 private __gshared bool _GL_QCOM_binning_control; 2249 bool GL_QCOM_binning_control() @property { return _GL_QCOM_binning_control; } 2250 enum : uint { 2251 GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0, 2252 GL_CPU_OPTIMIZED_QCOM = 0x8FB1, 2253 GL_GPU_OPTIMIZED_QCOM = 0x8FB2, 2254 GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3, 2255 } 2256 2257 private __gshared bool _GL_QCOM_driver_control; 2258 bool GL_QCOM_driver_control() @property { return _GL_QCOM_driver_control; } 2259 extern( System ) nothrow { 2260 alias da_glGetDriverControlsQCOM = void function( GLint*, GLsizei, GLuint* ); 2261 alias da_glGetDriverControlStringQCOM = void function( GLuint, GLsizei, GLsizei*, GLchar* ); 2262 alias da_glEnableDriverControlQCOM = void function( GLuint ); 2263 alias da_glDisableDriverControlQCOM = void function( GLuint ); 2264 } 2265 __gshared { 2266 da_glGetDriverControlsQCOM glGetDriverControlsQCOM; 2267 da_glGetDriverControlStringQCOM glGetDriverControlStringQCOM; 2268 da_glEnableDriverControlQCOM glEnableDriverControlQCOM; 2269 da_glDisableDriverControlQCOM glDisableDriverControlQCOM; 2270 } 2271 private void load_GL_QCOM_driver_control() { 2272 try { 2273 bindGLFunc( cast( void** )&glGetDriverControlsQCOM, "glGetDriverControlsQCOM" ); 2274 bindGLFunc( cast( void** )&glGetDriverControlStringQCOM, "glGetDriverControlStringQCOM" ); 2275 bindGLFunc( cast( void** )&glEnableDriverControlQCOM, "glEnableDriverControlQCOM" ); 2276 bindGLFunc( cast( void** )&glDisableDriverControlQCOM, "glDisableDriverControlQCOM" ); 2277 2278 _GL_QCOM_driver_control = true; 2279 } catch( Exception e ) { 2280 _GL_QCOM_driver_control = false; 2281 } 2282 } 2283 2284 private __gshared bool _GL_QCOM_extended_get; 2285 bool GL_QCOM_extended_get() @property { return _GL_QCOM_extended_get; } 2286 enum : uint { 2287 GL_TEXTURE_WIDTH_QCOM = 0x8BD2, 2288 GL_TEXTURE_HEIGHT_QCOM = 0x8BD3, 2289 GL_TEXTURE_DEPTH_QCOM = 0x8BD4, 2290 GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5, 2291 GL_TEXTURE_FORMAT_QCOM = 0x8BD6, 2292 GL_TEXTURE_TYPE_QCOM = 0x8BD7, 2293 GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8, 2294 GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9, 2295 GL_TEXTURE_TARGET_QCOM = 0x8BDA, 2296 GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB, 2297 GL_STATE_RESTORE = 0x8BDC, 2298 } 2299 extern( System ) nothrow { 2300 alias da_glExtGetTexturesQCOM = void function( GLuint*, GLint, GLint* ); 2301 alias da_glExtGetBuffersQCOM = void function( GLuint*, GLint, GLint* ); 2302 alias da_glExtGetRenderbuffersQCOM = void function( GLuint*, GLint, GLint* ); 2303 alias da_glExtGetFramebuffersQCOM = void function( GLuint*, GLint, GLint* ); 2304 alias da_glExtGetTexLevelParameterivQCOM = void function( GLuint, GLenum, GLint, GLenum, GLint* ); 2305 alias da_glExtTexObjectStateOverrideiQCOM = void function( GLenum, GLenum, GLint ); 2306 alias da_glExtGetTexSubImageQCOM = void function( GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, void* ); 2307 alias da_glExtGetBufferPointervQCOM = void function( GLenum, void** ); 2308 } 2309 __gshared { 2310 da_glExtGetTexturesQCOM glExtGetTexturesQCOM; 2311 da_glExtGetBuffersQCOM glExtGetBuffersQCOM; 2312 da_glExtGetRenderbuffersQCOM glExtGetRenderbuffersQCOM; 2313 da_glExtGetFramebuffersQCOM glExtGetFramebuffersQCOM; 2314 da_glExtGetTexLevelParameterivQCOM glExtGetTexLevelParameterivQCOM; 2315 da_glExtTexObjectStateOverrideiQCOM glExtTexObjectStateOverrideiQCOM; 2316 da_glExtGetTexSubImageQCOM glExtGetTexSubImageQCOM; 2317 da_glExtGetBufferPointervQCOM glExtGetBufferPointervQCOM; 2318 } 2319 private void load_GL_QCOM_extended_get() { 2320 try { 2321 bindGLFunc( cast( void** )&glExtGetTexturesQCOM, "glExtGetTexturesQCOM" ); 2322 bindGLFunc( cast( void** )&glExtGetBuffersQCOM, "glExtGetBuffersQCOM" ); 2323 bindGLFunc( cast( void** )&glExtGetRenderbuffersQCOM, "glExtGetRenderbuffersQCOM" ); 2324 bindGLFunc( cast( void** )&glExtGetFramebuffersQCOM, "glExtGetFramebuffersQCOM" ); 2325 bindGLFunc( cast( void** )&glExtGetTexLevelParameterivQCOM, "glExtGetTexLevelParameterivQCOM" ); 2326 bindGLFunc( cast( void** )&glExtTexObjectStateOverrideiQCOM, "glExtTexObjectStateOverrideiQCOM" ); 2327 bindGLFunc( cast( void** )&glExtGetTexSubImageQCOM, "glExtGetTexSubImageQCOM" ); 2328 bindGLFunc( cast( void** )&glExtGetBufferPointervQCOM, "glExtGetBufferPointervQCOM" ); 2329 2330 _GL_QCOM_extended_get = true; 2331 } catch( Exception e ) { 2332 _GL_QCOM_extended_get = false; 2333 } 2334 } 2335 2336 private __gshared bool _GL_QCOM_extended_get2; 2337 bool GL_QCOM_extended_get2() @property { return _GL_QCOM_extended_get2; } 2338 extern( System ) nothrow { 2339 alias da_glExtGetShadersQCOM = void function( GLuint*, GLint, GLint ); 2340 alias da_glExtGetProgramsQCOM = void function( GLuint*, GLint, GLint* ); 2341 alias da_glExtIsProgramBinaryQCOM = GLboolean function( GLuint ); 2342 alias da_glExtGetProgramBinarySourceQCOM = void function( GLuint, GLenum, GLchar*, GLint* ); 2343 } 2344 __gshared { 2345 da_glExtGetShadersQCOM glExtGetShadersQCOM; 2346 da_glExtGetProgramsQCOM glExtGetProgramsQCOM; 2347 da_glExtIsProgramBinaryQCOM glExtIsProgramBinaryQCOM; 2348 da_glExtGetProgramBinarySourceQCOM glExtGetProgramBinarySourceQCOM; 2349 } 2350 private void load_GL_QCOM_extended_get2() { 2351 try { 2352 bindGLFunc( cast( void** )&glExtGetShadersQCOM, "glExtGetShadersQCOM" ); 2353 bindGLFunc( cast( void** )&glExtGetProgramsQCOM, "glExtGetProgramsQCOM" ); 2354 bindGLFunc( cast( void** )&glExtIsProgramBinaryQCOM, "glExtIsProgramBinaryQCOM" ); 2355 bindGLFunc( cast( void** )&glExtGetProgramBinarySourceQCOM, "glExtGetProgramBinarySourceQCOM" ); 2356 2357 _GL_QCOM_extended_get2 = true; 2358 } catch( Exception e ) { 2359 _GL_QCOM_extended_get2 = false; 2360 } 2361 } 2362 2363 private __gshared bool _GL_QCOM_perfmon_global_mode; 2364 bool GL_QCOM_perfmon_global_mode() @property { return _GL_QCOM_perfmon_global_mode; } 2365 enum : uint { 2366 GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0, 2367 } 2368 2369 private __gshared bool _GL_QCOM_tiled_rendering; 2370 bool GL_QCOM_tiled_rendering() @property { return _GL_QCOM_tiled_rendering; } 2371 enum : uint { 2372 GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001, 2373 GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002, 2374 GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004, 2375 GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008, 2376 GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010, 2377 GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020, 2378 GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040, 2379 GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080, 2380 GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100, 2381 GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200, 2382 GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400, 2383 GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800, 2384 GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000, 2385 GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000, 2386 GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000, 2387 GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000, 2388 GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000, 2389 GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000, 2390 GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000, 2391 GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000, 2392 GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000, 2393 GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000, 2394 GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000, 2395 GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000, 2396 GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000, 2397 GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000, 2398 GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000, 2399 GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000, 2400 GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000, 2401 GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000, 2402 GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000, 2403 GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000, 2404 } 2405 extern( System ) nothrow { 2406 alias da_glStartTilingQCOM = void function( GLuint, GLuint, GLuint, GLuint, GLbitfield ); 2407 alias da_glEndTilingQCOM = void function( GLbitfield ); 2408 } 2409 __gshared { 2410 da_glStartTilingQCOM glStartTilingQCOM; 2411 da_glEndTilingQCOM glEndTilingQCOM; 2412 } 2413 private void load_GL_QCOM_tiled_rendering() { 2414 try { 2415 bindGLFunc( cast( void** )&glStartTilingQCOM, "glStartTilingQCOM" ); 2416 bindGLFunc( cast( void** )&glEndTilingQCOM, "glEndTilingQCOM" ); 2417 2418 _GL_QCOM_tiled_rendering = true; 2419 } catch( Exception e ) { 2420 _GL_QCOM_tiled_rendering = false; 2421 } 2422 } 2423 2424 private __gshared bool _GL_QCOM_writeonly_rendering; 2425 bool GL_QCOM_writeonly_rendering() @property { return _GL_QCOM_writeonly_rendering; } 2426 enum : uint { 2427 GL_WRITEONLY_RENDERING_QCOM = 0x8823, 2428 } 2429 2430 private __gshared bool _GL_VIV_shader_binary; 2431 bool GL_VIV_shader_binary() @property { return _GL_VIV_shader_binary; } 2432 enum : uint { 2433 GL_SHADER_BINARY_VIV = 0x8FC4, 2434 } 2435 2436 package void loadEXT( ) { 2437 _GL_KHR_blend_equation_advanced = isExtSupported( "GL_KHR_blend_equation_advanced" ); 2438 if( _GL_KHR_blend_equation_advanced ) load_GL_KHR_blend_equation_advanced(); 2439 _GL_KHR_debug = isExtSupported( "GL_KHR_debug" ); 2440 if( _GL_KHR_debug ) load_GL_KHR_debug(); 2441 _GL_KHR_texture_compression_astc_hdr = isExtSupported( "GL_KHR_texture_compression_astc_hdr" ); 2442 _GL_KHR_texture_compression_astc_ldr = isExtSupported( "GL_KHR_texture_compression_astc_ldr" ); 2443 _GL_OES_EGL_image = isExtSupported( "GL_OES_EGL_image" ); 2444 if( _GL_OES_EGL_image ) load_GL_OES_EGL_image(); 2445 _GL_OES_EGL_image_external = isExtSupported( "GL_OES_EGL_image_external" ); 2446 _GL_OES_compressed_ETC1_RGB8_texture = isExtSupported( "GL_OES_compressed_ETC1_RGB8_texture" ); 2447 _GL_OES_compressed_paletted_texture = isExtSupported( "GL_OES_compressed_paletted_texture" ); 2448 _GL_OES_depth24 = isExtSupported( "GL_OES_depth24" ); 2449 _GL_OES_depth32 = isExtSupported( "GL_OES_depth32" ); 2450 _GL_OES_depth_texture = isExtSupported( "GL_OES_depth_texture" ); 2451 _GL_OES_element_index_uint = isExtSupported( "GL_OES_element_index_uint" ); 2452 _GL_OES_fbo_render_mipmap = isExtSupported( "GL_OES_fbo_render_mipmap" ); 2453 _GL_OES_fragment_precision_high = isExtSupported( "GL_OES_fragment_precision_high" ); 2454 _GL_OES_get_program_binary = isExtSupported( "GL_OES_get_program_binary" ); 2455 if( _GL_OES_get_program_binary ) load_GL_OES_get_program_binary(); 2456 _GL_OES_mapbuffer = isExtSupported( "GL_OES_mapbuffer" ); 2457 if( _GL_OES_mapbuffer ) load_GL_OES_mapbuffer(); 2458 _GL_OES_packed_depth_stencil = isExtSupported( "GL_OES_packed_depth_stencil" ); 2459 _GL_OES_required_internalformat = isExtSupported( "GL_OES_required_internalformat" ); 2460 _GL_OES_rgb8_rgba8 = isExtSupported( "GL_OES_rgb8_rgba8" ); 2461 _GL_OES_sample_shading = isExtSupported( "GL_OES_sample_shading" ); 2462 if( _GL_OES_sample_shading ) load_GL_OES_sample_shading(); 2463 _GL_OES_sample_variables = isExtSupported( "GL_OES_sample_variables" ); 2464 _GL_OES_shader_image_atomic = isExtSupported( "GL_OES_shader_image_atomic" ); 2465 _GL_OES_shader_multisample_interpolation = isExtSupported( "GL_OES_shader_multisample_interpolation" ); 2466 _GL_OES_standard_derivatives = isExtSupported( "GL_OES_standard_derivatives" ); 2467 _GL_OES_stencil1 = isExtSupported( "GL_OES_stencil1" ); 2468 _GL_OES_stencil4 = isExtSupported( "GL_OES_stencil4" ); 2469 _GL_OES_surfaceless_context = isExtSupported( "GL_OES_surfaceless_context" ); 2470 _GL_OES_texture_3D = isExtSupported( "GL_OES_texture_3D" ); 2471 if( _GL_OES_texture_3D ) load_GL_OES_texture_3D(); 2472 _GL_OES_texture_compression_astc = isExtSupported( "GL_OES_texture_compression_astc" ); 2473 _GL_OES_texture_float = isExtSupported( "GL_OES_texture_float" ); 2474 _GL_OES_texture_float_linear = isExtSupported( "GL_OES_texture_float_linear" ); 2475 _GL_OES_texture_half_float = isExtSupported( "GL_OES_texture_half_float" ); 2476 _GL_OES_texture_half_float_linear = isExtSupported( "GL_OES_texture_half_float_linear" ); 2477 _GL_OES_texture_npot = isExtSupported( "GL_OES_texture_npot" ); 2478 _GL_OES_texture_stencil8 = isExtSupported( "GL_OES_texture_stencil8" ); 2479 _GL_OES_texture_storage_multisample_2d_array = isExtSupported( "GL_OES_texture_storage_multisample_2d_array" ); 2480 if( _GL_OES_texture_storage_multisample_2d_array ) load_GL_OES_texture_storage_multisample_2d_array(); 2481 _GL_OES_vertex_array_object = isExtSupported( "GL_OES_vertex_array_object" ); 2482 if( _GL_OES_vertex_array_object ) load_GL_OES_vertex_array_object(); 2483 _GL_OES_vertex_half_float = isExtSupported( "GL_OES_vertex_half_float" ); 2484 _GL_OES_vertex_type_10_10_10_2 = isExtSupported( "GL_OES_vertex_type_10_10_10_2" ); 2485 _GL_AMD_compressed_3DC_texture = isExtSupported( "GL_AMD_compressed_3DC_texture" ); 2486 _GL_AMD_compressed_ATC_texture = isExtSupported( "GL_AMD_compressed_ATC_texture" ); 2487 _GL_AMD_performance_monitor = isExtSupported( "GL_AMD_performance_monitor" ); 2488 if( _GL_AMD_performance_monitor ) load_GL_AMD_performance_monitor(); 2489 _GL_AMD_program_binary_Z400 = isExtSupported( "GL_AMD_program_binary_Z400" ); 2490 _GL_ANGLE_depth_texture = isExtSupported( "GL_ANGLE_depth_texture" ); 2491 _GL_ANGLE_framebuffer_blit = isExtSupported( "GL_ANGLE_framebuffer_blit" ); 2492 if( _GL_ANGLE_framebuffer_blit ) load_GL_ANGLE_framebuffer_blit(); 2493 _GL_ANGLE_framebuffer_multisample = isExtSupported( "GL_ANGLE_framebuffer_multisample" ); 2494 if( _GL_ANGLE_framebuffer_multisample ) load_GL_ANGLE_framebuffer_multisample(); 2495 _GL_ANGLE_instanced_arrays = isExtSupported( "GL_ANGLE_instanced_arrays" ); 2496 if( _GL_ANGLE_instanced_arrays ) load_GL_ANGLE_instanced_arrays(); 2497 _GL_ANGLE_pack_reverse_row_order = isExtSupported( "GL_ANGLE_pack_reverse_row_order" ); 2498 _GL_ANGLE_program_binary = isExtSupported( "GL_ANGLE_program_binary" ); 2499 _GL_ANGLE_texture_compression_dxt3 = isExtSupported( "GL_ANGLE_texture_compression_dxt3" ); 2500 _GL_ANGLE_texture_compression_dxt5 = isExtSupported( "GL_ANGLE_texture_compression_dxt5" ); 2501 _GL_ANGLE_texture_usage = isExtSupported( "GL_ANGLE_texture_usage" ); 2502 _GL_ANGLE_translated_shader_source = isExtSupported( "GL_ANGLE_translated_shader_source" ); 2503 if( _GL_ANGLE_translated_shader_source ) load_GL_ANGLE_translated_shader_source(); 2504 _GL_APPLE_copy_texture_levels = isExtSupported( "GL_APPLE_copy_texture_levels" ); 2505 if( _GL_APPLE_copy_texture_levels ) load_GL_APPLE_copy_texture_levels(); 2506 _GL_APPLE_framebuffer_multisample = isExtSupported( "GL_APPLE_framebuffer_multisample" ); 2507 if( _GL_APPLE_framebuffer_multisample ) load_GL_APPLE_framebuffer_multisample(); 2508 _GL_APPLE_rgb_422 = isExtSupported( "GL_APPLE_rgb_422" ); 2509 _GL_APPLE_sync = isExtSupported( "GL_APPLE_sync" ); 2510 if( _GL_APPLE_sync ) load_GL_APPLE_sync(); 2511 _GL_APPLE_texture_format_BGRA8888 = isExtSupported( "GL_APPLE_texture_format_BGRA8888" ); 2512 _GL_APPLE_texture_max_level = isExtSupported( "GL_APPLE_texture_max_level" ); 2513 _GL_ARM_mali_program_binary = isExtSupported( "GL_ARM_mali_program_binary" ); 2514 _GL_ARM_mali_shader_binary = isExtSupported( "GL_ARM_mali_shader_binary" ); 2515 _GL_ARM_rgba8 = isExtSupported( "GL_ARM_rgba8" ); 2516 _GL_ARM_shader_framebuffer_fetch = isExtSupported( "GL_ARM_shader_framebuffer_fetch" ); 2517 _GL_ARM_shader_framebuffer_fetch_depth_stencil = isExtSupported( "GL_ARM_shader_framebuffer_fetch_depth_stencil" ); 2518 _GL_DMP_shader_binary = isExtSupported( "GL_DMP_shader_binary" ); 2519 _GL_EXT_blend_minmax = isExtSupported( "GL_EXT_blend_minmax" ); 2520 _GL_EXT_color_buffer_half_float = isExtSupported( "GL_EXT_color_buffer_half_float" ); 2521 _GL_EXT_debug_label = isExtSupported( "GL_EXT_debug_label" ); 2522 if( _GL_EXT_debug_label ) load_GL_EXT_debug_label(); 2523 _GL_EXT_debug_marker = isExtSupported( "GL_EXT_debug_marker" ); 2524 if( _GL_EXT_debug_marker ) load_GL_EXT_debug_marker(); 2525 _GL_EXT_discard_framebuffer = isExtSupported( "GL_EXT_discard_framebuffer" ); 2526 if( _GL_EXT_discard_framebuffer ) load_GL_EXT_discard_framebuffer(); 2527 _GL_EXT_disjoint_timer_query = isExtSupported( "GL_EXT_disjoint_timer_query" ); 2528 if( _GL_EXT_disjoint_timer_query ) load_GL_EXT_disjoint_timer_query(); 2529 _GL_EXT_draw_buffers = isExtSupported( "GL_EXT_draw_buffers" ); 2530 if( _GL_EXT_draw_buffers ) load_GL_EXT_draw_buffers(); 2531 _GL_EXT_draw_instanced = isExtSupported( "GL_EXT_draw_instanced" ); 2532 if( _GL_EXT_draw_instanced ) load_GL_EXT_draw_instanced(); 2533 _GL_EXT_instanced_arrays = isExtSupported( "GL_EXT_instanced_arrays" ); 2534 if( _GL_EXT_instanced_arrays ) load_GL_EXT_instanced_arrays(); 2535 _GL_EXT_map_buffer_range = isExtSupported( "GL_EXT_map_buffer_range" ); 2536 if( _GL_EXT_map_buffer_range ) load_GL_EXT_map_buffer_range(); 2537 _GL_EXT_multi_draw_arrays = isExtSupported( "GL_EXT_multi_draw_arrays" ); 2538 if( _GL_EXT_multi_draw_arrays ) load_GL_EXT_multi_draw_arrays(); 2539 _GL_EXT_multisampled_render_to_texture = isExtSupported( "GL_EXT_multisampled_render_to_texture" ); 2540 if( _GL_EXT_multisampled_render_to_texture ) load_GL_EXT_multisampled_render_to_texture(); 2541 _GL_EXT_multiview_draw_buffers = isExtSupported( "GL_EXT_multiview_draw_buffers" ); 2542 if( _GL_EXT_multiview_draw_buffers ) load_GL_EXT_multiview_draw_buffers(); 2543 _GL_EXT_occlusion_query_boolean = isExtSupported( "GL_EXT_occlusion_query_boolean" ); 2544 _GL_EXT_pvrtc_sRGB = isExtSupported( "GL_EXT_pvrtc_sRGB" ); 2545 _GL_EXT_read_format_bgra = isExtSupported( "GL_EXT_read_format_bgra" ); 2546 _GL_EXT_robustness = isExtSupported( "GL_EXT_robustness" ); 2547 if( _GL_EXT_robustness ) load_GL_EXT_robustness(); 2548 _GL_EXT_sRGB = isExtSupported( "GL_EXT_sRGB" ); 2549 _GL_EXT_sRGB_write_control = isExtSupported( "GL_EXT_sRGB_write_control" ); 2550 _GL_EXT_separate_shader_objects = isExtSupported( "GL_EXT_separate_shader_objects" ); 2551 if( _GL_EXT_separate_shader_objects ) load_GL_EXT_separate_shader_objects(); 2552 _GL_EXT_shader_framebuffer_fetch = isExtSupported( "GL_EXT_shader_framebuffer_fetch" ); 2553 _GL_EXT_shader_integer_mix = isExtSupported( "GL_EXT_shader_integer_mix" ); 2554 _GL_EXT_shader_pixel_local_storage = isExtSupported( "GL_EXT_shader_pixel_local_storage" ); 2555 _GL_EXT_shader_texture_lod = isExtSupported( "GL_EXT_shader_texture_lod" ); 2556 _GL_EXT_shadow_samplers = isExtSupported( "GL_EXT_shadow_samplers" ); 2557 _GL_EXT_texture_compression_dxt1 = isExtSupported( "GL_EXT_texture_compression_dxt1" ); 2558 _GL_EXT_texture_compression_s3tc = isExtSupported( "GL_EXT_texture_compression_s3tc" ); 2559 _GL_EXT_texture_filter_anisotropic = isExtSupported( "GL_EXT_texture_filter_anisotropic" ); 2560 _GL_EXT_texture_format_BGRA8888 = isExtSupported( "GL_EXT_texture_format_BGRA8888" ); 2561 _GL_EXT_texture_rg = isExtSupported( "GL_EXT_texture_rg" ); 2562 _GL_EXT_texture_sRGB_decode = isExtSupported( "GL_EXT_texture_sRGB_decode" ); 2563 _GL_EXT_texture_storage = isExtSupported( "GL_EXT_texture_storage" ); 2564 if( _GL_EXT_texture_storage ) load_GL_EXT_texture_storage(); 2565 _GL_EXT_texture_type_2_10_10_10_REV = isExtSupported( "GL_EXT_texture_type_2_10_10_10_REV" ); 2566 _GL_EXT_unpack_subimage = isExtSupported( "GL_EXT_unpack_subimage" ); 2567 _GL_FJ_shader_binary_GCCSO = isExtSupported( "GL_FJ_shader_binary_GCCSO" ); 2568 _GL_IMG_multisampled_render_to_texture = isExtSupported( "GL_IMG_multisampled_render_to_texture" ); 2569 if( _GL_IMG_multisampled_render_to_texture ) load_GL_IMG_multisampled_render_to_texture(); 2570 _GL_IMG_program_binary = isExtSupported( "GL_IMG_program_binary" ); 2571 _GL_IMG_read_format = isExtSupported( "GL_IMG_read_format" ); 2572 _GL_IMG_shader_binary = isExtSupported( "GL_IMG_shader_binary" ); 2573 _GL_IMG_texture_compression_pvrtc = isExtSupported( "GL_IMG_texture_compression_pvrtc" ); 2574 _GL_IMG_texture_compression_pvrtc2 = isExtSupported( "GL_IMG_texture_compression_pvrtc2" ); 2575 _GL_INTEL_performance_query = isExtSupported( "GL_INTEL_performance_query" ); 2576 if( _GL_INTEL_performance_query ) load_GL_INTEL_performance_query(); 2577 _GL_NV_blend_equation_advanced = isExtSupported( "GL_NV_blend_equation_advanced" ); 2578 if( _GL_NV_blend_equation_advanced ) load_GL_NV_blend_equation_advanced(); 2579 _GL_NV_blend_equation_advanced_coherent = isExtSupported( "GL_NV_blend_equation_advanced_coherent" ); 2580 _GL_NV_copy_buffer = isExtSupported( "GL_NV_copy_buffer" ); 2581 if( _GL_NV_copy_buffer ) load_GL_NV_copy_buffer(); 2582 _GL_NV_coverage_sample = isExtSupported( "GL_NV_coverage_sample" ); 2583 if( _GL_NV_coverage_sample ) load_GL_NV_coverage_sample(); 2584 _GL_NV_depth_nonlinear = isExtSupported( "GL_NV_depth_nonlinear" ); 2585 _GL_NV_draw_buffers = isExtSupported( "GL_NV_draw_buffers" ); 2586 if( _GL_NV_draw_buffers ) load_GL_NV_draw_buffers(); 2587 _GL_NV_draw_instanced = isExtSupported( "GL_NV_draw_instanced" ); 2588 if( _GL_NV_draw_instanced ) load_GL_NV_draw_instanced(); 2589 _GL_NV_explicit_attrib_location = isExtSupported( "GL_NV_explicit_attrib_location" ); 2590 _GL_NV_fbo_color_attachments = isExtSupported( "GL_NV_fbo_color_attachments" ); 2591 _GL_NV_fence = isExtSupported( "GL_NV_fence" ); 2592 if( _GL_NV_fence ) load_GL_NV_fence(); 2593 _GL_NV_framebuffer_blit = isExtSupported( "GL_NV_framebuffer_blit" ); 2594 if( _GL_NV_framebuffer_blit ) load_GL_NV_framebuffer_blit(); 2595 _GL_NV_framebuffer_multisample = isExtSupported( "GL_NV_framebuffer_multisample" ); 2596 if( _GL_NV_framebuffer_multisample ) load_GL_NV_framebuffer_multisample(); 2597 _GL_NV_generate_mipmap_sRGB = isExtSupported( "GL_NV_generate_mipmap_sRGB" ); 2598 _GL_NV_instanced_arrays = isExtSupported( "GL_NV_instanced_arrays" ); 2599 if( _GL_NV_instanced_arrays ) load_GL_NV_instanced_arrays(); 2600 _GL_NV_non_square_matrices = isExtSupported( "GL_NV_non_square_matrices" ); 2601 if( _GL_NV_non_square_matrices ) load_GL_NV_non_square_matrices(); 2602 _GL_NV_read_buffer = isExtSupported( "GL_NV_read_buffer" ); 2603 _GL_NV_read_buffer_front = isExtSupported( "GL_NV_read_buffer_front" ); 2604 _GL_NV_read_depth = isExtSupported( "GL_NV_read_depth" ); 2605 _GL_NV_read_depth_stencil = isExtSupported( "GL_NV_read_depth_stencil" ); 2606 _GL_NV_read_stencil = isExtSupported( "GL_NV_read_stencil" ); 2607 _GL_NV_sRGB_formats = isExtSupported( "GL_NV_sRGB_formats" ); 2608 _GL_NV_shadow_samplers_array = isExtSupported( "GL_NV_shadow_samplers_array" ); 2609 _GL_NV_shadow_samplers_cube = isExtSupported( "GL_NV_shadow_samplers_cube" ); 2610 _GL_NV_texture_border_clamp = isExtSupported( "GL_NV_texture_border_clamp" ); 2611 _GL_NV_texture_compression_s3tc_update = isExtSupported( "GL_NV_texture_compression_s3tc_update" ); 2612 _GL_NV_texture_npot_2D_mipmap = isExtSupported( "GL_NV_texture_npot_2D_mipmap" ); 2613 _GL_QCOM_alpha_test = isExtSupported( "GL_QCOM_alpha_test" ); 2614 if( _GL_QCOM_alpha_test ) load_GL_QCOM_alpha_test(); 2615 _GL_QCOM_binning_control = isExtSupported( "GL_QCOM_binning_control" ); 2616 _GL_QCOM_driver_control = isExtSupported( "GL_QCOM_driver_control" ); 2617 if( _GL_QCOM_driver_control ) load_GL_QCOM_driver_control(); 2618 _GL_QCOM_extended_get = isExtSupported( "GL_QCOM_extended_get" ); 2619 if( _GL_QCOM_extended_get ) load_GL_QCOM_extended_get(); 2620 _GL_QCOM_extended_get2 = isExtSupported( "GL_QCOM_extended_get2" ); 2621 if( _GL_QCOM_extended_get2 ) load_GL_QCOM_extended_get2(); 2622 _GL_QCOM_perfmon_global_mode = isExtSupported( "GL_QCOM_perfmon_global_mode" ); 2623 _GL_QCOM_tiled_rendering = isExtSupported( "GL_QCOM_tiled_rendering" ); 2624 if( _GL_QCOM_tiled_rendering ) load_GL_QCOM_tiled_rendering(); 2625 _GL_QCOM_writeonly_rendering = isExtSupported( "GL_QCOM_writeonly_rendering" ); 2626 _GL_VIV_shader_binary = isExtSupported( "GL_VIV_shader_binary" ); 2627 }