Home | History | Annotate | Download | only in GLES2
      1 #ifndef __gl2ext_h_
      2 #define __gl2ext_h_
      3 
      4 /* $Revision: 16619 $ on $Date:: 2012-01-18 10:00:14 -0800 #$ */
      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 /*------------------------------------------------------------------------*
     20  * OES extension tokens
     21  *------------------------------------------------------------------------*/
     22 
     23 /* GL_OES_compressed_ETC1_RGB8_texture */
     24 #ifndef GL_OES_compressed_ETC1_RGB8_texture
     25 #define GL_ETC1_RGB8_OES                                        0x8D64
     26 #endif
     27 
     28 /* GL_OES_compressed_paletted_texture */
     29 #ifndef GL_OES_compressed_paletted_texture
     30 #define GL_PALETTE4_RGB8_OES                                    0x8B90
     31 #define GL_PALETTE4_RGBA8_OES                                   0x8B91
     32 #define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
     33 #define GL_PALETTE4_RGBA4_OES                                   0x8B93
     34 #define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
     35 #define GL_PALETTE8_RGB8_OES                                    0x8B95
     36 #define GL_PALETTE8_RGBA8_OES                                   0x8B96
     37 #define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
     38 #define GL_PALETTE8_RGBA4_OES                                   0x8B98
     39 #define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
     40 #endif
     41 
     42 /* GL_OES_depth24 */
     43 #ifndef GL_OES_depth24
     44 #define GL_DEPTH_COMPONENT24_OES                                0x81A6
     45 #endif
     46 
     47 /* GL_OES_depth32 */
     48 #ifndef GL_OES_depth32
     49 #define GL_DEPTH_COMPONENT32_OES                                0x81A7
     50 #endif
     51 
     52 /* GL_OES_depth_texture */
     53 /* No new tokens introduced by this extension. */
     54 
     55 /* GL_OES_EGL_image */
     56 #ifndef GL_OES_EGL_image
     57 typedef void* GLeglImageOES;
     58 #endif
     59 
     60 /* GL_OES_EGL_image_external */
     61 #ifndef GL_OES_EGL_image_external
     62 /* GLeglImageOES defined in GL_OES_EGL_image already. */
     63 #define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
     64 #define GL_SAMPLER_EXTERNAL_OES                                 0x8D66
     65 #define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
     66 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
     67 #endif
     68 
     69 /* GL_OES_element_index_uint */
     70 #ifndef GL_OES_element_index_uint
     71 #define GL_UNSIGNED_INT                                         0x1405
     72 #endif
     73 
     74 /* GL_OES_get_program_binary */
     75 #ifndef GL_OES_get_program_binary
     76 #define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
     77 #define GL_NUM_PROGRAM_BINARY_FORMATS_OES                       0x87FE
     78 #define GL_PROGRAM_BINARY_FORMATS_OES                           0x87FF
     79 #endif
     80 
     81 /* GL_OES_mapbuffer */
     82 #ifndef GL_OES_mapbuffer
     83 #define GL_WRITE_ONLY_OES                                       0x88B9
     84 #define GL_BUFFER_ACCESS_OES                                    0x88BB
     85 #define GL_BUFFER_MAPPED_OES                                    0x88BC
     86 #define GL_BUFFER_MAP_POINTER_OES                               0x88BD
     87 #endif
     88 
     89 /* GL_OES_packed_depth_stencil */
     90 #ifndef GL_OES_packed_depth_stencil
     91 #define GL_DEPTH_STENCIL_OES                                    0x84F9
     92 #define GL_UNSIGNED_INT_24_8_OES                                0x84FA
     93 #define GL_DEPTH24_STENCIL8_OES                                 0x88F0
     94 #endif
     95 
     96 /* GL_OES_rgb8_rgba8 */
     97 #ifndef GL_OES_rgb8_rgba8
     98 #define GL_RGB8_OES                                             0x8051
     99 #define GL_RGBA8_OES                                            0x8058
    100 #endif
    101 
    102 /* GL_OES_standard_derivatives */
    103 #ifndef GL_OES_standard_derivatives
    104 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                  0x8B8B
    105 #endif
    106 
    107 /* GL_OES_stencil1 */
    108 #ifndef GL_OES_stencil1
    109 #define GL_STENCIL_INDEX1_OES                                   0x8D46
    110 #endif
    111 
    112 /* GL_OES_stencil4 */
    113 #ifndef GL_OES_stencil4
    114 #define GL_STENCIL_INDEX4_OES                                   0x8D47
    115 #endif
    116 
    117 /* GL_OES_texture_3D */
    118 #ifndef GL_OES_texture_3D
    119 #define GL_TEXTURE_WRAP_R_OES                                   0x8072
    120 #define GL_TEXTURE_3D_OES                                       0x806F
    121 #define GL_TEXTURE_BINDING_3D_OES                               0x806A
    122 #define GL_MAX_3D_TEXTURE_SIZE_OES                              0x8073
    123 #define GL_SAMPLER_3D_OES                                       0x8B5F
    124 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES        0x8CD4
    125 #endif
    126 
    127 /* GL_OES_texture_float */
    128 /* No new tokens introduced by this extension. */
    129 
    130 /* GL_OES_texture_float_linear */
    131 /* No new tokens introduced by this extension. */
    132 
    133 /* GL_OES_texture_half_float */
    134 #ifndef GL_OES_texture_half_float
    135 #define GL_HALF_FLOAT_OES                                       0x8D61
    136 #endif
    137 
    138 /* GL_OES_texture_half_float_linear */
    139 /* No new tokens introduced by this extension. */
    140 
    141 /* GL_OES_texture_npot */
    142 /* No new tokens introduced by this extension. */
    143 
    144 /* GL_OES_vertex_array_object */
    145 #ifndef GL_OES_vertex_array_object
    146 #define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
    147 #endif
    148 
    149 /* GL_OES_vertex_half_float */
    150 /* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
    151 
    152 /* GL_OES_vertex_type_10_10_10_2 */
    153 #ifndef GL_OES_vertex_type_10_10_10_2
    154 #define GL_UNSIGNED_INT_10_10_10_2_OES                          0x8DF6
    155 #define GL_INT_10_10_10_2_OES                                   0x8DF7
    156 #endif
    157 
    158 /*------------------------------------------------------------------------*
    159  * AMD extension tokens
    160  *------------------------------------------------------------------------*/
    161 
    162 /* GL_AMD_compressed_3DC_texture */
    163 #ifndef GL_AMD_compressed_3DC_texture
    164 #define GL_3DC_X_AMD                                            0x87F9
    165 #define GL_3DC_XY_AMD                                           0x87FA
    166 #endif
    167 
    168 /* GL_AMD_compressed_ATC_texture */
    169 #ifndef GL_AMD_compressed_ATC_texture
    170 #define GL_ATC_RGB_AMD                                          0x8C92
    171 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
    172 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
    173 #endif
    174 
    175 /* GL_AMD_performance_monitor */
    176 #ifndef GL_AMD_performance_monitor
    177 #define GL_COUNTER_TYPE_AMD                                     0x8BC0
    178 #define GL_COUNTER_RANGE_AMD                                    0x8BC1
    179 #define GL_UNSIGNED_INT64_AMD                                   0x8BC2
    180 #define GL_PERCENTAGE_AMD                                       0x8BC3
    181 #define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
    182 #define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
    183 #define GL_PERFMON_RESULT_AMD                                   0x8BC6
    184 #endif
    185 
    186 /* GL_AMD_program_binary_Z400 */
    187 #ifndef GL_AMD_program_binary_Z400
    188 #define GL_Z400_BINARY_AMD                                      0x8740
    189 #endif
    190 
    191 /*------------------------------------------------------------------------*
    192  * ANGLE extension tokens
    193  *------------------------------------------------------------------------*/
    194 
    195 /* GL_ANGLE_framebuffer_blit */
    196 #ifndef GL_ANGLE_framebuffer_blit
    197 #define GL_READ_FRAMEBUFFER_ANGLE                               0x8CA8
    198 #define GL_DRAW_FRAMEBUFFER_ANGLE                               0x8CA9
    199 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                       0x8CA6
    200 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE                       0x8CAA
    201 #endif
    202 
    203 /* GL_ANGLE_framebuffer_multisample */
    204 #ifndef GL_ANGLE_framebuffer_multisample
    205 #define GL_RENDERBUFFER_SAMPLES_ANGLE                           0x8CAB
    206 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE             0x8D56
    207 #define GL_MAX_SAMPLES_ANGLE                                    0x8D57
    208 #endif
    209 
    210 /* GL_ANGLE_pack_reverse_row_order */
    211 #ifndef GL_ANGLE_pack_reverse_row_order
    212 #define GL_PACK_REVERSE_ROW_ORDER_ANGLE                         0x93A4
    213 #endif
    214 
    215 /* GL_ANGLE_texture_usage */
    216 #ifndef GL_ANGLE_texture_usage
    217 #define GL_TEXTURE_USAGE_ANGLE                                  0x93A2
    218 #define GL_FRAMEBUFFER_ATTACHMENT_ANGLE                         0x93A3
    219 #endif
    220 
    221 /* GL_ANGLE_instanced_arrays */
    222 #ifndef GL_ANGLE_instanced_arrays
    223 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE                    0x88FE
    224 #endif
    225 
    226 /*------------------------------------------------------------------------*
    227  * APPLE extension tokens
    228  *------------------------------------------------------------------------*/
    229 
    230 /* GL_APPLE_rgb_422 */
    231 #ifndef GL_APPLE_rgb_422
    232 #define GL_RGB_422_APPLE                                        0x8A1F
    233 #define GL_UNSIGNED_SHORT_8_8_APPLE                             0x85BA
    234 #define GL_UNSIGNED_SHORT_8_8_REV_APPLE                         0x85BB
    235 #endif
    236 
    237 /* GL_APPLE_framebuffer_multisample */
    238 #ifndef GL_APPLE_framebuffer_multisample
    239 #define GL_RENDERBUFFER_SAMPLES_APPLE                           0x8CAB
    240 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE             0x8D56
    241 #define GL_MAX_SAMPLES_APPLE                                    0x8D57
    242 #define GL_READ_FRAMEBUFFER_APPLE                               0x8CA8
    243 #define GL_DRAW_FRAMEBUFFER_APPLE                               0x8CA9
    244 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                       0x8CA6
    245 #define GL_READ_FRAMEBUFFER_BINDING_APPLE                       0x8CAA
    246 #endif
    247 
    248 /* GL_APPLE_texture_format_BGRA8888 */
    249 #ifndef GL_APPLE_texture_format_BGRA8888
    250 #define GL_BGRA_EXT                                             0x80E1
    251 #endif
    252 
    253 /* GL_APPLE_texture_max_level */
    254 #ifndef GL_APPLE_texture_max_level
    255 #define GL_TEXTURE_MAX_LEVEL_APPLE                              0x813D
    256 #endif
    257 
    258 /*------------------------------------------------------------------------*
    259  * ARM extension tokens
    260  *------------------------------------------------------------------------*/
    261 
    262 /* GL_ARM_mali_shader_binary */
    263 #ifndef GL_ARM_mali_shader_binary
    264 #define GL_MALI_SHADER_BINARY_ARM                               0x8F60
    265 #endif
    266 
    267 /* GL_ARM_rgba8 */
    268 /* No new tokens introduced by this extension. */
    269 
    270 /*------------------------------------------------------------------------*
    271  * EXT extension tokens
    272  *------------------------------------------------------------------------*/
    273 
    274 /* GL_EXT_blend_minmax */
    275 #ifndef GL_EXT_blend_minmax
    276 #define GL_MIN_EXT                                              0x8007
    277 #define GL_MAX_EXT                                              0x8008
    278 #endif
    279 
    280 /* GL_EXT_color_buffer_half_float */
    281 #ifndef GL_EXT_color_buffer_half_float
    282 #define GL_RGBA16F_EXT                                          0x881A
    283 #define GL_RGB16F_EXT                                           0x881B
    284 #define GL_RG16F_EXT                                            0x822F
    285 #define GL_R16F_EXT                                             0x822D
    286 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT            0x8211
    287 #define GL_UNSIGNED_NORMALIZED_EXT                              0x8C17
    288 #endif
    289 
    290 /* GL_EXT_debug_label */
    291 #ifndef GL_EXT_debug_label
    292 #define GL_PROGRAM_PIPELINE_OBJECT_EXT                          0x8A4F
    293 #define GL_PROGRAM_OBJECT_EXT                                   0x8B40
    294 #define GL_SHADER_OBJECT_EXT                                    0x8B48
    295 #define GL_BUFFER_OBJECT_EXT                                    0x9151
    296 #define GL_QUERY_OBJECT_EXT                                     0x9153
    297 #define GL_VERTEX_ARRAY_OBJECT_EXT                              0x9154
    298 #endif
    299 
    300 /* GL_EXT_debug_marker */
    301 /* No new tokens introduced by this extension. */
    302 
    303 /* GL_EXT_discard_framebuffer */
    304 #ifndef GL_EXT_discard_framebuffer
    305 #define GL_COLOR_EXT                                            0x1800
    306 #define GL_DEPTH_EXT                                            0x1801
    307 #define GL_STENCIL_EXT                                          0x1802
    308 #endif
    309 
    310 /* GL_EXT_multisampled_render_to_texture */
    311 #ifndef GL_EXT_multisampled_render_to_texture
    312 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT           0x8D6C
    313 #define GL_RENDERBUFFER_SAMPLES_EXT                             0x9133
    314 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT               0x9134
    315 #define GL_MAX_SAMPLES_EXT                                      0x9135
    316 #endif
    317 
    318 /* GL_EXT_multi_draw_arrays */
    319 /* No new tokens introduced by this extension. */
    320 
    321 /* GL_EXT_occlusion_query_boolean */
    322 #ifndef GL_EXT_occlusion_query_boolean
    323 #define GL_ANY_SAMPLES_PASSED_EXT                               0x8C2F
    324 #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT                  0x8D6A
    325 #define GL_CURRENT_QUERY_EXT                                    0x8865
    326 #define GL_QUERY_RESULT_EXT                                     0x8866
    327 #define GL_QUERY_RESULT_AVAILABLE_EXT                           0x8867
    328 #endif
    329 
    330 /* GL_EXT_read_format_bgra */
    331 #ifndef GL_EXT_read_format_bgra
    332 #define GL_BGRA_EXT                                             0x80E1
    333 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
    334 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
    335 #endif
    336 
    337 /* GL_EXT_robustness */
    338 #ifndef GL_EXT_robustness
    339 /* reuse GL_NO_ERROR */
    340 #define GL_GUILTY_CONTEXT_RESET_EXT                             0x8253
    341 #define GL_INNOCENT_CONTEXT_RESET_EXT                           0x8254
    342 #define GL_UNKNOWN_CONTEXT_RESET_EXT                            0x8255
    343 #define GL_CONTEXT_ROBUST_ACCESS_EXT                            0x90F3
    344 #define GL_RESET_NOTIFICATION_STRATEGY_EXT                      0x8256
    345 #define GL_LOSE_CONTEXT_ON_RESET_EXT                            0x8252
    346 #define GL_NO_RESET_NOTIFICATION_EXT                            0x8261
    347 #endif
    348 
    349 /* GL_EXT_separate_shader_objects */
    350 #ifndef GL_EXT_separate_shader_objects
    351 #define GL_VERTEX_SHADER_BIT_EXT                                0x00000001
    352 #define GL_FRAGMENT_SHADER_BIT_EXT                              0x00000002
    353 #define GL_ALL_SHADER_BITS_EXT                                  0xFFFFFFFF
    354 #define GL_PROGRAM_SEPARABLE_EXT                                0x8258
    355 #define GL_ACTIVE_PROGRAM_EXT                                   0x8259
    356 #define GL_PROGRAM_PIPELINE_BINDING_EXT                         0x825A
    357 #endif
    358 
    359 /* GL_EXT_shader_texture_lod */
    360 /* No new tokens introduced by this extension. */
    361 
    362 /* GL_EXT_shadow_samplers */
    363 #ifndef GL_EXT_shadow_samplers
    364 #define GL_TEXTURE_COMPARE_MODE_EXT                             0x884C
    365 #define GL_TEXTURE_COMPARE_FUNC_EXT                             0x884D
    366 #define GL_COMPARE_REF_TO_TEXTURE_EXT                           0x884E
    367 #define GL_SAMPLER_2D_SHADOW_EXT                                0x8B62
    368 #endif
    369 
    370 /* GL_EXT_sRGB */
    371 #ifndef GL_EXT_sRGB
    372 #define GL_SRGB_EXT                                             0x8C40
    373 #define GL_SRGB_ALPHA_EXT                                       0x8C42
    374 #define GL_SRGB8_ALPHA8_EXT                                     0x8C43
    375 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT            0x8210
    376 #endif
    377 
    378 /* GL_EXT_texture_compression_dxt1 */
    379 #ifndef GL_EXT_texture_compression_dxt1
    380 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                         0x83F0
    381 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                        0x83F1
    382 #endif
    383 
    384 /* GL_EXT_texture_filter_anisotropic */
    385 #ifndef GL_EXT_texture_filter_anisotropic
    386 #define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
    387 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
    388 #endif
    389 
    390 /* GL_EXT_texture_format_BGRA8888 */
    391 #ifndef GL_EXT_texture_format_BGRA8888
    392 #define GL_BGRA_EXT                                             0x80E1
    393 #endif
    394 
    395 /* GL_EXT_texture_rg */
    396 #ifndef GL_EXT_texture_rg
    397 #define GL_RED_EXT                                              0x1903
    398 #define GL_RG_EXT                                               0x8227
    399 #define GL_R8_EXT                                               0x8229
    400 #define GL_RG8_EXT                                              0x822B
    401 #endif
    402 
    403 /* GL_EXT_texture_storage */
    404 #ifndef GL_EXT_texture_storage
    405 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT                         0x912F
    406 #define GL_ALPHA8_EXT                                           0x803C
    407 #define GL_LUMINANCE8_EXT                                       0x8040
    408 #define GL_LUMINANCE8_ALPHA8_EXT                                0x8045
    409 #define GL_RGBA32F_EXT                                          0x8814
    410 #define GL_RGB32F_EXT                                           0x8815
    411 #define GL_ALPHA32F_EXT                                         0x8816
    412 #define GL_LUMINANCE32F_EXT                                     0x8818
    413 #define GL_LUMINANCE_ALPHA32F_EXT                               0x8819
    414 /* reuse GL_RGBA16F_EXT */
    415 #define GL_RGB16F_EXT                                           0x881B
    416 #define GL_ALPHA16F_EXT                                         0x881C
    417 #define GL_LUMINANCE16F_EXT                                     0x881E
    418 #define GL_LUMINANCE_ALPHA16F_EXT                               0x881F
    419 #define GL_RGB10_A2_EXT                                         0x8059
    420 #define GL_RGB10_EXT                                            0x8052
    421 #define GL_BGRA8_EXT                                            0x93A1
    422 #endif
    423 
    424 /* GL_EXT_texture_type_2_10_10_10_REV */
    425 #ifndef GL_EXT_texture_type_2_10_10_10_REV
    426 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
    427 #endif
    428 
    429 /* GL_EXT_unpack_subimage */
    430 #ifndef GL_EXT_unpack_subimage
    431 #define GL_UNPACK_ROW_LENGTH                                    0x0CF2
    432 #define GL_UNPACK_SKIP_ROWS                                     0x0CF3
    433 #define GL_UNPACK_SKIP_PIXELS                                   0x0CF4
    434 #endif
    435 
    436 /*------------------------------------------------------------------------*
    437  * DMP extension tokens
    438  *------------------------------------------------------------------------*/
    439 
    440 /* GL_DMP_shader_binary */
    441 #ifndef GL_DMP_shader_binary
    442 #define GL_SHADER_BINARY_DMP                                    0x9250
    443 #endif
    444 
    445 /*------------------------------------------------------------------------*
    446  * IMG extension tokens
    447  *------------------------------------------------------------------------*/
    448 
    449 /* GL_IMG_program_binary */
    450 #ifndef GL_IMG_program_binary
    451 #define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
    452 #endif
    453 
    454 /* GL_IMG_read_format */
    455 #ifndef GL_IMG_read_format
    456 #define GL_BGRA_IMG                                             0x80E1
    457 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
    458 #endif
    459 
    460 /* GL_IMG_shader_binary */
    461 #ifndef GL_IMG_shader_binary
    462 #define GL_SGX_BINARY_IMG                                       0x8C0A
    463 #endif
    464 
    465 /* GL_IMG_texture_compression_pvrtc */
    466 #ifndef GL_IMG_texture_compression_pvrtc
    467 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
    468 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
    469 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
    470 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
    471 #endif
    472 
    473 /* GL_IMG_multisampled_render_to_texture */
    474 #ifndef GL_IMG_multisampled_render_to_texture
    475 #define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
    476 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
    477 #define GL_MAX_SAMPLES_IMG                                      0x9135
    478 #define GL_TEXTURE_SAMPLES_IMG                                  0x9136
    479 #endif
    480 
    481 /*------------------------------------------------------------------------*
    482  * NV extension tokens
    483  *------------------------------------------------------------------------*/
    484 
    485 /* GL_NV_coverage_sample */
    486 #ifndef GL_NV_coverage_sample
    487 #define GL_COVERAGE_COMPONENT_NV                                0x8ED0
    488 #define GL_COVERAGE_COMPONENT4_NV                               0x8ED1
    489 #define GL_COVERAGE_ATTACHMENT_NV                               0x8ED2
    490 #define GL_COVERAGE_BUFFERS_NV                                  0x8ED3
    491 #define GL_COVERAGE_SAMPLES_NV                                  0x8ED4
    492 #define GL_COVERAGE_ALL_FRAGMENTS_NV                            0x8ED5
    493 #define GL_COVERAGE_EDGE_FRAGMENTS_NV                           0x8ED6
    494 #define GL_COVERAGE_AUTOMATIC_NV                                0x8ED7
    495 #define GL_COVERAGE_BUFFER_BIT_NV                               0x8000
    496 #endif
    497 
    498 /* GL_NV_depth_nonlinear */
    499 #ifndef GL_NV_depth_nonlinear
    500 #define GL_DEPTH_COMPONENT16_NONLINEAR_NV                       0x8E2C
    501 #endif
    502 
    503 /* GL_NV_draw_buffers */
    504 #ifndef GL_NV_draw_buffers
    505 #define GL_MAX_DRAW_BUFFERS_NV                                  0x8824
    506 #define GL_DRAW_BUFFER0_NV                                      0x8825
    507 #define GL_DRAW_BUFFER1_NV                                      0x8826
    508 #define GL_DRAW_BUFFER2_NV                                      0x8827
    509 #define GL_DRAW_BUFFER3_NV                                      0x8828
    510 #define GL_DRAW_BUFFER4_NV                                      0x8829
    511 #define GL_DRAW_BUFFER5_NV                                      0x882A
    512 #define GL_DRAW_BUFFER6_NV                                      0x882B
    513 #define GL_DRAW_BUFFER7_NV                                      0x882C
    514 #define GL_DRAW_BUFFER8_NV                                      0x882D
    515 #define GL_DRAW_BUFFER9_NV                                      0x882E
    516 #define GL_DRAW_BUFFER10_NV                                     0x882F
    517 #define GL_DRAW_BUFFER11_NV                                     0x8830
    518 #define GL_DRAW_BUFFER12_NV                                     0x8831
    519 #define GL_DRAW_BUFFER13_NV                                     0x8832
    520 #define GL_DRAW_BUFFER14_NV                                     0x8833
    521 #define GL_DRAW_BUFFER15_NV                                     0x8834
    522 #define GL_COLOR_ATTACHMENT0_NV                                 0x8CE0
    523 #define GL_COLOR_ATTACHMENT1_NV                                 0x8CE1
    524 #define GL_COLOR_ATTACHMENT2_NV                                 0x8CE2
    525 #define GL_COLOR_ATTACHMENT3_NV                                 0x8CE3
    526 #define GL_COLOR_ATTACHMENT4_NV                                 0x8CE4
    527 #define GL_COLOR_ATTACHMENT5_NV                                 0x8CE5
    528 #define GL_COLOR_ATTACHMENT6_NV                                 0x8CE6
    529 #define GL_COLOR_ATTACHMENT7_NV                                 0x8CE7
    530 #define GL_COLOR_ATTACHMENT8_NV                                 0x8CE8
    531 #define GL_COLOR_ATTACHMENT9_NV                                 0x8CE9
    532 #define GL_COLOR_ATTACHMENT10_NV                                0x8CEA
    533 #define GL_COLOR_ATTACHMENT11_NV                                0x8CEB
    534 #define GL_COLOR_ATTACHMENT12_NV                                0x8CEC
    535 #define GL_COLOR_ATTACHMENT13_NV                                0x8CED
    536 #define GL_COLOR_ATTACHMENT14_NV                                0x8CEE
    537 #define GL_COLOR_ATTACHMENT15_NV                                0x8CEF
    538 #endif
    539 
    540 /* GL_NV_fbo_color_attachments */
    541 #ifndef GL_NV_fbo_color_attachments
    542 #define GL_MAX_COLOR_ATTACHMENTS_NV                             0x8CDF
    543 /* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
    544 #endif
    545 
    546 /* GL_NV_fence */
    547 #ifndef GL_NV_fence
    548 #define GL_ALL_COMPLETED_NV                                     0x84F2
    549 #define GL_FENCE_STATUS_NV                                      0x84F3
    550 #define GL_FENCE_CONDITION_NV                                   0x84F4
    551 #endif
    552 
    553 /* GL_NV_read_buffer */
    554 #ifndef GL_NV_read_buffer
    555 #define GL_READ_BUFFER_NV                                       0x0C02
    556 #endif
    557 
    558 /* GL_NV_read_buffer_front */
    559 /* No new tokens introduced by this extension. */
    560 
    561 /* GL_NV_read_depth */
    562 /* No new tokens introduced by this extension. */
    563 
    564 /* GL_NV_read_depth_stencil */
    565 /* No new tokens introduced by this extension. */
    566 
    567 /* GL_NV_read_stencil */
    568 /* No new tokens introduced by this extension. */
    569 
    570 /* GL_NV_texture_compression_s3tc_update */
    571 /* No new tokens introduced by this extension. */
    572 
    573 /* GL_NV_texture_npot_2D_mipmap */
    574 /* No new tokens introduced by this extension. */
    575 
    576 /*------------------------------------------------------------------------*
    577  * QCOM extension tokens
    578  *------------------------------------------------------------------------*/
    579 
    580 /* GL_QCOM_alpha_test */
    581 #ifndef GL_QCOM_alpha_test
    582 #define GL_ALPHA_TEST_QCOM                                      0x0BC0
    583 #define GL_ALPHA_TEST_FUNC_QCOM                                 0x0BC1
    584 #define GL_ALPHA_TEST_REF_QCOM                                  0x0BC2
    585 #endif
    586 
    587 /* GL_QCOM_driver_control */
    588 /* No new tokens introduced by this extension. */
    589 
    590 /* GL_QCOM_extended_get */
    591 #ifndef GL_QCOM_extended_get
    592 #define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
    593 #define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
    594 #define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
    595 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
    596 #define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
    597 #define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
    598 #define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
    599 #define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
    600 #define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
    601 #define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
    602 #define GL_STATE_RESTORE                                        0x8BDC
    603 #endif
    604 
    605 /* GL_QCOM_extended_get2 */
    606 /* No new tokens introduced by this extension. */
    607 
    608 /* GL_QCOM_perfmon_global_mode */
    609 #ifndef GL_QCOM_perfmon_global_mode
    610 #define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
    611 #endif
    612 
    613 /* GL_QCOM_writeonly_rendering */
    614 #ifndef GL_QCOM_writeonly_rendering
    615 #define GL_WRITEONLY_RENDERING_QCOM                             0x8823
    616 #endif
    617 
    618 /* GL_QCOM_tiled_rendering */
    619 #ifndef GL_QCOM_tiled_rendering
    620 #define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
    621 #define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
    622 #define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
    623 #define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
    624 #define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
    625 #define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
    626 #define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
    627 #define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
    628 #define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
    629 #define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
    630 #define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
    631 #define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
    632 #define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
    633 #define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
    634 #define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
    635 #define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
    636 #define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
    637 #define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
    638 #define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
    639 #define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
    640 #define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
    641 #define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
    642 #define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
    643 #define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
    644 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
    645 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
    646 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
    647 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
    648 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
    649 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
    650 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
    651 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
    652 #endif
    653 
    654 /*------------------------------------------------------------------------*
    655  * VIV extension tokens
    656  *------------------------------------------------------------------------*/
    657 
    658 /* GL_VIV_shader_binary */
    659 #ifndef GL_VIV_shader_binary
    660 #define GL_SHADER_BINARY_VIV                                    0x8FC4
    661 #endif
    662 
    663 /*------------------------------------------------------------------------*
    664  * End of extension tokens, start of corresponding extension functions
    665  *------------------------------------------------------------------------*/
    666 
    667 /*------------------------------------------------------------------------*
    668  * OES extension functions
    669  *------------------------------------------------------------------------*/
    670 
    671 /* GL_OES_compressed_ETC1_RGB8_texture */
    672 #ifndef GL_OES_compressed_ETC1_RGB8_texture
    673 #define GL_OES_compressed_ETC1_RGB8_texture 1
    674 #endif
    675 
    676 /* GL_OES_compressed_paletted_texture */
    677 #ifndef GL_OES_compressed_paletted_texture
    678 #define GL_OES_compressed_paletted_texture 1
    679 #endif
    680 
    681 /* GL_OES_depth24 */
    682 #ifndef GL_OES_depth24
    683 #define GL_OES_depth24 1
    684 #endif
    685 
    686 /* GL_OES_depth32 */
    687 #ifndef GL_OES_depth32
    688 #define GL_OES_depth32 1
    689 #endif
    690 
    691 /* GL_OES_depth_texture */
    692 #ifndef GL_OES_depth_texture
    693 #define GL_OES_depth_texture 1
    694 #endif
    695 
    696 /* GL_OES_EGL_image */
    697 #ifndef GL_OES_EGL_image
    698 #define GL_OES_EGL_image 1
    699 #ifdef GL_GLEXT_PROTOTYPES
    700 #define glEGLImageTargetTexture2DOES GLES2_GET_FUN(EGLImageTargetTexture2DOES)
    701 #define glEGLImageTargetRenderbufferStorageOES GLES2_GET_FUN(EGLImageTargetRenderbufferStorageOES)
    702 #if !defined(GLES2_USE_CPP_BINDINGS)
    703 GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
    704 GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
    705 #endif
    706 #endif
    707 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
    708 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
    709 #endif
    710 
    711 /* GL_OES_EGL_image_external */
    712 #ifndef GL_OES_EGL_image_external
    713 #define GL_OES_EGL_image_external 1
    714 /* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
    715 #endif
    716 
    717 /* GL_OES_element_index_uint */
    718 #ifndef GL_OES_element_index_uint
    719 #define GL_OES_element_index_uint 1
    720 #endif
    721 
    722 /* GL_OES_fbo_render_mipmap */
    723 #ifndef GL_OES_fbo_render_mipmap
    724 #define GL_OES_fbo_render_mipmap 1
    725 #endif
    726 
    727 /* GL_OES_fragment_precision_high */
    728 #ifndef GL_OES_fragment_precision_high
    729 #define GL_OES_fragment_precision_high 1
    730 #endif
    731 
    732 /* GL_OES_get_program_binary */
    733 #ifndef GL_OES_get_program_binary
    734 #define GL_OES_get_program_binary 1
    735 #ifdef GL_GLEXT_PROTOTYPES
    736 #define glGetProgramBinaryOES GLES2_GET_FUN(GetProgramBinaryOES)
    737 #define glProgramBinaryOES GLES2_GET_FUN(ProgramBinaryOES)
    738 #if !defined(GLES2_USE_CPP_BINDINGS)
    739 GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
    740 GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
    741 #endif
    742 #endif
    743 typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
    744 typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
    745 #endif
    746 
    747 /* GL_OES_mapbuffer */
    748 #ifndef GL_OES_mapbuffer
    749 #define GL_OES_mapbuffer 1
    750 #ifdef GL_GLEXT_PROTOTYPES
    751 #define glMapBufferOES GLES2_GET_FUN(MapBufferOES)
    752 #define glUnmapBufferOES GLES2_GET_FUN(UnmapBufferOES)
    753 #define glGetBufferPointervOES GLES2_GET_FUN(GetBufferPointervOES)
    754 #if !defined(GLES2_USE_CPP_BINDINGS)
    755 GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
    756 GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
    757 GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
    758 #endif
    759 #endif
    760 typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
    761 typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
    762 typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
    763 #endif
    764 
    765 /* GL_OES_packed_depth_stencil */
    766 #ifndef GL_OES_packed_depth_stencil
    767 #define GL_OES_packed_depth_stencil 1
    768 #endif
    769 
    770 /* GL_OES_rgb8_rgba8 */
    771 #ifndef GL_OES_rgb8_rgba8
    772 #define GL_OES_rgb8_rgba8 1
    773 #endif
    774 
    775 /* GL_OES_standard_derivatives */
    776 #ifndef GL_OES_standard_derivatives
    777 #define GL_OES_standard_derivatives 1
    778 #endif
    779 
    780 /* GL_OES_stencil1 */
    781 #ifndef GL_OES_stencil1
    782 #define GL_OES_stencil1 1
    783 #endif
    784 
    785 /* GL_OES_stencil4 */
    786 #ifndef GL_OES_stencil4
    787 #define GL_OES_stencil4 1
    788 #endif
    789 
    790 /* GL_OES_texture_3D */
    791 #ifndef GL_OES_texture_3D
    792 #define GL_OES_texture_3D 1
    793 #ifdef GL_GLEXT_PROTOTYPES
    794 #define glTexImage3DOES GLES2_GET_FUN(TexImage3DOES)
    795 #define glTexSubImage3DOES GLES2_GET_FUN(TexSubImage3DOES)
    796 #define glCopyTexSubImage3DOES GLES2_GET_FUN(CopyTexSubImage3DOES)
    797 #define glCompressedTexImage3DOES GLES2_GET_FUN(CompressedTexImage3DOES)
    798 #define glCompressedTexSubImage3DOES GLES2_GET_FUN(CompressedTexSubImage3DOES)
    799 #define glFramebufferTexture3DOES GLES2_GET_FUN(FramebufferTexture3DOES)
    800 #if !defined(GLES2_USE_CPP_BINDINGS)
    801 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);
    802 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);
    803 GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
    804 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);
    805 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);
    806 GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
    807 #endif
    808 #endif
    809 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);
    810 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);
    811 typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
    812 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
    813 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);
    814 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
    815 #endif
    816 
    817 /* GL_OES_texture_float */
    818 #ifndef GL_OES_texture_float
    819 #define GL_OES_texture_float 1
    820 #endif
    821 
    822 /* GL_OES_texture_float_linear */
    823 #ifndef GL_OES_texture_float_linear
    824 #define GL_OES_texture_float_linear 1
    825 #endif
    826 
    827 /* GL_OES_texture_half_float */
    828 #ifndef GL_OES_texture_half_float
    829 #define GL_OES_texture_half_float 1
    830 #endif
    831 
    832 /* GL_OES_texture_half_float_linear */
    833 #ifndef GL_OES_texture_half_float_linear
    834 #define GL_OES_texture_half_float_linear 1
    835 #endif
    836 
    837 /* GL_OES_texture_npot */
    838 #ifndef GL_OES_texture_npot
    839 #define GL_OES_texture_npot 1
    840 #endif
    841 
    842 /* GL_OES_vertex_array_object */
    843 #ifndef GL_OES_vertex_array_object
    844 #define GL_OES_vertex_array_object 1
    845 #ifdef GL_GLEXT_PROTOTYPES
    846 #define glBindVertexArrayOES GLES2_GET_FUN(BindVertexArrayOES)
    847 #define glDeleteVertexArraysOES GLES2_GET_FUN(DeleteVertexArraysOES)
    848 #define glGenVertexArraysOES GLES2_GET_FUN(GenVertexArraysOES)
    849 #define glIsVertexArrayOES GLES2_GET_FUN(IsVertexArrayOES)
    850 #if !defined(GLES2_USE_CPP_BINDINGS)
    851 GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
    852 GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
    853 GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
    854 GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
    855 #endif
    856 #endif
    857 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
    858 typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
    859 typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
    860 typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
    861 #endif
    862 
    863 /* GL_OES_vertex_half_float */
    864 #ifndef GL_OES_vertex_half_float
    865 #define GL_OES_vertex_half_float 1
    866 #endif
    867 
    868 /* GL_OES_vertex_type_10_10_10_2 */
    869 #ifndef GL_OES_vertex_type_10_10_10_2
    870 #define GL_OES_vertex_type_10_10_10_2 1
    871 #endif
    872 
    873 /*------------------------------------------------------------------------*
    874  * AMD extension functions
    875  *------------------------------------------------------------------------*/
    876 
    877 /* GL_AMD_compressed_3DC_texture */
    878 #ifndef GL_AMD_compressed_3DC_texture
    879 #define GL_AMD_compressed_3DC_texture 1
    880 #endif
    881 
    882 /* GL_AMD_compressed_ATC_texture */
    883 #ifndef GL_AMD_compressed_ATC_texture
    884 #define GL_AMD_compressed_ATC_texture 1
    885 #endif
    886 
    887 /* AMD_performance_monitor */
    888 #ifndef GL_AMD_performance_monitor
    889 #define GL_AMD_performance_monitor 1
    890 #ifdef GL_GLEXT_PROTOTYPES
    891 #define glGetPerfMonitorGroupsAMD GLES2_GET_FUN(GetPerfMonitorGroupsAMD)
    892 #define glGetPerfMonitorCountersAMD GLES2_GET_FUN(GetPerfMonitorCountersAMD)
    893 #define glGetPerfMonitorGroupStringAMD GLES2_GET_FUN(GetPerfMonitorGroupStringAMD)
    894 #define glGetPerfMonitorCounterStringAMD GLES2_GET_FUN(GetPerfMonitorCounterStringAMD)
    895 #define glGetPerfMonitorCounterInfoAMD GLES2_GET_FUN(GetPerfMonitorCounterInfoAMD)
    896 #define glGenPerfMonitorsAMD GLES2_GET_FUN(GenPerfMonitorsAMD)
    897 #define glDeletePerfMonitorsAMD GLES2_GET_FUN(DeletePerfMonitorsAMD)
    898 #define glSelectPerfMonitorCountersAMD GLES2_GET_FUN(SelectPerfMonitorCountersAMD)
    899 #define glBeginPerfMonitorAMD GLES2_GET_FUN(BeginPerfMonitorAMD)
    900 #define glEndPerfMonitorAMD GLES2_GET_FUN(EndPerfMonitorAMD)
    901 #define glGetPerfMonitorCounterDataAMD GLES2_GET_FUN(GetPerfMonitorCounterDataAMD)
    902 
    903 #if !defined(GLES2_USE_CPP_BINDINGS)
    904 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
    905 GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
    906 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
    907 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
    908 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
    909 GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
    910 GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
    911 GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
    912 GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
    913 GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
    914 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
    915 #endif
    916 #endif
    917 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
    918 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
    919 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
    920 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
    921 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
    922 typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
    923 typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
    924 typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
    925 typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
    926 typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
    927 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
    928 #endif
    929 
    930 /* GL_AMD_program_binary_Z400 */
    931 #ifndef GL_AMD_program_binary_Z400
    932 #define GL_AMD_program_binary_Z400 1
    933 #endif
    934 
    935 /*------------------------------------------------------------------------*
    936  * ANGLE extension functions
    937  *------------------------------------------------------------------------*/
    938 
    939 /* GL_ANGLE_framebuffer_blit */
    940 #ifndef GL_ANGLE_framebuffer_blit
    941 #define GL_ANGLE_framebuffer_blit 1
    942 #ifdef GL_GLEXT_PROTOTYPES
    943 #define glBlitFramebufferANGLE GLES2_GET_FUN(BlitFramebufferANGLE)
    944 
    945 #if !defined(GLES2_USE_CPP_BINDINGS)
    946 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);
    947 #endif
    948 #endif
    949 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);
    950 #endif
    951 
    952 /* GL_ANGLE_framebuffer_multisample */
    953 #ifndef GL_ANGLE_framebuffer_multisample
    954 #define GL_ANGLE_framebuffer_multisample 1
    955 #ifdef GL_GLEXT_PROTOTYPES
    956 #define glRenderbufferStorageMultisampleANGLE GLES2_GET_FUN(RenderbufferStorageMultisampleANGLE)
    957 #if !defined(GLES2_USE_CPP_BINDINGS)
    958 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
    959 #endif
    960 #endif
    961 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
    962 #endif
    963 
    964 /* GL_ANGLE_instanced_arrays */
    965 #ifndef GL_ANGLE_instanced_arrays
    966 #define GL_ANGLE_instanced_arrays 1
    967 #ifdef GL_GLEXT_PROTOTYPES
    968 GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor);
    969 GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
    970 GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
    971 #endif
    972 typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
    973 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
    974 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
    975 #endif
    976 
    977 /*------------------------------------------------------------------------*
    978  * APPLE extension functions
    979  *------------------------------------------------------------------------*/
    980 
    981 /* GL_APPLE_rgb_422 */
    982 #ifndef GL_APPLE_rgb_422
    983 #define GL_APPLE_rgb_422 1
    984 #endif
    985 
    986 /* GL_APPLE_framebuffer_multisample */
    987 #ifndef GL_APPLE_framebuffer_multisample
    988 #define GL_APPLE_framebuffer_multisample 1
    989 #ifdef GL_GLEXT_PROTOTYPES
    990 #define glRenderbufferStorageMultisampleAPPLE GLES2_GET_FUN(RenderbufferStorageMultisampleAPPLE)
    991 #define glResolveMultisampleFramebufferAPPLE GLES2_GET_FUN(ResolveMultisampleFramebufferAPPLE)
    992 #if !defined(GLES2_USE_CPP_BINDINGS)
    993 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
    994 GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
    995 #endif
    996 #endif /* GL_GLEXT_PROTOTYPES */
    997 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
    998 typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
    999 #endif
   1000 
   1001 /* GL_APPLE_texture_format_BGRA8888 */
   1002 #ifndef GL_APPLE_texture_format_BGRA8888
   1003 #define GL_APPLE_texture_format_BGRA8888 1
   1004 #endif
   1005 
   1006 /* GL_APPLE_texture_max_level */
   1007 #ifndef GL_APPLE_texture_max_level
   1008 #define GL_APPLE_texture_max_level 1
   1009 #endif
   1010 
   1011 /*------------------------------------------------------------------------*
   1012  * ARM extension functions
   1013  *------------------------------------------------------------------------*/
   1014 
   1015 /* GL_ARM_mali_shader_binary */
   1016 #ifndef GL_ARM_mali_shader_binary
   1017 #define GL_ARM_mali_shader_binary 1
   1018 #endif
   1019 
   1020 /* GL_ARM_rgba8 */
   1021 #ifndef GL_ARM_rgba8
   1022 #define GL_ARM_rgba8 1
   1023 #endif
   1024 
   1025 /*------------------------------------------------------------------------*
   1026  * EXT extension functions
   1027  *------------------------------------------------------------------------*/
   1028 
   1029 /* GL_EXT_blend_minmax */
   1030 #ifndef GL_EXT_blend_minmax
   1031 #define GL_EXT_blend_minmax 1
   1032 #endif
   1033 
   1034 /* GL_EXT_color_buffer_half_float */
   1035 #ifndef GL_EXT_color_buffer_half_float
   1036 #define GL_EXT_color_buffer_half_float 1
   1037 #endif
   1038 
   1039 /* GL_EXT_debug_label */
   1040 #ifndef GL_EXT_debug_label
   1041 #define GL_EXT_debug_label 1
   1042 #ifdef GL_GLEXT_PROTOTYPES
   1043 #define glLabelObjectEXT GLES2_GET_FUN(LabelObjectEXT)
   1044 #define glGetObjectLabelEXT GLES2_GET_FUN(GetObjectLabelEXT)
   1045 #if !defined(GLES2_USE_CPP_BINDINGS)
   1046 GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
   1047 GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
   1048 #endif
   1049 #endif
   1050 typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
   1051 typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
   1052 #endif
   1053 
   1054 /* GL_EXT_debug_marker */
   1055 #ifndef GL_EXT_debug_marker
   1056 #define GL_EXT_debug_marker 1
   1057 #ifdef GL_GLEXT_PROTOTYPES
   1058 #define glInsertEventMarkerEXT GLES2_GET_FUN(InsertEventMarkerEXT)
   1059 #define glPushGroupMarkerEXT GLES2_GET_FUN(PushGroupMarkerEXT)
   1060 #define glPopGroupMarkerEXT GLES2_GET_FUN(PopGroupMarkerEXT)
   1061 #if !defined(GLES2_USE_CPP_BINDINGS)
   1062 GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
   1063 GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
   1064 GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
   1065 #endif
   1066 #endif
   1067 typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
   1068 typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
   1069 typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
   1070 #endif
   1071 
   1072 /* GL_EXT_discard_framebuffer */
   1073 #ifndef GL_EXT_discard_framebuffer
   1074 #define GL_EXT_discard_framebuffer 1
   1075 #ifdef GL_GLEXT_PROTOTYPES
   1076 #define glDiscardFramebufferEXT GLES2_GET_FUN(DiscardFramebufferEXT)
   1077 #if !defined(GLES2_USE_CPP_BINDINGS)
   1078 GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
   1079 #endif
   1080 #endif
   1081 typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
   1082 #endif
   1083 
   1084 /* GL_EXT_multisampled_render_to_texture */
   1085 #ifndef GL_EXT_multisampled_render_to_texture
   1086 #define GL_EXT_multisampled_render_to_texture 1
   1087 #ifdef GL_GLEXT_PROTOTYPES
   1088 #define glRenderbufferStorageMultisampleEXT GLES2_GET_FUN(RenderbufferStorageMultisampleEXT)
   1089 #define glFramebufferTexture2DMultisampleEXT GLES2_GET_FUN(FramebufferTexture2DMultisampleEXT)
   1090 #if !defined(GLES2_USE_CPP_BINDINGS)
   1091 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
   1092 GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
   1093 #endif
   1094 #endif
   1095 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
   1096 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
   1097 #endif
   1098 
   1099 #ifndef GL_EXT_multi_draw_arrays
   1100 #define GL_EXT_multi_draw_arrays 1
   1101 #ifdef GL_GLEXT_PROTOTYPES
   1102 #define glMultiDrawArraysEXT GLES2_GET_FUN(MultiDrawArraysEXT)
   1103 #define glMultiDrawElementsEXT GLES2_GET_FUN(MultiDrawElementsEXT)
   1104 #if !defined(GLES2_USE_CPP_BINDINGS)
   1105 GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
   1106 GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
   1107 #endif
   1108 #endif /* GL_GLEXT_PROTOTYPES */
   1109 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
   1110 typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
   1111 #endif
   1112 
   1113 /* GL_EXT_occlusion_query_boolean */
   1114 #ifndef GL_EXT_occlusion_query_boolean
   1115 #define GL_EXT_occlusion_query_boolean 1
   1116 #ifdef GL_GLEXT_PROTOTYPES
   1117 #define glGenQueriesEXT GLES2_GET_FUN(GenQueriesEXT)
   1118 #define glDeleteQueriesEXT GLES2_GET_FUN(DeleteQueriesEXT)
   1119 #define glIsQueryEXT GLES2_GET_FUN(IsQueryEXT)
   1120 #define glBeginQueryEXT GLES2_GET_FUN(BeginQueryEXT)
   1121 #define glEndQueryEXT GLES2_GET_FUN(EndQueryEXT)
   1122 #define glGetQueryivEXT GLES2_GET_FUN(GetQueryivEXT)
   1123 #define glGetQueryObjectuivEXT GLES2_GET_FUN(GetQueryObjectuivEXT)
   1124 
   1125 #if !defined(GLES2_USE_CPP_BINDINGS)
   1126 GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
   1127 GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
   1128 GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
   1129 GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
   1130 GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
   1131 GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
   1132 GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
   1133 #endif
   1134 #endif
   1135 typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
   1136 typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
   1137 typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
   1138 typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
   1139 typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
   1140 typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
   1141 typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params);
   1142 #endif
   1143 
   1144 /* GL_EXT_read_format_bgra */
   1145 #ifndef GL_EXT_read_format_bgra
   1146 #define GL_EXT_read_format_bgra 1
   1147 #endif
   1148 
   1149 /* GL_EXT_robustness */
   1150 #ifndef GL_EXT_robustness
   1151 #define GL_EXT_robustness 1
   1152 #ifdef GL_GLEXT_PROTOTYPES
   1153 #define glGetGraphicsResetStatusEXT GLES2_GET_FUN(GetGraphicsResetStatusEXT)
   1154 #define glReadnPixelsEXT GLES2_GET_FUN(ReadnPixelsEXT)
   1155 #define glGetnUniformfvEXT GLES2_GET_FUN(GetnUniformfvEXT)
   1156 #define glGetnUniformivEXT GLES2_GET_FUN(GetnUniformivEXT)
   1157 
   1158 #if !defined(GLES2_USE_CPP_BINDINGS)
   1159 GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void);
   1160 GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
   1161 GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params);
   1162 GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params);
   1163 #endif
   1164 #endif
   1165 typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void);
   1166 typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
   1167 typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params);
   1168 typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
   1169 #endif
   1170 
   1171 /* GL_EXT_separate_shader_objects */
   1172 #ifndef GL_EXT_separate_shader_objects
   1173 #define GL_EXT_separate_shader_objects 1
   1174 #ifdef GL_GLEXT_PROTOTYPES
   1175 #define glUseProgramStagesEXT GLES2_GET_FUN(UseProgramStagesEXT)
   1176 #define glActiveShaderProgramEXT GLES2_GET_FUN(ActiveShaderProgramEXT)
   1177 #define glCreateShaderProgramvEXT GLES2_GET_FUN(CreateShaderProgramvEXT)
   1178 #define glBindProgramPipelineEXT GLES2_GET_FUN(BindProgramPipelineEXT)
   1179 #define glDeleteProgramPipelinesEXT GLES2_GET_FUN(DeleteProgramPipelinesEXT)
   1180 #define glGenProgramPipelinesEXT GLES2_GET_FUN(GenProgramPipelinesEXT)
   1181 #define glIsProgramPipelineEXT GLES2_GET_FUN(IsProgramPipelineEXT)
   1182 #define glProgramParameteriEXT GLES2_GET_FUN(ProgramParameteriEXT)
   1183 #define glGetProgramPipelineivEXT GLES2_GET_FUN(GetProgramPipelineivEXT)
   1184 #define glProgramUniform1iEXT GLES2_GET_FUN(ProgramUniform1iEXT)
   1185 #define glProgramUniform2iEXT GLES2_GET_FUN(ProgramUniform2iEXT)
   1186 #define glProgramUniform3iEXT GLES2_GET_FUN(ProgramUniform3iEXT)
   1187 #define glProgramUniform4iEXT GLES2_GET_FUN(ProgramUniform4iEXT)
   1188 #define glProgramUniform1fEXT GLES2_GET_FUN(ProgramUniform1fEXT)
   1189 #define glProgramUniform2fEXT GLES2_GET_FUN(ProgramUniform2fEXT)
   1190 #define glProgramUniform3fEXT GLES2_GET_FUN(ProgramUniform3fEXT)
   1191 #define glProgramUniform4fEXT GLES2_GET_FUN(ProgramUniform4fEXT)
   1192 #define glProgramUniform1ivEXT GLES2_GET_FUN(ProgramUniform1ivEXT)
   1193 #define glProgramUniform2ivEXT GLES2_GET_FUN(ProgramUniform2ivEXT)
   1194 #define glProgramUniform3ivEXT GLES2_GET_FUN(ProgramUniform3ivEXT)
   1195 #define glProgramUniform4ivEXT GLES2_GET_FUN(ProgramUniform4ivEXT)
   1196 #define glProgramUniform1fvEXT GLES2_GET_FUN(ProgramUniform1fvEXT)
   1197 #define glProgramUniform2fvEXT GLES2_GET_FUN(ProgramUniform2fvEXT)
   1198 #define glProgramUniform3fvEXT GLES2_GET_FUN(ProgramUniform3fvEXT)
   1199 #define glProgramUniform4fvEXT GLES2_GET_FUN(ProgramUniform4fvEXT)
   1200 #define glProgramUniformMatrix2fvEXT GLES2_GET_FUN(ProgramUniformMatrix2fvEXT)
   1201 #define glProgramUniformMatrix3fvEXT GLES2_GET_FUN(ProgramUniformMatrix3fvEXT)
   1202 #define glProgramUniformMatrix4fvEXT GLES2_GET_FUN(ProgramUniformMatrix4fvEXT)
   1203 #define glValidateProgramPipelineEXT GLES2_GET_FUN(ValidateProgramPipelineEXT)
   1204 #define glGetProgramPipelineInfoLogEXT GLES2_GET_FUN(GetProgramPipelineInfoLogEXT)
   1205 
   1206 #if !defined(GLES2_USE_CPP_BINDINGS)
   1207 GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program);
   1208 GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program);
   1209 GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings);
   1210 GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline);
   1211 GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines);
   1212 GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines);
   1213 GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline);
   1214 GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
   1215 GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params);
   1216 GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x);
   1217 GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y);
   1218 GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z);
   1219 GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
   1220 GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x);
   1221 GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y);
   1222 GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
   1223 GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
   1224 GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
   1225 GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
   1226 GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
   1227 GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
   1228 GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1229 GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1230 GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1231 GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1232 GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
   1233 GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
   1234 GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
   1235 GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline);
   1236 GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
   1237 #endif
   1238 #endif
   1239 typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
   1240 typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program);
   1241 typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings);
   1242 typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
   1243 typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines);
   1244 typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines);
   1245 typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
   1246 typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
   1247 typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params);
   1248 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x);
   1249 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y);
   1250 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
   1251 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
   1252 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x);
   1253 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
   1254 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
   1255 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
   1256 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
   1257 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
   1258 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
   1259 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
   1260 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1261 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1262 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1263 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
   1264 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
   1265 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
   1266 typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
   1267 typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
   1268 typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
   1269 #endif
   1270 
   1271 /* GL_EXT_shader_texture_lod */
   1272 #ifndef GL_EXT_shader_texture_lod
   1273 #define GL_EXT_shader_texture_lod 1
   1274 #endif
   1275 
   1276 /* GL_EXT_shadow_samplers */
   1277 #ifndef GL_EXT_shadow_samplers
   1278 #define GL_EXT_shadow_samplers 1
   1279 #endif
   1280 
   1281 /* GL_EXT_sRGB */
   1282 #ifndef GL_EXT_sRGB
   1283 #define GL_EXT_sRGB 1
   1284 #endif
   1285 
   1286 /* GL_EXT_texture_compression_dxt1 */
   1287 #ifndef GL_EXT_texture_compression_dxt1
   1288 #define GL_EXT_texture_compression_dxt1 1
   1289 #endif
   1290 
   1291 /* GL_EXT_texture_filter_anisotropic */
   1292 #ifndef GL_EXT_texture_filter_anisotropic
   1293 #define GL_EXT_texture_filter_anisotropic 1
   1294 #endif
   1295 
   1296 /* GL_EXT_texture_format_BGRA8888 */
   1297 #ifndef GL_EXT_texture_format_BGRA8888
   1298 #define GL_EXT_texture_format_BGRA8888 1
   1299 #endif
   1300 
   1301 /* GL_EXT_texture_rg */
   1302 #ifndef GL_EXT_texture_rg
   1303 #define GL_EXT_texture_rg 1
   1304 #endif
   1305 
   1306 /* GL_EXT_texture_storage */
   1307 #ifndef GL_EXT_texture_storage
   1308 #define GL_EXT_texture_storage 1
   1309 #ifdef GL_GLEXT_PROTOTYPES
   1310 #define glTexStorage1DEXT     GLES2_GET_FUN(TexStorage1DEXT)
   1311 #define glTexStorage2DEXT     GLES2_GET_FUN(TexStorage2DEXT)
   1312 #define glTexStorage3DEXT     GLES2_GET_FUN(TexStorage3DEXT)
   1313 #define glTextureStorage1DEXT GLES2_GET_FUN(TextureStorage1DEXT)
   1314 #define glTextureStorage2DEXT GLES2_GET_FUN(TextureStorage2DEXT)
   1315 #define glTextureStorage3DEXT GLES2_GET_FUN(TextureStorage3DEXT)
   1316 
   1317 #if !defined(GLES2_USE_CPP_BINDINGS)
   1318 GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
   1319 GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
   1320 GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
   1321 GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
   1322 GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
   1323 GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
   1324 #endif
   1325 #endif
   1326 typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
   1327 typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
   1328 typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
   1329 typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
   1330 typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
   1331 typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
   1332 #endif
   1333 
   1334 /* GL_EXT_texture_type_2_10_10_10_REV */
   1335 #ifndef GL_EXT_texture_type_2_10_10_10_REV
   1336 #define GL_EXT_texture_type_2_10_10_10_REV 1
   1337 #endif
   1338 
   1339 /* GL_EXT_unpack_subimage */
   1340 #ifndef GL_EXT_unpack_subimage
   1341 #define GL_EXT_unpack_subimage 1
   1342 #endif
   1343 
   1344 /*------------------------------------------------------------------------*
   1345  * DMP extension functions
   1346  *------------------------------------------------------------------------*/
   1347 
   1348 /* GL_DMP_shader_binary */
   1349 #ifndef GL_DMP_shader_binary
   1350 #define GL_DMP_shader_binary 1
   1351 #endif
   1352 
   1353 /*------------------------------------------------------------------------*
   1354  * IMG extension functions
   1355  *------------------------------------------------------------------------*/
   1356 
   1357 /* GL_IMG_program_binary */
   1358 #ifndef GL_IMG_program_binary
   1359 #define GL_IMG_program_binary 1
   1360 #endif
   1361 
   1362 /* GL_IMG_read_format */
   1363 #ifndef GL_IMG_read_format
   1364 #define GL_IMG_read_format 1
   1365 #endif
   1366 
   1367 /* GL_IMG_shader_binary */
   1368 #ifndef GL_IMG_shader_binary
   1369 #define GL_IMG_shader_binary 1
   1370 #endif
   1371 
   1372 /* GL_IMG_texture_compression_pvrtc */
   1373 #ifndef GL_IMG_texture_compression_pvrtc
   1374 #define GL_IMG_texture_compression_pvrtc 1
   1375 #endif
   1376 
   1377 /* GL_IMG_multisampled_render_to_texture */
   1378 #ifndef GL_IMG_multisampled_render_to_texture
   1379 #define GL_IMG_multisampled_render_to_texture 1
   1380 #ifdef GL_GLEXT_PROTOTYPES
   1381 #define glRenderbufferStorageMultisampleIMG GLES2_GET_FUN(RenderbufferStorageMultisampleIMG)
   1382 #define glFramebufferTexture2DMultisampleIMG GLES2_GET_FUN(FramebufferTexture2DMultisampleIMG)
   1383 
   1384 #if !defined(GLES2_USE_CPP_BINDINGS)
   1385 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
   1386 GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
   1387 #endif
   1388 #endif
   1389 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
   1390 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
   1391 #endif
   1392 
   1393 /*------------------------------------------------------------------------*
   1394  * NV extension functions
   1395  *------------------------------------------------------------------------*/
   1396 
   1397 /* GL_NV_coverage_sample */
   1398 #ifndef GL_NV_coverage_sample
   1399 #define GL_NV_coverage_sample 1
   1400 #ifdef GL_GLEXT_PROTOTYPES
   1401 #define glCoverageMaskNV GLES2_GET_FUN(CoverageMaskNV)
   1402 #define glCoverageOperationNV GLES2_GET_FUN(CoverageOperationNV)
   1403 
   1404 #if !defined(GLES2_USE_CPP_BINDINGS)
   1405 GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
   1406 GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
   1407 #endif
   1408 #endif
   1409 typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
   1410 typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
   1411 #endif
   1412 
   1413 /* GL_NV_depth_nonlinear */
   1414 #ifndef GL_NV_depth_nonlinear
   1415 #define GL_NV_depth_nonlinear 1
   1416 #endif
   1417 
   1418 /* GL_NV_draw_buffers */
   1419 #ifndef GL_NV_draw_buffers
   1420 #define GL_NV_draw_buffers 1
   1421 #ifdef GL_GLEXT_PROTOTYPES
   1422 #define glDrawBuffersNV GLES2_GET_FUN(DrawBuffersNV)
   1423 #if !defined(GLES2_USE_CPP_BINDINGS)
   1424 GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
   1425 #endif
   1426 #endif
   1427 typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
   1428 #endif
   1429 
   1430 /* GL_NV_fbo_color_attachments */
   1431 #ifndef GL_NV_fbo_color_attachments
   1432 #define GL_NV_fbo_color_attachments 1
   1433 #endif
   1434 
   1435 /* GL_NV_fence */
   1436 #ifndef GL_NV_fence
   1437 #define GL_NV_fence 1
   1438 #ifdef GL_GLEXT_PROTOTYPES
   1439 #define glDeleteFencesNV GLES2_GET_FUN(DeleteFencesNV)
   1440 #define glGenFencesNV GLES2_GET_FUN(GenFencesNV)
   1441 #define glIsFenceNV GLES2_GET_FUN(IsFenceNV)
   1442 #define glTestFenceNV GLES2_GET_FUN(TestFenceNV)
   1443 #define glGetFenceivNV GLES2_GET_FUN(GetFenceivNV)
   1444 #define glFinishFenceNV GLES2_GET_FUN(FinishFenceNV)
   1445 #define glSetFenceNV GLES2_GET_FUN(SetFenceNV)
   1446 
   1447 #if !defined(GLES2_USE_CPP_BINDINGS)
   1448 GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
   1449 GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
   1450 GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
   1451 GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
   1452 GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
   1453 GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
   1454 GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
   1455 #endif
   1456 #endif
   1457 typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
   1458 typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
   1459 typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
   1460 typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
   1461 typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
   1462 typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
   1463 typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
   1464 #endif
   1465 
   1466 /* GL_NV_read_buffer */
   1467 #ifndef GL_NV_read_buffer
   1468 #define GL_NV_read_buffer 1
   1469 #ifdef GL_GLEXT_PROTOTYPES
   1470 #define glReadBufferNV GLES2_GET_FUN(ReadBufferNV)
   1471 #if !defined(GLES2_USE_CPP_BINDINGS)
   1472 GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
   1473 #endif
   1474 #endif
   1475 typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
   1476 #endif
   1477 
   1478 /* GL_NV_read_buffer_front */
   1479 #ifndef GL_NV_read_buffer_front
   1480 #define GL_NV_read_buffer_front 1
   1481 #endif
   1482 
   1483 /* GL_NV_read_depth */
   1484 #ifndef GL_NV_read_depth
   1485 #define GL_NV_read_depth 1
   1486 #endif
   1487 
   1488 /* GL_NV_read_depth_stencil */
   1489 #ifndef GL_NV_read_depth_stencil
   1490 #define GL_NV_read_depth_stencil 1
   1491 #endif
   1492 
   1493 /* GL_NV_read_stencil */
   1494 #ifndef GL_NV_read_stencil
   1495 #define GL_NV_read_stencil 1
   1496 #endif
   1497 
   1498 /* GL_NV_texture_compression_s3tc_update */
   1499 #ifndef GL_NV_texture_compression_s3tc_update
   1500 #define GL_NV_texture_compression_s3tc_update 1
   1501 #endif
   1502 
   1503 /* GL_NV_texture_npot_2D_mipmap */
   1504 #ifndef GL_NV_texture_npot_2D_mipmap
   1505 #define GL_NV_texture_npot_2D_mipmap 1
   1506 #endif
   1507 
   1508 /*------------------------------------------------------------------------*
   1509  * QCOM extension functions
   1510  *------------------------------------------------------------------------*/
   1511 
   1512 /* GL_QCOM_alpha_test */
   1513 #ifndef GL_QCOM_alpha_test
   1514 #define GL_QCOM_alpha_test 1
   1515 #ifdef GL_GLEXT_PROTOTYPES
   1516 #define glAlphaFuncQCOM GLES2_GET_FUN(AlphaFuncQCOM)
   1517 #if !defined(GLES2_USE_CPP_BINDINGS)
   1518 GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
   1519 #endif
   1520 #endif
   1521 typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
   1522 #endif
   1523 
   1524 /* GL_QCOM_driver_control */
   1525 #ifndef GL_QCOM_driver_control
   1526 #define GL_QCOM_driver_control 1
   1527 #ifdef GL_GLEXT_PROTOTYPES
   1528 #define glGetDriverControlsQCOM GLES2_GET_FUN(GetDriverControlsQCOM)
   1529 #define glGetDriverControlStringQCOM GLES2_GET_FUN(GetDriverControlStringQCOM)
   1530 #define glEnableDriverControlQCOM GLES2_GET_FUN(EnableDriverControlQCOM)
   1531 #define glDisableDriverControlQCOM GLES2_GET_FUN(DisableDriverControlQCOM)
   1532 
   1533 #if !defined(GLES2_USE_CPP_BINDINGS)
   1534 GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
   1535 GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
   1536 GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
   1537 GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
   1538 #endif
   1539 #endif
   1540 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
   1541 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
   1542 typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
   1543 typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
   1544 #endif
   1545 
   1546 /* GL_QCOM_extended_get */
   1547 #ifndef GL_QCOM_extended_get
   1548 #define GL_QCOM_extended_get 1
   1549 #ifdef GL_GLEXT_PROTOTYPES
   1550 #define glExtGetTexturesQCOM GLES2_GET_FUN(ExtGetTexturesQCOM)
   1551 #define glExtGetBuffersQCOM GLES2_GET_FUN(ExtGetBuffersQCOM)
   1552 #define glExtGetRenderbuffersQCOM GLES2_GET_FUN(ExtGetRenderbuffersQCOM)
   1553 #define glExtGetFramebuffersQCOM GLES2_GET_FUN(ExtGetFramebuffersQCOM)
   1554 #define glExtGetTexLevelParameterivQCOM GLES2_GET_FUN(ExtGetTexLevelParameterivQCOM)
   1555 #define glExtTexObjectStateOverrideiQCOM GLES2_GET_FUN(ExtTexObjectStateOverrideiQCOM)
   1556 #define glExtGetTexSubImageQCOM GLES2_GET_FUN(ExtGetTexSubImageQCOM)
   1557 #define glExtGetBufferPointervQCOM GLES2_GET_FUN(ExtGetBufferPointervQCOM)
   1558 
   1559 #if !defined(GLES2_USE_CPP_BINDINGS)
   1560 GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
   1561 GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
   1562 GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
   1563 GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
   1564 GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
   1565 GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
   1566 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);
   1567 GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
   1568 #endif
   1569 #endif
   1570 typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
   1571 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
   1572 typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
   1573 typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
   1574 typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
   1575 typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
   1576 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);
   1577 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
   1578 #endif
   1579 
   1580 /* GL_QCOM_extended_get2 */
   1581 #ifndef GL_QCOM_extended_get2
   1582 #define GL_QCOM_extended_get2 1
   1583 #ifdef GL_GLEXT_PROTOTYPES
   1584 #define glExtGetShadersQCOM GLES2_GET_FUN(ExtGetShadersQCOM)
   1585 #define glExtGetProgramsQCOM GLES2_GET_FUN(ExtGetProgramsQCOM)
   1586 #define glExtIsProgramBinaryQCOM GLES2_GET_FUN(ExtIsProgramBinaryQCOM)
   1587 #define glExtGetProgramBinarySourceQCOM GLES2_GET_FUN(ExtGetProgramBinarySourceQCOM)
   1588 
   1589 #if !defined(GLES2_USE_CPP_BINDINGS)
   1590 GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
   1591 GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
   1592 GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
   1593 GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
   1594 #endif
   1595 #endif
   1596 typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
   1597 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
   1598 typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
   1599 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
   1600 #endif
   1601 
   1602 /* GL_QCOM_perfmon_global_mode */
   1603 #ifndef GL_QCOM_perfmon_global_mode
   1604 #define GL_QCOM_perfmon_global_mode 1
   1605 #endif
   1606 
   1607 /* GL_QCOM_writeonly_rendering */
   1608 #ifndef GL_QCOM_writeonly_rendering
   1609 #define GL_QCOM_writeonly_rendering 1
   1610 #endif
   1611 
   1612 /* GL_QCOM_tiled_rendering */
   1613 #ifndef GL_QCOM_tiled_rendering
   1614 #define GL_QCOM_tiled_rendering 1
   1615 #ifdef GL_GLEXT_PROTOTYPES
   1616 #define glStartTilingQCOM GLES2_GET_FUN(StartTilingQCOM)
   1617 #define glEndTilingQCOM GLES2_GET_FUN(EndTilingQCOM)
   1618 
   1619 #if !defined(GLES2_USE_CPP_BINDINGS)
   1620 GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
   1621 GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
   1622 #endif
   1623 #endif
   1624 typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
   1625 typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
   1626 #endif
   1627 
   1628 /*------------------------------------------------------------------------*
   1629  * VIV extension tokens
   1630  *------------------------------------------------------------------------*/
   1631 
   1632 /* GL_VIV_shader_binary */
   1633 #ifndef GL_VIV_shader_binary
   1634 #define GL_VIV_shader_binary 1
   1635 #endif
   1636 
   1637 /* GL_EXT_framebuffer_multisample */
   1638 #ifndef GL_EXT_framebuffer_multisample
   1639 #define GL_EXT_framebuffer_multisample 1
   1640 
   1641 #ifndef GL_DRAW_FRAMEBUFFER_BINDING
   1642 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
   1643 #endif
   1644 #ifndef GL_DRAW_FRAMEBUFFER_BINDING_EXT
   1645 #define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_DRAW_FRAMEBUFFER_BINDING
   1646 #endif
   1647 #ifndef GL_FRAMEBUFFER_BINDING
   1648 #define GL_FRAMEBUFFER_BINDING 0x8CA6
   1649 #endif
   1650 #ifndef GL_FRAMEBUFFER_BINDING_EXT
   1651 #define GL_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING
   1652 #endif
   1653 #ifndef GL_RENDERBUFFER_BINDING
   1654 #define GL_RENDERBUFFER_BINDING 0x8CA7
   1655 #endif
   1656 #ifndef GL_RENDERBUFFER_BINDING_EXT
   1657 #define GL_RENDERBUFFER_BINDING_EXT GL_RENDERBUFFER_BINDING
   1658 #endif
   1659 #ifndef GL_READ_FRAMEBUFFER
   1660 #define GL_READ_FRAMEBUFFER 0x8CA8
   1661 #endif
   1662 #ifndef GL_READ_FRAMEBUFFER_EXT
   1663 #define GL_READ_FRAMEBUFFER_EXT GL_READ_FRAMEBUFFER
   1664 #endif
   1665 #ifndef GL_DRAW_FRAMEBUFFER
   1666 #define GL_DRAW_FRAMEBUFFER 0x8CA9
   1667 #endif
   1668 #ifndef GL_DRAW_FRAMEBUFFER_EXT
   1669 #define GL_DRAW_FRAMEBUFFER_EXT GL_DRAW_FRAMEBUFFER
   1670 #endif
   1671 #ifndef GL_READ_FRAMEBUFFER_BINDING
   1672 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
   1673 #endif
   1674 #ifndef GL_READ_FRAMEBUFFER_BINDING_EXT
   1675 #define GL_READ_FRAMEBUFFER_BINDING_EXT GL_READ_FRAMEBUFFER_BINDING
   1676 #endif
   1677 #ifndef GL_RENDERBUFFER_SAMPLES
   1678 #define GL_RENDERBUFFER_SAMPLES 0x8CAB
   1679 #endif
   1680 #ifndef GL_RENDERBUFFER_SAMPLES_EXT
   1681 #define GL_RENDERBUFFER_SAMPLES_EXT GL_RENDERBUFFER_SAMPLES
   1682 #endif
   1683 #ifndef GL_MAX_SAMPLES
   1684 #define GL_MAX_SAMPLES 0x8D57
   1685 #endif
   1686 #ifndef GL_MAX_SAMPLES_EXT
   1687 #define GL_MAX_SAMPLES_EXT GL_MAX_SAMPLES
   1688 #endif
   1689 #ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
   1690 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
   1691 #endif
   1692 #ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
   1693 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
   1694 #endif
   1695 
   1696 #if 0  // Defined in GL_EXT_multisampled_render_to_texture
   1697 #ifdef GL_GLEXT_PROTOTYPES
   1698 #define glRenderbufferStorageMultisampleEXT GLES2_GET_FUN(RenderbufferStorageMultisampleEXT)
   1699 #if !defined(GLES2_USE_CPP_BINDINGS)
   1700 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
   1701 #endif
   1702 #endif /* GL_GLEXT_PROTOTYPES */
   1703 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
   1704 #endif
   1705 #endif
   1706 
   1707 #ifndef GL_EXT_framebuffer_blit
   1708 #define GL_EXT_framebuffer_blit 1
   1709 #ifdef GL_GLEXT_PROTOTYPES
   1710 #define glBlitFramebufferEXT GLES2_GET_FUN(BlitFramebufferEXT)
   1711 #if !defined(GLES2_USE_CPP_BINDINGS)
   1712 GL_APICALL void GL_APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
   1713 #endif
   1714 #endif /* GL_GLEXT_PROTOTYPES */
   1715 typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
   1716 #endif
   1717 
   1718 /* GL_CHROMIUM_map_sub */
   1719 #ifndef GL_CHROMIUM_map_sub
   1720 #define GL_CHROMIUM_map_sub 1
   1721 #ifndef GL_READ_ONLY
   1722 #define GL_READ_ONLY 0x88B8
   1723 #endif
   1724 #ifndef GL_WRITE_ONLY
   1725 #define GL_WRITE_ONLY 0x88B9
   1726 #endif
   1727 #ifdef GL_GLEXT_PROTOTYPES
   1728 #define glMapBufferSubDataCHROMIUM GLES2_GET_FUN(MapBufferSubDataCHROMIUM)
   1729 #define glUnmapBufferSubDataCHROMIUM GLES2_GET_FUN(UnmapBufferSubDataCHROMIUM)
   1730 #define glMapTexSubImage2DCHROMIUM GLES2_GET_FUN(MapTexSubImage2DCHROMIUM)
   1731 #define glUnmapTexSubImage2DCHROMIUM GLES2_GET_FUN(UnmapTexSubImage2DCHROMIUM)
   1732 #if !defined(GLES2_USE_CPP_BINDINGS)
   1733 GL_APICALL void* GL_APIENTRY glMapBufferSubDataCHROMIUM (GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
   1734 GL_APICALL void  GL_APIENTRY glUnmapBufferSubDataCHROMIUM (const void* mem);
   1735 GL_APICALL void* GL_APIENTRY glMapTexSubImage2DCHROMIUM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLenum access);
   1736 GL_APICALL void  GL_APIENTRY glUnmapTexSubImage2DCHROMIUM (const void* mem);
   1737 #endif
   1738 #endif
   1739 typedef void* (GL_APIENTRYP PFNGLMAPBUFFERSUBDATACHROMIUM) (GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
   1740 typedef void  (GL_APIENTRYP PFNGLUNMAPBUFFERSUBDATACHROMIUM) (const void* mem);
   1741 typedef void* (GL_APIENTRYP PFNGLMAPTEXSUBIMAGE2DCHROMIUM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLenum access);
   1742 typedef void  (GL_APIENTRYP PFNGLUNMAPTEXSUBIMAGE2DCHROMIUM) (const void* mem);
   1743 #endif
   1744 
   1745 /* GL_CHROMIUM_resize */
   1746 #ifndef GL_CHROMIUM_resize
   1747 #define GL_CHROMIUM_resize 1
   1748 #ifdef GL_GLEXT_PROTOTYPES
   1749 #define glResizeCHROMIUM GLES2_GET_FUN(ResizeCHROMIUM)
   1750 #if !defined(GLES2_USE_CPP_BINDINGS)
   1751 GL_APICALL void GL_APIENTRY glResizeCHROMIUM (
   1752     GLuint width, GLuint height, GLfloat scale_factor);
   1753 #endif
   1754 #else
   1755 typedef void (GL_APIENTRYP PFNGLRESIZECHROMIUM) (GLuint width, GLuint height);
   1756 #endif
   1757 #endif
   1758 
   1759 /* GL_CHROMIUM_request_extension */
   1760 /*
   1761  * This extension allows other extensions to be turned on at run time.
   1762  *
   1763  * glGetRequestableExtensionsCHROMIUM returns a space-separated and
   1764  * null-terminated string containing all of the extension names that
   1765  * can be successfully requested on the current hardware. This may
   1766  * include the names of extensions that have already been enabled.
   1767  *
   1768  * glRequestExtensionCHROMIUM requests that the given extension be
   1769  * enabled. Call glGetString(GL_EXTENSIONS) to find out whether the
   1770  * extension request succeeded.
   1771  */
   1772 #ifndef GL_CHROMIUM_request_extension
   1773 #define GL_CHROMIUM_request_extension 1
   1774 #ifdef GL_GLEXT_PROTOTYPES
   1775 #define glGetRequestableExtensionsCHROMIUM GLES2_GET_FUN(GetRequestableExtensionsCHROMIUM)
   1776 #define glRequestExtensionCHROMIUM GLES2_GET_FUN(RequestExtensionCHROMIUM)
   1777 #if !defined(GLES2_USE_CPP_BINDINGS)
   1778 GL_APICALL const GLchar* GL_APIENTRY glGetRequestableExtensionsCHROMIUM (void);
   1779 GL_APICALL void GL_APIENTRY glRequestExtensionCHROMIUM (const GLchar *extension);
   1780 #endif
   1781 #else
   1782 typedef const GLchar* (GL_APIENTRYP PFNGLGETREQUESTABLEEXTENSIONSCHROMIUM) (void);
   1783 typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONCHROMIUM) (const GLchar *extension);
   1784 #endif
   1785 #endif
   1786 
   1787 /* GL_CHROMIUM_rate_limit_offscreen_context */
   1788 /*
   1789  * This extension will block if the calling context has gotten more than two
   1790  * glRateLimit calls ahead of the GPU process. This keeps the client in sync
   1791  * with the GPU without having to call swapbuffers, which has potentially
   1792  * undesirable side effects.
   1793  */
   1794 #ifndef GL_CHROMIUM_rate_limit_offscreen_context
   1795 #define GL_CHROMIUM_rate_limit_offscreen_context 1
   1796 #ifdef GL_GLEXT_PROTOTYPES
   1797 #define glRateLimitOffscreenContextCHROMIUM  GLES2_GET_FUN(RateLimitOffscreenContextCHROMIUM)
   1798 #if !defined(GLES2_USE_CPP_BINDINGS)
   1799 GL_APICALL void GL_APIENTRY glRateLimitOffscreenContextCHROMIUM (void);
   1800 #endif
   1801 #else
   1802 typedef void (GL_APIENTRYP PFNGLRATELIMITOFFSCREENCONTEXTCHROMIUM) ();
   1803 #endif
   1804 #endif
   1805 
   1806 /* GL_CHROMIUM_get_multiple */
   1807 /*
   1808  * This extension provides functions for quering multiple GL state with a single
   1809  * call.
   1810  */
   1811 #ifndef GL_CHROMIUM_get_multiple
   1812 #define GL_CHROMIUM_get_multiple 1
   1813 #ifdef GL_GLEXT_PROTOTYPES
   1814 #define glGetMultipleIntegervCHROMIUM  GLES2_GET_FUN(GetMultipleIntegervCHROMIUM)
   1815 #define glGetProgramInfoCHROMIUM  GLES2_GET_FUN(GetProgramInfovCHROMIUM)
   1816 #if !defined(GLES2_USE_CPP_BINDINGS)
   1817 GL_APICALL void GL_APIENTRY glGetMultipleIntegervCHROMIUM (const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size);
   1818 GL_APICALL void GL_APIENTRY glGetProgramInfoCHROMIUM (GLuint program, GLsizei bufsize, GLsizei* size, void* info);
   1819 #endif
   1820 #else
   1821 typedef void (GL_APIENTRYP PFNGLGETMULTIPLEINTEGERVCHROMIUM) ();
   1822 typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOCHROMIUM) ();
   1823 #endif
   1824 #endif
   1825 
   1826 /* GL_CHROMIUM_flipy */
   1827 /*
   1828  * This extension provides GL_UNPACK_FLIP_Y_CHROMIUM as a parameter to
   1829  * glPixelStorei. When true images submitted to glTexImage2D and glTexSubImage2D
   1830  * are flipped vertically.
   1831  */
   1832 #ifndef GL_CHROMIUM_flipy
   1833 #define GL_CHROMIUM_flipy 1
   1834 #define GL_UNPACK_FLIP_Y_CHROMIUM 0x9240
   1835 #endif
   1836 
   1837 /* GL_CHROMIUM_texture_compression_dxt3 */
   1838 #ifndef GL_CHROMIUM_texture_compression_dxt3
   1839 #define GL_CHROMIUM_texture_compression_dxt3 1
   1840 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  0x83F2
   1841 #endif
   1842 
   1843 /* GL_CHROMIUM_texture_compression_dxt5 */
   1844 #ifndef GL_CHROMIUM_texture_compression_dxt5
   1845 #define GL_CHROMIUM_texture_compression_dxt5 1
   1846 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  0x83F3
   1847 #endif
   1848 
   1849 /* GL_CHROMIUM_enable_feature */
   1850 #ifndef GL_CHROMIUM_enable_feature
   1851 #define GL_CHROMIUM_enable_feature 1
   1852 #ifdef GL_GLEXT_PROTOTYPES
   1853 #define glEnableFeatureCHROMIUM GLES2_GET_FUN(EnableFeatureCHROMIUM)
   1854 #if !defined(GLES2_USE_CPP_BINDINGS)
   1855 GL_APICALL GLboolean GL_APIENTRY glEnableFeatureCHROMIUM (const GLchar *feature);
   1856 #endif
   1857 #else
   1858 typedef void (GL_APIENTRYP PFNGLENABLEFEATURECHROMIUM) (const GLchar *feature);
   1859 #endif
   1860 #endif
   1861 
   1862 /* GL_CHROMIUM_post_sub_buffer */
   1863 /* This extension is modeled after EGL_NV_post_sub_buffer and
   1864  * GLX_MESA_copy_sub_buffer. It's like a SwapBuffers, but it pushes a region
   1865  * of the back buffer to the front buffer.
   1866  */
   1867 #ifndef GL_CHROMIUM_post_sub_buffer
   1868 #define GL_CHROMIUM_post_sub_buffer 1
   1869 #ifdef GL_GLEXT_PROTOTYPES
   1870 #define glPostSubBufferCHROMIUM GLES2_GET_FUN(PostSubBufferCHROMIUM)
   1871 #if !defined(GLES2_USE_CPP_BINDINGS)
   1872 GL_APICALL void GL_APIENTRY glPostSubBufferCHROMIUM (GLint x, GLint y, GLint width, GLint height);
   1873 #endif
   1874 #else
   1875 typedef void (GL_APIENTRYP PFNGLPOSTSUBBUFFERCHROMIUM) (GLint x, GLint y, GLint width, GLint height);
   1876 #endif
   1877 #endif
   1878 
   1879 /* GL_CHROMIUM_front_buffer_cached */
   1880 /* This extension implies that there is a cache of the front buffer of the
   1881  * surface supporting this extension (e.g. on OSX the front buffer
   1882  * is often backed by an IOSurface). Hence we do not need to redraw
   1883  * (via a SwapBuffers) in order to display the last frame.
   1884  */
   1885 #ifndef GL_CHROMIUM_front_buffer_cached
   1886 #define GL_CHROMIUM_front_buffer_cached 1
   1887 #endif
   1888 
   1889 /* GL_ARB_robustness */
   1890 /* This extension is subsetted for the moment, incorporating only the
   1891  * enums necessary to describe the reasons that we might encounter for
   1892  * losing the context. The entry point querying the reset status is
   1893  * not yet incorporated; to do so, a spec will be needed of a GLES2
   1894  * subset of GL_ARB_robustness.
   1895  */
   1896 #ifndef GL_ARB_robustness
   1897 #define GL_ARB_robustness 1
   1898 #ifndef GL_GUILTY_CONTEXT_RESET_ARB
   1899 #define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
   1900 #endif
   1901 #ifndef GL_INNOCENT_CONTEXT_RESET_ARB
   1902 #define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
   1903 #endif
   1904 #ifndef GL_UNKNOWN_CONTEXT_RESET_ARB
   1905 #define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
   1906 #endif
   1907 #endif
   1908 
   1909 /* GL_ANGLE_translated_shader_source */
   1910 #ifndef GL_ANGLE_translated_shader_source
   1911 #define GL_ANGLE_translated_shader_source 1
   1912 #ifndef GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
   1913 #define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
   1914 #endif
   1915 #ifdef GL_GLEXT_PROTOTYPES
   1916 #define glGetTranslatedShaderSourceANGLE GLES2_GET_FUN(GetTranslatedShaderSourceANGLE)
   1917 #if !defined(GLES2_USE_CPP_BINDINGS)
   1918 GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
   1919 #endif
   1920 #endif
   1921 typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
   1922 #endif
   1923 
   1924 /* GL_ARB_texture_rectangle */
   1925 /* Exposes only the subset necessary to support GL_CHROMIUM_iosurface.
   1926  */
   1927 #ifndef GL_ARB_texture_rectangle
   1928 #define GL_ARB_texture_rectangle 1
   1929 #ifndef GL_TEXTURE_RECTANGLE_ARB
   1930 #define GL_TEXTURE_RECTANGLE_ARB 0x84F5
   1931 #endif
   1932 #ifndef GL_TEXTURE_BINDING_RECTANGLE_ARB
   1933 #define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
   1934 #endif
   1935 #ifndef GL_SAMPLER_2D_RECT_ARB
   1936 #define GL_SAMPLER_2D_RECT_ARB 0x8B63
   1937 #endif
   1938 #endif
   1939 
   1940 /* GL_CHROMIUM_iosurface */
   1941 /* Exposes the Mac OS-specfic CGLTexImageIOSurface2D entry point as a
   1942  * Chromium extension in the cross-platform API. Binds the IOSurface with
   1943  * the given ID (an IOSurfaceID) to the texture bound to the given target.
   1944  * To avoid needing to expose extraneous enums, assumes internal format
   1945  * RGBA, format BGRA, and type UNSIGNED_INT_8_8_8_8_REV.
   1946  */
   1947 #ifndef GL_CHROMIUM_iosurface
   1948 #define GL_CHROMIUM_iosurface 1
   1949 #ifdef GL_GLEXT_PROTOTYPES
   1950 #define glTexImageIOSurface2DCHROMIUM GLES2_GET_FUN(TexImageIOSurface2DCHROMIUM)
   1951 #if !defined(GLES2_USE_CPP_BINDINGS)
   1952 GL_APICALL void GL_APIENTRY glTexImageIOSurface2DCHROMIUM (GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId, GLuint plane);
   1953 #endif
   1954 #else
   1955 typedef void (GL_APIENTRYP PFNGLTEXIMAGEIOSURFACE2DCHROMIUM) (GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId, GLuint plane);
   1956 #endif
   1957 #endif
   1958 
   1959 /* GL_CHROMIUM_copy_texture */
   1960 #ifndef GL_CHROMIUM_copy_texture
   1961 #ifndef GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM
   1962 #define GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM 0x9241
   1963 #endif
   1964 #ifndef GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM
   1965 #define GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM 0x9243
   1966 #endif
   1967 #ifdef GL_GLEXT_PROTOTYPES
   1968 #define glCopyTextureCHROMIUM GLES2_GET_FUN(CopyTextureCHROMIUM)
   1969 #if !defined(GLES2_USE_CPP_BINDINGS)
   1970 GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUM (GLenum target, GLenum source_id, GLenum dest_id, GLint level);
   1971 #endif
   1972 #else
   1973 typedef void (GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUM) (GLenum target, GLenum source_id, GLenum dest_id, GLint level);
   1974 #endif
   1975 #endif
   1976 
   1977 /* GL_CHROMIUM_command_buffer_query */
   1978 /* Exposes GL_CHROMIUM_command_buffer_query.
   1979  */
   1980 #ifndef GL_CHROMIUM_command_buffer_query
   1981 #define GL_CHROMIUM_command_buffer_query 1
   1982 // TODO(gman): Get official numbers for these constants.
   1983 #define GL_COMMANDS_ISSUED_CHROMIUM 0x84F2
   1984 #endif
   1985 
   1986 #ifdef __cplusplus
   1987 }
   1988 #endif
   1989 
   1990 #endif /* __gl2ext_h_ */
   1991