Tizen 2.1 base
[sdk/emulator/qemu.git] / gl / include / GLES2 / gl2ext.h
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
7 extern "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
57 typedef 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
404 GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
405 GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
406 #endif
407 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
408 typedef 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
430 GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
431 GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
432 #endif
433 typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
434 typedef 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
441 GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
442 GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
443 GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
444 #endif
445 typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
446 typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
447 typedef 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
479 GL_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);
480 GL_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);
481 GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
482 GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
483 GL_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);
484 GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
485 #endif
486 typedef 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);
487 typedef 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);
488 typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
489 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
490 typedef 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);
491 typedef 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
523 GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
524 GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
525 GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
526 GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
527 #endif
528 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
529 typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
530 typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
531 typedef 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
562 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
563 GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
564 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
565 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
566 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
567 GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
568 GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
569 GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
570 GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
571 GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
572 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
573 #endif
574 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
575 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
576 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
577 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
578 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
579 typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
580 typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
581 typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
582 typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
583 typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
584 typedef 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
605 GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
606 #endif
607 typedef 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
613 GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
614 GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
615 #endif /* GL_GLEXT_PROTOTYPES */
616 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
617 typedef 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
673 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
674 GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
675 #endif
676 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
677 typedef 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
688 GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
689 GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
690 GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
691 GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
692 GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
693 GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
694 GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
695 #endif
696 typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
697 typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
698 typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
699 typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
700 typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
701 typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
702 typedef 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
709 GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
710 GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
711 #endif
712 typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
713 typedef 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
729 GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
730 GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
731 GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
732 GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
733 #endif
734 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
735 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
736 typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
737 typedef 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
744 GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
745 GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
746 GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
747 GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
748 GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
749 GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
750 GL_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);
751 GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
752 #endif
753 typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
754 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
755 typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
756 typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
757 typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
758 typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
759 typedef 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);
760 typedef 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
767 GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
768 GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
769 GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
770 GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
771 #endif
772 typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
773 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
774 typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
775 typedef 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
792 GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
793 GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
794 #endif
795 typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
796 typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
797 #endif
798
799 #ifdef __cplusplus
800 }
801 #endif
802
803 #endif /* __gl2ext_h_ */