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