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
7extern "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
57typedef 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)
703GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
704GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
705#endif
706#endif
707typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
708typedef 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)
739GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
740GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
741#endif
742#endif
743typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
744typedef 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)
755GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
756GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
757GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
758#endif
759#endif
760typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
761typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
762typedef 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)
801GL_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);
802GL_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);
803GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
804GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
805GL_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);
806GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
807#endif
808#endif
809typedef 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);
810typedef 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);
811typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
812typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
813typedef 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);
814typedef 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)
851GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
852GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
853GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
854GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
855#endif
856#endif
857typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
858typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
859typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
860typedef 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)
904GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
905GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
906GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
907GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
908GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
909GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
910GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
911GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
912GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
913GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
914GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
915#endif
916#endif
917typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
918typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
919typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
920typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
921typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
922typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
923typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
924typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
925typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
926typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
927typedef 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)
946GL_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
949typedef 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)
958GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
959#endif
960#endif
961typedef 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
968GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor);
969GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
970GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
971#endif
972typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
973typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
974typedef 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)
993GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
994GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
995#endif
996#endif /* GL_GLEXT_PROTOTYPES */
997typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
998typedef 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)
1046GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
1047GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
1048#endif
1049#endif
1050typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
1051typedef 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)
1062GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
1063GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
1064GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
1065#endif
1066#endif
1067typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
1068typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
1069typedef 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)
1078GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
1079#endif
1080#endif
1081typedef 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)
1091GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1092GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1093#endif
1094#endif
1095typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1096typedef 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)
1105GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
1106GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
1107#endif
1108#endif /* GL_GLEXT_PROTOTYPES */
1109typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
1110typedef 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)
1126GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
1127GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
1128GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
1129GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
1130GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
1131GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
1132GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
1133#endif
1134#endif
1135typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
1136typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
1137typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
1138typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
1139typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
1140typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
1141typedef 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)
1159GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void);
1160GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
1161GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params);
1162GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params);
1163#endif
1164#endif
1165typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void);
1166typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
1167typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params);
1168typedef 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)
1207GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program);
1208GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program);
1209GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings);
1210GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline);
1211GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines);
1212GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines);
1213GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline);
1214GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
1215GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params);
1216GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x);
1217GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y);
1218GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z);
1219GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
1220GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x);
1221GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y);
1222GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
1223GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1224GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1225GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1226GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1227GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
1228GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1229GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1230GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1231GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1232GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1233GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1234GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1235GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline);
1236GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1237#endif
1238#endif
1239typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
1240typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program);
1241typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings);
1242typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1243typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines);
1244typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines);
1245typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1246typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
1247typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params);
1248typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x);
1249typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y);
1250typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
1251typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
1252typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x);
1253typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
1254typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
1255typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1256typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1257typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1258typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1259typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
1260typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1261typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1262typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1263typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
1264typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1265typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1266typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1267typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
1268typedef 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)
1318GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1319GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1320GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1321GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1322GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1323GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1324#endif
1325#endif
1326typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1327typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1328typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
1329typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
1330typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
1331typedef 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)
1385GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1386GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1387#endif
1388#endif
1389typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1390typedef 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)
1405GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
1406GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
1407#endif
1408#endif
1409typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
1410typedef 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)
1424GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
1425#endif
1426#endif
1427typedef 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)
1448GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
1449GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
1450GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
1451GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
1452GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
1453GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
1454GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
1455#endif
1456#endif
1457typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
1458typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
1459typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
1460typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
1461typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
1462typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
1463typedef 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)
1472GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
1473#endif
1474#endif
1475typedef 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)
1518GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
1519#endif
1520#endif
1521typedef 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)
1534GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
1535GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1536GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
1537GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
1538#endif
1539#endif
1540typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
1541typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1542typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1543typedef 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)
1560GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
1561GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1562GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1563GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1564GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1565GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
1566GL_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);
1567GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
1568#endif
1569#endif
1570typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
1571typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1572typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1573typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1574typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1575typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
1576typedef 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);
1577typedef 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)
1590GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1591GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1592GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
1593GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1594#endif
1595#endif
1596typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1597typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1598typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
1599typedef 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)
1620GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1621GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
1622#endif
1623#endif
1624typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1625typedef 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)
1700GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1701#endif
1702#endif /* GL_GLEXT_PROTOTYPES */
1703typedef 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)
1712GL_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 */
1715typedef 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)
1733GL_APICALL void* GL_APIENTRY glMapBufferSubDataCHROMIUM (GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
1734GL_APICALL void  GL_APIENTRY glUnmapBufferSubDataCHROMIUM (const void* mem);
1735GL_APICALL void* GL_APIENTRY glMapTexSubImage2DCHROMIUM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLenum access);
1736GL_APICALL void  GL_APIENTRY glUnmapTexSubImage2DCHROMIUM (const void* mem);
1737#endif
1738#endif
1739typedef void* (GL_APIENTRYP PFNGLMAPBUFFERSUBDATACHROMIUM) (GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
1740typedef void  (GL_APIENTRYP PFNGLUNMAPBUFFERSUBDATACHROMIUM) (const void* mem);
1741typedef void* (GL_APIENTRYP PFNGLMAPTEXSUBIMAGE2DCHROMIUM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLenum access);
1742typedef 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)
1751GL_APICALL void GL_APIENTRY glResizeCHROMIUM (
1752    GLuint width, GLuint height, GLfloat scale_factor);
1753#endif
1754#else
1755typedef 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)
1778GL_APICALL const GLchar* GL_APIENTRY glGetRequestableExtensionsCHROMIUM (void);
1779GL_APICALL void GL_APIENTRY glRequestExtensionCHROMIUM (const GLchar *extension);
1780#endif
1781#else
1782typedef const GLchar* (GL_APIENTRYP PFNGLGETREQUESTABLEEXTENSIONSCHROMIUM) (void);
1783typedef 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)
1799GL_APICALL void GL_APIENTRY glRateLimitOffscreenContextCHROMIUM (void);
1800#endif
1801#else
1802typedef 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)
1817GL_APICALL void GL_APIENTRY glGetMultipleIntegervCHROMIUM (const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size);
1818GL_APICALL void GL_APIENTRY glGetProgramInfoCHROMIUM (GLuint program, GLsizei bufsize, GLsizei* size, void* info);
1819#endif
1820#else
1821typedef void (GL_APIENTRYP PFNGLGETMULTIPLEINTEGERVCHROMIUM) ();
1822typedef 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)
1855GL_APICALL GLboolean GL_APIENTRY glEnableFeatureCHROMIUM (const GLchar *feature);
1856#endif
1857#else
1858typedef 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)
1872GL_APICALL void GL_APIENTRY glPostSubBufferCHROMIUM (GLint x, GLint y, GLint width, GLint height);
1873#endif
1874#else
1875typedef void (GL_APIENTRYP PFNGLPOSTSUBBUFFERCHROMIUM) (GLint x, GLint y, GLint width, GLint height);
1876#endif
1877#endif
1878
1879/* GL_ARB_robustness */
1880/* This extension is subsetted for the moment, incorporating only the
1881 * enums necessary to describe the reasons that we might encounter for
1882 * losing the context. The entry point querying the reset status is
1883 * not yet incorporated; to do so, a spec will be needed of a GLES2
1884 * subset of GL_ARB_robustness.
1885 */
1886#ifndef GL_ARB_robustness
1887#define GL_ARB_robustness 1
1888#ifndef GL_GUILTY_CONTEXT_RESET_ARB
1889#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
1890#endif
1891#ifndef GL_INNOCENT_CONTEXT_RESET_ARB
1892#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
1893#endif
1894#ifndef GL_UNKNOWN_CONTEXT_RESET_ARB
1895#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
1896#endif
1897#endif
1898
1899/* GL_ANGLE_translated_shader_source */
1900#ifndef GL_ANGLE_translated_shader_source
1901#define GL_ANGLE_translated_shader_source 1
1902#ifndef GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
1903#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
1904#endif
1905#ifdef GL_GLEXT_PROTOTYPES
1906#define glGetTranslatedShaderSourceANGLE GLES2_GET_FUN(GetTranslatedShaderSourceANGLE)
1907#if !defined(GLES2_USE_CPP_BINDINGS)
1908GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
1909#endif
1910#endif
1911typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
1912#endif
1913
1914/* GL_ARB_texture_rectangle */
1915/* Exposes only the subset necessary to support GL_CHROMIUM_iosurface.
1916 */
1917#ifndef GL_ARB_texture_rectangle
1918#define GL_ARB_texture_rectangle 1
1919#ifndef GL_TEXTURE_RECTANGLE_ARB
1920#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
1921#endif
1922#ifndef GL_TEXTURE_BINDING_RECTANGLE_ARB
1923#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
1924#endif
1925#ifndef GL_SAMPLER_2D_RECT_ARB
1926#define GL_SAMPLER_2D_RECT_ARB 0x8B63
1927#endif
1928#endif
1929
1930/* GL_CHROMIUM_iosurface */
1931/* Exposes the Mac OS-specfic CGLTexImageIOSurface2D entry point as a
1932 * Chromium extension in the cross-platform API. Binds the IOSurface with
1933 * the given ID (an IOSurfaceID) to the texture bound to the given target.
1934 * To avoid needing to expose extraneous enums, assumes internal format
1935 * RGBA, format BGRA, and type UNSIGNED_INT_8_8_8_8_REV.
1936 */
1937#ifndef GL_CHROMIUM_iosurface
1938#define GL_CHROMIUM_iosurface 1
1939#ifdef GL_GLEXT_PROTOTYPES
1940#define glTexImageIOSurface2DCHROMIUM GLES2_GET_FUN(TexImageIOSurface2DCHROMIUM)
1941#if !defined(GLES2_USE_CPP_BINDINGS)
1942GL_APICALL void GL_APIENTRY glTexImageIOSurface2DCHROMIUM (GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId, GLuint plane);
1943#endif
1944#else
1945typedef void (GL_APIENTRYP PFNGLTEXIMAGEIOSURFACE2DCHROMIUM) (GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId, GLuint plane);
1946#endif
1947#endif
1948
1949/* GL_CHROMIUM_copy_texture */
1950#ifndef GL_CHROMIUM_copy_texture
1951#ifndef GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM
1952#define GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM 0x9241
1953#endif
1954#ifndef GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM
1955#define GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM 0x9243
1956#endif
1957#ifdef GL_GLEXT_PROTOTYPES
1958#define glCopyTextureCHROMIUM GLES2_GET_FUN(CopyTextureCHROMIUM)
1959#if !defined(GLES2_USE_CPP_BINDINGS)
1960GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUM (GLenum target, GLenum source_id, GLenum dest_id, GLint level);
1961#endif
1962#else
1963typedef void (GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUM) (GLenum target, GLenum source_id, GLenum dest_id, GLint level);
1964#endif
1965#endif
1966
1967/* GL_CHROMIUM_command_buffer_query */
1968/* Exposes GL_CHROMIUM_command_buffer_query.
1969 */
1970#ifndef GL_CHROMIUM_command_buffer_query
1971#define GL_CHROMIUM_command_buffer_query 1
1972// TODO(gman): Get official numbers for these constants.
1973#define GL_COMMANDS_ISSUED_CHROMIUM 0x84F2
1974#endif
1975
1976#ifdef __cplusplus
1977}
1978#endif
1979
1980#endif /* __gl2ext_h_ */
1981