1/*
2Copyright (c) 2012, Broadcom Europe Ltd
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without
6modification, 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
16THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23ON 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
25SOFTWARE, 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
33extern "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
88typedef 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
620GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
621GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
622#endif
623typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
624typedef 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
652GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
653GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
654#endif
655typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
656typedef 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
663GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
664GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
665GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
666#endif
667typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
668typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
669typedef 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
701GL_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);
702GL_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);
703GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
704GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
705GL_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);
706GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
707#endif
708typedef 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);
709typedef 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);
710typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
711typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
712typedef 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);
713typedef 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
745GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
746GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
747GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
748GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
749#endif
750typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
751typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
752typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
753typedef 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
784GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
785GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
786GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
787GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
788GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
789GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
790GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
791GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
792GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
793GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
794GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
795#endif
796typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
797typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
798typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
799typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
800typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
801typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
802typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
803typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
804typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
805typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
806typedef 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
822GL_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
824typedef 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
831GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
832#endif
833typedef 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
849GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
850GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
851#endif /* GL_GLEXT_PROTOTYPES */
852typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
853typedef 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
905GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
906#endif
907typedef 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
914GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
915GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
916GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
917#endif
918typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
919typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
920typedef 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
926GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
927GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
928#endif /* GL_GLEXT_PROTOTYPES */
929typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
930typedef 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
1009GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1010GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1011#endif
1012typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1013typedef 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
1024GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
1025GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
1026#endif
1027typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
1028typedef 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
1040GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
1041#endif
1042typedef 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
1054GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
1055GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
1056GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
1057GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
1058GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
1059GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
1060GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
1061#endif
1062typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
1063typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
1064typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
1065typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
1066typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
1067typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
1068typedef 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
1075GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
1076#endif
1077typedef 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
1118GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
1119#endif
1120typedef 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
1127GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
1128GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1129GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
1130GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
1131#endif
1132typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
1133typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1134typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1135typedef 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
1142GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
1143GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1144GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1145GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1146GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1147GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
1148GL_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);
1149GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
1150#endif
1151typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
1152typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1153typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1154typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1155typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1156typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
1157typedef 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);
1158typedef 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
1165GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1166GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1167GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
1168GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1169#endif
1170typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1171typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1172typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
1173typedef 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
1190GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1191GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
1192#endif
1193typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1194typedef 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