include/SDL_opengles2_gl2ext.h
author David Ludwig <dludwig@pobox.com>
Sat, 29 Nov 2014 10:09:30 -0500
changeset 9247 eddb899239fe
parent 8808 da1e1d6e84c4
permissions -rw-r--r--
WinRT: bug and data-integrity fixes for SDL_GetPrefPath()

This change does a few things, all with regards to the WinRT implementation of
SDL_GetPrefPath():

1. it fixes a bug whereby SDL_GetPrefPath() did not create the directory it
returned. On other SDL platforms, SDL_GetPrefPath() will create separate
directories for its 'org' and 'app' folders. Without this, attempts to create
files in the pref-path would fail, unless those directories were first created
by the app, or by some other library the app used. This change makes sure
that these directories get created, before SDL_GetPrefPath() returns to its
caller(s).


2. it defaults to having SDL_GetPrefPath() return a WinRT 'Local' folder
on all platforms. Previously, for Windows Store apps, it would have used a
different, 'Roaming' folder. Files in Roaming folders can be automatically,
and synchronized across multiple devices by Windows. This synchronization can
happen while the app runs, with new files being copied into a running app's
pref-path. Unless an app is specifically designed to handle this scenario,
there is a chance that save-data could be overwritten in unwanted or
unexpected ways.

The default is now to use a Local folder, which does not get synchronized, and
which is arguably a bit safer to use. Apps that wish to use Roaming folders
can do so by setting SDL_HINT_WINRT_PREF_PATH_ROOT to "roaming", however it
is recommended that one first read Microsoft's documentation for Roaming
files, a link to which is provided in README-winrt.md.

To preserve older pref-path selection behavior (found in SDL 2.0.3, as well as
many pre-2.0.4 versions of SDL from hg.libsdl.org), which uses a Roaming path
in Windows Store apps, and a Local path in Windows Phone, set
SDL_HINT_WINRT_PREF_PATH_ROOT to "old".

Please note that Roaming paths are not supported on Windows Phone 8.0, due to
limitations in the OS itself. Attempts to use this will fail.
(Windows Phone 8.1 does not have this limitation, however.)


