1 /*
2 Copyright (c) 2012, Broadcom Europe Ltd
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7     * Redistributions of source code must retain the above copyright
8       notice, this list of conditions and the following disclaimer.
9     * Redistributions in binary form must reproduce the above copyright
10       notice, this list of conditions and the following disclaimer in the
11       documentation and/or other materials provided with the distribution.
12     * Neither the name of the copyright holder nor the
13       names of its contributors may be used to endorse or promote products
14       derived from this software without specific prior written permission.
15 
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 #ifndef __gl2ext_h_
28 #define __gl2ext_h_
29 
30 /* $Revision: 15049 $ on $Date:: 2011-07-07 01:28:16 +0100 #$ */
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /* We want this */
37 #ifndef GL_GLEXT_PROTOTYPES
38 #define GL_GLEXT_PROTOTYPES
39 #endif
40 
41 /*
42  * This document is licensed under the SGI Free Software B License Version
43  * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
44  */
45 
46 #ifndef GL_APIENTRYP
47 #   define GL_APIENTRYP GL_APIENTRY*
48 #endif
49 
50 /*------------------------------------------------------------------------*
51  * OES extension tokens
52  *------------------------------------------------------------------------*/
53 
54 /* GL_OES_compressed_ETC1_RGB8_texture */
55 #ifndef GL_OES_compressed_ETC1_RGB8_texture
56 #define GL_ETC1_RGB8_OES                                        0x8D64
57 #endif
58 
59 /* GL_OES_compressed_paletted_texture */
60 #ifndef GL_OES_compressed_paletted_texture
61 #define GL_PALETTE4_RGB8_OES                                    0x8B90
62 #define GL_PALETTE4_RGBA8_OES                                   0x8B91
63 #define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
64 #define GL_PALETTE4_RGBA4_OES                                   0x8B93
65 #define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
66 #define GL_PALETTE8_RGB8_OES                                    0x8B95
67 #define GL_PALETTE8_RGBA8_OES                                   0x8B96
68 #define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
69 #define GL_PALETTE8_RGBA4_OES                                   0x8B98
70 #define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
71 #endif
72 
73 /* GL_OES_depth24 */
74 #ifndef GL_OES_depth24
75 #define GL_DEPTH_COMPONENT24_OES                                0x81A6
76 #endif
77 
78 /* GL_OES_depth32 */
79 #ifndef GL_OES_depth32
80 #define GL_DEPTH_COMPONENT32_OES                                0x81A7
81 #endif
82 
83 /* GL_OES_depth_texture */
84 /* No new tokens introduced by this extension. */
85 
86 /* GL_OES_EGL_image */
87 #ifndef GL_OES_EGL_image
88 typedef void* GLeglImageOES;
89 #endif
90 
91 /* GL_OES_EGL_image_external */
92 #ifndef GL_OES_EGL_image_external
93 /* GLeglImageOES defined in GL_OES_EGL_image already. */
94 #define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
95 #define GL_SAMPLER_EXTERNAL_OES                                 0x8D66
96 #define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
97 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
98 #endif
99 
100 /* GL_OES_element_index_uint */
101 #ifndef GL_OES_element_index_uint
102 #define GL_UNSIGNED_INT                                         0x1405
103 #endif
104 
105 /* GL_OES_get_program_binary */
106 #ifndef GL_OES_get_program_binary
107 #define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
108 #define GL_NUM_PROGRAM_BINARY_FORMATS_OES                       0x87FE
109 #define GL_PROGRAM_BINARY_FORMATS_OES                           0x87FF
110 #endif
111 
112 /* GL_OES_mapbuffer */
113 #ifndef GL_OES_mapbuffer
114 #define GL_WRITE_ONLY_OES                                       0x88B9
115 #define GL_BUFFER_ACCESS_OES                                    0x88BB
116 #define GL_BUFFER_MAPPED_OES                                    0x88BC
117 #define GL_BUFFER_MAP_POINTER_OES                               0x88BD
118 #endif
119 
120 /* GL_OES_packed_depth_stencil */
121 #ifndef GL_OES_packed_depth_stencil
122 #define GL_DEPTH_STENCIL_OES                                    0x84F9
123 #define GL_UNSIGNED_INT_24_8_OES                                0x84FA
124 #define GL_DEPTH24_STENCIL8_OES                                 0x88F0
125 #endif
126 
127 /* GL_OES_rgb8_rgba8 */
128 #ifndef GL_OES_rgb8_rgba8
129 #define GL_RGB8_OES                                             0x8051
130 #define GL_RGBA8_OES                                            0x8058
131 #endif
132 
133 /* GL_OES_standard_derivatives */
134 #ifndef GL_OES_standard_derivatives
135 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                  0x8B8B
136 #endif
137 
138 /* GL_OES_stencil1 */
139 #ifndef GL_OES_stencil1
140 #define GL_STENCIL_INDEX1_OES                                   0x8D46
141 #endif
142 
143 /* GL_OES_stencil4 */
144 #ifndef GL_OES_stencil4
145 #define GL_STENCIL_INDEX4_OES                                   0x8D47
146 #endif
147 
148 /* GL_OES_texture_3D */
149 #ifndef GL_OES_texture_3D
150 #define GL_TEXTURE_WRAP_R_OES                                   0x8072
151 #define GL_TEXTURE_3D_OES                                       0x806F
152 #define GL_TEXTURE_BINDING_3D_OES                               0x806A
153 #define GL_MAX_3D_TEXTURE_SIZE_OES                              0x8073
154 #define GL_SAMPLER_3D_OES                                       0x8B5F
155 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES        0x8CD4
156 #endif
157 
158 /* GL_OES_texture_float */
159 /* No new tokens introduced by this extension. */
160 
161 /* GL_OES_texture_float_linear */
162 /* No new tokens introduced by this extension. */
163 
164 /* GL_OES_texture_half_float */
165 #ifndef GL_OES_texture_half_float
166 #define GL_HALF_FLOAT_OES                                       0x8D61
167 #endif
168 
169 /* GL_OES_texture_half_float_linear */
170 /* No new tokens introduced by this extension. */
171 
172 /* GL_OES_texture_npot */
173 /* No new tokens introduced by this extension. */
174 
175 /* GL_OES_vertex_array_object */
176 #ifndef GL_OES_vertex_array_object
177 #define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
178 #endif
179 
180 /* GL_OES_vertex_half_float */
181 /* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
182 
183 /* GL_OES_vertex_type_10_10_10_2 */
184 #ifndef GL_OES_vertex_type_10_10_10_2
185 #define GL_UNSIGNED_INT_10_10_10_2_OES                          0x8DF6
186 #define GL_INT_10_10_10_2_OES                                   0x8DF7
187 #endif
188 
189 /*------------------------------------------------------------------------*
190  * AMD extension tokens
191  *------------------------------------------------------------------------*/
192 
193 /* GL_AMD_compressed_3DC_texture */
194 #ifndef GL_AMD_compressed_3DC_texture
195 #define GL_3DC_X_AMD                                            0x87F9
196 #define GL_3DC_XY_AMD                                           0x87FA
197 #endif
198 
199 /* GL_AMD_compressed_ATC_texture */
200 #ifndef GL_AMD_compressed_ATC_texture
201 #define GL_ATC_RGB_AMD                                          0x8C92
202 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
203 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
204 #endif
205 
206 /* GL_AMD_performance_monitor */
207 #ifndef GL_AMD_performance_monitor
208 #define GL_COUNTER_TYPE_AMD                                     0x8BC0
209 #define GL_COUNTER_RANGE_AMD                                    0x8BC1
210 #define GL_UNSIGNED_INT64_AMD                                   0x8BC2
211 #define GL_PERCENTAGE_AMD                                       0x8BC3
212 #define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
213 #define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
214 #define GL_PERFMON_RESULT_AMD                                   0x8BC6
215 #endif
216 
217 /* GL_AMD_program_binary_Z400 */
218 #ifndef GL_AMD_program_binary_Z400
219 #define GL_Z400_BINARY_AMD                                      0x8740
220 #endif
221 
222 /*------------------------------------------------------------------------*
223  * ANGLE extension tokens
224  *------------------------------------------------------------------------*/
225 
226 /* GL_ANGLE_framebuffer_blit */
227 #ifndef GL_ANGLE_framebuffer_blit
228 #define GL_READ_FRAMEBUFFER_ANGLE                               0x8CA8
229 #define GL_DRAW_FRAMEBUFFER_ANGLE                               0x8CA9
230 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                       0x8CA6
231 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE                       0x8CAA
232 #endif
233 
234 /* GL_ANGLE_framebuffer_multisample */
235 #ifndef GL_ANGLE_framebuffer_multisample
236 #define GL_RENDERBUFFER_SAMPLES_ANGLE                           0x8CAB
237 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE             0x8D56
238 #define GL_MAX_SAMPLES_ANGLE                                    0x8D57
239 #endif
240 
241 /*------------------------------------------------------------------------*
242  * APPLE extension tokens
243  *------------------------------------------------------------------------*/
244 
245 /* GL_APPLE_rgb_422 */
246 #ifndef GL_APPLE_rgb_422
247 #define GL_RGB_422_APPLE                                        0x8A1F
248 #define GL_UNSIGNED_SHORT_8_8_APPLE                             0x85BA
249 #define GL_UNSIGNED_SHORT_8_8_REV_APPLE                         0x85BB
250 #endif
251 
252 /* GL_APPLE_framebuffer_multisample */
253 #ifndef GL_APPLE_framebuffer_multisample
254 #define GL_RENDERBUFFER_SAMPLES_APPLE                           0x8CAB
255 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE             0x8D56
256 #define GL_MAX_SAMPLES_APPLE                                    0x8D57
257 #define GL_READ_FRAMEBUFFER_APPLE                               0x8CA8
258 #define GL_DRAW_FRAMEBUFFER_APPLE                               0x8CA9
259 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                       0x8CA6
260 #define GL_READ_FRAMEBUFFER_BINDING_APPLE                       0x8CAA
261 #endif
262 
263 /* GL_APPLE_texture_format_BGRA8888 */
264 #ifndef GL_APPLE_texture_format_BGRA8888
265 #define GL_BGRA_EXT                                             0x80E1
266 #endif
267 
268 /* GL_APPLE_texture_max_level */
269 #ifndef GL_APPLE_texture_max_level
270 #define GL_TEXTURE_MAX_LEVEL_APPLE                              0x813D
271 #endif
272 
273 /*------------------------------------------------------------------------*
274  * ARM extension tokens
275  *------------------------------------------------------------------------*/
276 
277 /* GL_ARM_mali_shader_binary */
278 #ifndef GL_ARM_mali_shader_binary
279 #define GL_MALI_SHADER_BINARY_ARM                               0x8F60
280 #endif
281 
282 /* GL_ARM_rgba8 */
283 /* No new tokens introduced by this extension. */
284 
285 /*------------------------------------------------------------------------*
286  * EXT extension tokens
287  *------------------------------------------------------------------------*/
288 
289 /* GL_EXT_blend_minmax */
290 #ifndef GL_EXT_blend_minmax
291 #define GL_MIN_EXT                                              0x8007
292 #define GL_MAX_EXT                                              0x8008
293 #endif
294 
295 /* GL_EXT_discard_framebuffer */
296 #ifndef GL_EXT_discard_framebuffer
297 #define GL_COLOR_EXT                                            0x1800
298 #define GL_DEPTH_EXT                                            0x1801
299 #define GL_STENCIL_EXT                                          0x1802
300 #endif
301 
302 /* GL_EXT_multi_draw_arrays */
303 /* No new tokens introduced by this extension. */
304 
305 /* GL_EXT_read_format_bgra */
306 #ifndef GL_EXT_read_format_bgra
307 #define GL_BGRA_EXT                                             0x80E1
308 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
309 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
310 #endif
311 
312 /* GL_EXT_shader_texture_lod */
313 /* No new tokens introduced by this extension. */
314 
315 /* GL_EXT_texture_filter_anisotropic */
316 #ifndef GL_EXT_texture_filter_anisotropic
317 #define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
318 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
319 #endif
320 
321 /* GL_EXT_texture_format_BGRA8888 */
322 #ifndef GL_EXT_texture_format_BGRA8888
323 #define GL_BGRA_EXT                                             0x80E1
324 #endif
325 
326 #ifndef GL_texture_format_RGBX8888_BRCM
327 #define GL_RGBX_BRCM                                            0x80EE
328 #endif
329 
330 /* GL_EXT_texture_type_2_10_10_10_REV */
331 #ifndef GL_EXT_texture_type_2_10_10_10_REV
332 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
333 #endif
334 
335 /* GL_EXT_texture_compression_dxt1 */
336 #ifndef GL_EXT_texture_compression_dxt1
337 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                         0x83F0
338 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                        0x83F1
339 #endif
340 
341 /* GL_EXT_unpack_subimage */
342 #ifndef GL_EXT_unpack_subimage
343 #define GL_UNPACK_ROW_LENGTH                                    0x0CF2
344 #define GL_UNPACK_SKIP_ROWS                                     0x0CF3
345 #define GL_UNPACK_SKIP_PIXELS                                   0x0CF4
346 #endif
347 
348 /*------------------------------------------------------------------------*
349  * DMP extension tokens
350  *------------------------------------------------------------------------*/
351 
352 /* GL_DMP_shader_binary */
353 #ifndef GL_DMP_shader_binary
354 #define GL_SHADER_BINARY_DMP                                    0x9250
355 #endif
356 
357 /*------------------------------------------------------------------------*
358  * IMG extension tokens
359  *------------------------------------------------------------------------*/
360 
361 /* GL_IMG_program_binary */
362 #ifndef GL_IMG_program_binary
363 #define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
364 #endif
365 
366 /* GL_IMG_read_format */
367 #ifndef GL_IMG_read_format
368 #define GL_BGRA_IMG                                             0x80E1
369 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
370 #endif
371 
372 /* GL_IMG_shader_binary */
373 #ifndef GL_IMG_shader_binary
374 #define GL_SGX_BINARY_IMG                                       0x8C0A
375 #endif
376 
377 /* GL_IMG_texture_compression_pvrtc */
378 #ifndef GL_IMG_texture_compression_pvrtc
379 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
380 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
381 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
382 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
383 #endif
384 
385 /* GL_IMG_multisampled_render_to_texture */
386 #ifndef GL_IMG_multisampled_render_to_texture
387 #define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
388 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
389 #define GL_MAX_SAMPLES_IMG                                      0x9135
390 #define GL_TEXTURE_SAMPLES_IMG                                  0x9136
391 #endif
392 
393 /*------------------------------------------------------------------------*
394  * NV extension tokens
395  *------------------------------------------------------------------------*/
396 
397 /* GL_NV_coverage_sample */
398 #ifndef GL_NV_coverage_sample
399 #define GL_COVERAGE_COMPONENT_NV                                0x8ED0
400 #define GL_COVERAGE_COMPONENT4_NV                               0x8ED1
401 #define GL_COVERAGE_ATTACHMENT_NV                               0x8ED2
402 #define GL_COVERAGE_BUFFERS_NV                                  0x8ED3
403 #define GL_COVERAGE_SAMPLES_NV                                  0x8ED4
404 #define GL_COVERAGE_ALL_FRAGMENTS_NV                            0x8ED5
405 #define GL_COVERAGE_EDGE_FRAGMENTS_NV                           0x8ED6
406 #define GL_COVERAGE_AUTOMATIC_NV                                0x8ED7
407 #define GL_COVERAGE_BUFFER_BIT_NV                               0x8000
408 #endif
409 
410 /* GL_NV_depth_nonlinear */
411 #ifndef GL_NV_depth_nonlinear
412 #define GL_DEPTH_COMPONENT16_NONLINEAR_NV                       0x8E2C
413 #endif
414 
415 /* GL_NV_draw_buffers */
416 #ifndef GL_NV_draw_buffers
417 #define GL_MAX_DRAW_BUFFERS_NV                                  0x8824
418 #define GL_DRAW_BUFFER0_NV                                      0x8825
419 #define GL_DRAW_BUFFER1_NV                                      0x8826
420 #define GL_DRAW_BUFFER2_NV                                      0x8827
421 #define GL_DRAW_BUFFER3_NV                                      0x8828
422 #define GL_DRAW_BUFFER4_NV                                      0x8829
423 #define GL_DRAW_BUFFER5_NV                                      0x882A
424 #define GL_DRAW_BUFFER6_NV                                      0x882B
425 #define GL_DRAW_BUFFER7_NV                                      0x882C
426 #define GL_DRAW_BUFFER8_NV                                      0x882D
427 #define GL_DRAW_BUFFER9_NV                                      0x882E
428 #define GL_DRAW_BUFFER10_NV                                     0x882F
429 #define GL_DRAW_BUFFER11_NV                                     0x8830
430 #define GL_DRAW_BUFFER12_NV                                     0x8831
431 #define GL_DRAW_BUFFER13_NV                                     0x8832
432 #define GL_DRAW_BUFFER14_NV                                     0x8833
433 #define GL_DRAW_BUFFER15_NV                                     0x8834
434 #define GL_COLOR_ATTACHMENT0_NV                                 0x8CE0
435 #define GL_COLOR_ATTACHMENT1_NV                                 0x8CE1
436 #define GL_COLOR_ATTACHMENT2_NV                                 0x8CE2
437 #define GL_COLOR_ATTACHMENT3_NV                                 0x8CE3
438 #define GL_COLOR_ATTACHMENT4_NV                                 0x8CE4
439 #define GL_COLOR_ATTACHMENT5_NV                                 0x8CE5
440 #define GL_COLOR_ATTACHMENT6_NV                                 0x8CE6
441 #define GL_COLOR_ATTACHMENT7_NV                                 0x8CE7
442 #define GL_COLOR_ATTACHMENT8_NV                                 0x8CE8
443 #define GL_COLOR_ATTACHMENT9_NV                                 0x8CE9
444 #define GL_COLOR_ATTACHMENT10_NV                                0x8CEA
445 #define GL_COLOR_ATTACHMENT11_NV                                0x8CEB
446 #define GL_COLOR_ATTACHMENT12_NV                                0x8CEC
447 #define GL_COLOR_ATTACHMENT13_NV                                0x8CED
448 #define GL_COLOR_ATTACHMENT14_NV                                0x8CEE
449 #define GL_COLOR_ATTACHMENT15_NV                                0x8CEF
450 #endif
451 
452 /* GL_NV_fbo_color_attachments */
453 #ifndef GL_NV_fbo_color_attachments
454 #define GL_MAX_COLOR_ATTACHMENTS_NV                             0x8CDF
455 /* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
456 #endif
457 
458 /* GL_NV_fence */
459 #ifndef GL_NV_fence
460 #define GL_ALL_COMPLETED_NV                                     0x84F2
461 #define GL_FENCE_STATUS_NV                                      0x84F3
462 #define GL_FENCE_CONDITION_NV                                   0x84F4
463 #endif
464 
465 /* GL_NV_read_buffer */
466 #ifndef GL_NV_read_buffer
467 #define GL_READ_BUFFER_NV                                       0x0C02
468 #endif
469 
470 /* GL_NV_read_buffer_front */
471 /* No new tokens introduced by this extension. */
472 
473 /* GL_NV_read_depth */
474 /* No new tokens introduced by this extension. */
475 
476 /* GL_NV_read_depth_stencil */
477 /* No new tokens introduced by this extension. */
478 
479 /* GL_NV_read_stencil */
480 /* No new tokens introduced by this extension. */
481 
482 /* GL_NV_texture_compression_s3tc_update */
483 /* No new tokens introduced by this extension. */
484 
485 /* GL_NV_texture_npot_2D_mipmap */
486 /* No new tokens introduced by this extension. */
487 
488 /*------------------------------------------------------------------------*
489  * QCOM extension tokens
490  *------------------------------------------------------------------------*/
491 
492 /* GL_QCOM_alpha_test */
493 #ifndef GL_QCOM_alpha_test
494 #define GL_ALPHA_TEST_QCOM                                      0x0BC0
495 #define GL_ALPHA_TEST_FUNC_QCOM                                 0x0BC1
496 #define GL_ALPHA_TEST_REF_QCOM                                  0x0BC2
497 #endif
498 
499 /* GL_QCOM_driver_control */
500 /* No new tokens introduced by this extension. */
501 
502 /* GL_QCOM_extended_get */
503 #ifndef GL_QCOM_extended_get
504 #define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
505 #define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
506 #define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
507 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
508 #define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
509 #define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
510 #define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
511 #define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
512 #define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
513 #define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
514 #define GL_STATE_RESTORE                                        0x8BDC
515 #endif
516 
517 /* GL_QCOM_extended_get2 */
518 /* No new tokens introduced by this extension. */
519 
520 /* GL_QCOM_perfmon_global_mode */
521 #ifndef GL_QCOM_perfmon_global_mode
522 #define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
523 #endif
524 
525 /* GL_QCOM_writeonly_rendering */
526 #ifndef GL_QCOM_writeonly_rendering
527 #define GL_WRITEONLY_RENDERING_QCOM                             0x8823
528 #endif
529 
530 /* GL_QCOM_tiled_rendering */
531 #ifndef GL_QCOM_tiled_rendering
532 #define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
533 #define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
534 #define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
535 #define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
536 #define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
537 #define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
538 #define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
539 #define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
540 #define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
541 #define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
542 #define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
543 #define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
544 #define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
545 #define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
546 #define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
547 #define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
548 #define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
549 #define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
550 #define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
551 #define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
552 #define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
553 #define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
554 #define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
555 #define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
556 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
557 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
558 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
559 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
560 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
561 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
562 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
563 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
564 #endif
565 
566 /*------------------------------------------------------------------------*
567  * VIV extension tokens
568  *------------------------------------------------------------------------*/
569 
570 /* GL_VIV_shader_binary */
571 #ifndef GL_VIV_shader_binary
572 #define GL_SHADER_BINARY_VIV                                    0x8FC4
573 #endif
574 
575 /*------------------------------------------------------------------------*
576  * BRCM extension tokens
577  * TODO: these aren't official yet
578  *------------------------------------------------------------------------*/
579 #ifndef GL_BRCM_side_by_side_stero_hint
580 #define GL_SIDE_BY_SIDE_STEREO_HINT_BRCM                        0x8193         /* GET AN OFFICIAL ENUM */
581 #endif
582 
583 /*------------------------------------------------------------------------*
584  * End of extension tokens, start of corresponding extension functions
585  *------------------------------------------------------------------------*/
586 
587 /*------------------------------------------------------------------------*
588  * OES extension functions
589  *------------------------------------------------------------------------*/
590 
591 /* GL_OES_compressed_ETC1_RGB8_texture */
592 #ifndef GL_OES_compressed_ETC1_RGB8_texture
593 #define GL_OES_compressed_ETC1_RGB8_texture 1
594 #endif
595 
596 /* GL_OES_compressed_paletted_texture */
597 #ifndef GL_OES_compressed_paletted_texture
598 #define GL_OES_compressed_paletted_texture 1
599 #endif
600 
601 /* GL_OES_depth24 */
602 #ifndef GL_OES_depth24
603 #define GL_OES_depth24 1
604 #endif
605 
606 /* GL_OES_depth32 */
607 #ifndef GL_OES_depth32
608 #define GL_OES_depth32 0
609 #endif
610 
611 /* GL_OES_depth_texture */
612 #ifndef GL_OES_depth_texture
613 #define GL_OES_depth_texture 0
614 #endif
615 
616 /* GL_OES_EGL_image */
617 #ifndef GL_OES_EGL_image
618 #define GL_OES_EGL_image 1
619 #ifdef GL_GLEXT_PROTOTYPES
620 GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
621 GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
622 #endif
623 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
624 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
625 #endif
626 
627 /* GL_OES_EGL_image_external */
628 #ifndef GL_OES_EGL_image_external
629 #define GL_OES_EGL_image_external 1
630 /* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
631 #endif
632 
633 /* GL_OES_element_index_uint */
634 #ifndef GL_OES_element_index_uint
635 #define GL_OES_element_index_uint 0
636 #endif
637 
638 /* GL_OES_fbo_render_mipmap */
639 #ifndef GL_OES_fbo_render_mipmap
640 #define GL_OES_fbo_render_mipmap 0
641 #endif
642 
643 /* GL_OES_fragment_precision_high */
644 #ifndef GL_OES_fragment_precision_high
645 #define GL_OES_fragment_precision_high 0
646 #endif
647 
648 /* GL_OES_get_program_binary */
649 #ifndef GL_OES_get_program_binary
650 #define GL_OES_get_program_binary 0
651 #ifdef GL_GLEXT_PROTOTYPES
652 GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
653 GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
654 #endif
655 typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
656 typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
657 #endif
658 
659 /* GL_OES_mapbuffer */
660 #ifndef GL_OES_mapbuffer
661 #define GL_OES_mapbuffer 0
662 #ifdef GL_GLEXT_PROTOTYPES
663 GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
664 GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
665 GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
666 #endif
667 typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
668 typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
669 typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
670 #endif
671 
672 /* GL_OES_packed_depth_stencil */
673 #ifndef GL_OES_packed_depth_stencil
674 #define GL_OES_packed_depth_stencil 0
675 #endif
676 
677 /* GL_OES_rgb8_rgba8 */
678 #ifndef GL_OES_rgb8_rgba8
679 #define GL_OES_rgb8_rgba8 0
680 #endif
681 
682 /* GL_OES_standard_derivatives */
683 #ifndef GL_OES_standard_derivatives
684 #define GL_OES_standard_derivatives 0
685 #endif
686 
687 /* GL_OES_stencil1 */
688 #ifndef GL_OES_stencil1
689 #define GL_OES_stencil1 0
690 #endif
691 
692 /* GL_OES_stencil4 */
693 #ifndef GL_OES_stencil4
694 #define GL_OES_stencil4 0
695 #endif
696 
697 /* GL_OES_texture_3D */
698 #ifndef GL_OES_texture_3D
699 #define GL_OES_texture_3D 0
700 #ifdef GL_GLEXT_PROTOTYPES
701 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);
702 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);
703 GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
704 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);
705 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);
706 GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
707 #endif
708 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);
709 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);
710 typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
711 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
712 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);
713 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
714 #endif
715 
716 /* GL_OES_texture_float */
717 #ifndef GL_OES_texture_float
718 #define GL_OES_texture_float 0
719 #endif
720 
721 /* GL_OES_texture_float_linear */
722 #ifndef GL_OES_texture_float_linear
723 #define GL_OES_texture_float_linear 0
724 #endif
725 
726 /* GL_OES_texture_half_float */
727 #ifndef GL_OES_texture_half_float
728 #define GL_OES_texture_half_float 0
729 #endif
730 
731 /* GL_OES_texture_half_float_linear */
732 #ifndef GL_OES_texture_half_float_linear
733 #define GL_OES_texture_half_float_linear 0
734 #endif
735 
736 /* GL_OES_texture_npot */
737 #ifndef GL_OES_texture_npot
738 #define GL_OES_texture_npot 1
739 #endif
740 
741 /* GL_OES_vertex_array_object */
742 #ifndef GL_OES_vertex_array_object
743 #define GL_OES_vertex_array_object 0
744 #ifdef GL_GLEXT_PROTOTYPES
745 GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
746 GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
747 GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
748 GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
749 #endif
750 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
751 typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
752 typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
753 typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
754 #endif
755 
756 /* GL_OES_vertex_half_float */
757 #ifndef GL_OES_vertex_half_float
758 #define GL_OES_vertex_half_float 1
759 #endif
760 
761 /* GL_OES_vertex_type_10_10_10_2 */
762 #ifndef GL_OES_vertex_type_10_10_10_2
763 #define GL_OES_vertex_type_10_10_10_2 0
764 #endif
765 
766 /*------------------------------------------------------------------------*
767  * AMD extension functions
768  *------------------------------------------------------------------------*/
769 
770 /* GL_AMD_compressed_3DC_texture */
771 #ifndef GL_AMD_compressed_3DC_texture
772 #define GL_AMD_compressed_3DC_texture 0
773 #endif
774 
775 /* GL_AMD_compressed_ATC_texture */
776 #ifndef GL_AMD_compressed_ATC_texture
777 #define GL_AMD_compressed_ATC_texture 0
778 #endif
779 
780 /* AMD_performance_monitor */
781 #ifndef GL_AMD_performance_monitor
782 #define GL_AMD_performance_monitor 0
783 #ifdef GL_GLEXT_PROTOTYPES
784 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
785 GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
786 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
787 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
788 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
789 GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
790 GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
791 GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
792 GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
793 GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
794 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
795 #endif
796 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
797 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
798 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
799 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
800 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
801 typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
802 typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
803 typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
804 typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
805 typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
806 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
807 #endif
808 
809 /* GL_AMD_program_binary_Z400 */
810 #ifndef GL_AMD_program_binary_Z400
811 #define GL_AMD_program_binary_Z400 0
812 #endif
813 
814 /*------------------------------------------------------------------------*
815  * ANGLE extension functions
816  *------------------------------------------------------------------------*/
817 
818 /* GL_ANGLE_framebuffer_blit */
819 #ifndef GL_ANGLE_framebuffer_blit
820 #define GL_ANGLE_framebuffer_blit 0
821 #ifdef GL_GLEXT_PROTOTYPES
822 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);
823 #endif
824 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);
825 #endif
826 
827 /* GL_ANGLE_framebuffer_multisample */
828 #ifndef GL_ANGLE_framebuffer_multisample
829 #define GL_ANGLE_framebuffer_multisample 0
830 #ifdef GL_GLEXT_PROTOTYPES
831 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
832 #endif
833 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
834 #endif
835 
836 /*------------------------------------------------------------------------*
837  * APPLE extension functions
838  *------------------------------------------------------------------------*/
839 
840 /* GL_APPLE_rgb_422 */
841 #ifndef GL_APPLE_rgb_422
842 #define GL_APPLE_rgb_422 0
843 #endif
844 
845 /* GL_APPLE_framebuffer_multisample */
846 #ifndef GL_APPLE_framebuffer_multisample
847 #define GL_APPLE_framebuffer_multisample 0
848 #ifdef GL_GLEXT_PROTOTYPES
849 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
850 GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
851 #endif /* GL_GLEXT_PROTOTYPES */
852 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
853 typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
854 #endif
855 
856 /* GL_APPLE_texture_format_BGRA8888 */
857 #ifndef GL_APPLE_texture_format_BGRA8888
858 #define GL_APPLE_texture_format_BGRA8888 0
859 #endif
860 
861 /* GL_APPLE_texture_max_level */
862 #ifndef GL_APPLE_texture_max_level
863 #define GL_APPLE_texture_max_level 0
864 #endif
865 
866 /*------------------------------------------------------------------------*
867  * ARM extension functions
868  *------------------------------------------------------------------------*/
869 
870 /* GL_ARM_mali_shader_binary */
871 #ifndef GL_ARM_mali_shader_binary
872 #define GL_ARM_mali_shader_binary 0
873 #endif
874 
875 /* GL_ARM_rgba8 */
876 #ifndef GL_ARM_rgba8
877 #define GL_ARM_rgba8 0
878 #endif
879 
880 /*------------------------------------------------------------------------*
881  * APPLE extension tokens
882  *------------------------------------------------------------------------*/
883 
884 /* GL_APPLE_rgb_422 */
885 #ifndef GL_APPLE_rgb_422
886 #define GL_APPLE_rgb_422 1
887 #define GL_RGB_422_APPLE                                        0x8A1F
888 #define GL_UNSIGNED_SHORT_8_8_APPLE                             0x85BA
889 #define GL_UNSIGNED_SHORT_8_8_REV_APPLE                         0x85BB
890 #endif
891 
892 /*------------------------------------------------------------------------*
893  * EXT extension functions
894  *------------------------------------------------------------------------*/
895 
896 /* GL_EXT_blend_minmax */
897 #ifndef GL_EXT_blend_minmax
898 #define GL_EXT_blend_minmax 0
899 #endif
900 
901 /* GL_EXT_discard_framebuffer */
902 #ifndef GL_EXT_discard_framebuffer
903 #define GL_EXT_discard_framebuffer 1
904 #ifdef GL_GLEXT_PROTOTYPES
905 GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
906 #endif
907 typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
908 #endif
909 
910 /* GL_EXT_debug_marker */
911 #ifndef GL_EXT_debug_marker
912 #define GL_EXT_debug_marker 1
913 #ifdef GL_GLEXT_PROTOTYPES
914 GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
915 GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
916 GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
917 #endif
918 typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
919 typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
920 typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
921 #endif
922 
923 #ifndef GL_EXT_multi_draw_arrays
924 #define GL_EXT_multi_draw_arrays 0
925 #ifdef GL_GLEXT_PROTOTYPES
926 GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
927 GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
928 #endif /* GL_GLEXT_PROTOTYPES */
929 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
930 typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
931 #endif
932 
933 /* GL_EXT_read_format_bgra */
934 #ifndef GL_EXT_read_format_bgra
935 #define GL_EXT_read_format_bgra 0
936 #endif
937 
938 /* GL_EXT_shader_texture_lod */
939 #ifndef GL_EXT_shader_texture_lod
940 #define GL_EXT_shader_texture_lod 0
941 #endif
942 
943 /* GL_EXT_texture_filter_anisotropic */
944 #ifndef GL_EXT_texture_filter_anisotropic
945 #define GL_EXT_texture_filter_anisotropic 0
946 #endif
947 
948 /* GL_EXT_texture_format_BGRA8888 */
949 #ifndef GL_EXT_texture_format_BGRA8888
950 #define GL_EXT_texture_format_BGRA8888 1
951 #endif
952 
953 #ifndef GL_texture_format_RGBX8888_BRCM
954 #define GL_texture_format_RGBX8888_BRCM 1
955 #endif
956 
957 /* GL_EXT_texture_type_2_10_10_10_REV */
958 #ifndef GL_EXT_texture_type_2_10_10_10_REV
959 #define GL_EXT_texture_type_2_10_10_10_REV 0
960 #endif
961 
962 /* GL_EXT_texture_compression_dxt1 */
963 #ifndef GL_EXT_texture_compression_dxt1
964 #define GL_EXT_texture_compression_dxt1 0
965 #endif
966 
967 /* GL_EXT_unpack_subimage */
968 #ifndef GL_EXT_unpack_subimage
969 #define GL_EXT_unpack_subimage 0
970 #endif
971 
972 /*------------------------------------------------------------------------*
973  * DMP extension functions
974  *------------------------------------------------------------------------*/
975 
976 /* GL_DMP_shader_binary */
977 #ifndef GL_DMP_shader_binary
978 #define GL_DMP_shader_binary 0
979 #endif
980 
981 /*------------------------------------------------------------------------*
982  * IMG extension functions
983  *------------------------------------------------------------------------*/
984 
985 /* GL_IMG_program_binary */
986 #ifndef GL_IMG_program_binary
987 #define GL_IMG_program_binary 0
988 #endif
989 
990 /* GL_IMG_read_format */
991 #ifndef GL_IMG_read_format
992 #define GL_IMG_read_format 0
993 #endif
994 
995 /* GL_IMG_shader_binary */
996 #ifndef GL_IMG_shader_binary
997 #define GL_IMG_shader_binary 0
998 #endif
999 
1000 /* GL_IMG_texture_compression_pvrtc */
1001 #ifndef GL_IMG_texture_compression_pvrtc
1002 #define GL_IMG_texture_compression_pvrtc 0
1003 #endif
1004 
1005 /* GL_IMG_multisampled_render_to_texture */
1006 #ifndef GL_IMG_multisampled_render_to_texture
1007 #define GL_IMG_multisampled_render_to_texture 0
1008 #ifdef GL_GLEXT_PROTOTYPES
1009 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1010 GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1011 #endif
1012 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1013 typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
1014 #endif
1015 
1016 /*------------------------------------------------------------------------*
1017  * NV extension functions
1018  *------------------------------------------------------------------------*/
1019 
1020 /* GL_NV_coverage_sample */
1021 #ifndef GL_NV_coverage_sample
1022 #define GL_NV_coverage_sample 0
1023 #ifdef GL_GLEXT_PROTOTYPES
1024 GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
1025 GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
1026 #endif
1027 typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
1028 typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
1029 #endif
1030 
1031 /* GL_NV_depth_nonlinear */
1032 #ifndef GL_NV_depth_nonlinear
1033 #define GL_NV_depth_nonlinear 0
1034 #endif
1035 
1036 /* GL_NV_draw_buffers */
1037 #ifndef GL_NV_draw_buffers
1038 #define GL_NV_draw_buffers 0
1039 #ifdef GL_GLEXT_PROTOTYPES
1040 GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
1041 #endif
1042 typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
1043 #endif
1044 
1045 /* GL_NV_fbo_color_attachments */
1046 #ifndef GL_NV_fbo_color_attachments
1047 #define GL_NV_fbo_color_attachments 0
1048 #endif
1049 
1050 /* GL_NV_fence */
1051 #ifndef GL_NV_fence
1052 #define GL_NV_fence 0
1053 #ifdef GL_GLEXT_PROTOTYPES
1054 GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
1055 GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
1056 GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
1057 GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
1058 GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
1059 GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
1060 GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
1061 #endif
1062 typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
1063 typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
1064 typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
1065 typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
1066 typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
1067 typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
1068 typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
1069 #endif
1070 
1071 /* GL_NV_read_buffer */
1072 #ifndef GL_NV_read_buffer
1073 #define GL_NV_read_buffer 0
1074 #ifdef GL_GLEXT_PROTOTYPES
1075 GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
1076 #endif
1077 typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
1078 #endif
1079 
1080 /* GL_NV_read_buffer_front */
1081 #ifndef GL_NV_read_buffer_front
1082 #define GL_NV_read_buffer_front 0
1083 #endif
1084 
1085 /* GL_NV_read_depth */
1086 #ifndef GL_NV_read_depth
1087 #define GL_NV_read_depth 0
1088 #endif
1089 
1090 /* GL_NV_read_depth_stencil */
1091 #ifndef GL_NV_read_depth_stencil
1092 #define GL_NV_read_depth_stencil 0
1093 #endif
1094 
1095 /* GL_NV_read_stencil */
1096 #ifndef GL_NV_read_stencil
1097 #define GL_NV_read_stencil 0
1098 #endif
1099 
1100 /* GL_NV_texture_compression_s3tc_update */
1101 #ifndef GL_NV_texture_compression_s3tc_update
1102 #define GL_NV_texture_compression_s3tc_update 0
1103 #endif
1104 
1105 /* GL_NV_texture_npot_2D_mipmap */
1106 #ifndef GL_NV_texture_npot_2D_mipmap
1107 #define GL_NV_texture_npot_2D_mipmap 0
1108 #endif
1109 
1110 /*------------------------------------------------------------------------*
1111  * QCOM extension functions
1112  *------------------------------------------------------------------------*/
1113 
1114 /* GL_QCOM_alpha_test */
1115 #ifndef GL_QCOM_alpha_test
1116 #define GL_QCOM_alpha_test 0
1117 #ifdef GL_GLEXT_PROTOTYPES
1118 GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
1119 #endif
1120 typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
1121 #endif
1122 
1123 /* GL_QCOM_driver_control */
1124 #ifndef GL_QCOM_driver_control
1125 #define GL_QCOM_driver_control 0
1126 #ifdef GL_GLEXT_PROTOTYPES
1127 GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
1128 GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1129 GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
1130 GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
1131 #endif
1132 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
1133 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1134 typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1135 typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1136 #endif
1137 
1138 /* GL_QCOM_extended_get */
1139 #ifndef GL_QCOM_extended_get
1140 #define GL_QCOM_extended_get 0
1141 #ifdef GL_GLEXT_PROTOTYPES
1142 GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
1143 GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1144 GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1145 GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1146 GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1147 GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
1148 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);
1149 GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
1150 #endif
1151 typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
1152 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1153 typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1154 typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1155 typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1156 typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
1157 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);
1158 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
1159 #endif
1160 
1161 /* GL_QCOM_extended_get2 */
1162 #ifndef GL_QCOM_extended_get2
1163 #define GL_QCOM_extended_get2 0
1164 #ifdef GL_GLEXT_PROTOTYPES
1165 GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1166 GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1167 GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
1168 GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1169 #endif
1170 typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1171 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1172 typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
1173 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1174 #endif
1175 
1176 /* GL_QCOM_perfmon_global_mode */
1177 #ifndef GL_QCOM_perfmon_global_mode
1178 #define GL_QCOM_perfmon_global_mode 0
1179 #endif
1180 
1181 /* GL_QCOM_writeonly_rendering */
1182 #ifndef GL_QCOM_writeonly_rendering
1183 #define GL_QCOM_writeonly_rendering 0
1184 #endif
1185 
1186 /* GL_QCOM_tiled_rendering */
1187 #ifndef GL_QCOM_tiled_rendering
1188 #define GL_QCOM_tiled_rendering 0
1189 #ifdef GL_GLEXT_PROTOTYPES
1190 GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1191 GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
1192 #endif
1193 typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1194 typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
1195 #endif
1196 
1197 /*------------------------------------------------------------------------*
1198  * VIV extension tokens
1199  *------------------------------------------------------------------------*/
1200 
1201 /* GL_VIV_shader_binary */
1202 #ifndef GL_VIV_shader_binary
1203 #define GL_VIV_shader_binary 0
1204 #endif
1205 
1206 /*------------------------------------------------------------------------*
1207  * BRCM extension functions
1208  * TODO: these aren't official yet
1209  *------------------------------------------------------------------------*/
1210 #ifndef GL_BRCM_side_by_side_stero_hint
1211 #define GL_BRCM_side_by_side_stero_hint 1
1212 #endif
1213 
1214 #ifdef __cplusplus
1215 }
1216 #endif
1217 
1218 #endif /* __gl2ext_h_ */
1219