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 __glext_h_
28#define __glext_h_
29
30/* $Revision: 13240 $ on $Date:: 2010-12-17 15:16:00 -0800 #$ */
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_blend_equation_separate */
55#ifndef GL_OES_blend_equation_separate
56/* BLEND_EQUATION_RGB_OES same as BLEND_EQUATION_OES */
57#define GL_BLEND_EQUATION_RGB_OES 0x8009
58#define GL_BLEND_EQUATION_ALPHA_OES 0x883D
59#endif
60
61/* GL_OES_blend_func_separate */
62#ifndef GL_OES_blend_func_separate
63#define GL_BLEND_DST_RGB_OES 0x80C8
64#define GL_BLEND_SRC_RGB_OES 0x80C9
65#define GL_BLEND_DST_ALPHA_OES 0x80CA
66#define GL_BLEND_SRC_ALPHA_OES 0x80CB
67#endif
68
69/* GL_OES_blend_subtract */
70#ifndef GL_OES_blend_subtract
71#define GL_BLEND_EQUATION_OES 0x8009
72#define GL_FUNC_ADD_OES 0x8006
73#define GL_FUNC_SUBTRACT_OES 0x800A
74#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B
75#endif
76
77/* GL_OES_compressed_ETC1_RGB8_texture */
78#ifndef GL_OES_compressed_ETC1_RGB8_texture
79#define GL_ETC1_RGB8_OES 0x8D64
80#endif
81
82/* GL_OES_depth24 */
83#ifndef GL_OES_depth24
84#define GL_DEPTH_COMPONENT24_OES 0x81A6
85#endif
86
87/* GL_OES_depth32 */
88#ifndef GL_OES_depth32
89#define GL_DEPTH_COMPONENT32_OES 0x81A7
90#endif
91
92/* GL_OES_draw_texture */
93#ifndef GL_OES_draw_texture
94#define GL_TEXTURE_CROP_RECT_OES 0x8B9D
95#endif
96
97/* GL_OES_EGL_image */
98#ifndef GL_OES_EGL_image
99typedef void* GLeglImageOES;
100#endif
101
102/* GL_OES_EGL_image_external */
103#ifndef GL_OES_EGL_image_external
104/* GLeglImageOES defined in GL_OES_EGL_image already. */
105#define GL_TEXTURE_EXTERNAL_OES 0x8D65
106#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
107#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
108#endif
109
110/* GL_OES_element_index_uint */
111#ifndef GL_OES_element_index_uint
112#define GL_UNSIGNED_INT 0x1405
113#endif
114
115/* GL_OES_fixed_point */
116#ifndef GL_OES_fixed_point
117#define GL_FIXED_OES 0x140C
118#endif
119
120/* GL_OES_framebuffer_object */
121#ifndef GL_OES_framebuffer_object
122#define GL_NONE_OES 0
123#define GL_FRAMEBUFFER_OES 0x8D40
124#define GL_RENDERBUFFER_OES 0x8D41
125#define GL_RGBA4_OES 0x8056
126#define GL_RGB5_A1_OES 0x8057
127#define GL_RGB565_OES 0x8D62
128#define GL_DEPTH_COMPONENT16_OES 0x81A5
129#define GL_RENDERBUFFER_WIDTH_OES 0x8D42
130#define GL_RENDERBUFFER_HEIGHT_OES 0x8D43
131#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44
132#define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50
133#define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51
134#define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52
135#define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53
136#define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54
137#define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55
138#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0
139#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1
140#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2
141#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3
142#define GL_COLOR_ATTACHMENT0_OES 0x8CE0
143#define GL_DEPTH_ATTACHMENT_OES 0x8D00
144#define GL_STENCIL_ATTACHMENT_OES 0x8D20
145#define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5
146#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6
147#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7
148#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9
149#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA
150#define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD
151#define GL_FRAMEBUFFER_BINDING_OES 0x8CA6
152#define GL_RENDERBUFFER_BINDING_OES 0x8CA7
153#define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8
154#define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506
155#endif
156
157/* GL_OES_mapbuffer */
158#ifndef GL_OES_mapbuffer
159#define GL_WRITE_ONLY_OES 0x88B9
160#define GL_BUFFER_ACCESS_OES 0x88BB
161#define GL_BUFFER_MAPPED_OES 0x88BC
162#define GL_BUFFER_MAP_POINTER_OES 0x88BD
163#endif
164
165/* GL_OES_matrix_get */
166#ifndef GL_OES_matrix_get
167#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898D
168#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898E
169#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898F
170#endif
171
172/* GL_OES_matrix_palette */
173#ifndef GL_OES_matrix_palette
174#define GL_MAX_VERTEX_UNITS_OES 0x86A4
175#define GL_MAX_PALETTE_MATRICES_OES 0x8842
176#define GL_MATRIX_PALETTE_OES 0x8840
177#define GL_MATRIX_INDEX_ARRAY_OES 0x8844
178#define GL_WEIGHT_ARRAY_OES 0x86AD
179#define GL_CURRENT_PALETTE_MATRIX_OES 0x8843
180#define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846
181#define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847
182#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848
183#define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849
184#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E
185#define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB
186#define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9
187#define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA
188#define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC
189#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E
190#endif
191
192/* GL_OES_packed_depth_stencil */
193#ifndef GL_OES_packed_depth_stencil
194#define GL_DEPTH_STENCIL_OES 0x84F9
195#define GL_UNSIGNED_INT_24_8_OES 0x84FA
196#define GL_DEPTH24_STENCIL8_OES 0x88F0
197#endif
198
199/* GL_OES_rgb8_rgba8 */
200#ifndef GL_OES_rgb8_rgba8
201#define GL_RGB8_OES 0x8051
202#define GL_RGBA8_OES 0x8058
203#endif
204
205/* GL_OES_stencil1 */
206#ifndef GL_OES_stencil1
207#define GL_STENCIL_INDEX1_OES 0x8D46
208#endif
209
210/* GL_OES_stencil4 */
211#ifndef GL_OES_stencil4
212#define GL_STENCIL_INDEX4_OES 0x8D47
213#endif
214
215/* GL_OES_stencil8 */
216#ifndef GL_OES_stencil8
217#define GL_STENCIL_INDEX8_OES 0x8D48
218#endif
219
220/* GL_OES_stencil_wrap */
221#ifndef GL_OES_stencil_wrap
222#define GL_INCR_WRAP_OES 0x8507
223#define GL_DECR_WRAP_OES 0x8508
224#endif
225
226/* GL_OES_texture_cube_map */
227#ifndef GL_OES_texture_cube_map
228#define GL_NORMAL_MAP_OES 0x8511
229#define GL_REFLECTION_MAP_OES 0x8512
230#define GL_TEXTURE_CUBE_MAP_OES 0x8513
231#define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514
232#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515
233#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516
234#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517
235#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518
236#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519
237#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A
238#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C
239#define GL_TEXTURE_GEN_MODE_OES 0x2500
240#define GL_TEXTURE_GEN_STR_OES 0x8D60
241#endif
242
243/* GL_OES_texture_mirrored_repeat */
244#ifndef GL_OES_texture_mirrored_repeat
245#define GL_MIRRORED_REPEAT_OES 0x8370
246#endif
247
248/* GL_OES_vertex_array_object */
249#ifndef GL_OES_vertex_array_object
250#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
251#endif
252
253/*------------------------------------------------------------------------*
254 * AMD extension tokens
255 *------------------------------------------------------------------------*/
256
257/* GL_AMD_compressed_3DC_texture */
258#ifndef GL_AMD_compressed_3DC_texture
259#define GL_3DC_X_AMD 0x87F9
260#define GL_3DC_XY_AMD 0x87FA
261#endif
262
263/* GL_AMD_compressed_ATC_texture */
264#ifndef GL_AMD_compressed_ATC_texture
265#define GL_ATC_RGB_AMD 0x8C92
266#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
267#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
268#endif
269
270/*------------------------------------------------------------------------*
271 * APPLE extension tokens
272 *------------------------------------------------------------------------*/
273
274/* GL_APPLE_texture_2D_limited_npot */
275/* No new tokens introduced by this extension. */
276
277/* GL_APPLE_framebuffer_multisample */
278#ifndef GL_APPLE_framebuffer_multisample
279#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
280#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
281#define GL_MAX_SAMPLES_APPLE 0x8D57
282#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8
283#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
284#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
285#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
286#endif
287
288/* GL_APPLE_texture_format_BGRA8888 */
289#ifndef GL_APPLE_texture_format_BGRA8888
290#define GL_BGRA_EXT 0x80E1
291#endif
292
293/* GL_APPLE_texture_max_level */
294#ifndef GL_APPLE_texture_max_level
295#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
296#endif
297
298/* GL_APPLE_rgb_422 */
299#ifndef GL_APPLE_rgb_422
300#define GL_APPLE_rgb_422 1
301#define GL_RGB_422_APPLE 0x8A1F
302#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
303#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
304#endif
305/*------------------------------------------------------------------------*
306 * ARM extension tokens
307 *------------------------------------------------------------------------*/
308
309/* GL_ARM_rgba8 */
310/* No new tokens introduced by this extension. */
311
312/*------------------------------------------------------------------------*
313 * EXT extension tokens
314 *------------------------------------------------------------------------*/
315
316/* GL_EXT_blend_minmax */
317#ifndef GL_EXT_blend_minmax
318#define GL_MIN_EXT 0x8007
319#define GL_MAX_EXT 0x8008
320#endif
321
322/* GL_EXT_discard_framebuffer */
323#ifndef GL_EXT_discard_framebuffer
324#define GL_COLOR_EXT 0x1800
325#define GL_DEPTH_EXT 0x1801
326#define GL_STENCIL_EXT 0x1802
327#endif
328
329/* GL_EXT_multi_draw_arrays */
330/* No new tokens introduced by this extension. */
331
332/* GL_EXT_read_format_bgra */
333#ifndef GL_EXT_read_format_bgra
334#define GL_BGRA_EXT 0x80E1
335#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
336#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
337#endif
338
339/* GL_EXT_texture_filter_anisotropic */
340#ifndef GL_EXT_texture_filter_anisotropic
341#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
342#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
343#endif
344
345/* GL_EXT_texture_format_BGRA8888 */
346#ifndef GL_EXT_texture_format_BGRA8888
347#define GL_BGRA_EXT 0x80E1
348#endif
349
350#ifndef GL_texture_format_RGBX8888_BRCM
351#define GL_RGBX_BRCM 0x80EE
352#endif
353
354/* GL_EXT_texture_lod_bias */
355#ifndef GL_EXT_texture_lod_bias
356#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
357#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
358#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
359#endif
360
361/*------------------------------------------------------------------------*
362 * IMG extension tokens
363 *------------------------------------------------------------------------*/
364
365/* GL_IMG_read_format */
366#ifndef GL_IMG_read_format
367#define GL_BGRA_IMG 0x80E1
368#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
369#endif
370
371/* GL_IMG_texture_compression_pvrtc */
372#ifndef GL_IMG_texture_compression_pvrtc
373#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
374#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
375#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
376#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
377#endif
378
379/* GL_IMG_texture_env_enhanced_fixed_function */
380#ifndef GL_IMG_texture_env_enhanced_fixed_function
381#define GL_MODULATE_COLOR_IMG 0x8C04
382#define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05
383#define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06
384#define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07
385#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08
386#define GL_ADD_BLEND_IMG 0x8C09
387#define GL_DOT3_RGBA_IMG 0x86AF
388#endif
389
390/* GL_IMG_user_clip_plane */
391#ifndef GL_IMG_user_clip_plane
392#define GL_CLIP_PLANE0_IMG 0x3000
393#define GL_CLIP_PLANE1_IMG 0x3001
394#define GL_CLIP_PLANE2_IMG 0x3002
395#define GL_CLIP_PLANE3_IMG 0x3003
396#define GL_CLIP_PLANE4_IMG 0x3004
397#define GL_CLIP_PLANE5_IMG 0x3005
398#define GL_MAX_CLIP_PLANES_IMG 0x0D32
399#endif
400
401/* GL_IMG_multisampled_render_to_texture */
402#ifndef GL_IMG_multisampled_render_to_texture
403#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
404#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
405#define GL_MAX_SAMPLES_IMG 0x9135
406#define GL_TEXTURE_SAMPLES_IMG 0x9136
407#endif
408
409/*------------------------------------------------------------------------*
410 * NV extension tokens
411 *------------------------------------------------------------------------*/
412
413/* GL_NV_fence */
414#ifndef GL_NV_fence
415#define GL_ALL_COMPLETED_NV 0x84F2
416#define GL_FENCE_STATUS_NV 0x84F3
417#define GL_FENCE_CONDITION_NV 0x84F4
418#endif
419
420/*------------------------------------------------------------------------*
421 * QCOM extension tokens
422 *------------------------------------------------------------------------*/
423
424/* GL_QCOM_driver_control */
425/* No new tokens introduced by this extension. */
426
427/* GL_QCOM_extended_get */
428#ifndef GL_QCOM_extended_get
429#define GL_TEXTURE_WIDTH_QCOM 0x8BD2
430#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
431#define GL_TEXTURE_DEPTH_QCOM 0x8BD4
432#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
433#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
434#define GL_TEXTURE_TYPE_QCOM 0x8BD7
435#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
436#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
437#define GL_TEXTURE_TARGET_QCOM 0x8BDA
438#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
439#define GL_STATE_RESTORE 0x8BDC
440#endif
441
442/* GL_QCOM_extended_get2 */
443/* No new tokens introduced by this extension. */
444
445/* GL_QCOM_perfmon_global_mode */
446#ifndef GL_QCOM_perfmon_global_mode
447#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
448#endif
449
450/* GL_QCOM_writeonly_rendering */
451#ifndef GL_QCOM_writeonly_rendering
452#define GL_WRITEONLY_RENDERING_QCOM 0x8823
453#endif
454
455/* GL_QCOM_tiled_rendering */
456#ifndef GL_QCOM_tiled_rendering
457#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
458#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
459#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
460#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
461#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
462#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
463#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
464#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
465#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
466#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
467#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
468#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
469#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
470#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
471#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
472#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
473#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
474#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
475#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
476#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
477#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
478#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
479#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
480#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
481#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
482#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
483#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
484#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
485#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
486#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
487#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
488#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
489#endif
490
491/*------------------------------------------------------------------------*
492 * BRCM extension tokens
493 * TODO: these aren't official yet
494 *------------------------------------------------------------------------*/
495#ifndef GL_BRCM_side_by_side_stero_hint
496#define GL_SIDE_BY_SIDE_STEREO_HINT_BRCM 0x8193 /* GET AN OFFICIAL ENUM */
497#endif
498
499/*------------------------------------------------------------------------*
500 * End of extension tokens, start of corresponding extension functions
501 *------------------------------------------------------------------------*/
502
503/*------------------------------------------------------------------------*
504 * OES extension functions
505 *------------------------------------------------------------------------*/
506
507/* GL_OES_blend_equation_separate */
508#ifndef GL_OES_blend_equation_separate
509#define GL_OES_blend_equation_separate 0
510#ifdef GL_GLEXT_PROTOTYPES
511GL_API void GL_APIENTRY glBlendEquationSeparateOES (GLenum modeRGB, GLenum modeAlpha);
512#endif
513typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha);
514#endif
515
516/* GL_OES_blend_func_separate */
517#ifndef GL_OES_blend_func_separate
518#define GL_OES_blend_func_separate 0
519#ifdef GL_GLEXT_PROTOTYPES
520GL_API void GL_APIENTRY glBlendFuncSeparateOES (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
521#endif
522typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
523#endif
524
525/* GL_OES_blend_subtract */
526#ifndef GL_OES_blend_subtract
527#define GL_OES_blend_subtract 0
528#ifdef GL_GLEXT_PROTOTYPES
529GL_API void GL_APIENTRY glBlendEquationOES (GLenum mode);
530#endif
531typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONOESPROC) (GLenum mode);
532#endif
533
534/* GL_OES_byte_coordinates */
535#ifndef GL_OES_byte_coordinates
536#define GL_OES_byte_coordinates 0
537#endif
538
539/* GL_OES_compressed_ETC1_RGB8_texture */
540#ifndef GL_OES_compressed_ETC1_RGB8_texture
541#define GL_OES_compressed_ETC1_RGB8_texture 1
542#endif
543
544/* GL_OES_depth24 */
545#ifndef GL_OES_depth24
546#define GL_OES_depth24 0
547#endif
548
549/* GL_OES_depth32 */
550#ifndef GL_OES_depth32
551#define GL_OES_depth32 0
552#endif
553
554/* GL_OES_draw_texture */
555#ifndef GL_OES_draw_texture
556#define GL_OES_draw_texture 1
557#ifdef GL_GLEXT_PROTOTYPES
558GL_API void GL_APIENTRY glDrawTexsOES (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
559GL_API void GL_APIENTRY glDrawTexiOES (GLint x, GLint y, GLint z, GLint width, GLint height);
560GL_API void GL_APIENTRY glDrawTexxOES (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
561GL_API void GL_APIENTRY glDrawTexsvOES (const GLshort *coords);
562GL_API void GL_APIENTRY glDrawTexivOES (const GLint *coords);
563GL_API void GL_APIENTRY glDrawTexxvOES (const GLfixed *coords);
564GL_API void GL_APIENTRY glDrawTexfOES (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
565GL_API void GL_APIENTRY glDrawTexfvOES (const GLfloat *coords);
566#endif
567typedef void (GL_APIENTRYP PFNGLDRAWTEXSOESPROC) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
568typedef void (GL_APIENTRYP PFNGLDRAWTEXIOESPROC) (GLint x, GLint y, GLint z, GLint width, GLint height);
569typedef void (GL_APIENTRYP PFNGLDRAWTEXXOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
570typedef void (GL_APIENTRYP PFNGLDRAWTEXSVOESPROC) (const GLshort *coords);
571typedef void (GL_APIENTRYP PFNGLDRAWTEXIVOESPROC) (const GLint *coords);
572typedef void (GL_APIENTRYP PFNGLDRAWTEXXVOESPROC) (const GLfixed *coords);
573typedef void (GL_APIENTRYP PFNGLDRAWTEXFOESPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
574typedef void (GL_APIENTRYP PFNGLDRAWTEXFVOESPROC) (const GLfloat *coords);
575#endif
576
577/* GL_OES_EGL_image */
578#ifndef GL_OES_EGL_image
579#define GL_OES_EGL_image 1
580#ifdef GL_GLEXT_PROTOTYPES
581GL_API void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
582GL_API void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
583#endif
584typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
585typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
586#endif
587
588/* GL_OES_EGL_image_external */
589#ifndef GL_OES_EGL_image_external
590#define GL_OES_EGL_image_external 1
591/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
592#endif
593
594/* GL_OES_element_index_uint */
595#ifndef GL_OES_element_index_uint
596#define GL_OES_element_index_uint 0
597#endif
598
599/* GL_OES_extended_matrix_palette */
600#ifndef GL_OES_extended_matrix_palette
601#define GL_OES_extended_matrix_palette 0
602#endif
603
604/* GL_OES_fbo_render_mipmap */
605#ifndef GL_OES_fbo_render_mipmap
606#define GL_OES_fbo_render_mipmap 0
607#endif
608
609/* GL_OES_fixed_point */
610#ifndef GL_OES_fixed_point
611#define GL_OES_fixed_point 0
612#ifdef GL_GLEXT_PROTOTYPES
613GL_API void GL_APIENTRY glAlphaFuncxOES (GLenum func, GLclampx ref);
614GL_API void GL_APIENTRY glClearColorxOES (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
615GL_API void GL_APIENTRY glClearDepthxOES (GLclampx depth);
616GL_API void GL_APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation);
617GL_API void GL_APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
618GL_API void GL_APIENTRY glDepthRangexOES (GLclampx zNear, GLclampx zFar);
619GL_API void GL_APIENTRY glFogxOES (GLenum pname, GLfixed param);
620GL_API void GL_APIENTRY glFogxvOES (GLenum pname, const GLfixed *params);
621GL_API void GL_APIENTRY glFrustumxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
622GL_API void GL_APIENTRY glGetClipPlanexOES (GLenum pname, GLfixed eqn[4]);
623GL_API void GL_APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params);
624GL_API void GL_APIENTRY glGetLightxvOES (GLenum light, GLenum pname, GLfixed *params);
625GL_API void GL_APIENTRY glGetMaterialxvOES (GLenum face, GLenum pname, GLfixed *params);
626GL_API void GL_APIENTRY glGetTexEnvxvOES (GLenum env, GLenum pname, GLfixed *params);
627GL_API void GL_APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params);
628GL_API void GL_APIENTRY glLightModelxOES (GLenum pname, GLfixed param);
629GL_API void GL_APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *params);
630GL_API void GL_APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param);
631GL_API void GL_APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params);
632GL_API void GL_APIENTRY glLineWidthxOES (GLfixed width);
633GL_API void GL_APIENTRY glLoadMatrixxOES (const GLfixed *m);
634GL_API void GL_APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param);
635GL_API void GL_APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *params);
636GL_API void GL_APIENTRY glMultMatrixxOES (const GLfixed *m);
637GL_API void GL_APIENTRY glMultiTexCoord4xOES (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
638GL_API void GL_APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz);
639GL_API void GL_APIENTRY glOrthoxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
640GL_API void GL_APIENTRY glPointParameterxOES (GLenum pname, GLfixed param);
641GL_API void GL_APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params);
642GL_API void GL_APIENTRY glPointSizexOES (GLfixed size);
643GL_API void GL_APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units);
644GL_API void GL_APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
645GL_API void GL_APIENTRY glSampleCoveragexOES (GLclampx value, GLboolean invert);
646GL_API void GL_APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z);
647GL_API void GL_APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param);
648GL_API void GL_APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params);
649GL_API void GL_APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param);
650GL_API void GL_APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params);
651GL_API void GL_APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z);
652#endif
653typedef void (GL_APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLclampx ref);
654typedef void (GL_APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
655typedef void (GL_APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLclampx depth);
656typedef void (GL_APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation);
657typedef void (GL_APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
658typedef void (GL_APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLclampx zNear, GLclampx zFar);
659typedef void (GL_APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param);
660typedef void (GL_APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *params);
661typedef void (GL_APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
662typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum pname, GLfixed eqn[4]);
663typedef void (GL_APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params);
664typedef void (GL_APIENTRYP PFNGLGETLIGHTXVOESPROC) (GLenum light, GLenum pname, GLfixed *params);
665typedef void (GL_APIENTRYP PFNGLGETMATERIALXVOESPROC) (GLenum face, GLenum pname, GLfixed *params);
666typedef void (GL_APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum env, GLenum pname, GLfixed *params);
667typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params);
668typedef void (GL_APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param);
669typedef void (GL_APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *params);
670typedef void (GL_APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param);
671typedef void (GL_APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params);
672typedef void (GL_APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width);
673typedef void (GL_APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m);
674typedef void (GL_APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param);
675typedef void (GL_APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *params);
676typedef void (GL_APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m);
677typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
678typedef void (GL_APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz);
679typedef void (GL_APIENTRYP PFNGLORTHOXOESPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
680typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXOESPROC) (GLenum pname, GLfixed param);
681typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params);
682typedef void (GL_APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size);
683typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units);
684typedef void (GL_APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
685typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEXOESPROC) (GLclampx value, GLboolean invert);
686typedef void (GL_APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z);
687typedef void (GL_APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param);
688typedef void (GL_APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
689typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param);
690typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
691typedef void (GL_APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z);
692#endif
693
694/* GL_OES_framebuffer_object */
695#ifndef GL_OES_framebuffer_object
696#define GL_OES_framebuffer_object 1
697#ifdef GL_GLEXT_PROTOTYPES
698GL_API GLboolean GL_APIENTRY glIsRenderbufferOES (GLuint renderbuffer);
699GL_API void GL_APIENTRY glBindRenderbufferOES (GLenum target, GLuint renderbuffer);
700GL_API void GL_APIENTRY glDeleteRenderbuffersOES (GLsizei n, const GLuint* renderbuffers);
701GL_API void GL_APIENTRY glGenRenderbuffersOES (GLsizei n, GLuint* renderbuffers);
702GL_API void GL_APIENTRY glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
703GL_API void GL_APIENTRY glGetRenderbufferParameterivOES (GLenum target, GLenum pname, GLint* params);
704GL_API GLboolean GL_APIENTRY glIsFramebufferOES (GLuint framebuffer);
705GL_API void GL_APIENTRY glBindFramebufferOES (GLenum target, GLuint framebuffer);
706GL_API void GL_APIENTRY glDeleteFramebuffersOES (GLsizei n, const GLuint* framebuffers);
707GL_API void GL_APIENTRY glGenFramebuffersOES (GLsizei n, GLuint* framebuffers);
708GL_API GLenum GL_APIENTRY glCheckFramebufferStatusOES (GLenum target);
709GL_API void GL_APIENTRY glFramebufferRenderbufferOES (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
710GL_API void GL_APIENTRY glFramebufferTexture2DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
711GL_API void GL_APIENTRY glGetFramebufferAttachmentParameterivOES (GLenum target, GLenum attachment, GLenum pname, GLint* params);
712GL_API void GL_APIENTRY glGenerateMipmapOES (GLenum target);
713#endif
714typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer);
715typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer);
716typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers);
717typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers);
718typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
719typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params);
720typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer);
721typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer);
722typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers);
723typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers);
724typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target);
725typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
726typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
727typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
728typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPOESPROC) (GLenum target);
729#endif
730
731/* GL_OES_mapbuffer */
732#ifndef GL_OES_mapbuffer
733#define GL_OES_mapbuffer 1
734#ifdef GL_GLEXT_PROTOTYPES
735GL_API void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
736GL_API GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
737GL_API void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid ** params);
738#endif
739typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
740typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
741typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid ** params);
742#endif
743
744/* GL_OES_matrix_get */
745#ifndef GL_OES_matrix_get
746#define GL_OES_matrix_get 0
747#endif
748
749/* GL_OES_matrix_palette */
750#ifndef GL_OES_matrix_palette
751#define GL_OES_matrix_palette 1
752#ifdef GL_GLEXT_PROTOTYPES
753GL_API void GL_APIENTRY glCurrentPaletteMatrixOES (GLuint matrixpaletteindex);
754GL_API void GL_APIENTRY glLoadPaletteFromModelViewMatrixOES (void);
755GL_API void GL_APIENTRY glMatrixIndexPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
756GL_API void GL_APIENTRY glWeightPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
757#endif
758typedef void (GL_APIENTRYP PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint matrixpaletteindex);
759typedef void (GL_APIENTRYP PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC) (void);
760typedef void (GL_APIENTRYP PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
761typedef void (GL_APIENTRYP PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
762#endif
763
764/* GL_OES_packed_depth_stencil */
765#ifndef GL_OES_packed_depth_stencil
766#define GL_OES_packed_depth_stencil 0
767#endif
768
769/* GL_OES_query_matrix */
770#ifndef GL_OES_query_matrix
771#define GL_OES_query_matrix 1
772#ifdef GL_GLEXT_PROTOTYPES
773GL_API GLbitfield GL_APIENTRY glQueryMatrixxOES (GLfixed mantissa[16], GLint exponent[16]);
774#endif
775typedef GLbitfield (GL_APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed mantissa[16], GLint exponent[16]);
776#endif
777
778/* GL_OES_rgb8_rgba8 */
779#ifndef GL_OES_rgb8_rgba8
780#define GL_OES_rgb8_rgba8 1
781#endif
782
783/* GL_OES_single_precision */
784#ifndef GL_OES_single_precision
785#define GL_OES_single_precision 0
786#ifdef GL_GLEXT_PROTOTYPES
787GL_API void GL_APIENTRY glDepthRangefOES (GLclampf zNear, GLclampf zFar);
788GL_API void GL_APIENTRY glFrustumfOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
789GL_API void GL_APIENTRY glOrthofOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
790GL_API void GL_APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation);
791GL_API void GL_APIENTRY glGetClipPlanefOES (GLenum pname, GLfloat eqn[4]);
792GL_API void GL_APIENTRY glClearDepthfOES (GLclampf depth);
793#endif
794typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf zNear, GLclampf zFar);
795typedef void (GL_APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
796typedef void (GL_APIENTRYP PFNGLORTHOFOESPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
797typedef void (GL_APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation);
798typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum pname, GLfloat eqn[4]);
799typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth);
800#endif
801
802/* GL_OES_stencil1 */
803#ifndef GL_OES_stencil1
804#define GL_OES_stencil1 0
805#endif
806
807/* GL_OES_stencil4 */
808#ifndef GL_OES_stencil4
809#define GL_OES_stencil4 0
810#endif
811
812/* GL_OES_stencil8 */
813#ifndef GL_OES_stencil8
814#define GL_OES_stencil8 1
815#endif
816
817/* GL_OES_stencil_wrap */
818#ifndef GL_OES_stencil_wrap
819#define GL_OES_stencil_wrap 0
820#endif
821
822/* GL_OES_texture_cube_map */
823#ifndef GL_OES_texture_cube_map
824#define GL_OES_texture_cube_map 0
825#ifdef GL_GLEXT_PROTOTYPES
826GL_API void GL_APIENTRY glTexGenfOES (GLenum coord, GLenum pname, GLfloat param);
827GL_API void GL_APIENTRY glTexGenfvOES (GLenum coord, GLenum pname, const GLfloat *params);
828GL_API void GL_APIENTRY glTexGeniOES (GLenum coord, GLenum pname, GLint param);
829GL_API void GL_APIENTRY glTexGenivOES (GLenum coord, GLenum pname, const GLint *params);
830GL_API void GL_APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param);
831GL_API void GL_APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params);
832GL_API void GL_APIENTRY glGetTexGenfvOES (GLenum coord, GLenum pname, GLfloat *params);
833GL_API void GL_APIENTRY glGetTexGenivOES (GLenum coord, GLenum pname, GLint *params);
834GL_API void GL_APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params);
835#endif
836typedef void (GL_APIENTRYP PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param);
837typedef void (GL_APIENTRYP PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat *params);
838typedef void (GL_APIENTRYP PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param);
839typedef void (GL_APIENTRYP PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint *params);
840typedef void (GL_APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param);
841typedef void (GL_APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params);
842typedef void (GL_APIENTRYP PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat *params);
843typedef void (GL_APIENTRYP PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint *params);
844typedef void (GL_APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params);
845#endif
846
847/* GL_OES_texture_env_crossbar */
848#ifndef GL_OES_texture_env_crossbar
849#define GL_OES_texture_env_crossbar 0
850#endif
851
852/* GL_OES_texture_mirrored_repeat */
853#ifndef GL_OES_texture_mirrored_repeat
854#define GL_OES_texture_mirrored_repeat 0
855#endif
856
857/* GL_OES_vertex_array_object */
858#ifndef GL_OES_vertex_array_object
859#define GL_OES_vertex_array_object 0
860#ifdef GL_GLEXT_PROTOTYPES
861GL_API void GL_APIENTRY glBindVertexArrayOES (GLuint array);
862GL_API void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
863GL_API void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
864GL_API GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
865#endif
866typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
867typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
868typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
869typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
870#endif
871
872/*------------------------------------------------------------------------*
873 * AMD extension functions
874 *------------------------------------------------------------------------*/
875
876/* GL_AMD_compressed_3DC_texture */
877#ifndef GL_AMD_compressed_3DC_texture
878#define GL_AMD_compressed_3DC_texture 0
879#endif
880
881/* GL_AMD_compressed_ATC_texture */
882#ifndef GL_AMD_compressed_ATC_texture
883#define GL_AMD_compressed_ATC_texture 0
884#endif
885
886/*------------------------------------------------------------------------*
887 * APPLE extension functions
888 *------------------------------------------------------------------------*/
889
890/* GL_APPLE_texture_2D_limited_npot */
891#ifndef GL_APPLE_texture_2D_limited_npot
892#define GL_APPLE_texture_2D_limited_npot 0
893#endif
894
895/* GL_APPLE_framebuffer_multisample */
896#ifndef GL_APPLE_framebuffer_multisample
897#define GL_APPLE_framebuffer_multisample 0
898#ifdef GL_GLEXT_PROTOTYPES
899GL_API void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
900GL_API void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
901#endif /* GL_GLEXT_PROTOTYPES */
902typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
903typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
904#endif
905
906/* GL_APPLE_texture_format_BGRA8888 */
907#ifndef GL_APPLE_texture_format_BGRA8888
908#define GL_APPLE_texture_format_BGRA8888 0
909#endif
910
911/* GL_APPLE_texture_max_level */
912#ifndef GL_APPLE_texture_max_level
913#define GL_APPLE_texture_max_level 0
914#endif
915
916/*------------------------------------------------------------------------*
917 * ARM extension functions
918 *------------------------------------------------------------------------*/
919
920/* GL_ARM_rgba8 */
921#ifndef GL_ARM_rgba8
922#define GL_ARM_rgba8 0
923#endif
924
925/*------------------------------------------------------------------------*
926 * EXT extension functions
927 *------------------------------------------------------------------------*/
928
929/* GL_EXT_blend_minmax */
930#ifndef GL_EXT_blend_minmax
931#define GL_EXT_blend_minmax 0
932#endif
933
934/* GL_EXT_discard_framebuffer */
935#ifndef GL_EXT_discard_framebuffer
936#define GL_EXT_discard_framebuffer 0
937#ifdef GL_GLEXT_PROTOTYPES
938GL_API void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
939#endif
940typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
941#endif
942
943/* GL_EXT_debug_marker */
944#ifndef GL_EXT_debug_marker
945#define GL_EXT_debug_marker 1
946#ifdef GL_GLEXT_PROTOTYPES
947GL_API void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
948GL_API void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
949GL_API void GL_APIENTRY glPopGroupMarkerEXT (void);
950#endif
951typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
952typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
953typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
954#endif
955
956/* GL_EXT_multi_draw_arrays */
957#ifndef GL_EXT_multi_draw_arrays
958#define GL_EXT_multi_draw_arrays 0
959#ifdef GL_GLEXT_PROTOTYPES
960GL_API void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
961GL_API void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
962#endif /* GL_GLEXT_PROTOTYPES */
963typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
964typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
965#endif
966
967/* GL_EXT_read_format_bgra */
968#ifndef GL_EXT_read_format_bgra
969#define GL_EXT_read_format_bgra 0
970#endif
971
972/* GL_EXT_texture_filter_anisotropic */
973#ifndef GL_EXT_texture_filter_anisotropic
974#define GL_EXT_texture_filter_anisotropic 0
975#endif
976
977/* GL_EXT_texture_format_BGRA8888 */
978#ifndef GL_EXT_texture_format_BGRA8888
979#define GL_EXT_texture_format_BGRA8888 1
980#endif
981
982#ifndef GL_texture_format_RGBX8888_BRCM
983#define GL_texture_format_RGBX8888_BRCM 1
984#endif
985
986/* GL_EXT_texture_lod_bias */
987#ifndef GL_EXT_texture_lod_bias
988#define GL_EXT_texture_lod_bias 0
989#endif
990
991/*------------------------------------------------------------------------*
992 * IMG extension functions
993 *------------------------------------------------------------------------*/
994
995/* GL_IMG_read_format */
996#ifndef GL_IMG_read_format
997#define GL_IMG_read_format 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_texture_env_enhanced_fixed_function */
1006#ifndef GL_IMG_texture_env_enhanced_fixed_function
1007#define GL_IMG_texture_env_enhanced_fixed_function 0
1008#endif
1009
1010/* GL_IMG_user_clip_plane */
1011#ifndef GL_IMG_user_clip_plane
1012#define GL_IMG_user_clip_plane 0
1013#ifdef GL_GLEXT_PROTOTYPES
1014GL_API void GL_APIENTRY glClipPlanefIMG (GLenum, const GLfloat *);
1015GL_API void GL_APIENTRY glClipPlanexIMG (GLenum, const GLfixed *);
1016#endif
1017typedef void (GL_APIENTRYP PFNGLCLIPPLANEFIMGPROC) (GLenum p, const GLfloat *eqn);
1018typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMGPROC) (GLenum p, const GLfixed *eqn);
1019#endif
1020
1021/* GL_IMG_multisampled_render_to_texture */
1022#ifndef GL_IMG_multisampled_render_to_texture
1023#define GL_IMG_multisampled_render_to_texture 0
1024#ifdef GL_GLEXT_PROTOTYPES
1025GL_API void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1026GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
1027#endif
1028typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1029typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
1030#endif
1031
1032/*------------------------------------------------------------------------*
1033 * NV extension functions
1034 *------------------------------------------------------------------------*/
1035
1036/* NV_fence */
1037#ifndef GL_NV_fence
1038#define GL_NV_fence 0
1039#ifdef GL_GLEXT_PROTOTYPES
1040GL_API void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
1041GL_API void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
1042GL_API GLboolean GL_APIENTRY glIsFenceNV (GLuint);
1043GL_API GLboolean GL_APIENTRY glTestFenceNV (GLuint);
1044GL_API void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
1045GL_API void GL_APIENTRY glFinishFenceNV (GLuint);
1046GL_API void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
1047#endif
1048typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
1049typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
1050typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
1051typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
1052typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
1053typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
1054typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
1055#endif
1056
1057/*------------------------------------------------------------------------*
1058 * QCOM extension functions
1059 *------------------------------------------------------------------------*/
1060
1061/* GL_QCOM_driver_control */
1062#ifndef GL_QCOM_driver_control
1063#define GL_QCOM_driver_control 0
1064#ifdef GL_GLEXT_PROTOTYPES
1065GL_API void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
1066GL_API void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1067GL_API void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
1068GL_API void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
1069#endif
1070typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
1071typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1072typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1073typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1074#endif
1075
1076/* GL_QCOM_extended_get */
1077#ifndef GL_QCOM_extended_get
1078#define GL_QCOM_extended_get 0
1079#ifdef GL_GLEXT_PROTOTYPES
1080GL_API void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
1081GL_API void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1082GL_API void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1083GL_API void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1084GL_API void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1085GL_API void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
1086GL_API 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);
1087GL_API void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
1088#endif
1089typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
1090typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1091typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1092typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1093typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1094typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
1095typedef 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);
1096typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
1097#endif
1098
1099/* GL_QCOM_extended_get2 */
1100#ifndef GL_QCOM_extended_get2
1101#define GL_QCOM_extended_get2 0
1102#ifdef GL_GLEXT_PROTOTYPES
1103GL_API void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1104GL_API void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1105GL_API GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
1106GL_API void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1107#endif
1108typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1109typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1110typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
1111typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1112#endif
1113
1114/* GL_QCOM_perfmon_global_mode */
1115#ifndef GL_QCOM_perfmon_global_mode
1116#define GL_QCOM_perfmon_global_mode 0
1117#endif
1118
1119/* GL_QCOM_writeonly_rendering */
1120#ifndef GL_QCOM_writeonly_rendering
1121#define GL_QCOM_writeonly_rendering 0
1122#endif
1123
1124/* GL_QCOM_tiled_rendering */
1125#ifndef GL_QCOM_tiled_rendering
1126#define GL_QCOM_tiled_rendering 0
1127#ifdef GL_GLEXT_PROTOTYPES
1128GL_API void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1129GL_API void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
1130#endif
1131typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1132typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
1133#endif
1134
1135/*------------------------------------------------------------------------*
1136 * BRCM extension functions
1137 * TODO: these aren't official yet
1138 *------------------------------------------------------------------------*/
1139#ifndef GL_BRCM_side_by_side_stero_hint
1140#define GL_BRCM_side_by_side_stero_hint 1
1141#endif
1142
1143#ifdef __cplusplus
1144}
1145#endif
1146
1147#endif /* __glext_h_ */
1148