blob: de5d65a23114bbe39acb0bb3249d451083f72414 [file] [log] [blame]
Mathias Agopian48efd952009-05-27 20:31:18 -07001#ifndef __gl2ext_h_
2#define __gl2ext_h_
3
Mathias Agopian8f62c302010-06-09 18:08:15 -07004/* $Revision: 10969 $ on $Date:: 2010-04-09 02:27:15 -0700 #$ */
Mathias Agopian48efd952009-05-27 20:31:18 -07005
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10/*
11 * This document is licensed under the SGI Free Software B License Version
12 * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
13 */
14
15#ifndef GL_APIENTRYP
16# define GL_APIENTRYP GL_APIENTRY*
17#endif
18
19/*------------------------------------------------------------------------*
20 * OES extension tokens
21 *------------------------------------------------------------------------*/
22
23/* GL_OES_compressed_ETC1_RGB8_texture */
24#ifndef GL_OES_compressed_ETC1_RGB8_texture
25#define GL_ETC1_RGB8_OES 0x8D64
26#endif
27
28/* GL_OES_compressed_paletted_texture */
29#ifndef GL_OES_compressed_paletted_texture
30#define GL_PALETTE4_RGB8_OES 0x8B90
31#define GL_PALETTE4_RGBA8_OES 0x8B91
32#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
33#define GL_PALETTE4_RGBA4_OES 0x8B93
34#define GL_PALETTE4_RGB5_A1_OES 0x8B94
35#define GL_PALETTE8_RGB8_OES 0x8B95
36#define GL_PALETTE8_RGBA8_OES 0x8B96
37#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
38#define GL_PALETTE8_RGBA4_OES 0x8B98
39#define GL_PALETTE8_RGB5_A1_OES 0x8B99
40#endif
41
42/* GL_OES_depth24 */
43#ifndef GL_OES_depth24
44#define GL_DEPTH_COMPONENT24_OES 0x81A6
45#endif
46
47/* GL_OES_depth32 */
48#ifndef GL_OES_depth32
49#define GL_DEPTH_COMPONENT32_OES 0x81A7
50#endif
51
52/* GL_OES_depth_texture */
53/* No new tokens introduced by this extension. */
54
55/* GL_OES_EGL_image */
56#ifndef GL_OES_EGL_image
57typedef void* GLeglImageOES;
58#endif
59
Mathias Agopian8f62c302010-06-09 18:08:15 -070060/* GL_OES_element_index_uint */
61#ifndef GL_OES_element_index_uint
62#define GL_UNSIGNED_INT 0x1405
63#endif
64
Mathias Agopian48efd952009-05-27 20:31:18 -070065/* GL_OES_get_program_binary */
66#ifndef GL_OES_get_program_binary
67#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
68#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
69#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF
70#endif
71
72/* GL_OES_mapbuffer */
73#ifndef GL_OES_mapbuffer
74#define GL_WRITE_ONLY_OES 0x88B9
75#define GL_BUFFER_ACCESS_OES 0x88BB
76#define GL_BUFFER_MAPPED_OES 0x88BC
77#define GL_BUFFER_MAP_POINTER_OES 0x88BD
78#endif
79
80/* GL_OES_packed_depth_stencil */
81#ifndef GL_OES_packed_depth_stencil
82#define GL_DEPTH_STENCIL_OES 0x84F9
83#define GL_UNSIGNED_INT_24_8_OES 0x84FA
84#define GL_DEPTH24_STENCIL8_OES 0x88F0
85#endif
86
87/* GL_OES_rgb8_rgba8 */
88#ifndef GL_OES_rgb8_rgba8
89#define GL_RGB8_OES 0x8051
90#define GL_RGBA8_OES 0x8058
91#endif
92
93/* GL_OES_standard_derivatives */
94#ifndef GL_OES_standard_derivatives
95#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
96#endif
97
98/* GL_OES_stencil1 */
99#ifndef GL_OES_stencil1
100#define GL_STENCIL_INDEX1_OES 0x8D46
101#endif
102
103/* GL_OES_stencil4 */
104#ifndef GL_OES_stencil4
105#define GL_STENCIL_INDEX4_OES 0x8D47
106#endif
107
Mathias Agopian8f62c302010-06-09 18:08:15 -0700108/* GL_OES_texture_3D */
109#ifndef GL_OES_texture_3D
Mathias Agopian48efd952009-05-27 20:31:18 -0700110#define GL_TEXTURE_WRAP_R_OES 0x8072
111#define GL_TEXTURE_3D_OES 0x806F
112#define GL_TEXTURE_BINDING_3D_OES 0x806A
113#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
114#define GL_SAMPLER_3D_OES 0x8B5F
115#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
116#endif
117
Mathias Agopian8f62c302010-06-09 18:08:15 -0700118/* GL_OES_texture_float */
119/* No new tokens introduced by this extension. */
120
121/* GL_OES_texture_float_linear */
122/* No new tokens introduced by this extension. */
123
Mathias Agopian48efd952009-05-27 20:31:18 -0700124/* GL_OES_texture_half_float */
125#ifndef GL_OES_texture_half_float
126#define GL_HALF_FLOAT_OES 0x8D61
127#endif
128
Mathias Agopian8f62c302010-06-09 18:08:15 -0700129/* GL_OES_texture_half_float_linear */
130/* No new tokens introduced by this extension. */
131
132/* GL_OES_texture_npot */
133/* No new tokens introduced by this extension. */
134
135/* GL_OES_vertex_array_object */
136#ifndef GL_OES_vertex_array_object
137#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
138#endif
139
Mathias Agopian48efd952009-05-27 20:31:18 -0700140/* GL_OES_vertex_half_float */
141/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
142
143/* GL_OES_vertex_type_10_10_10_2 */
144#ifndef GL_OES_vertex_type_10_10_10_2
145#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6
146#define GL_INT_10_10_10_2_OES 0x8DF7
147#endif
148
Mathias Agopian0a917752010-06-14 21:20:00 -0700149/* GL_OES_texture_external */
150#ifndef GL_TEXTURE_EXTERNAL_OES
151#define GL_TEXTURE_EXTERNAL_OES 0x8D65
152#endif
153
Mathias Agopian48efd952009-05-27 20:31:18 -0700154/*------------------------------------------------------------------------*
155 * AMD extension tokens
156 *------------------------------------------------------------------------*/
157
158/* GL_AMD_compressed_3DC_texture */
159#ifndef GL_AMD_compressed_3DC_texture
160#define GL_3DC_X_AMD 0x87F9
161#define GL_3DC_XY_AMD 0x87FA
162#endif
163
164/* GL_AMD_compressed_ATC_texture */
165#ifndef GL_AMD_compressed_ATC_texture
166#define GL_ATC_RGB_AMD 0x8C92
167#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
168#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
169#endif
170
Mathias Agopian48efd952009-05-27 20:31:18 -0700171/* GL_AMD_performance_monitor */
172#ifndef GL_AMD_performance_monitor
173#define GL_COUNTER_TYPE_AMD 0x8BC0
174#define GL_COUNTER_RANGE_AMD 0x8BC1
175#define GL_UNSIGNED_INT64_AMD 0x8BC2
176#define GL_PERCENTAGE_AMD 0x8BC3
177#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
178#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
179#define GL_PERFMON_RESULT_AMD 0x8BC6
180#endif
181
Mathias Agopian8f62c302010-06-09 18:08:15 -0700182/* GL_AMD_program_binary_Z400 */
183#ifndef GL_AMD_program_binary_Z400
184#define GL_Z400_BINARY_AMD 0x8740
185#endif
186
Mathias Agopian48efd952009-05-27 20:31:18 -0700187/*------------------------------------------------------------------------*
188 * EXT extension tokens
189 *------------------------------------------------------------------------*/
190
Mathias Agopian8f62c302010-06-09 18:08:15 -0700191/* GL_EXT_blend_minmax */
192#ifndef GL_EXT_blend_minmax
193#define GL_MIN_EXT 0x8007
194#define GL_MAX_EXT 0x8008
195#endif
196
197/* GL_EXT_discard_framebuffer */
198#ifndef GL_EXT_discard_framebuffer
199#define GL_COLOR_EXT 0x1800
200#define GL_DEPTH_EXT 0x1801
201#define GL_STENCIL_EXT 0x1802
202#endif
203
204/* GL_EXT_multi_draw_arrays */
205/* No new tokens introduced by this extension. */
206
207/* GL_EXT_read_format_bgra */
208#ifndef GL_EXT_read_format_bgra
209#define GL_BGRA_EXT 0x80E1
210#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
211#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
212#endif
213
Mathias Agopian48efd952009-05-27 20:31:18 -0700214/* GL_EXT_texture_filter_anisotropic */
215#ifndef GL_EXT_texture_filter_anisotropic
216#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
217#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
218#endif
219
Mathias Agopian8f62c302010-06-09 18:08:15 -0700220/* GL_EXT_texture_format_BGRA8888 */
221#ifndef GL_EXT_texture_format_BGRA8888
222#define GL_BGRA_EXT 0x80E1
223#endif
224
Mathias Agopian48efd952009-05-27 20:31:18 -0700225/* GL_EXT_texture_type_2_10_10_10_REV */
226#ifndef GL_EXT_texture_type_2_10_10_10_REV
227#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
228#endif
229
Mathias Agopian8f62c302010-06-09 18:08:15 -0700230/* GL_EXT_texture_compression_dxt1 */
231#ifndef GL_EXT_texture_compression_dxt1
232#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
233#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
Mathias Agopian48efd952009-05-27 20:31:18 -0700234#endif
235
236/*------------------------------------------------------------------------*
237 * IMG extension tokens
238 *------------------------------------------------------------------------*/
239
Mathias Agopian8f62c302010-06-09 18:08:15 -0700240/* GL_IMG_program_binary */
241#ifndef GL_IMG_program_binary
242#define GL_SGX_PROGRAM_BINARY_IMG 0x9130
243#endif
244
Mathias Agopian48efd952009-05-27 20:31:18 -0700245/* GL_IMG_read_format */
246#ifndef GL_IMG_read_format
Mathias Agopian8f62c302010-06-09 18:08:15 -0700247#define GL_BGRA_IMG 0x80E1
248#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
249#endif
250
251/* GL_IMG_shader_binary */
252#ifndef GL_IMG_shader_binary
253#define GL_SGX_BINARY_IMG 0x8C0A
Mathias Agopian48efd952009-05-27 20:31:18 -0700254#endif
255
256/* GL_IMG_texture_compression_pvrtc */
257#ifndef GL_IMG_texture_compression_pvrtc
258#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
259#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
260#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
261#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
262#endif
263
Mathias Agopian8f62c302010-06-09 18:08:15 -0700264/* GL_IMG_multisampled_render_to_texture */
265#ifndef GL_IMG_multisampled_render_to_texture
266#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
267#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
268#define GL_MAX_SAMPLES_IMG 0x9135
269#define GL_TEXTURE_SAMPLES_IMG 0x9136
270#endif
271
Mathias Agopian48efd952009-05-27 20:31:18 -0700272/*------------------------------------------------------------------------*
273 * NV extension tokens
274 *------------------------------------------------------------------------*/
275
276/* GL_NV_fence */
277#ifndef GL_NV_fence
278#define GL_ALL_COMPLETED_NV 0x84F2
279#define GL_FENCE_STATUS_NV 0x84F3
280#define GL_FENCE_CONDITION_NV 0x84F4
281#endif
282
Mathias Agopian8f62c302010-06-09 18:08:15 -0700283/* GL_NV_coverage_sample */
284#ifndef GL_NV_coverage_sample
285#define GL_COVERAGE_COMPONENT_NV 0x8ED0
286#define GL_COVERAGE_COMPONENT4_NV 0x8ED1
287#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2
288#define GL_COVERAGE_BUFFERS_NV 0x8ED3
289#define GL_COVERAGE_SAMPLES_NV 0x8ED4
290#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5
291#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6
292#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7
293#define GL_COVERAGE_BUFFER_BIT_NV 0x8000
294#endif
295
296/* GL_NV_depth_nonlinear */
297#ifndef GL_NV_depth_nonlinear
298#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
299#endif
300
Mathias Agopian48efd952009-05-27 20:31:18 -0700301/*------------------------------------------------------------------------*
302 * QCOM extension tokens
303 *------------------------------------------------------------------------*/
304
305/* GL_QCOM_driver_control */
306/* No new tokens introduced by this extension. */
307
Mathias Agopian8f62c302010-06-09 18:08:15 -0700308/* GL_QCOM_extended_get */
309#ifndef GL_QCOM_extended_get
310#define GL_TEXTURE_WIDTH_QCOM 0x8BD2
311#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
312#define GL_TEXTURE_DEPTH_QCOM 0x8BD4
313#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
314#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
315#define GL_TEXTURE_TYPE_QCOM 0x8BD7
316#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
317#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
318#define GL_TEXTURE_TARGET_QCOM 0x8BDA
319#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
320#define GL_STATE_RESTORE 0x8BDC
321#endif
322
323/* GL_QCOM_extended_get2 */
324/* No new tokens introduced by this extension. */
325
Mathias Agopian48efd952009-05-27 20:31:18 -0700326/* GL_QCOM_perfmon_global_mode */
327#ifndef GL_QCOM_perfmon_global_mode
328#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
329#endif
330
Mathias Agopian8f62c302010-06-09 18:08:15 -0700331/* GL_QCOM_writeonly_rendering */
332#ifndef GL_QCOM_writeonly_rendering
333#define GL_WRITEONLY_RENDERING_QCOM 0x8823
334#endif
335
336/* GL_QCOM_tiled_rendering */
337#ifndef GL_QCOM_tiled_rendering
338#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
339#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
340#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
341#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
342#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
343#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
344#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
345#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
346#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
347#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
348#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
349#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
350#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
351#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
352#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
353#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
354#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
355#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
356#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
357#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
358#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
359#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
360#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
361#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
362#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
363#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
364#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
365#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
366#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
367#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
368#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
369#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
370#endif
371
Mathias Agopian48efd952009-05-27 20:31:18 -0700372/*------------------------------------------------------------------------*
373 * End of extension tokens, start of corresponding extension functions
374 *------------------------------------------------------------------------*/
375
376/*------------------------------------------------------------------------*
377 * OES extension functions
378 *------------------------------------------------------------------------*/
379
380/* GL_OES_compressed_ETC1_RGB8_texture */
381#ifndef GL_OES_compressed_ETC1_RGB8_texture
382#define GL_OES_compressed_ETC1_RGB8_texture 1
383#endif
384
385/* GL_OES_compressed_paletted_texture */
386#ifndef GL_OES_compressed_paletted_texture
387#define GL_OES_compressed_paletted_texture 1
388#endif
389
Mathias Agopian48efd952009-05-27 20:31:18 -0700390/* GL_OES_depth24 */
391#ifndef GL_OES_depth24
392#define GL_OES_depth24 1
393#endif
394
395/* GL_OES_depth32 */
396#ifndef GL_OES_depth32
397#define GL_OES_depth32 1
398#endif
399
400/* GL_OES_depth_texture */
401#ifndef GL_OES_depth_texture
402#define GL_OES_depth_texture 1
403#endif
404
Mathias Agopian8f62c302010-06-09 18:08:15 -0700405/* GL_OES_EGL_image */
406#ifndef GL_OES_EGL_image
407#define GL_OES_EGL_image 1
408#ifdef GL_GLEXT_PROTOTYPES
409GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
410GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
411#endif
412typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
413typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
414#endif
415
Mathias Agopian48efd952009-05-27 20:31:18 -0700416/* GL_OES_element_index_uint */
417#ifndef GL_OES_element_index_uint
418#define GL_OES_element_index_uint 1
419#endif
420
421/* GL_OES_fbo_render_mipmap */
422#ifndef GL_OES_fbo_render_mipmap
423#define GL_OES_fbo_render_mipmap 1
424#endif
425
426/* GL_OES_fragment_precision_high */
427#ifndef GL_OES_fragment_precision_high
428#define GL_OES_fragment_precision_high 1
429#endif
430
431/* GL_OES_get_program_binary */
432#ifndef GL_OES_get_program_binary
433#define GL_OES_get_program_binary 1
434#ifdef GL_GLEXT_PROTOTYPES
Mathias Agopian8f62c302010-06-09 18:08:15 -0700435GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
436GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
Mathias Agopian48efd952009-05-27 20:31:18 -0700437#endif
Mathias Agopian8f62c302010-06-09 18:08:15 -0700438typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
439typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
Mathias Agopian48efd952009-05-27 20:31:18 -0700440#endif
441
442/* GL_OES_mapbuffer */
443#ifndef GL_OES_mapbuffer
444#define GL_OES_mapbuffer 1
445#ifdef GL_GLEXT_PROTOTYPES
446GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
447GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700448GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
Mathias Agopian48efd952009-05-27 20:31:18 -0700449#endif
450typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
451typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700452typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
Mathias Agopian48efd952009-05-27 20:31:18 -0700453#endif
454
455/* GL_OES_packed_depth_stencil */
456#ifndef GL_OES_packed_depth_stencil
457#define GL_OES_packed_depth_stencil 1
458#endif
459
460/* GL_OES_rgb8_rgba8 */
461#ifndef GL_OES_rgb8_rgba8
462#define GL_OES_rgb8_rgba8 1
463#endif
464
465/* GL_OES_standard_derivatives */
466#ifndef GL_OES_standard_derivatives
467#define GL_OES_standard_derivatives 1
468#endif
469
470/* GL_OES_stencil1 */
471#ifndef GL_OES_stencil1
472#define GL_OES_stencil1 1
473#endif
474
475/* GL_OES_stencil4 */
476#ifndef GL_OES_stencil4
477#define GL_OES_stencil4 1
478#endif
479
480/* GL_OES_texture_3D */
481#ifndef GL_OES_texture_3D
482#define GL_OES_texture_3D 1
483#ifdef GL_GLEXT_PROTOTYPES
Mathias Agopian8f62c302010-06-09 18:08:15 -0700484GL_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);
485GL_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);
Mathias Agopian48efd952009-05-27 20:31:18 -0700486GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700487GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
488GL_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);
Mathias Agopian48efd952009-05-27 20:31:18 -0700489GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
490#endif
491typedef 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);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700492typedef 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);
Mathias Agopian48efd952009-05-27 20:31:18 -0700493typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700494typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
495typedef 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);
Mathias Agopian48efd952009-05-27 20:31:18 -0700496typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
497#endif
498
Mathias Agopian48efd952009-05-27 20:31:18 -0700499/* GL_OES_texture_float */
500#ifndef GL_OES_texture_float
501#define GL_OES_texture_float 1
502#endif
503
Mathias Agopian8f62c302010-06-09 18:08:15 -0700504/* GL_OES_texture_float_linear */
505#ifndef GL_OES_texture_float_linear
506#define GL_OES_texture_float_linear 1
507#endif
508
Mathias Agopian48efd952009-05-27 20:31:18 -0700509/* GL_OES_texture_half_float */
510#ifndef GL_OES_texture_half_float
511#define GL_OES_texture_half_float 1
512#endif
513
Mathias Agopian8f62c302010-06-09 18:08:15 -0700514/* GL_OES_texture_half_float_linear */
515#ifndef GL_OES_texture_half_float_linear
516#define GL_OES_texture_half_float_linear 1
517#endif
518
Mathias Agopian48efd952009-05-27 20:31:18 -0700519/* GL_OES_texture_npot */
520#ifndef GL_OES_texture_npot
521#define GL_OES_texture_npot 1
522#endif
523
Mathias Agopian8f62c302010-06-09 18:08:15 -0700524/* GL_OES_vertex_array_object */
525#ifndef GL_OES_vertex_array_object
526#define GL_OES_vertex_array_object 1
527#ifdef GL_GLEXT_PROTOTYPES
528GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
529GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
530GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
531GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
532#endif
533typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
534typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
535typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
536typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
537#endif
538
Mathias Agopian48efd952009-05-27 20:31:18 -0700539/* GL_OES_vertex_half_float */
540#ifndef GL_OES_vertex_half_float
541#define GL_OES_vertex_half_float 1
542#endif
543
544/* GL_OES_vertex_type_10_10_10_2 */
545#ifndef GL_OES_vertex_type_10_10_10_2
546#define GL_OES_vertex_type_10_10_10_2 1
547#endif
548
Mathias Agopian0a917752010-06-14 21:20:00 -0700549/* GL_OES_texture_external */
550#ifndef GL_OES_texture_external
551#define GL_OES_texture_external 1
552#endif
553
Mathias Agopian48efd952009-05-27 20:31:18 -0700554/*------------------------------------------------------------------------*
555 * AMD extension functions
556 *------------------------------------------------------------------------*/
557
558/* GL_AMD_compressed_3DC_texture */
559#ifndef GL_AMD_compressed_3DC_texture
560#define GL_AMD_compressed_3DC_texture 1
561#endif
562
563/* GL_AMD_compressed_ATC_texture */
564#ifndef GL_AMD_compressed_ATC_texture
565#define GL_AMD_compressed_ATC_texture 1
566#endif
567
Mathias Agopian48efd952009-05-27 20:31:18 -0700568/* AMD_performance_monitor */
569#ifndef GL_AMD_performance_monitor
570#define GL_AMD_performance_monitor 1
571#ifdef GL_GLEXT_PROTOTYPES
572GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
573GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700574GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
575GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
576GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
Mathias Agopian48efd952009-05-27 20:31:18 -0700577GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
578GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
579GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
580GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
581GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
582GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
583#endif
584typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
585typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700586typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
587typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
588typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
Mathias Agopian48efd952009-05-27 20:31:18 -0700589typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
590typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
591typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
592typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
593typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
594typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
595#endif
596
Mathias Agopian8f62c302010-06-09 18:08:15 -0700597/* GL_AMD_program_binary_Z400 */
598#ifndef GL_AMD_program_binary_Z400
599#define GL_AMD_program_binary_Z400 1
600#endif
601
Mathias Agopian48efd952009-05-27 20:31:18 -0700602/*------------------------------------------------------------------------*
603 * EXT extension functions
604 *------------------------------------------------------------------------*/
605
Mathias Agopian8f62c302010-06-09 18:08:15 -0700606/* GL_EXT_blend_minmax */
607#ifndef GL_EXT_blend_minmax
608#define GL_EXT_blend_minmax 1
609#endif
610
611/* GL_EXT_discard_framebuffer */
612#ifndef GL_EXT_discard_framebuffer
613#define GL_EXT_discard_framebuffer 1
614#ifdef GL_GLEXT_PROTOTYPES
615GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
616#endif
617typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
618#endif
619
620#ifndef GL_EXT_multi_draw_arrays
621#define GL_EXT_multi_draw_arrays 1
622#ifdef GL_GLEXT_PROTOTYPES
Mathias Agopian05bb9c92010-06-09 18:19:11 -0700623GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
624GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700625#endif /* GL_GLEXT_PROTOTYPES */
626typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
627typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
628#endif
629
630/* GL_EXT_read_format_bgra */
631#ifndef GL_EXT_read_format_bgra
632#define GL_EXT_read_format_bgra 1
633#endif
634
Mathias Agopian48efd952009-05-27 20:31:18 -0700635/* GL_EXT_texture_filter_anisotropic */
636#ifndef GL_EXT_texture_filter_anisotropic
637#define GL_EXT_texture_filter_anisotropic 1
638#endif
639
Mathias Agopian48efd952009-05-27 20:31:18 -0700640/* GL_EXT_texture_format_BGRA8888 */
641#ifndef GL_EXT_texture_format_BGRA8888
642#define GL_EXT_texture_format_BGRA8888 1
643#endif
644
Mathias Agopian8f62c302010-06-09 18:08:15 -0700645/* GL_EXT_texture_type_2_10_10_10_REV */
646#ifndef GL_EXT_texture_type_2_10_10_10_REV
647#define GL_EXT_texture_type_2_10_10_10_REV 1
648#endif
649
650/* GL_EXT_texture_compression_dxt1 */
651#ifndef GL_EXT_texture_compression_dxt1
652#define GL_EXT_texture_compression_dxt1 1
653#endif
654
Mathias Agopian48efd952009-05-27 20:31:18 -0700655/*------------------------------------------------------------------------*
656 * IMG extension functions
657 *------------------------------------------------------------------------*/
658
Mathias Agopian8f62c302010-06-09 18:08:15 -0700659/* GL_IMG_program_binary */
660#ifndef GL_IMG_program_binary
661#define GL_IMG_program_binary 1
662#endif
663
Mathias Agopian48efd952009-05-27 20:31:18 -0700664/* GL_IMG_read_format */
665#ifndef GL_IMG_read_format
666#define GL_IMG_read_format 1
667#endif
668
Mathias Agopian8f62c302010-06-09 18:08:15 -0700669/* GL_IMG_shader_binary */
670#ifndef GL_IMG_shader_binary
671#define GL_IMG_shader_binary 1
672#endif
673
Mathias Agopian48efd952009-05-27 20:31:18 -0700674/* GL_IMG_texture_compression_pvrtc */
675#ifndef GL_IMG_texture_compression_pvrtc
676#define GL_IMG_texture_compression_pvrtc 1
677#endif
678
Mathias Agopian8f62c302010-06-09 18:08:15 -0700679/* GL_IMG_multisampled_render_to_texture */
680#ifndef GL_IMG_multisampled_render_to_texture
681#define GL_IMG_multisampled_render_to_texture 1
682#ifdef GL_GLEXT_PROTOTYPES
Mathias Agopian05bb9c92010-06-09 18:19:11 -0700683GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
684GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700685#endif
686typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
Mathias Agopian05bb9c92010-06-09 18:19:11 -0700687typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700688#endif
689
Mathias Agopian48efd952009-05-27 20:31:18 -0700690/*------------------------------------------------------------------------*
691 * NV extension functions
692 *------------------------------------------------------------------------*/
693
694/* GL_NV_fence */
695#ifndef GL_NV_fence
696#define GL_NV_fence 1
697#ifdef GL_GLEXT_PROTOTYPES
Mathias Agopian05bb9c92010-06-09 18:19:11 -0700698GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences);
699GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences);
700GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence);
701GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence);
702GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params);
703GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence);
704GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition);
Mathias Agopian48efd952009-05-27 20:31:18 -0700705#endif
706typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
707typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
708typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
709typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
710typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
711typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
712typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
713#endif
714
Mathias Agopian8f62c302010-06-09 18:08:15 -0700715/* GL_NV_coverage_sample */
716#ifndef GL_NV_coverage_sample
717#define GL_NV_coverage_sample 1
718#ifdef GL_GLEXT_PROTOTYPES
719GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
720GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
721#endif
722typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
723typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
724#endif
725
726/* GL_NV_depth_nonlinear */
727#ifndef GL_NV_depth_nonlinear
728#define GL_NV_depth_nonlinear 1
729#endif
730
Mathias Agopian48efd952009-05-27 20:31:18 -0700731/*------------------------------------------------------------------------*
732 * QCOM extension functions
733 *------------------------------------------------------------------------*/
734
735/* GL_QCOM_driver_control */
736#ifndef GL_QCOM_driver_control
737#define GL_QCOM_driver_control 1
738#ifdef GL_GLEXT_PROTOTYPES
739GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700740GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
Mathias Agopian48efd952009-05-27 20:31:18 -0700741GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
742GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
743#endif
744typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
Mathias Agopian8f62c302010-06-09 18:08:15 -0700745typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
Mathias Agopian48efd952009-05-27 20:31:18 -0700746typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
747typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
748#endif
749
Mathias Agopian8f62c302010-06-09 18:08:15 -0700750/* GL_QCOM_extended_get */
751#ifndef GL_QCOM_extended_get
752#define GL_QCOM_extended_get 1
753#ifdef GL_GLEXT_PROTOTYPES
754GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
755GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
756GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
757GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
758GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
759GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
760GL_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);
761GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
762#endif
763typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
764typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
765typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
766typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
767typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
768typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
769typedef 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);
770typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
771#endif
772
773/* GL_QCOM_extended_get2 */
774#ifndef GL_QCOM_extended_get2
775#define GL_QCOM_extended_get2 1
776#ifdef GL_GLEXT_PROTOTYPES
777GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
778GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
779GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
780GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
781#endif
782typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
783typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
784typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
785typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
786#endif
787
Mathias Agopian48efd952009-05-27 20:31:18 -0700788/* GL_QCOM_perfmon_global_mode */
789#ifndef GL_QCOM_perfmon_global_mode
790#define GL_QCOM_perfmon_global_mode 1
791#endif
792
Mathias Agopian8f62c302010-06-09 18:08:15 -0700793/* GL_QCOM_writeonly_rendering */
794#ifndef GL_QCOM_writeonly_rendering
795#define GL_QCOM_writeonly_rendering 1
796#endif
797
798/* GL_QCOM_tiled_rendering */
799#ifndef GL_QCOM_tiled_rendering
800#define GL_QCOM_tiled_rendering 1
801#ifdef GL_GLEXT_PROTOTYPES
802GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
803GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
804#endif
805typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
806typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
807#endif
808
Mathias Agopian48efd952009-05-27 20:31:18 -0700809#ifdef __cplusplus
810}
811#endif
812
813#endif /* __gl2ext_h_ */