blob: 4eae246352b268070510ca6d606dc4a999093cb9 [file] [log] [blame]
Brian Paul0ebc94d2008-06-04 10:04:31 -06001#ifndef __gl2ext_h_
2#define __gl2ext_h_
3
Ian Romanickb152a232011-09-20 15:54:52 -07004/* $Revision: 15049 $ on $Date:: 2011-07-06 17:28:16 -0700 #$ */
Brian Paul0ebc94d2008-06-04 10:04:31 -06005
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10/*
Chia-I Wu59f8dca2010-05-31 10:15:55 +080011 * This document is licensed under the SGI Free Software B License Version
12 * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
13 */
Brian Paul0ebc94d2008-06-04 10:04:31 -060014
15#ifndef GL_APIENTRYP
16# define GL_APIENTRYP GL_APIENTRY*
17#endif
18
19/*------------------------------------------------------------------------*
20 * OES extension tokens
21 *------------------------------------------------------------------------*/
22
23/* GL_OES_compressed_ETC1_RGB8_texture */
24#ifndef GL_OES_compressed_ETC1_RGB8_texture
25#define GL_ETC1_RGB8_OES 0x8D64
26#endif
27
28/* GL_OES_compressed_paletted_texture */
29#ifndef GL_OES_compressed_paletted_texture
30#define GL_PALETTE4_RGB8_OES 0x8B90
31#define GL_PALETTE4_RGBA8_OES 0x8B91
32#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
33#define GL_PALETTE4_RGBA4_OES 0x8B93
34#define GL_PALETTE4_RGB5_A1_OES 0x8B94
35#define GL_PALETTE8_RGB8_OES 0x8B95
36#define GL_PALETTE8_RGBA8_OES 0x8B96
37#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
38#define GL_PALETTE8_RGBA4_OES 0x8B98
39#define GL_PALETTE8_RGB5_A1_OES 0x8B99
40#endif
41
Brian Paul0ebc94d2008-06-04 10:04:31 -060042/* GL_OES_depth24 */
43#ifndef GL_OES_depth24
44#define GL_DEPTH_COMPONENT24_OES 0x81A6
45#endif
46
47/* GL_OES_depth32 */
48#ifndef GL_OES_depth32
49#define GL_DEPTH_COMPONENT32_OES 0x81A7
50#endif
51
52/* GL_OES_depth_texture */
53/* No new tokens introduced by this extension. */
54
Chia-I Wu59f8dca2010-05-31 10:15:55 +080055/* GL_OES_EGL_image */
56#ifndef GL_OES_EGL_image
57typedef void* GLeglImageOES;
58#endif
59
Ian Romanickb152a232011-09-20 15:54:52 -070060/* GL_OES_EGL_image_external */
61#ifndef GL_OES_EGL_image_external
62/* GLeglImageOES defined in GL_OES_EGL_image already. */
63#define GL_TEXTURE_EXTERNAL_OES 0x8D65
64#define GL_SAMPLER_EXTERNAL_OES 0x8D66
65#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
66#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
67#endif
68
Chia-I Wu59f8dca2010-05-31 10:15:55 +080069/* GL_OES_element_index_uint */
70#ifndef GL_OES_element_index_uint
71#define GL_UNSIGNED_INT 0x1405
72#endif
73
74/* GL_OES_get_program_binary */
75#ifndef GL_OES_get_program_binary
76#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
77#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
78#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF
79#endif
80
Brian Paul0ebc94d2008-06-04 10:04:31 -060081/* GL_OES_mapbuffer */
82#ifndef GL_OES_mapbuffer
Brian Paul0ebc94d2008-06-04 10:04:31 -060083#define GL_WRITE_ONLY_OES 0x88B9
84#define GL_BUFFER_ACCESS_OES 0x88BB
85#define GL_BUFFER_MAPPED_OES 0x88BC
86#define GL_BUFFER_MAP_POINTER_OES 0x88BD
87#endif
88
89/* GL_OES_packed_depth_stencil */
90#ifndef GL_OES_packed_depth_stencil
91#define GL_DEPTH_STENCIL_OES 0x84F9
92#define GL_UNSIGNED_INT_24_8_OES 0x84FA
93#define GL_DEPTH24_STENCIL8_OES 0x88F0
94#endif
95
96/* GL_OES_rgb8_rgba8 */
97#ifndef GL_OES_rgb8_rgba8
98#define GL_RGB8_OES 0x8051
99#define GL_RGBA8_OES 0x8058
100#endif
101
102/* GL_OES_standard_derivatives */
103#ifndef GL_OES_standard_derivatives
104#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
105#endif
106
107/* GL_OES_stencil1 */
108#ifndef GL_OES_stencil1
109#define GL_STENCIL_INDEX1_OES 0x8D46
110#endif
111
112/* GL_OES_stencil4 */
113#ifndef GL_OES_stencil4
114#define GL_STENCIL_INDEX4_OES 0x8D47
115#endif
116
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800117/* GL_OES_texture_3D */
118#ifndef GL_OES_texture_3D
Brian Paul0ebc94d2008-06-04 10:04:31 -0600119#define GL_TEXTURE_WRAP_R_OES 0x8072
120#define GL_TEXTURE_3D_OES 0x806F
121#define GL_TEXTURE_BINDING_3D_OES 0x806A
122#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
123#define GL_SAMPLER_3D_OES 0x8B5F
124#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
125#endif
126
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800127/* GL_OES_texture_float */
128/* No new tokens introduced by this extension. */
129
130/* GL_OES_texture_float_linear */
131/* No new tokens introduced by this extension. */
132
Brian Paul0ebc94d2008-06-04 10:04:31 -0600133/* GL_OES_texture_half_float */
134#ifndef GL_OES_texture_half_float
135#define GL_HALF_FLOAT_OES 0x8D61
136#endif
137
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800138/* GL_OES_texture_half_float_linear */
139/* No new tokens introduced by this extension. */
140
141/* GL_OES_texture_npot */
142/* No new tokens introduced by this extension. */
143
144/* GL_OES_vertex_array_object */
145#ifndef GL_OES_vertex_array_object
146#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
147#endif
148
Brian Paul0ebc94d2008-06-04 10:04:31 -0600149/* GL_OES_vertex_half_float */
150/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
151
152/* GL_OES_vertex_type_10_10_10_2 */
153#ifndef GL_OES_vertex_type_10_10_10_2
154#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6
155#define GL_INT_10_10_10_2_OES 0x8DF7
156#endif
157
Brian Paul0ebc94d2008-06-04 10:04:31 -0600158/*------------------------------------------------------------------------*
159 * AMD extension tokens
160 *------------------------------------------------------------------------*/
161
162/* GL_AMD_compressed_3DC_texture */
163#ifndef GL_AMD_compressed_3DC_texture
164#define GL_3DC_X_AMD 0x87F9
165#define GL_3DC_XY_AMD 0x87FA
166#endif
167
168/* GL_AMD_compressed_ATC_texture */
169#ifndef GL_AMD_compressed_ATC_texture
170#define GL_ATC_RGB_AMD 0x8C92
171#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
172#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
173#endif
174
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800175/* GL_AMD_performance_monitor */
176#ifndef GL_AMD_performance_monitor
177#define GL_COUNTER_TYPE_AMD 0x8BC0
178#define GL_COUNTER_RANGE_AMD 0x8BC1
179#define GL_UNSIGNED_INT64_AMD 0x8BC2
180#define GL_PERCENTAGE_AMD 0x8BC3
181#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
182#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
183#define GL_PERFMON_RESULT_AMD 0x8BC6
184#endif
185
186/* GL_AMD_program_binary_Z400 */
187#ifndef GL_AMD_program_binary_Z400
188#define GL_Z400_BINARY_AMD 0x8740
189#endif
190
Brian Paul0ebc94d2008-06-04 10:04:31 -0600191/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -0700192 * ANGLE extension tokens
193 *------------------------------------------------------------------------*/
194
195/* GL_ANGLE_framebuffer_blit */
196#ifndef GL_ANGLE_framebuffer_blit
197#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8
198#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9
199#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6
200#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA
201#endif
202
203/* GL_ANGLE_framebuffer_multisample */
204#ifndef GL_ANGLE_framebuffer_multisample
205#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB
206#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56
207#define GL_MAX_SAMPLES_ANGLE 0x8D57
208#endif
209
210/*------------------------------------------------------------------------*
211 * APPLE extension tokens
212 *------------------------------------------------------------------------*/
213
214/* GL_APPLE_rgb_422 */
215#ifndef GL_APPLE_rgb_422
216#define GL_RGB_422_APPLE 0x8A1F
217#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
218#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
219#endif
220
221/* GL_APPLE_framebuffer_multisample */
222#ifndef GL_APPLE_framebuffer_multisample
223#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
224#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
225#define GL_MAX_SAMPLES_APPLE 0x8D57
226#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8
227#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
228#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
229#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
230#endif
231
232/* GL_APPLE_texture_format_BGRA8888 */
233#ifndef GL_APPLE_texture_format_BGRA8888
234#define GL_BGRA_EXT 0x80E1
235#endif
236
237/* GL_APPLE_texture_max_level */
238#ifndef GL_APPLE_texture_max_level
239#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
240#endif
241
242/*------------------------------------------------------------------------*
243 * ARM extension tokens
244 *------------------------------------------------------------------------*/
245
246/* GL_ARM_mali_shader_binary */
247#ifndef GL_ARM_mali_shader_binary
248#define GL_MALI_SHADER_BINARY_ARM 0x8F60
249#endif
250
251/* GL_ARM_rgba8 */
252/* No new tokens introduced by this extension. */
253
254/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -0600255 * EXT extension tokens
256 *------------------------------------------------------------------------*/
257
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800258/* GL_EXT_blend_minmax */
259#ifndef GL_EXT_blend_minmax
260#define GL_MIN_EXT 0x8007
261#define GL_MAX_EXT 0x8008
262#endif
263
264/* GL_EXT_discard_framebuffer */
265#ifndef GL_EXT_discard_framebuffer
266#define GL_COLOR_EXT 0x1800
267#define GL_DEPTH_EXT 0x1801
268#define GL_STENCIL_EXT 0x1802
269#endif
270
271/* GL_EXT_multi_draw_arrays */
272/* No new tokens introduced by this extension. */
273
274/* GL_EXT_read_format_bgra */
275#ifndef GL_EXT_read_format_bgra
276#define GL_BGRA_EXT 0x80E1
277#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
278#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
279#endif
280
Ian Romanickb152a232011-09-20 15:54:52 -0700281/* GL_EXT_shader_texture_lod */
282/* No new tokens introduced by this extension. */
283
Brian Paul0ebc94d2008-06-04 10:04:31 -0600284/* GL_EXT_texture_filter_anisotropic */
285#ifndef GL_EXT_texture_filter_anisotropic
286#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
287#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
288#endif
289
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800290/* GL_EXT_texture_format_BGRA8888 */
291#ifndef GL_EXT_texture_format_BGRA8888
292#define GL_BGRA_EXT 0x80E1
293#endif
294
Brian Paul0ebc94d2008-06-04 10:04:31 -0600295/* GL_EXT_texture_type_2_10_10_10_REV */
296#ifndef GL_EXT_texture_type_2_10_10_10_REV
297#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
298#endif
299
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800300/* GL_EXT_texture_compression_dxt1 */
301#ifndef GL_EXT_texture_compression_dxt1
302#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
303#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
304#endif
305
Ian Romanickb152a232011-09-20 15:54:52 -0700306/* GL_EXT_unpack_subimage */
307#ifndef GL_EXT_unpack_subimage
308#define GL_UNPACK_ROW_LENGTH 0x0CF2
309#define GL_UNPACK_SKIP_ROWS 0x0CF3
310#define GL_UNPACK_SKIP_PIXELS 0x0CF4
311#endif
312
313/*------------------------------------------------------------------------*
314 * DMP extension tokens
315 *------------------------------------------------------------------------*/
316
317/* GL_DMP_shader_binary */
318#ifndef GL_DMP_shader_binary
319#define GL_SHADER_BINARY_DMP 0x9250
320#endif
321
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800322/*------------------------------------------------------------------------*
323 * IMG extension tokens
324 *------------------------------------------------------------------------*/
325
326/* GL_IMG_program_binary */
327#ifndef GL_IMG_program_binary
328#define GL_SGX_PROGRAM_BINARY_IMG 0x9130
329#endif
330
331/* GL_IMG_read_format */
332#ifndef GL_IMG_read_format
333#define GL_BGRA_IMG 0x80E1
334#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
335#endif
336
337/* GL_IMG_shader_binary */
338#ifndef GL_IMG_shader_binary
339#define GL_SGX_BINARY_IMG 0x8C0A
340#endif
341
342/* GL_IMG_texture_compression_pvrtc */
343#ifndef GL_IMG_texture_compression_pvrtc
344#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
345#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
346#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
347#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
348#endif
349
350/* GL_IMG_multisampled_render_to_texture */
351#ifndef GL_IMG_multisampled_render_to_texture
352#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
353#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
354#define GL_MAX_SAMPLES_IMG 0x9135
355#define GL_TEXTURE_SAMPLES_IMG 0x9136
356#endif
357
358/*------------------------------------------------------------------------*
359 * NV extension tokens
360 *------------------------------------------------------------------------*/
361
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800362/* GL_NV_coverage_sample */
363#ifndef GL_NV_coverage_sample
364#define GL_COVERAGE_COMPONENT_NV 0x8ED0
365#define GL_COVERAGE_COMPONENT4_NV 0x8ED1
366#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2
367#define GL_COVERAGE_BUFFERS_NV 0x8ED3
368#define GL_COVERAGE_SAMPLES_NV 0x8ED4
369#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5
370#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6
371#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7
372#define GL_COVERAGE_BUFFER_BIT_NV 0x8000
373#endif
374
375/* GL_NV_depth_nonlinear */
376#ifndef GL_NV_depth_nonlinear
377#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
378#endif
379
Ian Romanickb152a232011-09-20 15:54:52 -0700380/* GL_NV_draw_buffers */
381#ifndef GL_NV_draw_buffers
382#define GL_MAX_DRAW_BUFFERS_NV 0x8824
383#define GL_DRAW_BUFFER0_NV 0x8825
384#define GL_DRAW_BUFFER1_NV 0x8826
385#define GL_DRAW_BUFFER2_NV 0x8827
386#define GL_DRAW_BUFFER3_NV 0x8828
387#define GL_DRAW_BUFFER4_NV 0x8829
388#define GL_DRAW_BUFFER5_NV 0x882A
389#define GL_DRAW_BUFFER6_NV 0x882B
390#define GL_DRAW_BUFFER7_NV 0x882C
391#define GL_DRAW_BUFFER8_NV 0x882D
392#define GL_DRAW_BUFFER9_NV 0x882E
393#define GL_DRAW_BUFFER10_NV 0x882F
394#define GL_DRAW_BUFFER11_NV 0x8830
395#define GL_DRAW_BUFFER12_NV 0x8831
396#define GL_DRAW_BUFFER13_NV 0x8832
397#define GL_DRAW_BUFFER14_NV 0x8833
398#define GL_DRAW_BUFFER15_NV 0x8834
399#define GL_COLOR_ATTACHMENT0_NV 0x8CE0
400#define GL_COLOR_ATTACHMENT1_NV 0x8CE1
401#define GL_COLOR_ATTACHMENT2_NV 0x8CE2
402#define GL_COLOR_ATTACHMENT3_NV 0x8CE3
403#define GL_COLOR_ATTACHMENT4_NV 0x8CE4
404#define GL_COLOR_ATTACHMENT5_NV 0x8CE5
405#define GL_COLOR_ATTACHMENT6_NV 0x8CE6
406#define GL_COLOR_ATTACHMENT7_NV 0x8CE7
407#define GL_COLOR_ATTACHMENT8_NV 0x8CE8
408#define GL_COLOR_ATTACHMENT9_NV 0x8CE9
409#define GL_COLOR_ATTACHMENT10_NV 0x8CEA
410#define GL_COLOR_ATTACHMENT11_NV 0x8CEB
411#define GL_COLOR_ATTACHMENT12_NV 0x8CEC
412#define GL_COLOR_ATTACHMENT13_NV 0x8CED
413#define GL_COLOR_ATTACHMENT14_NV 0x8CEE
414#define GL_COLOR_ATTACHMENT15_NV 0x8CEF
415#endif
416
417/* GL_NV_fbo_color_attachments */
418#ifndef GL_NV_fbo_color_attachments
419#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF
420/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
421#endif
422
423/* GL_NV_fence */
424#ifndef GL_NV_fence
425#define GL_ALL_COMPLETED_NV 0x84F2
426#define GL_FENCE_STATUS_NV 0x84F3
427#define GL_FENCE_CONDITION_NV 0x84F4
428#endif
429
430/* GL_NV_read_buffer */
431#ifndef GL_NV_read_buffer
432#define GL_READ_BUFFER_NV 0x0C02
433#endif
434
435/* GL_NV_read_buffer_front */
436/* No new tokens introduced by this extension. */
437
438/* GL_NV_read_depth */
439/* No new tokens introduced by this extension. */
440
441/* GL_NV_read_depth_stencil */
442/* No new tokens introduced by this extension. */
443
444/* GL_NV_read_stencil */
445/* No new tokens introduced by this extension. */
446
447/* GL_NV_texture_compression_s3tc_update */
448/* No new tokens introduced by this extension. */
449
450/* GL_NV_texture_npot_2D_mipmap */
451/* No new tokens introduced by this extension. */
452
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800453/*------------------------------------------------------------------------*
454 * QCOM extension tokens
455 *------------------------------------------------------------------------*/
456
Ian Romanickb152a232011-09-20 15:54:52 -0700457/* GL_QCOM_alpha_test */
458#ifndef GL_QCOM_alpha_test
459#define GL_ALPHA_TEST_QCOM 0x0BC0
460#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
461#define GL_ALPHA_TEST_REF_QCOM 0x0BC2
462#endif
463
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800464/* GL_QCOM_driver_control */
465/* No new tokens introduced by this extension. */
466
467/* GL_QCOM_extended_get */
468#ifndef GL_QCOM_extended_get
469#define GL_TEXTURE_WIDTH_QCOM 0x8BD2
470#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
471#define GL_TEXTURE_DEPTH_QCOM 0x8BD4
472#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
473#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
474#define GL_TEXTURE_TYPE_QCOM 0x8BD7
475#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
476#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
477#define GL_TEXTURE_TARGET_QCOM 0x8BDA
478#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
479#define GL_STATE_RESTORE 0x8BDC
480#endif
481
482/* GL_QCOM_extended_get2 */
483/* No new tokens introduced by this extension. */
484
485/* GL_QCOM_perfmon_global_mode */
486#ifndef GL_QCOM_perfmon_global_mode
487#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
488#endif
489
490/* GL_QCOM_writeonly_rendering */
491#ifndef GL_QCOM_writeonly_rendering
492#define GL_WRITEONLY_RENDERING_QCOM 0x8823
493#endif
494
495/* GL_QCOM_tiled_rendering */
496#ifndef GL_QCOM_tiled_rendering
497#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
498#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
499#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
500#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
501#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
502#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
503#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
504#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
505#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
506#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
507#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
508#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
509#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
510#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
511#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
512#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
513#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
514#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
515#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
516#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
517#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
518#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
519#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
520#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
521#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
522#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
523#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
524#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
525#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
526#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
527#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
528#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
529#endif
530
531/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -0700532 * VIV extension tokens
533 *------------------------------------------------------------------------*/
534
535/* GL_VIV_shader_binary */
536#ifndef GL_VIV_shader_binary
537#define GL_SHADER_BINARY_VIV 0x8FC4
538#endif
539
540/*------------------------------------------------------------------------*
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800541 * End of extension tokens, start of corresponding extension functions
542 *------------------------------------------------------------------------*/
543
Brian Paul0ebc94d2008-06-04 10:04:31 -0600544/*------------------------------------------------------------------------*
545 * OES extension functions
546 *------------------------------------------------------------------------*/
547
548/* GL_OES_compressed_ETC1_RGB8_texture */
549#ifndef GL_OES_compressed_ETC1_RGB8_texture
550#define GL_OES_compressed_ETC1_RGB8_texture 1
551#endif
552
553/* GL_OES_compressed_paletted_texture */
554#ifndef GL_OES_compressed_paletted_texture
555#define GL_OES_compressed_paletted_texture 1
556#endif
557
Brian Paul0ebc94d2008-06-04 10:04:31 -0600558/* GL_OES_depth24 */
559#ifndef GL_OES_depth24
560#define GL_OES_depth24 1
561#endif
562
563/* GL_OES_depth32 */
564#ifndef GL_OES_depth32
565#define GL_OES_depth32 1
566#endif
567
568/* GL_OES_depth_texture */
569#ifndef GL_OES_depth_texture
570#define GL_OES_depth_texture 1
571#endif
572
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800573/* GL_OES_EGL_image */
574#ifndef GL_OES_EGL_image
575#define GL_OES_EGL_image 1
576#ifdef GL_GLEXT_PROTOTYPES
577GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
578GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
579#endif
580typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
581typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
582#endif
583
Ian Romanickb152a232011-09-20 15:54:52 -0700584/* GL_OES_EGL_image_external */
585#ifndef GL_OES_EGL_image_external
586#define GL_OES_EGL_image_external 1
587/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
588#endif
589
Brian Paul0ebc94d2008-06-04 10:04:31 -0600590/* GL_OES_element_index_uint */
591#ifndef GL_OES_element_index_uint
592#define GL_OES_element_index_uint 1
593#endif
594
595/* GL_OES_fbo_render_mipmap */
596#ifndef GL_OES_fbo_render_mipmap
597#define GL_OES_fbo_render_mipmap 1
598#endif
599
600/* GL_OES_fragment_precision_high */
601#ifndef GL_OES_fragment_precision_high
602#define GL_OES_fragment_precision_high 1
603#endif
604
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800605/* GL_OES_get_program_binary */
606#ifndef GL_OES_get_program_binary
607#define GL_OES_get_program_binary 1
608#ifdef GL_GLEXT_PROTOTYPES
609GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
610GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
611#endif
612typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
613typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
614#endif
615
Brian Paul0ebc94d2008-06-04 10:04:31 -0600616/* GL_OES_mapbuffer */
617#ifndef GL_OES_mapbuffer
618#define GL_OES_mapbuffer 1
619#ifdef GL_GLEXT_PROTOTYPES
620GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
621GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800622GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600623#endif
624typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
625typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800626typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600627#endif
628
629/* GL_OES_packed_depth_stencil */
630#ifndef GL_OES_packed_depth_stencil
631#define GL_OES_packed_depth_stencil 1
632#endif
633
634/* GL_OES_rgb8_rgba8 */
635#ifndef GL_OES_rgb8_rgba8
636#define GL_OES_rgb8_rgba8 1
637#endif
638
639/* GL_OES_standard_derivatives */
640#ifndef GL_OES_standard_derivatives
641#define GL_OES_standard_derivatives 1
642#endif
643
644/* GL_OES_stencil1 */
645#ifndef GL_OES_stencil1
646#define GL_OES_stencil1 1
647#endif
648
649/* GL_OES_stencil4 */
650#ifndef GL_OES_stencil4
651#define GL_OES_stencil4 1
652#endif
653
654/* GL_OES_texture_3D */
655#ifndef GL_OES_texture_3D
656#define GL_OES_texture_3D 1
657#ifdef GL_GLEXT_PROTOTYPES
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800658GL_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);
659GL_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);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600660GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800661GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
662GL_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);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600663GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
664#endif
665typedef 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);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800666typedef 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);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600667typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800668typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
669typedef 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);
Brian Paul0ebc94d2008-06-04 10:04:31 -0600670typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
671#endif
672
Brian Paul0ebc94d2008-06-04 10:04:31 -0600673/* GL_OES_texture_float */
674#ifndef GL_OES_texture_float
675#define GL_OES_texture_float 1
676#endif
677
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800678/* GL_OES_texture_float_linear */
679#ifndef GL_OES_texture_float_linear
680#define GL_OES_texture_float_linear 1
681#endif
682
Brian Paul0ebc94d2008-06-04 10:04:31 -0600683/* GL_OES_texture_half_float */
684#ifndef GL_OES_texture_half_float
685#define GL_OES_texture_half_float 1
686#endif
687
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800688/* GL_OES_texture_half_float_linear */
689#ifndef GL_OES_texture_half_float_linear
690#define GL_OES_texture_half_float_linear 1
691#endif
692
Brian Paul0ebc94d2008-06-04 10:04:31 -0600693/* GL_OES_texture_npot */
694#ifndef GL_OES_texture_npot
695#define GL_OES_texture_npot 1
696#endif
697
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800698/* GL_OES_vertex_array_object */
699#ifndef GL_OES_vertex_array_object
700#define GL_OES_vertex_array_object 1
701#ifdef GL_GLEXT_PROTOTYPES
702GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
703GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
704GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
705GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
706#endif
707typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
708typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
709typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
710typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
711#endif
712
Brian Paul0ebc94d2008-06-04 10:04:31 -0600713/* GL_OES_vertex_half_float */
714#ifndef GL_OES_vertex_half_float
715#define GL_OES_vertex_half_float 1
716#endif
717
718/* GL_OES_vertex_type_10_10_10_2 */
719#ifndef GL_OES_vertex_type_10_10_10_2
720#define GL_OES_vertex_type_10_10_10_2 1
721#endif
722
Brian Paul0ebc94d2008-06-04 10:04:31 -0600723/*------------------------------------------------------------------------*
724 * AMD extension functions
725 *------------------------------------------------------------------------*/
726
727/* GL_AMD_compressed_3DC_texture */
728#ifndef GL_AMD_compressed_3DC_texture
729#define GL_AMD_compressed_3DC_texture 1
730#endif
731
732/* GL_AMD_compressed_ATC_texture */
733#ifndef GL_AMD_compressed_ATC_texture
734#define GL_AMD_compressed_ATC_texture 1
735#endif
736
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800737/* AMD_performance_monitor */
738#ifndef GL_AMD_performance_monitor
739#define GL_AMD_performance_monitor 1
740#ifdef GL_GLEXT_PROTOTYPES
741GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
742GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
743GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
744GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
745GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
746GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
747GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
748GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
749GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
750GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
751GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
752#endif
753typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
754typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
755typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
756typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
757typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
758typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
759typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
760typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
761typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
762typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
763typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
764#endif
765
Brian Paul0ebc94d2008-06-04 10:04:31 -0600766/* GL_AMD_program_binary_Z400 */
767#ifndef GL_AMD_program_binary_Z400
768#define GL_AMD_program_binary_Z400 1
769#endif
770
771/*------------------------------------------------------------------------*
Ian Romanickb152a232011-09-20 15:54:52 -0700772 * ANGLE extension functions
773 *------------------------------------------------------------------------*/
774
775/* GL_ANGLE_framebuffer_blit */
776#ifndef GL_ANGLE_framebuffer_blit
777#define GL_ANGLE_framebuffer_blit 1
778#ifdef GL_GLEXT_PROTOTYPES
779GL_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);
780#endif
781typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
782#endif
783
784/* GL_ANGLE_framebuffer_multisample */
785#ifndef GL_ANGLE_framebuffer_multisample
786#define GL_ANGLE_framebuffer_multisample 1
787#ifdef GL_GLEXT_PROTOTYPES
788GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
789#endif
790typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
791#endif
792
793/*------------------------------------------------------------------------*
794 * APPLE extension functions
795 *------------------------------------------------------------------------*/
796
797/* GL_APPLE_rgb_422 */
798#ifndef GL_APPLE_rgb_422
799#define GL_APPLE_rgb_422 1
800#endif
801
802/* GL_APPLE_framebuffer_multisample */
803#ifndef GL_APPLE_framebuffer_multisample
804#define GL_APPLE_framebuffer_multisample 1
805#ifdef GL_GLEXT_PROTOTYPES
806GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
807GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
808#endif /* GL_GLEXT_PROTOTYPES */
809typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
810typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
811#endif
812
813/* GL_APPLE_texture_format_BGRA8888 */
814#ifndef GL_APPLE_texture_format_BGRA8888
815#define GL_APPLE_texture_format_BGRA8888 1
816#endif
817
818/* GL_APPLE_texture_max_level */
819#ifndef GL_APPLE_texture_max_level
820#define GL_APPLE_texture_max_level 1
821#endif
822
823/*------------------------------------------------------------------------*
824 * ARM extension functions
825 *------------------------------------------------------------------------*/
826
827/* GL_ARM_mali_shader_binary */
828#ifndef GL_ARM_mali_shader_binary
829#define GL_ARM_mali_shader_binary 1
830#endif
831
832/* GL_ARM_rgba8 */
833#ifndef GL_ARM_rgba8
834#define GL_ARM_rgba8 1
835#endif
836
837/*------------------------------------------------------------------------*
Brian Paul0ebc94d2008-06-04 10:04:31 -0600838 * EXT extension functions
839 *------------------------------------------------------------------------*/
840
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800841/* GL_EXT_blend_minmax */
842#ifndef GL_EXT_blend_minmax
843#define GL_EXT_blend_minmax 1
844#endif
845
846/* GL_EXT_discard_framebuffer */
847#ifndef GL_EXT_discard_framebuffer
848#define GL_EXT_discard_framebuffer 1
849#ifdef GL_GLEXT_PROTOTYPES
850GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
851#endif
852typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
853#endif
854
855#ifndef GL_EXT_multi_draw_arrays
856#define GL_EXT_multi_draw_arrays 1
857#ifdef GL_GLEXT_PROTOTYPES
858GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
859GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
860#endif /* GL_GLEXT_PROTOTYPES */
861typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
862typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
863#endif
864
865/* GL_EXT_read_format_bgra */
866#ifndef GL_EXT_read_format_bgra
867#define GL_EXT_read_format_bgra 1
868#endif
869
Ian Romanickb152a232011-09-20 15:54:52 -0700870/* GL_EXT_shader_texture_lod */
871#ifndef GL_EXT_shader_texture_lod
872#define GL_EXT_shader_texture_lod 1
873#endif
874
Brian Paul0ebc94d2008-06-04 10:04:31 -0600875/* GL_EXT_texture_filter_anisotropic */
876#ifndef GL_EXT_texture_filter_anisotropic
877#define GL_EXT_texture_filter_anisotropic 1
878#endif
879
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800880/* GL_EXT_texture_format_BGRA8888 */
881#ifndef GL_EXT_texture_format_BGRA8888
882#define GL_EXT_texture_format_BGRA8888 1
883#endif
884
Brian Paul0ebc94d2008-06-04 10:04:31 -0600885/* GL_EXT_texture_type_2_10_10_10_REV */
886#ifndef GL_EXT_texture_type_2_10_10_10_REV
887#define GL_EXT_texture_type_2_10_10_10_REV 1
888#endif
889
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800890/* GL_EXT_texture_compression_dxt1 */
891#ifndef GL_EXT_texture_compression_dxt1
892#define GL_EXT_texture_compression_dxt1 1
893#endif
894
Ian Romanickb152a232011-09-20 15:54:52 -0700895/* GL_EXT_unpack_subimage */
896#ifndef GL_EXT_unpack_subimage
897#define GL_EXT_unpack_subimage 1
898#endif
899
900/*------------------------------------------------------------------------*
901 * DMP extension functions
902 *------------------------------------------------------------------------*/
903
904/* GL_DMP_shader_binary */
905#ifndef GL_DMP_shader_binary
906#define GL_DMP_shader_binary 1
907#endif
908
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800909/*------------------------------------------------------------------------*
910 * IMG extension functions
911 *------------------------------------------------------------------------*/
912
913/* GL_IMG_program_binary */
914#ifndef GL_IMG_program_binary
915#define GL_IMG_program_binary 1
916#endif
917
918/* GL_IMG_read_format */
919#ifndef GL_IMG_read_format
920#define GL_IMG_read_format 1
921#endif
922
923/* GL_IMG_shader_binary */
924#ifndef GL_IMG_shader_binary
925#define GL_IMG_shader_binary 1
926#endif
927
928/* GL_IMG_texture_compression_pvrtc */
929#ifndef GL_IMG_texture_compression_pvrtc
930#define GL_IMG_texture_compression_pvrtc 1
931#endif
932
933/* GL_IMG_multisampled_render_to_texture */
934#ifndef GL_IMG_multisampled_render_to_texture
935#define GL_IMG_multisampled_render_to_texture 1
936#ifdef GL_GLEXT_PROTOTYPES
937GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
938GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
939#endif
940typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
Ian Romanickb152a232011-09-20 15:54:52 -0700941typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800942#endif
943
944/*------------------------------------------------------------------------*
945 * NV extension functions
946 *------------------------------------------------------------------------*/
947
Ian Romanickb152a232011-09-20 15:54:52 -0700948/* GL_NV_coverage_sample */
949#ifndef GL_NV_coverage_sample
950#define GL_NV_coverage_sample 1
951#ifdef GL_GLEXT_PROTOTYPES
952GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
953GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
954#endif
955typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
956typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
957#endif
958
959/* GL_NV_depth_nonlinear */
960#ifndef GL_NV_depth_nonlinear
961#define GL_NV_depth_nonlinear 1
962#endif
963
964/* GL_NV_draw_buffers */
965#ifndef GL_NV_draw_buffers
966#define GL_NV_draw_buffers 1
967#ifdef GL_GLEXT_PROTOTYPES
968GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
969#endif
970typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
971#endif
972
973/* GL_NV_fbo_color_attachments */
974#ifndef GL_NV_fbo_color_attachments
975#define GL_NV_fbo_color_attachments 1
976#endif
977
Chia-I Wu59f8dca2010-05-31 10:15:55 +0800978/* GL_NV_fence */
979#ifndef GL_NV_fence
980#define GL_NV_fence 1
981#ifdef GL_GLEXT_PROTOTYPES
982GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
983GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
984GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
985GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
986GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
987GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
988GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
989#endif
990typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
991typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
992typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
993typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
994typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
995typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
996typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
997#endif
998
Ian Romanickb152a232011-09-20 15:54:52 -0700999/* GL_NV_read_buffer */
1000#ifndef GL_NV_read_buffer
1001#define GL_NV_read_buffer 1
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001002#ifdef GL_GLEXT_PROTOTYPES
Ian Romanickb152a232011-09-20 15:54:52 -07001003GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001004#endif
Ian Romanickb152a232011-09-20 15:54:52 -07001005typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001006#endif
1007
Ian Romanickb152a232011-09-20 15:54:52 -07001008/* GL_NV_read_buffer_front */
1009#ifndef GL_NV_read_buffer_front
1010#define GL_NV_read_buffer_front 1
1011#endif
1012
1013/* GL_NV_read_depth */
1014#ifndef GL_NV_read_depth
1015#define GL_NV_read_depth 1
1016#endif
1017
1018/* GL_NV_read_depth_stencil */
1019#ifndef GL_NV_read_depth_stencil
1020#define GL_NV_read_depth_stencil 1
1021#endif
1022
1023/* GL_NV_read_stencil */
1024#ifndef GL_NV_read_stencil
1025#define GL_NV_read_stencil 1
1026#endif
1027
1028/* GL_NV_texture_compression_s3tc_update */
1029#ifndef GL_NV_texture_compression_s3tc_update
1030#define GL_NV_texture_compression_s3tc_update 1
1031#endif
1032
1033/* GL_NV_texture_npot_2D_mipmap */
1034#ifndef GL_NV_texture_npot_2D_mipmap
1035#define GL_NV_texture_npot_2D_mipmap 1
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001036#endif
1037
1038/*------------------------------------------------------------------------*
1039 * QCOM extension functions
1040 *------------------------------------------------------------------------*/
1041
Ian Romanickb152a232011-09-20 15:54:52 -07001042/* GL_QCOM_alpha_test */
1043#ifndef GL_QCOM_alpha_test
1044#define GL_QCOM_alpha_test 1
1045#ifdef GL_GLEXT_PROTOTYPES
1046GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
1047#endif
1048typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
1049#endif
1050
Chia-I Wu59f8dca2010-05-31 10:15:55 +08001051/* GL_QCOM_driver_control */
1052#ifndef GL_QCOM_driver_control
1053#define GL_QCOM_driver_control 1
1054#ifdef GL_GLEXT_PROTOTYPES
1055GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
1056GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1057GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
1058GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
1059#endif
1060typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
1061typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
1062typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1063typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
1064#endif
1065
1066/* GL_QCOM_extended_get */
1067#ifndef GL_QCOM_extended_get
1068#define GL_QCOM_extended_get 1
1069#ifdef GL_GLEXT_PROTOTYPES
1070GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
1071GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1072GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1073GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1074GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1075GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
1076GL_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);
1077GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
1078#endif
1079typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
1080typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
1081typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
1082typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
1083typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
1084typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
1085typedef 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);
1086typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
1087#endif
1088
1089/* GL_QCOM_extended_get2 */
1090#ifndef GL_QCOM_extended_get2
1091#define GL_QCOM_extended_get2 1
1092#ifdef GL_GLEXT_PROTOTYPES
1093GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1094GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1095GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
1096GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1097#endif
1098typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
1099typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
1100typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
1101typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
1102#endif
1103
1104/* GL_QCOM_perfmon_global_mode */
1105#ifndef GL_QCOM_perfmon_global_mode
1106#define GL_QCOM_perfmon_global_mode 1
1107#endif
1108
1109/* GL_QCOM_writeonly_rendering */
1110#ifndef GL_QCOM_writeonly_rendering
1111#define GL_QCOM_writeonly_rendering 1
1112#endif
1113
1114/* GL_QCOM_tiled_rendering */
1115#ifndef GL_QCOM_tiled_rendering
1116#define GL_QCOM_tiled_rendering 1
1117#ifdef GL_GLEXT_PROTOTYPES
1118GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1119GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
1120#endif
1121typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
1122typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
1123#endif
1124
Ian Romanickb152a232011-09-20 15:54:52 -07001125/*------------------------------------------------------------------------*
1126 * VIV extension tokens
1127 *------------------------------------------------------------------------*/
1128
1129/* GL_VIV_shader_binary */
1130#ifndef GL_VIV_shader_binary
1131#define GL_VIV_shader_binary 1
1132#endif
1133
Brian Paul0ebc94d2008-06-04 10:04:31 -06001134#ifdef __cplusplus
1135}
1136#endif
1137
1138#endif /* __gl2ext_h_ */