3. It makes SDL_GetPrefPath(), when on Windows Phone 8.0, and when
SDL_HINT_WINRT_PREF_PATH_ROOT is set to "roaming", return NULL, rather than
silently defaulting to a Local path (then switching to a Roaming path if and
when the user upgraded to Windows Phone 8.1).
     1 #ifndef __gl2ext_h_
     2 #define __gl2ext_h_
     3 
     4 /* $Revision: 22801 $ on $Date:: 2013-08-21 03:20:48 -0700 #$ */
     5 
     6 #ifdef __cplusplus
     7 extern "C" {
     8 #endif
     9 
    10 /*
    11  * This document is licensed under the SGI Free Software B License Version
    12  * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
    13  */
    14 
    15 #ifndef GL_APIENTRYP
    16 #   define GL_APIENTRYP GL_APIENTRY*
    17 #endif
    18 
    19 /* New types shared by several extensions */
    20 
    21 #ifndef __gl3_h_
    22 /* These are defined with respect to <inttypes.h> in the
    23  * Apple extension spec, but they are also used by non-APPLE
    24  * extensions, and in the Khronos header we use the Khronos
    25  * portable types in khrplatform.h, which must be defined.
    26  */
    27 typedef khronos_int64_t GLint64;
    28 typedef khronos_uint64_t GLuint64;
    29 typedef struct __GLsync *GLsync;
    30 #endif
    31 
    32 
    33 /*------------------------------------------------------------------------*
    34  * OES extension tokens
    35  *------------------------------------------------------------------------*/
    36 
    37 /* GL_OES_compressed_ETC1_RGB8_texture */
    38 #ifndef GL_OES_compressed_ETC1_RGB8_texture
    39 #define GL_ETC1_RGB8_OES                                        0x8D64
    40 #endif
    41 
    42 /* GL_OES_compressed_paletted_texture */
    43 #ifndef GL_OES_compressed_paletted_texture
    44 #define GL_PALETTE4_RGB8_OES                                    0x8B90
    45 #define GL_PALETTE4_RGBA8_OES                                   0x8B91
    46 #define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
    47 #define GL_PALETTE4_RGBA4_OES                                   0x8B93
    48 #define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
    49 #define GL_PALETTE8_RGB8_OES                                    0x8B95
    50 #define GL_PALETTE8_RGBA8_OES                                   0x8B96
    51 #define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
    52 #define GL_PALETTE8_RGBA4_OES                                   0x8B98
    53 #define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
    54 #endif
    55 
    56 /* GL_OES_depth24 */
    57 #ifndef GL_OES_depth24
    58 #define GL_DEPTH_COMPONENT24_OES                                0x81A6
    59 #endif
    60 
    61 /* GL_OES_depth32 */
    62 #ifndef GL_OES_depth32
    63 #define GL_DEPTH_COMPONENT32_OES                                0x81A7
    64 #endif
    65 
    66 /* GL_OES_depth_texture */
    67 /* No new tokens introduced by this extension. */
    68 
    69 /* GL_OES_EGL_image */
    70 #ifndef GL_OES_EGL_image
    71 typedef void* GLeglImageOES;
    72 #endif
    73 
    74 /* GL_OES_EGL_image_external */
    75 #ifndef GL_OES_EGL_image_external
    76 /* GLeglImageOES defined in GL_OES_EGL_image already. */
    77 #define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
    78 #define GL_SAMPLER_EXTERNAL_OES                                 0x8D66
    79 #define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
    80 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
    81 #endif
    82 
    83 /* GL_OES_element_index_uint */
    84 #ifndef GL_OES_element_index_uint
    85 #define GL_UNSIGNED_INT                                         0x1405
    86 #endif
    87 
    88 /* GL_OES_get_program_binary */
    89 #ifndef GL_OES_get_program_binary
    90 #define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
    91 #define GL_NUM_PROGRAM_BINARY_FORMATS_OES                       0x87FE
    92 #define GL_PROGRAM_BINARY_FORMATS_OES                           0x87FF
    93 #endif
    94 
    95 /* GL_OES_mapbuffer */
    96 #ifndef GL_OES_mapbuffer
    97 #define GL_WRITE_ONLY_OES                                       0x88B9
    98 #define GL_BUFFER_ACCESS_OES                                    0x88BB
    99 #define GL_BUFFER_MAPPED_OES                                    0x88BC
   100 #define GL_BUFFER_MAP_POINTER_OES                               0x88BD
   101 #endif
   102 
   103 /* GL_OES_packed_depth_stencil */
   104 #ifndef GL_OES_packed_depth_stencil
   105 #define GL_DEPTH_STENCIL_OES                                    0x84F9
   106 #define GL_UNSIGNED_INT_24_8_OES                                0x84FA
   107 #define GL_DEPTH24_STENCIL8_OES                                 0x88F0
   108 #endif
   109 
   110 /* GL_OES_required_internalformat */
   111 #ifndef GL_OES_required_internalformat
   112 #define GL_ALPHA8_OES                                           0x803C
   113 #define GL_DEPTH_COMPONENT16_OES                                0x81A5
   114 /* reuse GL_DEPTH_COMPONENT24_OES */
   115 /* reuse GL_DEPTH24_STENCIL8_OES */
   116 /* reuse GL_DEPTH_COMPONENT32_OES */
   117 #define GL_LUMINANCE4_ALPHA4_OES                                0x8043
   118 #define GL_LUMINANCE8_ALPHA8_OES                                0x8045
   119 #define GL_LUMINANCE8_OES                                       0x8040
   120 #define GL_RGBA4_OES                                            0x8056
   121 #define GL_RGB5_A1_OES                                          0x8057
   122 #define GL_RGB565_OES                                           0x8D62
   123 /* reuse GL_RGB8_OES */
   124 /* reuse GL_RGBA8_OES */
   125 /* reuse GL_RGB10_EXT */
   126 /* reuse GL_RGB10_A2_EXT */
   127 #endif
   128 
   129 /* GL_OES_rgb8_rgba8 */
   130 #ifndef GL_OES_rgb8_rgba8
   131 #define GL_RGB8_OES                                             0x8051
   132 #define GL_RGBA8_OES                                            0x8058
   133 #endif
   134 
   135 /* GL_OES_standard_derivatives */
   136 #ifndef GL_OES_standard_derivatives
   137 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                  0x8B8B
   138 #endif
   139 
   140 /* GL_OES_stencil1 */
   141 #ifndef GL_OES_stencil1
   142 #define GL_STENCIL_INDEX1_OES                                   0x8D46
   143 #endif
   144 
   145 /* GL_OES_stencil4 */
   146 #ifndef GL_OES_stencil4
   147 #define GL_STENCIL_INDEX4_OES                                   0x8D47
   148 #endif
   149 
   150 #ifndef GL_OES_surfaceless_context
   151 #define GL_FRAMEBUFFER_UNDEFINED_OES                            0x8219
   152 #endif
   153 
   154 /* GL_OES_texture_3D */
   155 #ifndef GL_OES_texture_3D
   156 #define GL_TEXTURE_WRAP_R_OES                                   0x8072
   157 #define GL_TEXTURE_3D_OES                                       0x806F
   158 #define GL_TEXTURE_BINDING_3D_OES                               0x806A
   159 #define GL_MAX_3D_TEXTURE_SIZE_OES                              0x8073
   160 #define GL_SAMPLER_3D_OES                                       0x8B5F
   161 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES        0x8CD4
   162 #endif
   163 
   164 /* GL_OES_texture_float */
   165 /* No new tokens introduced by this extension. */
   166 
   167 /* GL_OES_texture_float_linear */
   168 /* No new tokens introduced by this extension. */
   169 
   170 /* GL_OES_texture_half_float */
   171 #ifndef GL_OES_texture_half_float
   172 #define GL_HALF_FLOAT_OES                                       0x8D61
   173 #endif
   174 
   175 /* GL_OES_texture_half_float_linear */
   176 /* No new tokens introduced by this extension. */
   177 
   178 /* GL_OES_texture_npot */
   179 /* No new tokens introduced by this extension. */
   180 
   181 /* GL_OES_vertex_array_object */
   182 #ifndef GL_OES_vertex_array_object
   183 #define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
   184 #endif
   185 
   186 /* GL_OES_vertex_half_float */
   187 /* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
   188 
   189 /* GL_OES_vertex_type_10_10_10_2 */
   190 #ifndef GL_OES_vertex_type_10_10_10_2
   191 #define GL_UNSIGNED_INT_10_10_10_2_OES                          0x8DF6
   192 #define GL_INT_10_10_10_2_OES                                   0x8DF7
   193 #endif
   194 
   195 /*------------------------------------------------------------------------*
   196  * KHR extension tokens
   197  *------------------------------------------------------------------------*/
   198 
   199 #ifndef GL_KHR_debug
   200 typedef void (GL_APIENTRYP GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
   201 #define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR                         0x8242
   202 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR                 0x8243
   203 #define GL_DEBUG_CALLBACK_FUNCTION_KHR                          0x8244
   204 #define GL_DEBUG_CALLBACK_USER_PARAM_KHR                        0x8245
   205 #define GL_DEBUG_SOURCE_API_KHR                                 0x8246
   206 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR                       0x8247
   207 #define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR                     0x8248
   208 #define GL_DEBUG_SOURCE_THIRD_PARTY_KHR                         0x8249
   209 #define GL_DEBUG_SOURCE_APPLICATION_KHR                         0x824A
   210 #define GL_DEBUG_SOURCE_OTHER_KHR                               0x824B
   211 #define GL_DEBUG_TYPE_ERROR_KHR                                 0x824C
   212 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR                   0x824D
   213 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR                    0x824E
   214 #define GL_DEBUG_TYPE_PORTABILITY_KHR                           0x824F
   215 #define GL_DEBUG_TYPE_PERFORMANCE_KHR                           0x8250
   216 #define GL_DEBUG_TYPE_OTHER_KHR                                 0x8251
   217 #define GL_DEBUG_TYPE_MARKER_KHR                                0x8268
   218 #define GL_DEBUG_TYPE_PUSH_GROUP_KHR                            0x8269
   219 #define GL_DEBUG_TYPE_POP_GROUP_KHR                             0x826A
   220 #define GL_DEBUG_SEVERITY_NOTIFICATION_KHR                      0x826B
   221 #define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR                      0x826C
   222 #define GL_DEBUG_GROUP_STACK_DEPTH_KHR                          0x826D
   223 #define GL_BUFFER_KHR                                           0x82E0
   224 #define GL_SHADER_KHR                                           0x82E1
   225 #define GL_PROGRAM_KHR                                          0x82E2
   226 #define GL_QUERY_KHR                                            0x82E3
   227 /* PROGRAM_PIPELINE only in GL */
   228 #define GL_SAMPLER_KHR                                          0x82E6
   229 /* DISPLAY_LIST only in GL */
   230 #define GL_MAX_LABEL_LENGTH_KHR                                 0x82E8
   231 #define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR                         0x9143
   232 #define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR                        0x9144
   233 #define GL_DEBUG_LOGGED_MESSAGES_KHR                            0x9145
   234 #define GL_DEBUG_SEVERITY_HIGH_KHR                              0x9146
   235 #define GL_DEBUG_SEVERITY_MEDIUM_KHR                            0x9147
   236 #define GL_DEBUG_SEVERITY_LOW_KHR                               0x9148
   237 #define GL_DEBUG_OUTPUT_KHR                                     0x92E0
   238 #define GL_CONTEXT_FLAG_DEBUG_BIT_KHR                           0x00000002
   239 #define GL_STACK_OVERFLOW_KHR                                   0x0503
   240 #define GL_STACK_UNDERFLOW_KHR                                  0x0504
   241 #endif
   242 
   243 #ifndef GL_KHR_texture_compression_astc_ldr
   244 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR                         0x93B0
   245 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR                         0x93B1
   246 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR                         0x93B2
   247 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR                         0x93B3
   248 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR                         0x93B4
   249 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR                         0x93B5
   250 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR                         0x93B6
   251 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR                         0x93B7
   252 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR                        0x93B8
   253 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR                        0x93B9
   254 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR                        0x93BA
   255 #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR                       0x93BB
   256 #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR                       0x93BC
   257 #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR                       0x93BD
   258 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR                 0x93D0
   259 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR                 0x93D1
   260 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR                 0x93D2
   261 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR                 0x93D3
   262 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR                 0x93D4
   263 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR                 0x93D5
   264 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR                 0x93D6
   265 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR                 0x93D7
   266 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR                0x93D8
   267 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR                0x93D9
   268 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR                0x93DA
   269 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR               0x93DB
   270 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR               0x93DC
   271 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR               0x93DD
   272 #endif
   273 
   274 /*------------------------------------------------------------------------*
   275  * AMD extension tokens
   276  *------------------------------------------------------------------------*/
   277 
   278 /* GL_AMD_compressed_3DC_texture */
   279 #ifndef GL_AMD_compressed_3DC_texture
   280 #define GL_3DC_X_AMD                                            0x87F9
   281 #define GL_3DC_XY_AMD                                           0x87FA
   282 #endif
   283 
   284 /* GL_AMD_compressed_ATC_texture */
   285 #ifndef GL_AMD_compressed_ATC_texture
   286 #define GL_ATC_RGB_AMD                                          0x8C92
   287 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
   288 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
   289 #endif
   290 
   291 /* GL_AMD_performance_monitor */
   292 #ifndef GL_AMD_performance_monitor
   293 #define GL_COUNTER_TYPE_AMD                                     0x8BC0
   294 #define GL_COUNTER_RANGE_AMD                                    0x8BC1
   295 #define GL_UNSIGNED_INT64_AMD                                   0x8BC2
   296 #define GL_PERCENTAGE_AMD                                       0x8BC3
   297 #define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
   298 #define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
   299 #define GL_PERFMON_RESULT_AMD                                   0x8BC6
   300 #endif
   301 
   302 /* GL_AMD_program_binary_Z400 */
   303 #ifndef GL_AMD_program_binary_Z400
   304 #define GL_Z400_BINARY_AMD                                      0x8740
   305 #endif
   306 
   307 /*------------------------------------------------------------------------*
   308  * ANGLE extension tokens
   309  *------------------------------------------------------------------------*/
   310 
   311 /* GL_ANGLE_depth_texture */
   312 #ifndef GL_ANGLE_depth_texture
   313 #define GL_DEPTH_COMPONENT                                      0x1902
   314 #define GL_DEPTH_STENCIL_OES                                    0x84F9
   315 #define GL_UNSIGNED_SHORT                                       0x1403
   316 #define GL_UNSIGNED_INT                                         0x1405
   317 #define GL_UNSIGNED_INT_24_8_OES                                0x84FA
   318 #define GL_DEPTH_COMPONENT16                                    0x81A5
   319 #define GL_DEPTH_COMPONENT32_OES                                0x81A7
   320 #define GL_DEPTH24_STENCIL8_OES                                 0x88F0
   321 #endif
   322 
   323 /* GL_ANGLE_framebuffer_blit */
   324 #ifndef GL_ANGLE_framebuffer_blit
   325 #define GL_READ_FRAMEBUFFER_ANGLE                               0x8CA8
   326 #define GL_DRAW_FRAMEBUFFER_ANGLE                               0x8CA9
   327 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                       0x8CA6
   328 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE                       0x8CAA
   329 #endif
   330 
   331 /* GL_ANGLE_framebuffer_multisample */
   332 #ifndef GL_ANGLE_framebuffer_multisample
   333 #define GL_RENDERBUFFER_SAMPLES_ANGLE                           0x8CAB
   334 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE             0x8D56
   335 #define GL_MAX_SAMPLES_ANGLE                                    0x8D57
   336 #endif
   337 
   338 /* GL_ANGLE_instanced_arrays */
   339 #ifndef GL_ANGLE_instanced_arrays
   340 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE                    0x88FE
   341 #endif
   342 
   343 /* GL_ANGLE_pack_reverse_row_order */
   344 #ifndef GL_ANGLE_pack_reverse_row_order
   345 #define GL_PACK_REVERSE_ROW_ORDER_ANGLE                         0x93A4
   346 #endif
   347 
   348 /* GL_ANGLE_program_binary */
   349 #ifndef GL_ANGLE_program_binary
   350 #define GL_PROGRAM_BINARY_ANGLE                                 0x93A6
   351 #endif
   352 
   353 /* GL_ANGLE_texture_compression_dxt3 */
   354 #ifndef GL_ANGLE_texture_compression_dxt3
   355 #define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE                      0x83F2
   356 #endif
   357 
   358 /* GL_ANGLE_texture_compression_dxt5 */
   359 #ifndef GL_ANGLE_texture_compression_dxt5
   360 #define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE                      0x83F3
   361 #endif
   362 
   363 /* GL_ANGLE_texture_usage */
   364 #ifndef GL_ANGLE_texture_usage
   365 #define GL_TEXTURE_USAGE_ANGLE                                  0x93A2
   366 #define GL_FRAMEBUFFER_ATTACHMENT_ANGLE                         0x93A3
   367 #endif
   368 
   369 /* GL_ANGLE_translated_shader_source */
   370 #ifndef GL_ANGLE_translated_shader_source
   371 #define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE                0x93A0
   372 #endif
   373 
   374 /*------------------------------------------------------------------------*
   375  * APPLE extension tokens
   376  *------------------------------------------------------------------------*/
   377 
   378 /* GL_APPLE_copy_texture_levels */
   379 /* No new tokens introduced by this extension. */
   380 
   381 /* GL_APPLE_framebuffer_multisample */
   382 #ifndef GL_APPLE_framebuffer_multisample
   383 #define GL_RENDERBUFFER_SAMPLES_APPLE                           0x8CAB
   384 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE             0x8D56
   385 #define GL_MAX_SAMPLES_APPLE                                    0x8D57
   386 #define GL_READ_FRAMEBUFFER_APPLE                               0x8CA8
   387 #define GL_DRAW_FRAMEBUFFER_APPLE                               0x8CA9
   388 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                       0x8CA6
   389 #define GL_READ_FRAMEBUFFER_BINDING_APPLE                       0x8CAA
   390 #endif
   391 
   392 /* GL_APPLE_rgb_422 */
   393 #ifndef GL_APPLE_rgb_422
   394 #define GL_RGB_422_APPLE                                        0x8A1F
   395 #define GL_UNSIGNED_SHORT_8_8_APPLE                             0x85BA
   396 #define GL_UNSIGNED_SHORT_8_8_REV_APPLE                         0x85BB
   397 #endif
   398 
   399 /* GL_APPLE_sync */
   400 #ifndef GL_APPLE_sync
   401 
   402 #define GL_SYNC_OBJECT_APPLE                                    0x8A53
   403 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE                        0x9111
   404 #define GL_OBJECT_TYPE_APPLE                                    0x9112
   405 #define GL_SYNC_CONDITION_APPLE                                 0x9113
   406 #define GL_SYNC_STATUS_APPLE                                    0x9114
   407 #define GL_SYNC_FLAGS_APPLE                                     0x9115
   408 #define GL_SYNC_FENCE_APPLE                                     0x9116
   409 #define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE                     0x9117
   410 #define GL_UNSIGNALED_APPLE                                     0x9118
   411 #define GL_SIGNALED_APPLE                                       0x9119
   412 #define GL_ALREADY_SIGNALED_APPLE                               0x911A
   413 #define GL_TIMEOUT_EXPIRED_APPLE                                0x911B
   414 #define GL_CONDITION_SATISFIED_APPLE                            0x911C
   415 #define GL_WAIT_FAILED_APPLE                                    0x911D
   416 #define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE                        0x00000001
   417 #define GL_TIMEOUT_IGNORED_APPLE                                0xFFFFFFFFFFFFFFFFull
   418 #endif
   419 
   420 /* GL_APPLE_texture_format_BGRA8888 */
   421 #ifndef GL_APPLE_texture_format_BGRA8888
   422 #define GL_BGRA_EXT                                             0x80E1
   423 #endif
   424 
   425 /* GL_APPLE_texture_max_level */
   426 #ifndef GL_APPLE_texture_max_level
   427 #define GL_TEXTURE_MAX_LEVEL_APPLE                              0x813D
   428 #endif
   429 
   430 /*------------------------------------------------------------------------*
   431  * ARM extension tokens
   432  *------------------------------------------------------------------------*/
   433 
   434 /* GL_ARM_mali_program_binary */
   435 #ifndef GL_ARM_mali_program_binary
   436 #define GL_MALI_PROGRAM_BINARY_ARM                              0x8F61
   437 #endif
   438 
   439 /* GL_ARM_mali_shader_binary */
   440 #ifndef GL_ARM_mali_shader_binary
   441 #define GL_MALI_SHADER_BINARY_ARM                               0x8F60
   442 #endif
   443 
   444 /* GL_ARM_rgba8 */
   445 /* No new tokens introduced by this extension. */
   446 
   447 /*------------------------------------------------------------------------*
   448  * EXT extension tokens
   449  *------------------------------------------------------------------------*/
   450 
   451 /* GL_EXT_blend_minmax */
   452 #ifndef GL_EXT_blend_minmax
   453 #define GL_MIN_EXT                                              0x8007
   454 #define GL_MAX_EXT                                              0x8008
   455 #endif
   456 
   457 /* GL_EXT_color_buffer_half_float */
   458 #ifndef GL_EXT_color_buffer_half_float
   459 #define GL_RGBA16F_EXT                                          0x881A
   460 #define GL_RGB16F_EXT                                           0x881B
   461 #define GL_RG16F_EXT                                            0x822F
   462 #define GL_R16F_EXT                                             0x822D
   463 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT            0x8211
   464 #define GL_UNSIGNED_NORMALIZED_EXT                              0x8C17
   465 #endif
   466 
   467 /* GL_EXT_debug_label */
   468 #ifndef GL_EXT_debug_label
   469 #define GL_PROGRAM_PIPELINE_OBJECT_EXT                          0x8A4F
   470 #define GL_PROGRAM_OBJECT_EXT                                   0x8B40
   471 #define GL_SHADER_OBJECT_EXT                                    0x8B48
   472 #define GL_BUFFER_OBJECT_EXT                                    0x9151
   473 #define GL_QUERY_OBJECT_EXT                                     0x9153
   474 #define GL_VERTEX_ARRAY_OBJECT_EXT                              0x9154
   475 #endif
   476 
   477 /* GL_EXT_debug_marker */
   478 /* No new tokens introduced by this extension. */
   479 
   480 /* GL_EXT_discard_framebuffer */
   481 #ifndef GL_EXT_discard_framebuffer
   482 #define GL_COLOR_EXT                                            0x1800
   483 #define GL_DEPTH_EXT                                            0x1801
   484 #define GL_STENCIL_EXT                                          0x1802
   485 #endif
   486 
   487 #ifndef GL_EXT_disjoint_timer_query
   488 #define GL_QUERY_COUNTER_BITS_EXT                               0x8864
   489 #define GL_CURRENT_QUERY_EXT                                    0x8865
   490 #define GL_QUERY_RESULT_EXT                                     0x8866
   491 #define GL_QUERY_RESULT_AVAILABLE_EXT                           0x8867
   492 #define GL_TIME_ELAPSED_EXT                                     0x88BF
   493 #define GL_TIMESTAMP_EXT                                        0x8E28
   494 #define GL_GPU_DISJOINT_EXT                                     0x8FBB
   495 #endif
   496 
   497 #ifndef GL_EXT_draw_buffers
   498 #define GL_EXT_draw_buffers 1
   499 #define GL_MAX_COLOR_ATTACHMENTS_EXT                            0x8CDF
   500 #define GL_MAX_DRAW_BUFFERS_EXT                                 0x8824
   501 #define GL_DRAW_BUFFER0_EXT                                     0x8825
   502 #define GL_DRAW_BUFFER1_EXT                                     0x8826
   503 #define GL_DRAW_BUFFER2_EXT                                     0x8827
   504 #define GL_DRAW_BUFFER3_EXT                                     0x8828
   505 #define GL_DRAW_BUFFER4_EXT                                     0x8829
   506 #define GL_DRAW_BUFFER5_EXT                                     0x882A
   507 #define GL_DRAW_BUFFER6_EXT                                     0x882B
   508 #define GL_DRAW_BUFFER7_EXT                                     0x882C
   509 #define GL_DRAW_BUFFER8_EXT                                     0x882D
   510 #define GL_DRAW_BUFFER9_EXT                                     0x882E
   511 #define GL_DRAW_BUFFER10_EXT                                    0x882F
   512 #define GL_DRAW_BUFFER11_EXT                                    0x8830
   513 #define GL_DRAW_BUFFER12_EXT                                    0x8831
   514 #define GL_DRAW_BUFFER13_EXT                                    0x8832
   515 #define GL_DRAW_BUFFER14_EXT                                    0x8833
   516 #define GL_DRAW_BUFFER15_EXT                                    0x8834
   517 #define GL_COLOR_ATTACHMENT0_EXT                                0x8CE0
   518 #define GL_COLOR_ATTACHMENT1_EXT                                0x8CE1
   519 #define GL_COLOR_ATTACHMENT2_EXT                                0x8CE2
   520 #define GL_COLOR_ATTACHMENT3_EXT                                0x8CE3
   521 #define GL_COLOR_ATTACHMENT4_EXT                                0x8CE4
   522 #define GL_COLOR_ATTACHMENT5_EXT                                0x8CE5
   523 #define GL_COLOR_ATTACHMENT6_EXT                                0x8CE6
   524 #define GL_COLOR_ATTACHMENT7_EXT                                0x8CE7
   525 #define GL_COLOR_ATTACHMENT8_EXT                                0x8CE8
   526 #define GL_COLOR_ATTACHMENT9_EXT                                0x8CE9
   527 #define GL_COLOR_ATTACHMENT10_EXT                               0x8CEA
   528 #define GL_COLOR_ATTACHMENT11_EXT                               0x8CEB
   529 #define GL_COLOR_ATTACHMENT12_EXT                               0x8CEC
   530 #define GL_COLOR_ATTACHMENT13_EXT                               0x8CED
   531 #define GL_COLOR_ATTACHMENT14_EXT                               0x8CEE
   532 #define GL_COLOR_ATTACHMENT15_EXT                               0x8CEF
   533 #endif
   534 
   535 /* GL_EXT_map_buffer_range */
   536 #ifndef GL_EXT_map_buffer_range
   537 #define GL_MAP_READ_BIT_EXT                                     0x0001
   538 #define GL_MAP_WRITE_BIT_EXT                                    0x0002
   539 #define GL_MAP_INVALIDATE_RANGE_BIT_EXT                         0x0004
   540 #define GL_MAP_INVALIDATE_BUFFER_BIT_EXT                        0x0008
   541 #define GL_MAP_FLUSH_EXPLICIT_BIT_EXT                           0x0010
   542 #define GL_MAP_UNSYNCHRONIZED_BIT_EXT                           0x0020
   543 #endif
   544 
   545 /* GL_EXT_multisampled_render_to_texture */
   546 #ifndef GL_EXT_multisampled_render_to_texture
   547 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT           0x8D6C
   548 /* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */
   549 #define GL_RENDERBUFFER_SAMPLES_EXT                             0x8CAB
   550 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT               0x8D56
   551 #define GL_MAX_SAMPLES_EXT                                      0x8D57
   552 #endif
   553 
   554 /* GL_EXT_multiview_draw_buffers */
   555 #ifndef GL_EXT_multiview_draw_buffers
   556 #define GL_COLOR_ATTACHMENT_EXT                                 0x90F0
   557 #define GL_MULTIVIEW_EXT                                        0x90F1
   558 #define GL_DRAW_BUFFER_EXT                                      0x0C01
   559 #define GL_READ_BUFFER_EXT                                      0x0C02
   560 #define GL_MAX_MULTIVIEW_BUFFERS_EXT                            0x90F2
   561 #endif
   562 
   563 /* GL_EXT_multi_draw_arrays */
   564 /* No new tokens introduced by this extension. */
   565 
   566 /* GL_EXT_occlusion_query_boolean */
   567 #ifndef GL_EXT_occlusion_query_boolean
   568 #define GL_ANY_SAMPLES_PASSED_EXT                               0x8C2F
   569 #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT                  0x8D6A
   570 #define GL_CURRENT_QUERY_EXT                                    0x8865
   571 #define GL_QUERY_RESULT_EXT                                     0x8866
   572 #define GL_QUERY_RESULT_AVAILABLE_EXT                           0x8867
   573 #endif
   574 
   575 /* GL_EXT_read_format_bgra */
   576 #ifndef GL_EXT_read_format_bgra
   577 #define GL_BGRA_EXT                                             0x80E1
   578 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
   579 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
   580 #endif
   581 
   582 /* GL_EXT_robustness */
   583 #ifndef GL_EXT_robustness
   584 /* reuse GL_NO_ERROR */
   585 #define GL_GUILTY_CONTEXT_RESET_EXT                             0x8253
   586 #define GL_INNOCENT_CONTEXT_RESET_EXT                           0x8254
   587 #define GL_UNKNOWN_CONTEXT_RESET_EXT                            0x8255
   588 #define GL_CONTEXT_ROBUST_ACCESS_EXT                            0x90F3
   589 #define GL_RESET_NOTIFICATION_STRATEGY_EXT                      0x8256
   590 #define GL_LOSE_CONTEXT_ON_RESET_EXT                            0x8252
   591 #define GL_NO_RESET_NOTIFICATION_EXT                            0x8261
   592 #endif
   593 
   594 /* GL_EXT_separate_shader_objects */
   595 #ifndef GL_EXT_separate_shader_objects
   596 #define GL_VERTEX_SHADER_BIT_EXT                                0x00000001
   597 #define GL_FRAGMENT_SHADER_BIT_EXT                              0x00000002
   598 #define GL_ALL_SHADER_BITS_EXT                                  0xFFFFFFFF
   599 #define GL_PROGRAM_SEPARABLE_EXT                                0x8258
   600 #define GL_ACTIVE_PROGRAM_EXT                                   0x8259
   601 #define GL_PROGRAM_PIPELINE_BINDING_EXT                         0x825A
   602 #endif
   603 
   604 /* GL_EXT_shader_framebuffer_fetch */
   605 #ifndef GL_EXT_shader_framebuffer_fetch
   606 #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT                 0x8A52
   607 #endif
   608 
   609 /* GL_EXT_shader_texture_lod */
   610 /* No new tokens introduced by this extension. */
   611 
   612 /* GL_EXT_shadow_samplers */
   613 #ifndef GL_EXT_shadow_samplers
   614 #define GL_TEXTURE_COMPARE_MODE_EXT                             0x884C
   615 #define GL_TEXTURE_COMPARE_FUNC_EXT                             0x884D
   616 #define GL_COMPARE_REF_TO_TEXTURE_EXT                           0x884E
   617 #define GL_SAMPLER_2D_SHADOW_EXT                                0x8B62
   618 #endif
   619 
   620 /* GL_EXT_sRGB */
   621 #ifndef GL_EXT_sRGB
   622 #define GL_SRGB_EXT                                             0x8C40
   623 #define GL_SRGB_ALPHA_EXT                                       0x8C42
   624 #define GL_SRGB8_ALPHA8_EXT                                     0x8C43
   625 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT            0x8210
   626 #endif
   627 
   628 /* GL_EXT_sRGB_write_control */
   629 #ifndef GL_EXT_sRGB_write_control
   630 #define GL_EXT_sRGB_write_control 1
   631 #define GL_FRAMEBUFFER_SRGB_EXT                                 0x8DB9
   632 #endif
   633 
   634 /* GL_EXT_texture_compression_dxt1 */
   635 #ifndef GL_EXT_texture_compression_dxt1
   636 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                         0x83F0
   637 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                        0x83F1
   638 #endif
   639 
   640 /* GL_EXT_texture_filter_anisotropic */
   641 #ifndef GL_EXT_texture_filter_anisotropic
   642 #define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
   643 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
   644 #endif
   645 
   646 /* GL_EXT_texture_format_BGRA8888 */
   647 #ifndef GL_EXT_texture_format_BGRA8888
   648 #define GL_BGRA_EXT                                             0x80E1
   649 #endif
   650 
   651 /* GL_EXT_texture_rg */
   652 #ifndef GL_EXT_texture_rg
   653 #define GL_RED_EXT                                              0x1903
   654 #define GL_RG_EXT                                               0x8227
   655 #define GL_R8_EXT                                               0x8229
   656 #define GL_RG8_EXT                                              0x822B
   657 #endif
   658 
   659 /* GL_EXT_texture_sRGB_decode */
   660 #ifndef GL_EXT_texture_sRGB_decode
   661 #define GL_EXT_texture_sRGB_decode 1
   662 #define GL_TEXTURE_SRGB_DECODE_EXT                              0x8A48
   663 #define GL_DECODE_EXT                                           0x8A49
   664 #define GL_SKIP_DECODE_EXT                                      0x8A4A
   665 #endif
   666 
   667 /* GL_EXT_texture_storage */
   668 #ifndef GL_EXT_texture_storage
   669 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT                         0x912F
   670 #define GL_ALPHA8_EXT                                           0x803C
   671 #define GL_LUMINANCE8_EXT                                       0x8040
   672 #define GL_LUMINANCE8_ALPHA8_EXT                                0x8045
   673 #define GL_RGBA32F_EXT                                          0x8814
   674 #define GL_RGB32F_EXT                                           0x8815
   675 #define GL_ALPHA32F_EXT                                         0x8816
   676 #define GL_LUMINANCE32F_EXT                                     0x8818
   677 #define GL_LUMINANCE_ALPHA32F_EXT                               0x8819
   678 /* reuse GL_RGBA16F_EXT */
   679 /* reuse GL_RGB16F_EXT */
   680 #define GL_ALPHA16F_EXT                                         0x881C
   681 #define GL_LUMINANCE16F_EXT                                     0x881E
   682 #define GL_LUMINANCE_ALPHA16F_EXT                               0x881F
   683 #define GL_RGB10_A2_EXT                                         0x8059
   684 #define GL_RGB10_EXT                                            0x8052
   685 #define GL_BGRA8_EXT                                            0x93A1
   686 #define GL_R8_EXT                                               0x8229
   687 #define GL_RG8_EXT                                              0x822B
   688 #define GL_R32F_EXT                                             0x822E
   689 #define GL_RG32F_EXT                                            0x8230
   690 #define GL_R16F_EXT                                             0x822D
   691 #define GL_RG16F_EXT                                            0x822F
   692 #endif
   693 
   694 /* GL_EXT_texture_type_2_10_10_10_REV */
   695 #ifndef GL_EXT_texture_type_2_10_10_10_REV
   696 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
   697 #endif
   698 
   699 /* GL_EXT_unpack_subimage */
   700 #ifndef GL_EXT_unpack_subimage
   701 #define GL_UNPACK_ROW_LENGTH_EXT                                0x0CF2
   702 #define GL_UNPACK_SKIP_ROWS_EXT                                 0x0CF3
   703 #define GL_UNPACK_SKIP_PIXELS_EXT                               0x0CF4
   704 #endif
   705 
   706 /*------------------------------------------------------------------------*
   707  * DMP extension tokens
   708  *------------------------------------------------------------------------*/
   709 
   710 /* GL_DMP_shader_binary */
   711 #ifndef GL_DMP_shader_binary
   712 #define GL_SHADER_BINARY_DMP                                    0x9250
   713 #endif
   714 
   715 /*------------------------------------------------------------------------*
   716  * FJ extension tokens
   717  *------------------------------------------------------------------------*/
   718 
   719 /* GL_FJ_shader_binary_GCCSO */
   720 #ifndef GL_FJ_shader_binary_GCCSO
   721 #define GL_GCCSO_SHADER_BINARY_FJ                               0x9260
   722 #endif
   723 
   724 /*------------------------------------------------------------------------*
   725  * IMG extension tokens
   726  *------------------------------------------------------------------------*/
   727 
   728 /* GL_IMG_program_binary */
   729 #ifndef GL_IMG_program_binary
   730 #define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
   731 #endif
   732 
   733 /* GL_IMG_read_format */
   734 #ifndef GL_IMG_read_format
   735 #define GL_BGRA_IMG                                             0x80E1
   736 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
   737 #endif
   738 
   739 /* GL_IMG_shader_binary */
   740 #ifndef GL_IMG_shader_binary
   741 #define GL_SGX_BINARY_IMG                                       0x8C0A
   742 #endif
   743 
   744 /* GL_IMG_texture_compression_pvrtc */
   745 #ifndef GL_IMG_texture_compression_pvrtc
   746 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
   747 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
   748 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
   749 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
   750 #endif
   751 
   752 /* GL_IMG_texture_compression_pvrtc2 */
   753 #ifndef GL_IMG_texture_compression_pvrtc2
   754 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG                     0x9137
   755 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG                     0x9138
   756 #endif
   757 
   758 /* GL_IMG_multisampled_render_to_texture */
   759 #ifndef GL_IMG_multisampled_render_to_texture
   760 #define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
   761 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
   762 #define GL_MAX_SAMPLES_IMG                                      0x9135
   763 #define GL_TEXTURE_SAMPLES_IMG                                  0x9136
   764 #endif
   765 
   766 /*------------------------------------------------------------------------*
   767  * NV extension tokens
   768  *------------------------------------------------------------------------*/
   769 
   770 /* GL_NV_coverage_sample */
   771 #ifndef GL_NV_coverage_sample
   772 #define GL_COVERAGE_COMPONENT_NV                                0x8ED0
   773 #define GL_COVERAGE_COMPONENT4_NV                               0x8ED1
   774 #define GL_COVERAGE_ATTACHMENT_NV                               0x8ED2
   775 #define GL_COVERAGE_BUFFERS_NV                                  0x8ED3
   776 #define GL_COVERAGE_SAMPLES_NV                                  0x8ED4
   777 #define GL_COVERAGE_ALL_FRAGMENTS_NV                            0x8ED5
   778 #define GL_COVERAGE_EDGE_FRAGMENTS_NV                           0x8ED6
   779 #define GL_COVERAGE_AUTOMATIC_NV                                0x8ED7
   780 #define GL_COVERAGE_BUFFER_BIT_NV                               0x00008000
   781 #endif
   782 
   783 /* GL_NV_depth_nonlinear */
   784 #ifndef GL_NV_depth_nonlinear
   785 #define GL_DEPTH_COMPONENT16_NONLINEAR_NV                       0x8E2C
   786 #endif
   787 
   788 /* GL_NV_draw_buffers */
   789 #ifndef GL_NV_draw_buffers
   790 #define GL_MAX_DRAW_BUFFERS_NV                                  0x8824
   791 #define GL_DRAW_BUFFER0_NV                                      0x8825
   792 #define GL_DRAW_BUFFER1_NV                                      0x8826
   793 #define GL_DRAW_BUFFER2_NV                                      0x8827
   794 #define GL_DRAW_BUFFER3_NV                                      0x8828
   795 #define GL_DRAW_BUFFER4_NV                                      0x8829
   796 #define GL_DRAW_BUFFER5_NV                                      0x882A
   797 #define GL_DRAW_BUFFER6_NV                                      0x882B
   798 #define GL_DRAW_BUFFER7_NV                                      0x882C
   799 #define GL_DRAW_BUFFER8_NV                                      0x882D
   800 #define GL_DRAW_BUFFER9_NV                                      0x882E
   801 #define GL_DRAW_BUFFER10_NV                                     0x882F
   802 #define GL_DRAW_BUFFER11_NV                                     0x8830
   803 #define GL_DRAW_BUFFER12_NV                                     0x8831
   804 #define GL_DRAW_BUFFER13_NV                                     0x8832
   805 #define GL_DRAW_BUFFER14_NV                                     0x8833
   806 #define GL_DRAW_BUFFER15_NV                                     0x8834
   807 #define GL_COLOR_ATTACHMENT0_NV                                 0x8CE0
   808 #define GL_COLOR_ATTACHMENT1_NV                                 0x8CE1
   809 #define GL_COLOR_ATTACHMENT2_NV                                 0x8CE2
   810 #define GL_COLOR_ATTACHMENT3_NV                                 0x8CE3
   811 #define GL_COLOR_ATTACHMENT4_NV                                 0x8CE4
   812 #define GL_COLOR_ATTACHMENT5_NV                                 0x8CE5
   813 #define GL_COLOR_ATTACHMENT6_NV                                 0x8CE6
   814 #define GL_COLOR_ATTACHMENT7_NV                                 0x8CE7
   815 #define GL_COLOR_ATTACHMENT8_NV                                 0x8CE8
   816 #define GL_COLOR_ATTACHMENT9_NV                                 0x8CE9
   817 #define GL_COLOR_ATTACHMENT10_NV                                0x8CEA
   818 #define GL_COLOR_ATTACHMENT11_NV                                0x8CEB
   819 #define GL_COLOR_ATTACHMENT12_NV                                0x8CEC
   820 #define GL_COLOR_ATTACHMENT13_NV                                0x8CED
   821 #define GL_COLOR_ATTACHMENT14_NV                                0x8CEE
   822 #define GL_COLOR_ATTACHMENT15_NV                                0x8CEF
   823 #endif
   824 
   825 /* GL_NV_draw_instanced */
   826 /* No new tokens introduced by this extension. */
   827 
   828 /* GL_NV_fbo_color_attachments */
   829 #ifndef GL_NV_fbo_color_attachments
   830 #define GL_MAX_COLOR_ATTACHMENTS_NV                             0x8CDF
   831 /* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
   832 #endif
   833 
   834 /* GL_NV_fence */
   835 #ifndef GL_NV_fence
   836 #define GL_ALL_COMPLETED_NV                                     0x84F2
   837 #define GL_FENCE_STATUS_NV                                      0x84F3
   838 #define GL_FENCE_CONDITION_NV                                   0x84F4
   839 #endif
   840 
   841 /* GL_NV_framebuffer_blit */
   842 #ifndef GL_NV_framebuffer_blit
   843 #define GL_READ_FRAMEBUFFER_NV                                  0x8CA8
   844 #define GL_DRAW_FRAMEBUFFER_NV                                  0x8CA9
   845 #define GL_DRAW_FRAMEBUFFER_BINDING_NV                          0x8CA6
   846 #define GL_READ_FRAMEBUFFER_BINDING_NV                          0x8CAA
   847 #endif
   848 
   849 /* GL_NV_framebuffer_multisample */
   850 #ifndef GL_NV_framebuffer_multisample
   851 #define GL_RENDERBUFFER_SAMPLES_NV                              0x8CAB
   852 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV                0x8D56
   853 #define GL_MAX_SAMPLES_NV                                       0x8D57
   854 #endif
   855 
   856 /* GL_NV_generate_mipmap_sRGB */
   857 /* No new tokens introduced by this extension. */
   858 
   859 /* GL_NV_instanced_arrays */
   860 #ifndef GL_NV_instanced_arrays
   861 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV                       0x88FE
   862 #endif
   863 
   864 /* GL_NV_read_buffer */
   865 #ifndef GL_NV_read_buffer
   866 #define GL_READ_BUFFER_NV                                       0x0C02
   867 #endif
   868 
   869 /* GL_NV_read_buffer_front */
   870 /* No new tokens introduced by this extension. */
   871 
   872 /* GL_NV_read_depth */
   873 /* No new tokens introduced by this extension. */
   874 
   875 /* GL_NV_read_depth_stencil */
   876 /* No new tokens introduced by this extension. */
   877 
   878 /* GL_NV_read_stencil */
   879 /* No new tokens introduced by this extension. */
   880 
   881 /* GL_NV_shadow_samplers_array */
   882 #ifndef GL_NV_shadow_samplers_array
   883 #define GL_SAMPLER_2D_ARRAY_SHADOW_NV                           0x8DC4
   884 #endif
   885 
   886 /* GL_NV_shadow_samplers_cube */
   887 #ifndef GL_NV_shadow_samplers_cube
   888 #define GL_SAMPLER_CUBE_SHADOW_NV                               0x8DC5
   889 #endif
   890 
   891 /* GL_NV_sRGB_formats */
   892 #ifndef GL_NV_sRGB_formats
   893 #define GL_SLUMINANCE_NV                                        0x8C46
   894 #define GL_SLUMINANCE_ALPHA_NV                                  0x8C44
   895 #define GL_SRGB8_NV                                             0x8C41
   896 #define GL_SLUMINANCE8_NV                                       0x8C47
   897 #define GL_SLUMINANCE8_ALPHA8_NV                                0x8C45
   898 #define GL_COMPRESSED_SRGB_S3TC_DXT1_NV                         0x8C4C
   899 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV                   0x8C4D
   900 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV                   0x8C4E
   901 #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV                   0x8C4F
   902 #define GL_ETC1_SRGB8_NV                                        0x88EE
   903 #endif
   904 
   905 /* GL_NV_texture_border_clamp */
   906 #ifndef GL_NV_texture_border_clamp
   907 #define GL_TEXTURE_BORDER_COLOR_NV                              0x1004
   908 #define GL_CLAMP_TO_BORDER_NV                                   0x812D
   909 #endif
   910 
   911 /* GL_NV_texture_compression_s3tc_update */
   912 /* No new tokens introduced by this extension. */
   913 
   914 /* GL_NV_texture_npot_2D_mipmap */
   915 /* No new tokens introduced by this extension. */
   916 
   917 /*------------------------------------------------------------------------*
   918  * QCOM extension tokens
   919  *------------------------------------------------------------------------*/
   920 
   921 /* GL_QCOM_alpha_test */
   922 #ifndef GL_QCOM_alpha_test
   923 #define GL_ALPHA_TEST_QCOM                                      0x0BC0
   924 #define GL_ALPHA_TEST_FUNC_QCOM                                 0x0BC1
   925 #define GL_ALPHA_TEST_REF_QCOM                                  0x0BC2
   926 #endif
   927 
   928 /* GL_QCOM_binning_control */
   929 #ifndef GL_QCOM_binning_control
   930 #define GL_BINNING_CONTROL_HINT_QCOM                            0x8FB0
   931 #define GL_CPU_OPTIMIZED_QCOM                                   0x8FB1
   932 #define GL_GPU_OPTIMIZED_QCOM                                   0x8FB2
   933 #define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM                    0x8FB3
   934 #endif
   935 
   936 /* GL_QCOM_driver_control */
   937 /* No new tokens introduced by this extension. */
   938 
   939 /* GL_QCOM_extended_get */
   940 #ifndef GL_QCOM_extended_get
   941 #define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
   942 #define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
   943 #define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
   944 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
   945 #define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
   946 #define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
   947 #define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
   948 #define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
   949 #define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
   950 #define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
   951 #define GL_STATE_RESTORE                                        0x8BDC
   952 #endif
   953 
   954 /* GL_QCOM_extended_get2 */
   955 /* No new tokens introduced by this extension. */
   956 
   957 /* GL_QCOM_perfmon_global_mode */
   958 #ifndef GL_QCOM_perfmon_global_mode
   959 #define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
   960 #endif
   961 
   962 /* GL_QCOM_writeonly_rendering */
   963 #ifndef GL_QCOM_writeonly_rendering
   964 #define GL_WRITEONLY_RENDERING_QCOM                             0x8823
   965 #endif
   966 
   967 /* GL_QCOM_tiled_rendering */
   968 #ifndef GL_QCOM_tiled_rendering
   969 #define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
   970 #define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
   971 #define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
   972 #define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
   973 #define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
   974 #define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
   975 #define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
   976 #define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
   977 #define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
   978 #define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
   979 #define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
   980 #define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
   981 #define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
   982 #define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
   983 #define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
   984 #define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
   985 #define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
   986 #define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
   987 #define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
   988 #define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
   989 #define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
   990 #define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
   991 #define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
   992 #define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
   993 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
   994 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
   995 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
   996 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
   997 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
   998 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
   999 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
  1000 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
  1001 #endif
  1002 
  1003 /*------------------------------------------------------------------------*
  1004  * VIV extension tokens
  1005  *------------------------------------------------------------------------*/
  1006 
  1007 /* GL_VIV_shader_binary */
  1008 #ifndef GL_VIV_shader_binary
  1009 #define GL_SHADER_BINARY_VIV                                    0x8FC4
  1010 #endif
  1011 
  1012 /*------------------------------------------------------------------------*
  1013  * End of extension tokens, start of corresponding extension functions
  1014  *------------------------------------------------------------------------*/
  1015 
  1016 /*------------------------------------------------------------------------*
  1017  * OES extension functions
  1018  *------------------------------------------------------------------------*/
  1019 
  1020 /* GL_OES_compressed_ETC1_RGB8_texture */
  1021 #ifndef GL_OES_compressed_ETC1_RGB8_texture
  1022 #define GL_OES_compressed_ETC1_RGB8_texture 1
  1023 #endif
  1024 
  1025 /* GL_OES_compressed_paletted_texture */
  1026 #ifndef GL_OES_compressed_paletted_texture
  1027 #define GL_OES_compressed_paletted_texture 1
  1028 #endif
  1029 
  1030 /* GL_OES_depth24 */
  1031 #ifndef GL_OES_depth24
  1032 #define GL_OES_depth24 1
  1033 #endif
  1034 
  1035 /* GL_OES_depth32 */
  1036 #ifndef GL_OES_depth32
  1037 #define GL_OES_depth32 1
  1038 #endif
  1039 
  1040 /* GL_OES_depth_texture */
  1041 #ifndef GL_OES_depth_texture
  1042 #define GL_OES_depth_texture 1
  1043 #endif
  1044 
  1045 /* GL_OES_EGL_image */
  1046 #ifndef GL_OES_EGL_image
  1047 #define GL_OES_EGL_image 1
  1048 #ifdef GL_GLEXT_PROTOTYPES
  1049 GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
  1050 GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
  1051 #endif
  1052 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
  1053 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
  1054 #endif
  1055 
  1056 /* GL_OES_EGL_image_external */
  1057 #ifndef GL_OES_EGL_image_external
  1058 #define GL_OES_EGL_image_external 1
  1059 /* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
  1060 #endif
  1061 
  1062 /* GL_OES_element_index_uint */
  1063 #ifndef GL_OES_element_index_uint
  1064 #define GL_OES_element_index_uint 1
  1065 #endif
  1066 
  1067 /* GL_OES_fbo_render_mipmap */
  1068 #ifndef GL_OES_fbo_render_mipmap
  1069 #define GL_OES_fbo_render_mipmap 1
  1070 #endif
  1071 
  1072 /* GL_OES_fragment_precision_high */
  1073 #ifndef GL_OES_fragment_precision_high
  1074 #define GL_OES_fragment_precision_high 1
  1075 #endif
  1076 
  1077 /* GL_OES_get_program_binary */
  1078 #ifndef GL_OES_get_program_binary
  1079 #define GL_OES_get_program_binary 1
  1080 #ifdef GL_GLEXT_PROTOTYPES
  1081 GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
  1082 GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
  1083 #endif
  1084 typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
  1085 typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
  1086 #endif
  1087 
  1088 /* GL_OES_mapbuffer */
  1089 #ifndef GL_OES_mapbuffer
  1090 #define GL_OES_mapbuffer 1
  1091 #ifdef GL_GLEXT_PROTOTYPES
  1092 GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
  1093 GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
  1094 GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid **params);
  1095 #endif
  1096 typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
  1097 typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
  1098 typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid **params);
  1099 #endif
  1100 
  1101 /* GL_OES_packed_depth_stencil */
  1102 #ifndef GL_OES_packed_depth_stencil
  1103 #define GL_OES_packed_depth_stencil 1
  1104 #endif
  1105 
  1106 /* GL_OES_required_internalformat */
  1107 #ifndef GL_OES_required_internalformat
  1108 #define GL_OES_required_internalformat 1
  1109 #endif
  1110 
  1111 /* GL_OES_rgb8_rgba8 */
  1112 #ifndef GL_OES_rgb8_rgba8
  1113 #define GL_OES_rgb8_rgba8 1
  1114 #endif
  1115 
  1116 /* GL_OES_standard_derivatives */
  1117 #ifndef GL_OES_standard_derivatives
  1118 #define GL_OES_standard_derivatives 1
  1119 #endif
  1120 
  1121 /* GL_OES_stencil1 */
  1122 #ifndef GL_OES_stencil1
  1123 #define GL_OES_stencil1 1
  1124 #endif
  1125 
  1126 /* GL_OES_stencil4 */
  1127 #ifndef GL_OES_stencil4
  1128 #define GL_OES_stencil4 1
  1129 #endif
  1130 
  1131 #ifndef GL_OES_surfaceless_context
  1132 #define GL_OES_surfaceless_context 1
  1133 #endif
  1134 
  1135 /* GL_OES_texture_3D */
  1136 #ifndef GL_OES_texture_3D
  1137 #define GL_OES_texture_3D 1
  1138 #ifdef GL_GLEXT_PROTOTYPES
  1139 GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
  1140 GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
  1141 GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  1142 GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
  1143 GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
  1144 GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
  1145 #endif
  1146 typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
  1147 typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
  1148 typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  1149 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
  1150 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
  1151 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
  1152 #endif
  1153 
  1154 /* GL_OES_texture_float */
  1155 #ifndef GL_OES_texture_float
  1156 #define GL_OES_texture_float 1
  1157 #endif
  1158 
  1159 /* GL_OES_texture_float_linear */
  1160 #ifndef GL_OES_texture_float_linear
  1161 #define GL_OES_texture_float_linear 1
  1162 #endif
  1163 
  1164 /* GL_OES_texture_half_float */
  1165 #ifndef GL_OES_texture_half_float
  1166 #define GL_OES_texture_half_float 1
  1167 #endif
  1168 
  1169 /* GL_OES_texture_half_float_linear */
  1170 #ifndef GL_OES_texture_half_float_linear
  1171 #define GL_OES_texture_half_float_linear 1
  1172 #endif
  1173 
  1174 /* GL_OES_texture_npot */
  1175 #ifndef GL_OES_texture_npot
  1176 #define GL_OES_texture_npot 1
  1177 #endif
  1178 
  1179 /* GL_OES_vertex_array_object */
  1180 #ifndef GL_OES_vertex_array_object
  1181 #define GL_OES_vertex_array_object 1
  1182 #ifdef GL_GLEXT_PROTOTYPES
  1183 GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
  1184 GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
  1185 GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
  1186 GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
  1187 #endif
  1188 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
  1189 typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
  1190 typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
  1191 typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
  1192 #endif
  1193 
  1194 /* GL_OES_vertex_half_float */
  1195 #ifndef GL_OES_vertex_half_float
  1196 #define GL_OES_vertex_half_float 1
  1197 #endif
  1198 
  1199 /* GL_OES_vertex_type_10_10_10_2 */
  1200 #ifndef GL_OES_vertex_type_10_10_10_2
  1201 #define GL_OES_vertex_type_10_10_10_2 1
  1202 #endif
  1203 
  1204 /*------------------------------------------------------------------------*
  1205  * KHR extension functions
  1206  *------------------------------------------------------------------------*/
  1207 
  1208 #ifndef GL_KHR_debug
  1209 #define GL_KHR_debug 1
  1210 #ifdef GL_GLEXT_PROTOTYPES
  1211 GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
  1212 GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
  1213 GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam);
  1214 GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
  1215 GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message);
  1216 GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void);
  1217 GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
  1218 GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
  1219 GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label);
  1220 GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
  1221 GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, GLvoid **params);
  1222 #endif
  1223 typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
  1224 typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
  1225 typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam);
  1226 typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
  1227 typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message);
  1228 typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void);
  1229 typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
  1230 typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
  1231 typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label);
  1232 typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
  1233 typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, GLvoid **params);
  1234 #endif
  1235 
  1236 #ifndef GL_KHR_texture_compression_astc_ldr
  1237 #define GL_KHR_texture_compression_astc_ldr 1
  1238 #endif
  1239 
  1240 
  1241 /*------------------------------------------------------------------------*
  1242  * AMD extension functions
  1243  *------------------------------------------------------------------------*/
  1244 
  1245 /* GL_AMD_compressed_3DC_texture */
  1246 #ifndef GL_AMD_compressed_3DC_texture
  1247 #define GL_AMD_compressed_3DC_texture 1
  1248 #endif
  1249 
  1250 /* GL_AMD_compressed_ATC_texture */
  1251 #ifndef GL_AMD_compressed_ATC_texture
  1252 #define GL_AMD_compressed_ATC_texture 1
  1253 #endif
  1254 
  1255 /* AMD_performance_monitor */
  1256 #ifndef GL_AMD_performance_monitor
  1257 #define GL_AMD_performance_monitor 1
  1258 #ifdef GL_GLEXT_PROTOTYPES
  1259 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
  1260 GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
  1261 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
  1262 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
  1263 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
  1264 GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
  1265 GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
  1266 GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
  1267 GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
  1268 GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
  1269 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
  1270 #endif
  1271 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
  1272 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
  1273 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
  1274 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
  1275 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
  1276 typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
  1277 typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
  1278 typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
  1279 typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
  1280 typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
  1281 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
  1282 #endif
  1283 
  1284 /* GL_AMD_program_binary_Z400 */
  1285 #ifndef GL_AMD_program_binary_Z400
  1286 #define GL_AMD_program_binary_Z400 1
  1287 #endif
  1288 
  1289 /*------------------------------------------------------------------------*
  1290  * ANGLE extension functions
  1291  *------------------------------------------------------------------------*/
  1292 
  1293 /* GL_ANGLE_depth_texture */
  1294 #ifndef GL_ANGLE_depth_texture
  1295 #define GL_ANGLE_depth_texture 1
  1296 #endif
  1297 
  1298 /* GL_ANGLE_framebuffer_blit */
  1299 #ifndef GL_ANGLE_framebuffer_blit
  1300 #define GL_ANGLE_framebuffer_blit 1
  1301 #ifdef GL_GLEXT_PROTOTYPES
  1302 GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  1303 #endif
  1304 typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  1305 #endif
  1306 
  1307 /* GL_ANGLE_framebuffer_multisample */
  1308 #ifndef GL_ANGLE_framebuffer_multisample
  1309 #define GL_ANGLE_framebuffer_multisample 1
  1310 #ifdef GL_GLEXT_PROTOTYPES
  1311 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1312 #endif
  1313 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1314 #endif
  1315 
  1316 #ifndef GL_ANGLE_instanced_arrays
  1317 #define GL_ANGLE_instanced_arrays 1
  1318 #ifdef GL_GLEXT_PROTOTYPES
  1319 GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
  1320 GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
  1321 GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor);
  1322 #endif
  1323 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
  1324 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
  1325 typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
  1326 #endif
  1327 
  1328 /* GL_ANGLE_pack_reverse_row_order */
  1329 #ifndef GL_ANGLE_pack_reverse_row_order
  1330 #define GL_ANGLE_pack_reverse_row_order 1
  1331 #endif
  1332 
  1333 /* GL_ANGLE_program_binary */
  1334 #ifndef GL_ANGLE_program_binary
  1335 #define GL_ANGLE_program_binary 1
  1336 #endif
  1337 
  1338 /* GL_ANGLE_texture_compression_dxt3 */
  1339 #ifndef GL_ANGLE_texture_compression_dxt3
  1340 #define GL_ANGLE_texture_compression_dxt3 1
  1341 #endif
  1342 
  1343 /* GL_ANGLE_texture_compression_dxt5 */
  1344 #ifndef GL_ANGLE_texture_compression_dxt5
  1345 #define GL_ANGLE_texture_compression_dxt5 1
  1346 #endif
  1347 
  1348 /* GL_ANGLE_texture_usage */
  1349 #ifndef GL_ANGLE_texture_usage
  1350 #define GL_ANGLE_texture_usage 1
  1351 #endif
  1352 
  1353 #ifndef GL_ANGLE_translated_shader_source
  1354 #define GL_ANGLE_translated_shader_source 1
  1355 #ifdef GL_GLEXT_PROTOTYPES
  1356 GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
  1357 #endif
  1358 typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
  1359 #endif
  1360 
  1361 /*------------------------------------------------------------------------*
  1362  * APPLE extension functions
  1363  *------------------------------------------------------------------------*/
  1364 
  1365 /* GL_APPLE_copy_texture_levels */
  1366 #ifndef GL_APPLE_copy_texture_levels
  1367 #define GL_APPLE_copy_texture_levels 1
  1368 #ifdef GL_GLEXT_PROTOTYPES
  1369 GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
  1370 #endif
  1371 typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
  1372 #endif
  1373 
  1374 /* GL_APPLE_framebuffer_multisample */
  1375 #ifndef GL_APPLE_framebuffer_multisample
  1376 #define GL_APPLE_framebuffer_multisample 1
  1377 #ifdef GL_GLEXT_PROTOTYPES
  1378 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1379 GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
  1380 #endif /* GL_GLEXT_PROTOTYPES */
  1381 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1382 typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
  1383 #endif
  1384 
  1385 /* GL_APPLE_rgb_422 */
  1386 #ifndef GL_APPLE_rgb_422
  1387 #define GL_APPLE_rgb_422 1
  1388 #endif
  1389 
  1390 /* GL_APPLE_sync */
  1391 #ifndef GL_APPLE_sync
  1392 #define GL_APPLE_sync 1
  1393 #ifdef GL_GLEXT_PROTOTYPES
  1394 GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags);
  1395 GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync);
  1396 GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync);
  1397 GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
  1398 GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
  1399 GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params);
  1400 GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
  1401 #endif
  1402 typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags);
  1403 typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync);
  1404 typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync);
  1405 typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
  1406 typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
  1407 typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params);
  1408 typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
  1409 #endif
  1410 
  1411 /* GL_APPLE_texture_format_BGRA8888 */
  1412 #ifndef GL_APPLE_texture_format_BGRA8888
  1413 #define GL_APPLE_texture_format_BGRA8888 1
  1414 #endif
  1415 
  1416 /* GL_APPLE_texture_max_level */
  1417 #ifndef GL_APPLE_texture_max_level
  1418 #define GL_APPLE_texture_max_level 1
  1419 #endif
  1420 
  1421 /*------------------------------------------------------------------------*
  1422  * ARM extension functions
  1423  *------------------------------------------------------------------------*/
  1424 
  1425 /* GL_ARM_mali_program_binary */
  1426 #ifndef GL_ARM_mali_program_binary
  1427 #define GL_ARM_mali_program_binary 1
  1428 #endif
  1429 
  1430 /* GL_ARM_mali_shader_binary */
  1431 #ifndef GL_ARM_mali_shader_binary
  1432 #define GL_ARM_mali_shader_binary 1
  1433 #endif
  1434 
  1435 /* GL_ARM_rgba8 */
  1436 #ifndef GL_ARM_rgba8
  1437 #define GL_ARM_rgba8 1
  1438 #endif
  1439 
  1440 /*------------------------------------------------------------------------*
  1441  * EXT extension functions
  1442  *------------------------------------------------------------------------*/
  1443 
  1444 /* GL_EXT_blend_minmax */
  1445 #ifndef GL_EXT_blend_minmax
  1446 #define GL_EXT_blend_minmax 1
  1447 #endif
  1448 
  1449 /* GL_EXT_color_buffer_half_float */
  1450 #ifndef GL_EXT_color_buffer_half_float
  1451 #define GL_EXT_color_buffer_half_float 1
  1452 #endif
  1453 
  1454 /* GL_EXT_debug_label */
  1455 #ifndef GL_EXT_debug_label
  1456 #define GL_EXT_debug_label 1
  1457 #ifdef GL_GLEXT_PROTOTYPES
  1458 GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
  1459 GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
  1460 #endif
  1461 typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
  1462 typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
  1463 #endif
  1464 
  1465 /* GL_EXT_debug_marker */
  1466 #ifndef GL_EXT_debug_marker
  1467 #define GL_EXT_debug_marker 1
  1468 #ifdef GL_GLEXT_PROTOTYPES
  1469 GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
  1470 GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
  1471 GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
  1472 #endif
  1473 typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
  1474 typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
  1475 typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
  1476 #endif
  1477 
  1478 /* GL_EXT_discard_framebuffer */
  1479 #ifndef GL_EXT_discard_framebuffer
  1480 #define GL_EXT_discard_framebuffer 1
  1481 #ifdef GL_GLEXT_PROTOTYPES
  1482 GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
  1483 #endif
  1484 typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
  1485 #endif
  1486 
  1487 #ifndef GL_EXT_disjoint_timer_query
  1488 #define GL_EXT_disjoint_timer_query 1
  1489 #ifdef GL_GLEXT_PROTOTYPES
  1490 GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
  1491 GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
  1492 GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
  1493 GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
  1494 GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
  1495 GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target);
  1496 GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
  1497 GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params);
  1498 GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
  1499 GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params);
  1500 GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params);
  1501 #endif
  1502 typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
  1503 typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
  1504 typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
  1505 typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
  1506 typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
  1507 typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target);
  1508 typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
  1509 typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params);
  1510 typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params);
  1511 typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params);
  1512 typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params);
  1513 #endif /* GL_EXT_disjoint_timer_query */
  1514 
  1515 #ifndef GL_EXT_draw_buffers
  1516 #define GL_EXT_draw_buffers 1
  1517 #ifdef GL_GLEXT_PROTOTYPES
  1518 GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs);
  1519 #endif
  1520 typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs);
  1521 #endif /* GL_EXT_draw_buffers */
  1522 
  1523 /* GL_EXT_map_buffer_range */
  1524 #ifndef GL_EXT_map_buffer_range
  1525 #define GL_EXT_map_buffer_range 1
  1526 #ifdef GL_GLEXT_PROTOTYPES
  1527 GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
  1528 GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length);
  1529 #endif
  1530 typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
  1531 typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
  1532 #endif
  1533 
  1534 /* GL_EXT_multisampled_render_to_texture */
  1535 #ifndef GL_EXT_multisampled_render_to_texture
  1536 #define GL_EXT_multisampled_render_to_texture 1
  1537 #ifdef GL_GLEXT_PROTOTYPES
  1538 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);             
  1539 GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
  1540 #endif
  1541 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1542 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
  1543 #endif
  1544 
  1545 /* GL_EXT_multiview_draw_buffers */
  1546 #ifndef GL_EXT_multiview_draw_buffers
  1547 #define GL_EXT_multiview_draw_buffers 1
  1548 #ifdef GL_GLEXT_PROTOTYPES
  1549 GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index);
  1550 GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices);
  1551 GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data);
  1552 #endif
  1553 typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index);
  1554 typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices);
  1555 typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data);
  1556 #endif
  1557 
  1558 #ifndef GL_EXT_multi_draw_arrays
  1559 #define GL_EXT_multi_draw_arrays 1
  1560 #ifdef GL_GLEXT_PROTOTYPES
  1561 GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
  1562 GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
  1563 #endif /* GL_GLEXT_PROTOTYPES */
  1564 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
  1565 typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
  1566 #endif
  1567 
  1568 /* GL_EXT_occlusion_query_boolean */
  1569 #ifndef GL_EXT_occlusion_query_boolean
  1570 #define GL_EXT_occlusion_query_boolean 1
  1571 /* All entry points also exist in GL_EXT_disjoint_timer_query */
  1572 #endif
  1573 
  1574 /* GL_EXT_read_format_bgra */
  1575 #ifndef GL_EXT_read_format_bgra
  1576 #define GL_EXT_read_format_bgra 1
  1577 #endif
  1578 
  1579 /* GL_EXT_robustness */
  1580 #ifndef GL_EXT_robustness
  1581 #define GL_EXT_robustness 1
  1582 #ifdef GL_GLEXT_PROTOTYPES
  1583 GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void);
  1584 GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
  1585 GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
  1586 GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params);
  1587 #endif
  1588 typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void);
  1589 typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
  1590 typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
  1591 typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
  1592 #endif
  1593 
  1594 /* GL_EXT_separate_shader_objects */
  1595 #ifndef GL_EXT_separate_shader_objects
  1596 #define GL_EXT_separate_shader_objects 1
  1597 #ifdef GL_GLEXT_PROTOTYPES
  1598 GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program);
  1599 GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program);
  1600 GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings);
  1601 GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline);
  1602 GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines);
  1603 GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines);
  1604 GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline);
  1605 GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
  1606 GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params);
  1607 GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x);
  1608 GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y);
  1609 GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z);
  1610 GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
  1611 GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x);
  1612 GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y);
  1613 GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
  1614 GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  1615 GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
  1616 GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
  1617 GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
  1618 GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
  1619 GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1620 GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1621 GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1622 GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1623 GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  1624 GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  1625 GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  1626 GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline);
  1627 GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
  1628 #endif
  1629 typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
  1630 typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program);
  1631 typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings);
  1632 typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
  1633 typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines);
  1634 typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines);
  1635 typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
  1636 typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
  1637 typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params);
  1638 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x);
  1639 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y);
  1640 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
  1641 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
  1642 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x);
  1643 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
  1644 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
  1645 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  1646 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
  1647 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
  1648 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
  1649 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
  1650 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1651 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1652 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1653 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
  1654 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  1655 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  1656 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
  1657 typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
  1658 typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
  1659 #endif
  1660 
  1661 /* GL_EXT_shader_framebuffer_fetch */
  1662 #ifndef GL_EXT_shader_framebuffer_fetch
  1663 #define GL_EXT_shader_framebuffer_fetch 1
  1664 #endif
  1665 
  1666 /* GL_EXT_shader_texture_lod */
  1667 #ifndef GL_EXT_shader_texture_lod
  1668 #define GL_EXT_shader_texture_lod 1
  1669 #endif
  1670 
  1671 /* GL_EXT_shadow_samplers */
  1672 #ifndef GL_EXT_shadow_samplers
  1673 #define GL_EXT_shadow_samplers 1
  1674 #endif
  1675 
  1676 /* GL_EXT_sRGB */
  1677 #ifndef GL_EXT_sRGB
  1678 #define GL_EXT_sRGB 1
  1679 #endif
  1680 
  1681 /* GL_EXT_texture_compression_dxt1 */
  1682 #ifndef GL_EXT_texture_compression_dxt1
  1683 #define GL_EXT_texture_compression_dxt1 1
  1684 #endif
  1685 
  1686 /* GL_EXT_texture_filter_anisotropic */
  1687 #ifndef GL_EXT_texture_filter_anisotropic
  1688 #define GL_EXT_texture_filter_anisotropic 1
  1689 #endif
  1690 
  1691 /* GL_EXT_texture_format_BGRA8888 */
  1692 #ifndef GL_EXT_texture_format_BGRA8888
  1693 #define GL_EXT_texture_format_BGRA8888 1
  1694 #endif
  1695 
  1696 /* GL_EXT_texture_rg */
  1697 #ifndef GL_EXT_texture_rg
  1698 #define GL_EXT_texture_rg 1
  1699 #endif
  1700 
  1701 /* GL_EXT_texture_storage */
  1702 #ifndef GL_EXT_texture_storage
  1703 #define GL_EXT_texture_storage 1
  1704 #ifdef GL_GLEXT_PROTOTYPES
  1705 GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
  1706 GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
  1707 GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
  1708 GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
  1709 GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
  1710 GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
  1711 #endif
  1712 typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
  1713 typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
  1714 typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
  1715 typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
  1716 typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
  1717 typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
  1718 #endif
  1719 
  1720 /* GL_EXT_texture_type_2_10_10_10_REV */
  1721 #ifndef GL_EXT_texture_type_2_10_10_10_REV
  1722 #define GL_EXT_texture_type_2_10_10_10_REV 1
  1723 #endif
  1724 
  1725 /* GL_EXT_unpack_subimage */
  1726 #ifndef GL_EXT_unpack_subimage
  1727 #define GL_EXT_unpack_subimage 1
  1728 #endif
  1729 
  1730 /*------------------------------------------------------------------------*
  1731  * DMP extension functions
  1732  *------------------------------------------------------------------------*/
  1733 
  1734 /* GL_DMP_shader_binary */
  1735 #ifndef GL_DMP_shader_binary
  1736 #define GL_DMP_shader_binary 1
  1737 #endif
  1738 
  1739 /*------------------------------------------------------------------------*
  1740  * FJ extension functions
  1741  *------------------------------------------------------------------------*/
  1742 
  1743 /* GL_FJ_shader_binary_GCCSO */
  1744 #ifndef GL_FJ_shader_binary_GCCSO
  1745 #define GL_FJ_shader_binary_GCCSO 1
  1746 #endif
  1747 
  1748 /*------------------------------------------------------------------------*
  1749  * IMG extension functions
  1750  *------------------------------------------------------------------------*/
  1751 
  1752 /* GL_IMG_program_binary */
  1753 #ifndef GL_IMG_program_binary
  1754 #define GL_IMG_program_binary 1
  1755 #endif
  1756 
  1757 /* GL_IMG_read_format */
  1758 #ifndef GL_IMG_read_format
  1759 #define GL_IMG_read_format 1
  1760 #endif
  1761 
  1762 /* GL_IMG_shader_binary */
  1763 #ifndef GL_IMG_shader_binary
  1764 #define GL_IMG_shader_binary 1
  1765 #endif
  1766 
  1767 /* GL_IMG_texture_compression_pvrtc */
  1768 #ifndef GL_IMG_texture_compression_pvrtc
  1769 #define GL_IMG_texture_compression_pvrtc 1
  1770 #endif
  1771 
  1772 /* GL_IMG_texture_compression_pvrtc2 */
  1773 #ifndef GL_IMG_texture_compression_pvrtc2
  1774 #define GL_IMG_texture_compression_pvrtc2 1
  1775 #endif
  1776 
  1777 /* GL_IMG_multisampled_render_to_texture */
  1778 #ifndef GL_IMG_multisampled_render_to_texture
  1779 #define GL_IMG_multisampled_render_to_texture 1
  1780 #ifdef GL_GLEXT_PROTOTYPES
  1781 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1782 GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
  1783 #endif
  1784 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1785 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
  1786 #endif
  1787 
  1788 /*------------------------------------------------------------------------*
  1789  * NV extension functions
  1790  *------------------------------------------------------------------------*/
  1791 
  1792 /* GL_NV_coverage_sample */
  1793 #ifndef GL_NV_coverage_sample
  1794 #define GL_NV_coverage_sample 1
  1795 #ifdef GL_GLEXT_PROTOTYPES
  1796 GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
  1797 GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
  1798 #endif
  1799 typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
  1800 typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
  1801 #endif
  1802 
  1803 /* GL_NV_depth_nonlinear */
  1804 #ifndef GL_NV_depth_nonlinear
  1805 #define GL_NV_depth_nonlinear 1
  1806 #endif
  1807 
  1808 /* GL_NV_draw_buffers */
  1809 #ifndef GL_NV_draw_buffers
  1810 #define GL_NV_draw_buffers 1
  1811 #ifdef GL_GLEXT_PROTOTYPES
  1812 GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
  1813 #endif
  1814 typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
  1815 #endif
  1816 
  1817 /* GL_NV_draw_instanced */
  1818 #ifndef GL_NV_draw_instanced
  1819 #define GL_NV_draw_instanced 1
  1820 #ifdef GL_GLEXT_PROTOTYPES
  1821 GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
  1822 GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
  1823 #endif
  1824 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
  1825 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
  1826 #endif
  1827 
  1828 /* GL_NV_fbo_color_attachments */
  1829 #ifndef GL_NV_fbo_color_attachments
  1830 #define GL_NV_fbo_color_attachments 1
  1831 #endif
  1832 
  1833 /* GL_NV_fence */
  1834 #ifndef GL_NV_fence
  1835 #define GL_NV_fence 1
  1836 #ifdef GL_GLEXT_PROTOTYPES
  1837 GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences);
  1838 GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences);
  1839 GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence);
  1840 GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence);
  1841 GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params);
  1842 GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence);
  1843 GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition);
  1844 #endif
  1845 typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
  1846 typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
  1847 typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
  1848 typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
  1849 typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
  1850 typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
  1851 typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
  1852 #endif
  1853 
  1854 /* GL_NV_framebuffer_blit */
  1855 #ifndef GL_NV_framebuffer_blit
  1856 #define GL_NV_framebuffer_blit 1
  1857 #ifdef GL_GLEXT_PROTOTYPES
  1858 GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  1859 #endif
  1860 typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  1861 #endif
  1862 
  1863 /* GL_NV_framebuffer_multisample */
  1864 #ifndef GL_NV_framebuffer_multisample
  1865 #define GL_NV_framebuffer_multisample 1
  1866 #ifdef GL_GLEXT_PROTOTYPES
  1867 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1868 #endif
  1869 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  1870 #endif
  1871 
  1872 /* GL_NV_generate_mipmap_sRGB */
  1873 #ifndef GL_NV_generate_mipmap_sRGB
  1874 #define GL_NV_generate_mipmap_sRGB 1
  1875 #endif
  1876 
  1877 /* GL_NV_instanced_arrays */
  1878 #ifndef GL_NV_instanced_arrays
  1879 #define GL_NV_instanced_arrays 1
  1880 #ifdef GL_GLEXT_PROTOTYPES
  1881 GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor);
  1882 #endif
  1883 typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor);
  1884 #endif
  1885 
  1886 /* GL_NV_read_buffer */
  1887 #ifndef GL_NV_read_buffer
  1888 #define GL_NV_read_buffer 1
  1889 #ifdef GL_GLEXT_PROTOTYPES
  1890 GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
  1891 #endif
  1892 typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
  1893 #endif
  1894 
  1895 /* GL_NV_read_buffer_front */
  1896 #ifndef GL_NV_read_buffer_front
  1897 #define GL_NV_read_buffer_front 1
  1898 #endif
  1899 
  1900 /* GL_NV_read_depth */
  1901 #ifndef GL_NV_read_depth
  1902 #define GL_NV_read_depth 1
  1903 #endif
  1904 
  1905 /* GL_NV_read_depth_stencil */
  1906 #ifndef GL_NV_read_depth_stencil
  1907 #define GL_NV_read_depth_stencil 1
  1908 #endif
  1909 
  1910 /* GL_NV_read_stencil */
  1911 #ifndef GL_NV_read_stencil
  1912 #define GL_NV_read_stencil 1
  1913 #endif
  1914 
  1915 /* GL_NV_shadow_samplers_array */
  1916 #ifndef GL_NV_shadow_samplers_array
  1917 #define GL_NV_shadow_samplers_array 1
  1918 #endif
  1919 
  1920 /* GL_NV_shadow_samplers_cube */
  1921 #ifndef GL_NV_shadow_samplers_cube
  1922 #define GL_NV_shadow_samplers_cube 1
  1923 #endif
  1924 
  1925 /* GL_NV_sRGB_formats */
  1926 #ifndef GL_NV_sRGB_formats
  1927 #define GL_NV_sRGB_formats 1
  1928 #endif
  1929 
  1930 /* GL_NV_texture_border_clamp */
  1931 #ifndef GL_NV_texture_border_clamp
  1932 #define GL_NV_texture_border_clamp 1
  1933 #endif
  1934 
  1935 /* GL_NV_texture_compression_s3tc_update */
  1936 #ifndef GL_NV_texture_compression_s3tc_update
  1937 #define GL_NV_texture_compression_s3tc_update 1
  1938 #endif
  1939 
  1940 /* GL_NV_texture_npot_2D_mipmap */
  1941 #ifndef GL_NV_texture_npot_2D_mipmap
  1942 #define GL_NV_texture_npot_2D_mipmap 1
  1943 #endif
  1944 
  1945 /*------------------------------------------------------------------------*
  1946  * QCOM extension functions
  1947  *------------------------------------------------------------------------*/
  1948 
  1949 /* GL_QCOM_alpha_test */
  1950 #ifndef GL_QCOM_alpha_test
  1951 #define GL_QCOM_alpha_test 1
  1952 #ifdef GL_GLEXT_PROTOTYPES
  1953 GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
  1954 #endif
  1955 typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
  1956 #endif
  1957 
  1958 /* GL_QCOM_binning_control */
  1959 #ifndef GL_QCOM_binning_control
  1960 #define GL_QCOM_binning_control 1
  1961 #endif
  1962 
  1963 /* GL_QCOM_driver_control */
  1964 #ifndef GL_QCOM_driver_control
  1965 #define GL_QCOM_driver_control 1
  1966 #ifdef GL_GLEXT_PROTOTYPES
  1967 GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
  1968 GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
  1969 GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
  1970 GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
  1971 #endif
  1972 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
  1973 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
  1974 typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
  1975 typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
  1976 #endif
  1977 
  1978 /* GL_QCOM_extended_get */
  1979 #ifndef GL_QCOM_extended_get
  1980 #define GL_QCOM_extended_get 1
  1981 #ifdef GL_GLEXT_PROTOTYPES
  1982 GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
  1983 GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
  1984 GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
  1985 GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
  1986 GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
  1987 GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
  1988 GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
  1989 GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
  1990 #endif
  1991 typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
  1992 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
  1993 typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
  1994 typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
  1995 typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
  1996 typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
  1997 typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
  1998 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
  1999 #endif
  2000 
  2001 /* GL_QCOM_extended_get2 */
  2002 #ifndef GL_QCOM_extended_get2
  2003 #define GL_QCOM_extended_get2 1
  2004 #ifdef GL_GLEXT_PROTOTYPES
  2005 GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
  2006 GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
  2007 GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
  2008 GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
  2009 #endif
  2010 typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
  2011 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
  2012 typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
  2013 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
  2014 #endif
  2015 
  2016 /* GL_QCOM_perfmon_global_mode */
  2017 #ifndef GL_QCOM_perfmon_global_mode
  2018 #define GL_QCOM_perfmon_global_mode 1
  2019 #endif
  2020 
  2021 /* GL_QCOM_writeonly_rendering */
  2022 #ifndef GL_QCOM_writeonly_rendering
  2023 #define GL_QCOM_writeonly_rendering 1
  2024 #endif
  2025 
  2026 /* GL_QCOM_tiled_rendering */
  2027 #ifndef GL_QCOM_tiled_rendering
  2028 #define GL_QCOM_tiled_rendering 1
  2029 #ifdef GL_GLEXT_PROTOTYPES
  2030 GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
  2031 GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
  2032 #endif
  2033 typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
  2034 typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
  2035 #endif
  2036 
  2037 /*------------------------------------------------------------------------*
  2038  * VIV extension tokens
  2039  *------------------------------------------------------------------------*/
  2040 
  2041 /* GL_VIV_shader_binary */
  2042 #ifndef GL_VIV_shader_binary
  2043 #define GL_VIV_shader_binary 1
  2044 #endif
  2045 
  2046 #ifdef __cplusplus
  2047 }
  2048 #endif
  2049 
  2050 #endif /* __gl2ext_h_ */