update 3104 build
[profile/ivi/emgd-bin.git] / usr / include / GLES2 / gl2ext.h
1 #ifndef __gl2ext_h_
2 #define __gl2ext_h_
3
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9 /*
10  * This document is licensed under the SGI Free Software B License Version
11  * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
12 */
13
14 #ifndef GL_APIENTRYP
15 #   define GL_APIENTRYP GL_APIENTRY*
16 #endif
17
18 /*------------------------------------------------------------------------*
19  * OES extension tokens
20  *------------------------------------------------------------------------*/
21
22 /* GL_OES_compressed_ETC1_RGB8_texture */
23 #ifndef GL_OES_compressed_ETC1_RGB8_texture
24 #define GL_ETC1_RGB8_OES                                        0x8D64
25 #endif
26
27 /* GL_OES_compressed_paletted_texture */
28 #ifndef GL_OES_compressed_paletted_texture
29 #define GL_PALETTE4_RGB8_OES                                    0x8B90
30 #define GL_PALETTE4_RGBA8_OES                                   0x8B91
31 #define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
32 #define GL_PALETTE4_RGBA4_OES                                   0x8B93
33 #define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
34 #define GL_PALETTE8_RGB8_OES                                    0x8B95
35 #define GL_PALETTE8_RGBA8_OES                                   0x8B96
36 #define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
37 #define GL_PALETTE8_RGBA4_OES                                   0x8B98
38 #define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
39 #endif
40
41 /* GL_OES_depth24 */
42 #ifndef GL_OES_depth24
43 #define GL_DEPTH_COMPONENT24_OES                                0x81A6
44 #endif
45
46 /* GL_OES_depth32 */
47 #ifndef GL_OES_depth32
48 #define GL_DEPTH_COMPONENT32_OES                                0x81A7
49 #endif
50
51 /* GL_OES_depth_texture */
52 /* No new tokens introduced by this extension. */
53
54 /* GL_OES_EGL_image */
55 #ifndef GL_OES_EGL_image
56 typedef void* GLeglImageOES;
57 #endif
58
59 /* GL_OES_get_program_binary */
60 #ifndef GL_OES_get_program_binary
61 #define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
62 #define GL_NUM_PROGRAM_BINARY_FORMATS_OES                       0x87FE
63 #define GL_PROGRAM_BINARY_FORMATS_OES                           0x87FF
64 #endif
65
66 /* GL_OES_mapbuffer */
67 #ifndef GL_OES_mapbuffer
68 #define GL_WRITE_ONLY_OES                                       0x88B9
69 #define GL_BUFFER_ACCESS_OES                                    0x88BB
70 #define GL_BUFFER_MAPPED_OES                                                                    0x88BC
71 #define GL_BUFFER_MAP_POINTER_OES                                                               0x88BD
72 #endif
73
74 /* GL_OES_packed_depth_stencil */
75 #ifndef GL_OES_packed_depth_stencil
76 #define GL_DEPTH_STENCIL_OES                                    0x84F9
77 #define GL_UNSIGNED_INT_24_8_OES                                0x84FA
78 #define GL_DEPTH24_STENCIL8_OES                                 0x88F0
79 #endif
80
81 /* GL_OES_rgb8_rgba8 */
82 #ifndef GL_OES_rgb8_rgba8
83 #define GL_RGB8_OES                                                                                             0x8051
84 #define GL_RGBA8_OES                                                                                    0x8058
85 #endif
86
87 /* GL_OES_standard_derivatives */
88 #ifndef GL_OES_standard_derivatives
89 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                  0x8B8B
90 #endif
91
92 /* GL_OES_stencil1 */
93 #ifndef GL_OES_stencil1
94 #define GL_STENCIL_INDEX1_OES                                                                   0x8D46
95 #endif
96
97 /* GL_OES_stencil4 */
98 #ifndef GL_OES_stencil4
99 #define GL_STENCIL_INDEX4_OES                                                                   0x8D47
100 #endif
101
102 /* GL_OES_texture_3D */
103 #ifndef GL_OES_texture_3D
104 #define GL_TEXTURE_WRAP_R_OES                                   0x8072
105 #define GL_TEXTURE_3D_OES                                       0x806F
106 #define GL_TEXTURE_BINDING_3D_OES                               0x806A
107 #define GL_MAX_3D_TEXTURE_SIZE_OES                              0x8073
108 #define GL_SAMPLER_3D_OES                                       0x8B5F
109 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES        0x8CD4
110 #endif
111
112 /* GL_OES_texture_float */
113 /* No new tokens introduced by this extension. */
114
115 /* GL_OES_texture_float_linear */
116 /* No new tokens introduced by this extension. */
117
118 /* GL_OES_texture_half_float */
119 #ifndef GL_OES_texture_half_float
120 #define GL_HALF_FLOAT_OES                                                                               0x8D61
121 #endif
122
123 /* GL_OES_texture_half_float_linear */
124 /* No new tokens introduced by this extension. */
125
126 /* GL_OES_texture_npot */
127 /* No new tokens introduced by this extension. */
128
129 /* GL_OES_vertex_half_float */
130 /* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
131
132 /* GL_OES_vertex_type_10_10_10_2 */
133 #ifndef GL_OES_vertex_type_10_10_10_2
134 #define GL_UNSIGNED_INT_10_10_10_2_OES                          0x8DF6
135 #define GL_INT_10_10_10_2_OES                                   0x8DF7
136 #endif
137
138 /* GL_OES_vertex_array_object */
139 #ifndef GL_OES_vertex_array_object 
140 #define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
141 #endif
142
143 /*------------------------------------------------------------------------*
144  * AMD extension tokens
145  *------------------------------------------------------------------------*/
146
147 /* GL_AMD_compressed_3DC_texture */
148 #ifndef GL_AMD_compressed_3DC_texture
149 #define GL_3DC_X_AMD                                            0x87F9
150 #define GL_3DC_XY_AMD                                           0x87FA
151 #endif
152
153 /* GL_AMD_compressed_ATC_texture */
154 #ifndef GL_AMD_compressed_ATC_texture
155 #define GL_ATC_RGB_AMD                                          0x8C92
156 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
157 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
158 #endif
159
160 /* GL_AMD_performance_monitor */
161 #ifndef GL_AMD_performance_monitor
162 #define GL_COUNTER_TYPE_AMD                                     0x8BC0
163 #define GL_COUNTER_RANGE_AMD                                    0x8BC1
164 #define GL_UNSIGNED_INT64_AMD                                   0x8BC2
165 #define GL_PERCENTAGE_AMD                                       0x8BC3
166 #define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
167 #define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
168 #define GL_PERFMON_RESULT_AMD                                   0x8BC6
169 #endif
170
171 /* GL_AMD_program_binary_Z400 */
172 #ifndef GL_AMD_program_binary_Z400
173 #define GL_Z400_BINARY_AMD                                      0x8740
174 #endif
175
176 /*------------------------------------------------------------------------*
177  * EXT extension tokens
178  *------------------------------------------------------------------------*/
179
180 /* GL_EXT_blend_minmax */
181 #ifndef GL_EXT_blend_minmax
182 #define GL_MIN_EXT                                              0x8007
183 #define GL_MAX_EXT                                              0x8008
184 #endif
185
186 /* GL_EXT_discard_framebuffer */
187 #ifndef GL_EXT_discard_framebuffer
188 #define GL_COLOR_EXT                                            0x1800
189 #define GL_DEPTH_EXT                                            0x1801
190 #define GL_STENCIL_EXT                                          0x1802
191 #endif
192
193 /* GL_EXT_multi_draw_arrays */
194 /* No new tokens introduced by this extension. */
195
196 /* GL_EXT_read_format_bgra */
197 #ifndef GL_EXT_read_format_bgra
198 #define GL_BGRA_EXT                                             0x80E1
199 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
200 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
201 #endif
202
203 /* GL_EXT_texture_filter_anisotropic */
204 #ifndef GL_EXT_texture_filter_anisotropic
205 #define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
206 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
207 #endif
208
209 /* GL_EXT_texture_format_BGRA8888 */
210 #ifndef GL_EXT_texture_format_BGRA8888
211 #define GL_BGRA_EXT                                             0x80E1
212 #endif
213
214 /* GL_EXT_texture_type_2_10_10_10_REV */
215 #ifndef GL_EXT_texture_type_2_10_10_10_REV
216 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
217 #endif
218
219 /* GL_EXT_multisampled_render_to_texture */
220 #ifndef GL_EXT_multisampled_render_to_texture
221 #define GL_RENDERBUFFER_SAMPLES_EXT                             0x8CAB
222 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT               0x8D56
223 #define GL_MAX_SAMPLES_EXT                                      0x8D57
224 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT           0x8D6C
225 #endif
226
227 /*------------------------------------------------------------------------*
228  * IMG extension tokens
229  *------------------------------------------------------------------------*/
230
231 /* GL_IMG_program_binary */
232 #ifndef GL_IMG_program_binary
233 #define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
234 #endif
235
236 /* GL_IMG_read_format */
237 #ifndef GL_IMG_read_format
238 #define GL_BGRA_IMG                                             0x80E1
239 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
240 #endif
241
242 /* GL_IMG_shader_binary */
243 #ifndef GL_IMG_shader_binary
244 #define GL_SGX_BINARY_IMG                                       0x8C0A
245 #endif
246
247 /* GL_IMG_texture_compression_pvrtc */
248 #ifndef GL_IMG_texture_compression_pvrtc
249 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                                              0x8C00
250 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                                              0x8C01
251 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                                             0x8C02
252 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                                             0x8C03
253 #endif
254
255 /* GL_IMG_texture_stream */
256 #ifndef GL_IMG_texture_stream
257 #define GL_TEXTURE_STREAM_IMG                                                                   0x8C0D  
258 #define GL_TEXTURE_NUM_STREAM_DEVICES_IMG                                               0x8C0E  
259 #define GL_TEXTURE_STREAM_DEVICE_WIDTH_IMG                                              0x8C0F
260 #define GL_TEXTURE_STREAM_DEVICE_HEIGHT_IMG                                     0x8EA0  
261 #define GL_TEXTURE_STREAM_DEVICE_FORMAT_IMG                                     0x8EA1   
262 #define GL_TEXTURE_STREAM_DEVICE_NUM_BUFFERS_IMG                                0x8EA2  
263 #define GL_TEXTURE_BINDING_STREAM_IMG                                                   0x9131
264 #define GL_SAMPLER_STREAM_IMG                                                                   0x9132
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 /*------------------------------------------------------------------------*
279  * QCOM extension tokens
280  *------------------------------------------------------------------------*/
281
282 /* GL_QCOM_driver_control */
283 /* No new tokens introduced by this extension. */
284
285 /* GL_QCOM_extended_get */
286 #ifndef GL_QCOM_extended_get
287 #define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
288 #define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
289 #define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
290 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
291 #define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
292 #define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
293 #define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
294 #define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
295 #define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
296 #define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
297 #define GL_STATE_RESTORE                                        0x8BDC
298 #endif
299
300 /* GL_QCOM_extended_get2 */
301 /* No new tokens introduced by this extension. */
302
303 /* GL_QCOM_perfmon_global_mode */
304 #ifndef GL_QCOM_perfmon_global_mode
305 #define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
306 #endif
307
308 /* GL_QCOM_writeonly_rendering */
309 #ifndef GL_QCOM_writeonly_rendering
310 #define GL_WRITEONLY_RENDERING_QCOM                             0x8823
311 #endif
312
313 /*------------------------------------------------------------------------*
314  * End of extension tokens, start of corresponding extension functions
315  *------------------------------------------------------------------------*/
316
317 /*------------------------------------------------------------------------*
318  * OES extension functions
319  *------------------------------------------------------------------------*/
320
321 /* GL_OES_compressed_ETC1_RGB8_texture */
322 #ifndef GL_OES_compressed_ETC1_RGB8_texture
323 #define GL_OES_compressed_ETC1_RGB8_texture 1
324 #endif
325
326 /* GL_OES_compressed_paletted_texture */
327 #ifndef GL_OES_compressed_paletted_texture
328 #define GL_OES_compressed_paletted_texture 1
329 #endif
330
331 /* GL_OES_depth24 */
332 #ifndef GL_OES_depth24
333 #define GL_OES_depth24 1
334 #endif
335
336 /* GL_OES_depth32 */
337 #ifndef GL_OES_depth32
338 #define GL_OES_depth32 1
339 #endif
340
341 /* GL_OES_depth_texture */
342 #ifndef GL_OES_depth_texture
343 #define GL_OES_depth_texture 1
344 #endif
345
346 /* GL_OES_EGL_image */
347 #ifndef GL_OES_EGL_image
348 #define GL_OES_EGL_image 1
349 #ifdef GL_GLEXT_PROTOTYPES
350 GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
351 GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
352 #endif
353 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
354 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
355 #endif
356
357 /* GL_OES_element_index_uint */
358 #ifndef GL_OES_element_index_uint
359 #define GL_OES_element_index_uint 1
360 #endif
361
362 /* GL_OES_fbo_render_mipmap */
363 #ifndef GL_OES_fbo_render_mipmap
364 #define GL_OES_fbo_render_mipmap 1
365 #endif
366
367 /* GL_OES_fragment_precision_high */
368 #ifndef GL_OES_fragment_precision_high
369 #define GL_OES_fragment_precision_high 1
370 #endif
371
372 /* GL_OES_get_program_binary */
373 #ifndef GL_OES_get_program_binary
374 #define GL_OES_get_program_binary 1
375 #ifdef GL_GLEXT_PROTOTYPES
376 GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
377 GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const void *binary, GLint length);
378 #endif
379 typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
380 typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length);
381 #endif
382
383 /* GL_OES_mapbuffer */
384 #ifndef GL_OES_mapbuffer
385 #define GL_OES_mapbuffer 1
386 #ifdef GL_GLEXT_PROTOTYPES
387 GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
388 GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
389 GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void** params);
390 #endif
391 typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
392 typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
393 typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params);
394 #endif
395
396 /* GL_OES_packed_depth_stencil */
397 #ifndef GL_OES_packed_depth_stencil
398 #define GL_OES_packed_depth_stencil 1
399 #endif
400
401 /* GL_OES_rgb8_rgba8 */
402 #ifndef GL_OES_rgb8_rgba8
403 #define GL_OES_rgb8_rgba8 1
404 #endif
405
406 /* GL_OES_standard_derivatives */
407 #ifndef GL_OES_standard_derivatives
408 #define GL_OES_standard_derivatives 1
409 #endif
410
411 /* GL_OES_stencil1 */
412 #ifndef GL_OES_stencil1
413 #define GL_OES_stencil1 1
414 #endif
415
416 /* GL_OES_stencil4 */
417 #ifndef GL_OES_stencil4
418 #define GL_OES_stencil4 1
419 #endif
420
421 /* GL_OES_texture_3D */
422 #ifndef GL_OES_texture_3D
423 #define GL_OES_texture_3D 1
424 #ifdef GL_GLEXT_PROTOTYPES
425 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 void* pixels);
426 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 void* pixels);
427 GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
428 GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data);
429 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 void* data);
430 GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
431 #endif
432 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);
433 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 void* pixels);
434 typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
435 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data);
436 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 void* data);
437 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
438 #endif
439
440 /* GL_OES_texture_float */
441 #ifndef GL_OES_texture_float
442 #define GL_OES_texture_float 1
443 #endif
444
445 /* GL_OES_texture_float_linear */
446 #ifndef GL_OES_texture_float_linear
447 #define GL_OES_texture_float_linear 1
448 #endif
449
450 /* GL_OES_texture_half_float */
451 #ifndef GL_OES_texture_half_float
452 #define GL_OES_texture_half_float 1
453 #endif
454
455 /* GL_OES_texture_half_float_linear */
456 #ifndef GL_OES_texture_half_float_linear
457 #define GL_OES_texture_half_float_linear 1
458 #endif
459
460 /* GL_OES_texture_npot */
461 #ifndef GL_OES_texture_npot
462 #define GL_OES_texture_npot 1
463 #endif
464
465 /* GL_OES_vertex_half_float */
466 #ifndef GL_OES_vertex_half_float
467 #define GL_OES_vertex_half_float 1
468 #endif
469
470 /* GL_OES_vertex_type_10_10_10_2 */
471 #ifndef GL_OES_vertex_type_10_10_10_2
472 #define GL_OES_vertex_type_10_10_10_2 1
473 #endif
474
475
476 /* GL_OES_vertex_array_object  */
477 #ifndef GL_OES_vertex_array_object 
478 #define GL_OES_vertex_array_object 1
479
480 #ifdef GL_GLEXT_PROTOTYPES
481 GL_APICALL void GL_APIENTRY glBindVertexArrayOES(GLuint vertexarray);
482 GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES(GLsizei n, const GLuint *vertexarrays);
483 GL_APICALL void GL_APIENTRY glGenVertexArraysOES(GLsizei n, const GLuint *vertexarrays);
484 GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint vertexarray);
485 #endif
486
487 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint vertexarray);
488 typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *vertexarrays);
489 typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *vertexarrays);
490 typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint vertexarray);
491
492 #endif
493
494 /*------------------------------------------------------------------------*
495  * AMD extension functions
496  *------------------------------------------------------------------------*/
497
498 /* GL_AMD_compressed_3DC_texture */
499 #ifndef GL_AMD_compressed_3DC_texture
500 #define GL_AMD_compressed_3DC_texture 1
501 #endif
502
503 /* GL_AMD_compressed_ATC_texture */
504 #ifndef GL_AMD_compressed_ATC_texture
505 #define GL_AMD_compressed_ATC_texture 1
506 #endif
507
508 /* AMD_performance_monitor */
509 #ifndef GL_AMD_performance_monitor
510 #define GL_AMD_performance_monitor 1
511 #ifdef GL_GLEXT_PROTOTYPES
512 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
513 GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
514 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, char *groupString);
515 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, char *counterString);
516 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data);
517 GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
518 GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
519 GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
520 GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
521 GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
522 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
523 #endif
524 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
525 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
526 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, char *groupString);
527 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, char *counterString);
528 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data);
529 typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
530 typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
531 typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
532 typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
533 typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
534 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
535 #endif
536
537 /* GL_AMD_program_binary_Z400 */
538 #ifndef GL_AMD_program_binary_Z400
539 #define GL_AMD_program_binary_Z400 1
540 #endif
541
542 /*------------------------------------------------------------------------*
543  * EXT extension functions
544  *------------------------------------------------------------------------*/
545
546 /* GL_EXT_blend_minmax */
547 #ifndef GL_EXT_blend_minmax
548 #define GL_EXT_blend_minmax 1
549 #endif
550
551 /* GL_EXT_discard_framebuffer */
552 #ifndef GL_EXT_discard_framebuffer
553 #define GL_EXT_discard_framebuffer 1
554 #ifdef GL_GLEXT_PROTOTYPES
555 GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
556 #endif
557 typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
558 #endif
559
560 #ifndef GL_EXT_multi_draw_arrays
561 #define GL_EXT_multi_draw_arrays 1
562 #ifdef GL_GLEXT_PROTOTYPES
563 GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
564 GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
565 #endif /* GL_GLEXT_PROTOTYPES */
566 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
567 typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
568 #endif
569
570 /* GL_EXT_read_format_bgra */
571 #ifndef GL_EXT_read_format_bgra
572 #define GL_EXT_read_format_bgra 1
573 #endif
574
575 /* GL_EXT_texture_filter_anisotropic */
576 #ifndef GL_EXT_texture_filter_anisotropic
577 #define GL_EXT_texture_filter_anisotropic 1
578 #endif
579
580 /* GL_EXT_texture_format_BGRA8888 */
581 #ifndef GL_EXT_texture_format_BGRA8888
582 #define GL_EXT_texture_format_BGRA8888 1
583 #endif
584
585 /* GL_EXT_texture_type_2_10_10_10_REV */
586 #ifndef GL_EXT_texture_type_2_10_10_10_REV
587 #define GL_EXT_texture_type_2_10_10_10_REV 1
588 #endif
589
590 /* GL_EXT_multisampled_render_to_texture */
591 #ifndef GL_EXT_multisampled_render_to_texture
592 #define GL_EXT_multisampled_render_to_texture 1
593 #ifdef GL_GLEXT_PROTOTYPES
594 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
595 GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
596 #endif
597 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
598 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
599 #endif
600
601 /*------------------------------------------------------------------------*
602  * IMG extension functions
603  *------------------------------------------------------------------------*/
604
605 /* GL_IMG_program_binary */
606 #ifndef GL_IMG_program_binary
607 #define GL_IMG_program_binary 1
608 #endif
609
610 /* GL_IMG_read_format */
611 #ifndef GL_IMG_read_format
612 #define GL_IMG_read_format 1
613 #endif
614
615 /* GL_IMG_shader_binary */
616 #ifndef GL_IMG_shader_binary
617 #define GL_IMG_shader_binary 1
618 #endif
619
620 /* GL_IMG_texture_compression_pvrtc */
621 #ifndef GL_IMG_texture_compression_pvrtc
622 #define GL_IMG_texture_compression_pvrtc 1
623 #endif
624
625
626 /* GL_IMG_texture_stream */
627 #ifndef GL_IMG_texture_stream2
628 #define GL_IMG_texture_stream2 1
629 #ifdef GL_GLEXT_PROTOTYPES
630 GL_APICALL void GL_APIENTRY glTexBindStreamIMG(GLint device, GLint deviceoffset);
631 GL_APICALL void GL_APIENTRY glGetTexStreamDeviceAttributeivIMG(GLint device, GLenum pname, GLint *params);
632 GL_APICALL const GLubyte * GL_APIENTRY glGetTexStreamDeviceNameIMG(GLint device);
633 #endif
634
635 typedef void (GL_APIENTRYP PFNGLTEXBINDSTREAMIMGPROC) (GLint device, GLint deviceoffset);
636 typedef const GLubyte *(GL_APIENTRYP PFNGLGETTEXSTREAMDEVICENAMEIMGPROC) (GLenum target);
637 typedef void (GL_APIENTRYP PFNGLGETTEXSTREAMDEVICEATTRIBUTEIVIMGPROC) (GLenum target, GLenum pname, GLint *params);
638
639 #endif
640
641 /*------------------------------------------------------------------------*
642  * NV extension functions
643  *------------------------------------------------------------------------*/
644
645 /* GL_NV_fence */
646 #ifndef GL_NV_fence
647 #define GL_NV_fence 1
648 #ifdef GL_GLEXT_PROTOTYPES
649 GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
650 GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
651 GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
652 GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
653 GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
654 GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
655 GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
656 #endif
657 typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
658 typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
659 typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
660 typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
661 typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
662 typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
663 typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
664 #endif
665
666 /*------------------------------------------------------------------------*
667  * QCOM extension functions
668  *------------------------------------------------------------------------*/
669
670 /* GL_QCOM_driver_control */
671 #ifndef GL_QCOM_driver_control
672 #define GL_QCOM_driver_control 1
673 #ifdef GL_GLEXT_PROTOTYPES
674 GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
675 GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, char *driverControlString);
676 GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
677 GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
678 #endif
679 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
680 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, char *driverControlString);
681 typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
682 typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
683 #endif
684
685 /* GL_QCOM_extended_get */
686 #ifndef GL_QCOM_extended_get
687 #define GL_QCOM_extended_get 1
688 #ifdef GL_GLEXT_PROTOTYPES
689 GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
690 GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
691 GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
692 GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
693 GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
694 GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
695 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, void *texels);
696 GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params);
697 #endif
698 typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
699 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
700 typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
701 typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
702 typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
703 typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
704 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, void *texels);
705 typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params);
706 #endif
707
708 /* GL_QCOM_extended_get2 */
709 #ifndef GL_QCOM_extended_get2
710 #define GL_QCOM_extended_get2 1
711 #ifdef GL_GLEXT_PROTOTYPES
712 GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
713 GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
714 GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
715 GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, char *source, GLint *length);
716 #endif
717 typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
718 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
719 typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
720 typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, char *source, GLint *length);
721 #endif
722
723 /* GL_QCOM_perfmon_global_mode */
724 #ifndef GL_QCOM_perfmon_global_mode
725 #define GL_QCOM_perfmon_global_mode 1
726 #endif
727
728 /* GL_QCOM_writeonly_rendering */
729 #ifndef GL_QCOM_writeonly_rendering
730 #define GL_QCOM_writeonly_rendering 1
731 #endif
732
733 #ifdef __cplusplus
734 }
735 #endif
736
737 #endif /* __gl2ext_h_ */