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