gl2ext.h revision 8f62c3031e0c8297d3fa1593430ab402cf6a776f
1#ifndef __gl2ext_h_
2#define __gl2ext_h_
3
4/* $Revision: 10969 $ on $Date:: 2010-04-09 02:27:15 -0700 #$ */
5
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
60/* GL_OES_element_index_uint */
61#ifndef GL_OES_element_index_uint
62#define GL_UNSIGNED_INT                                         0x1405
63#endif
64
65/* 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
108/* GL_OES_texture_3D */
109#ifndef GL_OES_texture_3D
110#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
118/* 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
124/* GL_OES_texture_half_float */
125#ifndef GL_OES_texture_half_float
126#define GL_HALF_FLOAT_OES                                       0x8D61
127#endif
128
129/* 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
140/* 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
149/*------------------------------------------------------------------------*
150 * AMD extension tokens
151 *------------------------------------------------------------------------*/
152
153/* GL_AMD_compressed_3DC_texture */
154#ifndef GL_AMD_compressed_3DC_texture
155#define GL_3DC_X_AMD                                            0x87F9
156#define GL_3DC_XY_AMD                                           0x87FA
157#endif
158
159/* GL_AMD_compressed_ATC_texture */
160#ifndef GL_AMD_compressed_ATC_texture
161#define GL_ATC_RGB_AMD                                          0x8C92
162#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
163#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
164#endif
165
166/* GL_AMD_performance_monitor */
167#ifndef GL_AMD_performance_monitor
168#define GL_COUNTER_TYPE_AMD                                     0x8BC0
169#define GL_COUNTER_RANGE_AMD                                    0x8BC1
170#define GL_UNSIGNED_INT64_AMD                                   0x8BC2
171#define GL_PERCENTAGE_AMD                                       0x8BC3
172#define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
173#define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
174#define GL_PERFMON_RESULT_AMD                                   0x8BC6
175#endif
176
177/* GL_AMD_program_binary_Z400 */
178#ifndef GL_AMD_program_binary_Z400
179#define GL_Z400_BINARY_AMD                                      0x8740
180#endif
181
182/*------------------------------------------------------------------------*
183 * EXT extension tokens
184 *------------------------------------------------------------------------*/
185
186/* GL_EXT_blend_minmax */
187#ifndef GL_EXT_blend_minmax
188#define GL_MIN_EXT                                              0x8007
189#define GL_MAX_EXT                                              0x8008
190#endif
191
192/* GL_EXT_discard_framebuffer */
193#ifndef GL_EXT_discard_framebuffer
194#define GL_COLOR_EXT                                            0x1800
195#define GL_DEPTH_EXT                                            0x1801
196#define GL_STENCIL_EXT                                          0x1802
197#endif
198
199/* GL_EXT_multi_draw_arrays */
200/* No new tokens introduced by this extension. */
201
202/* GL_EXT_read_format_bgra */
203#ifndef GL_EXT_read_format_bgra
204#define GL_BGRA_EXT                                             0x80E1
205#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
206#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
207#endif
208
209/* GL_EXT_texture_filter_anisotropic */
210#ifndef GL_EXT_texture_filter_anisotropic
211#define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
212#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
213#endif
214
215/* GL_EXT_texture_format_BGRA8888 */
216#ifndef GL_EXT_texture_format_BGRA8888
217#define GL_BGRA_EXT                                             0x80E1
218#endif
219
220/* GL_EXT_texture_type_2_10_10_10_REV */
221#ifndef GL_EXT_texture_type_2_10_10_10_REV
222#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
223#endif
224
225/* GL_EXT_texture_compression_dxt1 */
226#ifndef GL_EXT_texture_compression_dxt1
227#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                         0x83F0
228#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                        0x83F1
229#endif
230
231/*------------------------------------------------------------------------*
232 * IMG extension tokens
233 *------------------------------------------------------------------------*/
234
235/* GL_IMG_program_binary */
236#ifndef GL_IMG_program_binary
237#define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
238#endif
239
240/* GL_IMG_read_format */
241#ifndef GL_IMG_read_format
242#define GL_BGRA_IMG                                             0x80E1
243#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
244#endif
245
246/* GL_IMG_shader_binary */
247#ifndef GL_IMG_shader_binary
248#define GL_SGX_BINARY_IMG                                       0x8C0A
249#endif
250
251/* GL_IMG_texture_compression_pvrtc */
252#ifndef GL_IMG_texture_compression_pvrtc
253#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
254#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
255#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
256#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
257#endif
258
259/* GL_IMG_multisampled_render_to_texture */
260#ifndef GL_IMG_multisampled_render_to_texture
261#define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
262#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
263#define GL_MAX_SAMPLES_IMG                                      0x9135
264#define GL_TEXTURE_SAMPLES_IMG                                  0x9136
265#endif
266
267/*------------------------------------------------------------------------*
268 * NV extension tokens
269 *------------------------------------------------------------------------*/
270
271/* GL_NV_fence */
272#ifndef GL_NV_fence
273#define GL_ALL_COMPLETED_NV                                     0x84F2
274#define GL_FENCE_STATUS_NV                                      0x84F3
275#define GL_FENCE_CONDITION_NV                                   0x84F4
276#endif
277
278/* GL_NV_coverage_sample */
279#ifndef GL_NV_coverage_sample
280#define GL_COVERAGE_COMPONENT_NV                                0x8ED0
281#define GL_COVERAGE_COMPONENT4_NV                               0x8ED1
282#define GL_COVERAGE_ATTACHMENT_NV                               0x8ED2
283#define GL_COVERAGE_BUFFERS_NV                                  0x8ED3
284#define GL_COVERAGE_SAMPLES_NV                                  0x8ED4
285#define GL_COVERAGE_ALL_FRAGMENTS_NV                            0x8ED5
286#define GL_COVERAGE_EDGE_FRAGMENTS_NV                           0x8ED6
287#define GL_COVERAGE_AUTOMATIC_NV                                0x8ED7
288#define GL_COVERAGE_BUFFER_BIT_NV                               0x8000
289#endif
290
291/* GL_NV_depth_nonlinear */
292#ifndef GL_NV_depth_nonlinear
293#define GL_DEPTH_COMPONENT16_NONLINEAR_NV                       0x8E2C
294#endif
295
296/*------------------------------------------------------------------------*
297 * QCOM extension tokens
298 *------------------------------------------------------------------------*/
299
300/* GL_QCOM_driver_control */
301/* No new tokens introduced by this extension. */
302
303/* GL_QCOM_extended_get */
304#ifndef GL_QCOM_extended_get
305#define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
306#define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
307#define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
308#define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
309#define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
310#define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
311#define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
312#define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
313#define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
314#define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
315#define GL_STATE_RESTORE                                        0x8BDC
316#endif
317
318/* GL_QCOM_extended_get2 */
319/* No new tokens introduced by this extension. */
320
321/* GL_QCOM_perfmon_global_mode */
322#ifndef GL_QCOM_perfmon_global_mode
323#define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
324#endif
325
326/* GL_QCOM_writeonly_rendering */
327#ifndef GL_QCOM_writeonly_rendering
328#define GL_WRITEONLY_RENDERING_QCOM                             0x8823
329#endif
330
331/* GL_QCOM_tiled_rendering */
332#ifndef GL_QCOM_tiled_rendering
333#define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
334#define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
335#define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
336#define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
337#define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
338#define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
339#define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
340#define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
341#define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
342#define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
343#define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
344#define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
345#define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
346#define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
347#define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
348#define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
349#define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
350#define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
351#define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
352#define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
353#define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
354#define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
355#define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
356#define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
357#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
358#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
359#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
360#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
361#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
362#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
363#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
364#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
365#endif
366
367/*------------------------------------------------------------------------*
368 * End of extension tokens, start of corresponding extension functions
369 *------------------------------------------------------------------------*/
370
371/*------------------------------------------------------------------------*
372 * OES extension functions
373 *------------------------------------------------------------------------*/
374
375/* GL_OES_compressed_ETC1_RGB8_texture */
376#ifndef GL_OES_compressed_ETC1_RGB8_texture
377#define GL_OES_compressed_ETC1_RGB8_texture 1
378#endif
379
380/* GL_OES_compressed_paletted_texture */
381#ifndef GL_OES_compressed_paletted_texture
382#define GL_OES_compressed_paletted_texture 1
383#endif
384
385/* GL_OES_depth24 */
386#ifndef GL_OES_depth24
387#define GL_OES_depth24 1
388#endif
389
390/* GL_OES_depth32 */
391#ifndef GL_OES_depth32
392#define GL_OES_depth32 1
393#endif
394
395/* GL_OES_depth_texture */
396#ifndef GL_OES_depth_texture
397#define GL_OES_depth_texture 1
398#endif
399
400/* GL_OES_EGL_image */
401#ifndef GL_OES_EGL_image
402#define GL_OES_EGL_image 1
403#ifdef GL_GLEXT_PROTOTYPES
404GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
405GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
406#endif
407typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
408typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
409#endif
410
411/* GL_OES_element_index_uint */
412#ifndef GL_OES_element_index_uint
413#define GL_OES_element_index_uint 1
414#endif
415
416/* GL_OES_fbo_render_mipmap */
417#ifndef GL_OES_fbo_render_mipmap
418#define GL_OES_fbo_render_mipmap 1
419#endif
420
421/* GL_OES_fragment_precision_high */
422#ifndef GL_OES_fragment_precision_high
423#define GL_OES_fragment_precision_high 1
424#endif
425
426/* GL_OES_get_program_binary */
427#ifndef GL_OES_get_program_binary
428#define GL_OES_get_program_binary 1
429#ifdef GL_GLEXT_PROTOTYPES
430GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
431GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
432#endif
433typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
434typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
435#endif
436
437/* GL_OES_mapbuffer */
438#ifndef GL_OES_mapbuffer
439#define GL_OES_mapbuffer 1
440#ifdef GL_GLEXT_PROTOTYPES
441GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
442GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
443GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
444#endif
445typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
446typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
447typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
448#endif
449
450/* GL_OES_packed_depth_stencil */
451#ifndef GL_OES_packed_depth_stencil
452#define GL_OES_packed_depth_stencil 1
453#endif
454
455/* GL_OES_rgb8_rgba8 */
456#ifndef GL_OES_rgb8_rgba8
457#define GL_OES_rgb8_rgba8 1
458#endif
459
460/* GL_OES_standard_derivatives */
461#ifndef GL_OES_standard_derivatives
462#define GL_OES_standard_derivatives 1
463#endif
464
465/* GL_OES_stencil1 */
466#ifndef GL_OES_stencil1
467#define GL_OES_stencil1 1
468#endif
469
470/* GL_OES_stencil4 */
471#ifndef GL_OES_stencil4
472#define GL_OES_stencil4 1
473#endif
474
475/* GL_OES_texture_3D */
476#ifndef GL_OES_texture_3D
477#define GL_OES_texture_3D 1
478#ifdef GL_GLEXT_PROTOTYPES
479GL_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);
480GL_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);
481GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
482GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
483GL_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);
484GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
485#endif
486typedef 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);
487typedef 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);
488typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
489typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
490typedef 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);
491typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
492#endif
493
494/* GL_OES_texture_float */
495#ifndef GL_OES_texture_float
496#define GL_OES_texture_float 1
497#endif
498
499/* GL_OES_texture_float_linear */
500#ifndef GL_OES_texture_float_linear
501#define GL_OES_texture_float_linear 1
502#endif
503
504/* GL_OES_texture_half_float */
505#ifndef GL_OES_texture_half_float
506#define GL_OES_texture_half_float 1
507#endif
508
509/* GL_OES_texture_half_float_linear */
510#ifndef GL_OES_texture_half_float_linear
511#define GL_OES_texture_half_float_linear 1
512#endif
513
514/* GL_OES_texture_npot */
515#ifndef GL_OES_texture_npot
516#define GL_OES_texture_npot 1
517#endif
518
519/* GL_OES_vertex_array_object */
520#ifndef GL_OES_vertex_array_object
521#define GL_OES_vertex_array_object 1
522#ifdef GL_GLEXT_PROTOTYPES
523GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
524GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
525GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
526GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
527#endif
528typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
529typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
530typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
531typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
532#endif
533
534/* GL_OES_vertex_half_float */
535#ifndef GL_OES_vertex_half_float
536#define GL_OES_vertex_half_float 1
537#endif
538
539/* GL_OES_vertex_type_10_10_10_2 */
540#ifndef GL_OES_vertex_type_10_10_10_2
541#define GL_OES_vertex_type_10_10_10_2 1
542#endif
543
544/*------------------------------------------------------------------------*
545 * AMD extension functions
546 *------------------------------------------------------------------------*/
547
548/* GL_AMD_compressed_3DC_texture */
549#ifndef GL_AMD_compressed_3DC_texture
550#define GL_AMD_compressed_3DC_texture 1
551#endif
552
553/* GL_AMD_compressed_ATC_texture */
554#ifndef GL_AMD_compressed_ATC_texture
555#define GL_AMD_compressed_ATC_texture 1
556#endif
557
558/* AMD_performance_monitor */
559#ifndef GL_AMD_performance_monitor
560#define GL_AMD_performance_monitor 1
561#ifdef GL_GLEXT_PROTOTYPES
562GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
563GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
564GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
565GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
566GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
567GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
568GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
569GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
570GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
571GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
572GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
573#endif
574typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
575typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
576typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
577typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
578typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
579typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
580typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
581typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
582typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
583typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
584typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
585#endif
586
587/* GL_AMD_program_binary_Z400 */
588#ifndef GL_AMD_program_binary_Z400
589#define GL_AMD_program_binary_Z400 1
590#endif
591
592/*------------------------------------------------------------------------*
593 * EXT extension functions
594 *------------------------------------------------------------------------*/
595
596/* GL_EXT_blend_minmax */
597#ifndef GL_EXT_blend_minmax
598#define GL_EXT_blend_minmax 1
599#endif
600
601/* GL_EXT_discard_framebuffer */
602#ifndef GL_EXT_discard_framebuffer
603#define GL_EXT_discard_framebuffer 1
604#ifdef GL_GLEXT_PROTOTYPES
605GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
606#endif
607typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
608#endif
609
610#ifndef GL_EXT_multi_draw_arrays
611#define GL_EXT_multi_draw_arrays 1
612#ifdef GL_GLEXT_PROTOTYPES
613GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
614GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
615#endif /* GL_GLEXT_PROTOTYPES */
616typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
617typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
618#endif
619
620/* GL_EXT_read_format_bgra */
621#ifndef GL_EXT_read_format_bgra
622#define GL_EXT_read_format_bgra 1
623#endif
624
625/* GL_EXT_texture_filter_anisotropic */
626#ifndef GL_EXT_texture_filter_anisotropic
627#define GL_EXT_texture_filter_anisotropic 1
628#endif
629
630/* GL_EXT_texture_format_BGRA8888 */
631#ifndef GL_EXT_texture_format_BGRA8888
632#define GL_EXT_texture_format_BGRA8888 1
633#endif
634
635/* GL_EXT_texture_type_2_10_10_10_REV */
636#ifndef GL_EXT_texture_type_2_10_10_10_REV
637#define GL_EXT_texture_type_2_10_10_10_REV 1
638#endif
639
640/* GL_EXT_texture_compression_dxt1 */
641#ifndef GL_EXT_texture_compression_dxt1
642#define GL_EXT_texture_compression_dxt1 1
643#endif
644
645/*------------------------------------------------------------------------*
646 * IMG extension functions
647 *------------------------------------------------------------------------*/
648
649/* GL_IMG_program_binary */
650#ifndef GL_IMG_program_binary
651#define GL_IMG_program_binary 1
652#endif
653
654/* GL_IMG_read_format */
655#ifndef GL_IMG_read_format
656#define GL_IMG_read_format 1
657#endif
658
659/* GL_IMG_shader_binary */
660#ifndef GL_IMG_shader_binary
661#define GL_IMG_shader_binary 1
662#endif
663
664/* GL_IMG_texture_compression_pvrtc */
665#ifndef GL_IMG_texture_compression_pvrtc
666#define GL_IMG_texture_compression_pvrtc 1
667#endif
668
669/* GL_IMG_multisampled_render_to_texture */
670#ifndef GL_IMG_multisampled_render_to_texture
671#define GL_IMG_multisampled_render_to_texture 1
672#ifdef GL_GLEXT_PROTOTYPES
673GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
674GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
675#endif
676typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
677typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
678#endif
679
680/*------------------------------------------------------------------------*
681 * NV extension functions
682 *------------------------------------------------------------------------*/
683
684/* GL_NV_fence */
685#ifndef GL_NV_fence
686#define GL_NV_fence 1
687#ifdef GL_GLEXT_PROTOTYPES
688GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
689GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
690GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
691GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
692GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
693GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
694GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
695#endif
696typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
697typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
698typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
699typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
700typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
701typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
702typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
703#endif
704
705/* GL_NV_coverage_sample */
706#ifndef GL_NV_coverage_sample
707#define GL_NV_coverage_sample 1
708#ifdef GL_GLEXT_PROTOTYPES
709GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
710GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
711#endif
712typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
713typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
714#endif
715
716/* GL_NV_depth_nonlinear */
717#ifndef GL_NV_depth_nonlinear
718#define GL_NV_depth_nonlinear 1
719#endif
720
721/*------------------------------------------------------------------------*
722 * QCOM extension functions
723 *------------------------------------------------------------------------*/
724
725/* GL_QCOM_driver_control */
726#ifndef GL_QCOM_driver_control
727#define GL_QCOM_driver_control 1
728#ifdef GL_GLEXT_PROTOTYPES
729GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
730GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
731GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
732GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
733#endif
734typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
735typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
736typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
737typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
738#endif
739
740/* GL_QCOM_extended_get */
741#ifndef GL_QCOM_extended_get
742#define GL_QCOM_extended_get 1
743#ifdef GL_GLEXT_PROTOTYPES
744GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
745GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
746GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
747GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
748GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
749GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
750GL_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);
751GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
752#endif
753typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
754typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
755typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
756typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
757typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
758typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
759typedef 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);
760typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
761#endif
762
763/* GL_QCOM_extended_get2 */
764#ifndef GL_QCOM_extended_get2
765#define GL_QCOM_extended_get2 1
766#ifdef GL_GLEXT_PROTOTYPES
767GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
768GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
769GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
770GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
771#endif
772typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
773typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
774typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
775typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
776#endif
777
778/* GL_QCOM_perfmon_global_mode */
779#ifndef GL_QCOM_perfmon_global_mode
780#define GL_QCOM_perfmon_global_mode 1
781#endif
782
783/* GL_QCOM_writeonly_rendering */
784#ifndef GL_QCOM_writeonly_rendering
785#define GL_QCOM_writeonly_rendering 1
786#endif
787
788/* GL_QCOM_tiled_rendering */
789#ifndef GL_QCOM_tiled_rendering
790#define GL_QCOM_tiled_rendering 1
791#ifdef GL_GLEXT_PROTOTYPES
792GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
793GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
794#endif
795typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
796typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
797#endif
798
799#ifdef __cplusplus
800}
801#endif
802
803#endif /* __gl2ext_h_ */
804