1 #ifndef __gl2ext_h_ 2 #define __gl2ext_h_ 3 4 /* $Revision: 10798 $ on $Date:: 2010-03-19 17:34:30 -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 /*------------------------------------------------------------------------* 260 * NV extension tokens 261 *------------------------------------------------------------------------*/ 262 263 /* GL_NV_fence */ 264 #ifndef GL_NV_fence 265 #define GL_ALL_COMPLETED_NV 0x84F2 266 #define GL_FENCE_STATUS_NV 0x84F3 267 #define GL_FENCE_CONDITION_NV 0x84F4 268 #endif 269 270 /* GL_NV_coverage_sample */ 271 #ifndef GL_NV_coverage_sample 272 #define GL_COVERAGE_COMPONENT_NV 0x8ED0 273 #define GL_COVERAGE_COMPONENT4_NV 0x8ED1 274 #define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 275 #define GL_COVERAGE_BUFFERS_NV 0x8ED3 276 #define GL_COVERAGE_SAMPLES_NV 0x8ED4 277 #define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 278 #define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 279 #define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 280 #define GL_COVERAGE_BUFFER_BIT_NV 0x8000 281 #endif 282 283 /* GL_NV_depth_nonlinear */ 284 #ifndef GL_NV_depth_nonlinear 285 #define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C 286 #endif 287 288 /*------------------------------------------------------------------------* 289 * QCOM extension tokens 290 *------------------------------------------------------------------------*/ 291 292 /* GL_QCOM_driver_control */ 293 /* No new tokens introduced by this extension. */ 294 295 /* GL_QCOM_extended_get */ 296 #ifndef GL_QCOM_extended_get 297 #define GL_TEXTURE_WIDTH_QCOM 0x8BD2 298 #define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 299 #define GL_TEXTURE_DEPTH_QCOM 0x8BD4 300 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 301 #define GL_TEXTURE_FORMAT_QCOM 0x8BD6 302 #define GL_TEXTURE_TYPE_QCOM 0x8BD7 303 #define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 304 #define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 305 #define GL_TEXTURE_TARGET_QCOM 0x8BDA 306 #define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB 307 #define GL_STATE_RESTORE 0x8BDC 308 #endif 309 310 /* GL_QCOM_extended_get2 */ 311 /* No new tokens introduced by this extension. */ 312 313 /* GL_QCOM_perfmon_global_mode */ 314 #ifndef GL_QCOM_perfmon_global_mode 315 #define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 316 #endif 317 318 /* GL_QCOM_writeonly_rendering */ 319 #ifndef GL_QCOM_writeonly_rendering 320 #define GL_WRITEONLY_RENDERING_QCOM 0x8823 321 #endif 322 323 /* GL_QCOM_tiled_rendering */ 324 #ifndef GL_QCOM_tiled_rendering 325 #define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 326 #define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 327 #define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 328 #define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 329 #define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 330 #define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 331 #define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 332 #define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 333 #define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 334 #define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 335 #define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 336 #define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 337 #define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 338 #define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 339 #define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 340 #define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 341 #define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 342 #define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 343 #define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 344 #define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 345 #define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 346 #define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 347 #define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 348 #define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 349 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 350 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 351 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 352 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 353 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 354 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 355 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 356 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 357 #endif 358 359 /*------------------------------------------------------------------------* 360 * ANGLE extension tokens 361 *------------------------------------------------------------------------*/ 362 363 /* GL_ANGLE_framebuffer_blit */ 364 #ifndef GL_ANGLE_framebuffer_blit 365 #define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 366 #define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 367 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 // alias GL_FRAMEBUFFER_BINDING 368 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA 369 #endif 370 371 /* GL_ANGLE_framebuffer_multisample */ 372 #ifndef GL_ANGLE_framebuffer_multisample 373 #define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB 374 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 375 #define GL_MAX_SAMPLES_ANGLE 0x8D57 376 #endif 377 378 /*------------------------------------------------------------------------* 379 * End of extension tokens, start of corresponding extension functions 380 *------------------------------------------------------------------------*/ 381 382 /*------------------------------------------------------------------------* 383 * OES extension functions 384 *------------------------------------------------------------------------*/ 385 386 /* GL_OES_compressed_ETC1_RGB8_texture */ 387 #ifndef GL_OES_compressed_ETC1_RGB8_texture 388 #define GL_OES_compressed_ETC1_RGB8_texture 1 389 #endif 390 391 /* GL_OES_compressed_paletted_texture */ 392 #ifndef GL_OES_compressed_paletted_texture 393 #define GL_OES_compressed_paletted_texture 1 394 #endif 395 396 /* GL_OES_depth24 */ 397 #ifndef GL_OES_depth24 398 #define GL_OES_depth24 1 399 #endif 400 401 /* GL_OES_depth32 */ 402 #ifndef GL_OES_depth32 403 #define GL_OES_depth32 1 404 #endif 405 406 /* GL_OES_depth_texture */ 407 #ifndef GL_OES_depth_texture 408 #define GL_OES_depth_texture 1 409 #endif 410 411 /* GL_OES_EGL_image */ 412 #ifndef GL_OES_EGL_image 413 #define GL_OES_EGL_image 1 414 #ifdef GL_GLEXT_PROTOTYPES 415 GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); 416 GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); 417 #endif 418 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); 419 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); 420 #endif 421 422 /* GL_OES_element_index_uint */ 423 #ifndef GL_OES_element_index_uint 424 #define GL_OES_element_index_uint 1 425 #endif 426 427 /* GL_OES_fbo_render_mipmap */ 428 #ifndef GL_OES_fbo_render_mipmap 429 #define GL_OES_fbo_render_mipmap 1 430 #endif 431 432 /* GL_OES_fragment_precision_high */ 433 #ifndef GL_OES_fragment_precision_high 434 #define GL_OES_fragment_precision_high 1 435 #endif 436 437 /* GL_OES_get_program_binary */ 438 #ifndef GL_OES_get_program_binary 439 #define GL_OES_get_program_binary 1 440 #ifdef GL_GLEXT_PROTOTYPES 441 GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); 442 GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); 443 #endif 444 typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); 445 typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); 446 #endif 447 448 /* GL_OES_mapbuffer */ 449 #ifndef GL_OES_mapbuffer 450 #define GL_OES_mapbuffer 1 451 #ifdef GL_GLEXT_PROTOTYPES 452 GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); 453 GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); 454 GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params); 455 #endif 456 typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); 457 typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); 458 typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params); 459 #endif 460 461 /* GL_OES_packed_depth_stencil */ 462 #ifndef GL_OES_packed_depth_stencil 463 #define GL_OES_packed_depth_stencil 1 464 #endif 465 466 /* GL_OES_rgb8_rgba8 */ 467 #ifndef GL_OES_rgb8_rgba8 468 #define GL_OES_rgb8_rgba8 1 469 #endif 470 471 /* GL_OES_standard_derivatives */ 472 #ifndef GL_OES_standard_derivatives 473 #define GL_OES_standard_derivatives 1 474 #endif 475 476 /* GL_OES_stencil1 */ 477 #ifndef GL_OES_stencil1 478 #define GL_OES_stencil1 1 479 #endif 480 481 /* GL_OES_stencil4 */ 482 #ifndef GL_OES_stencil4 483 #define GL_OES_stencil4 1 484 #endif 485 486 /* GL_OES_texture_3D */ 487 #ifndef GL_OES_texture_3D 488 #define GL_OES_texture_3D 1 489 #ifdef GL_GLEXT_PROTOTYPES 490 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); 491 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); 492 GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); 493 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); 494 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); 495 GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); 496 #endif 497 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); 498 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); 499 typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); 500 typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); 501 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); 502 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); 503 #endif 504 505 /* GL_OES_texture_float */ 506 #ifndef GL_OES_texture_float 507 #define GL_OES_texture_float 1 508 #endif 509 510 /* GL_OES_texture_float_linear */ 511 #ifndef GL_OES_texture_float_linear 512 #define GL_OES_texture_float_linear 1 513 #endif 514 515 /* GL_OES_texture_half_float */ 516 #ifndef GL_OES_texture_half_float 517 #define GL_OES_texture_half_float 1 518 #endif 519 520 /* GL_OES_texture_half_float_linear */ 521 #ifndef GL_OES_texture_half_float_linear 522 #define GL_OES_texture_half_float_linear 1 523 #endif 524 525 /* GL_OES_texture_npot */ 526 #ifndef GL_OES_texture_npot 527 #define GL_OES_texture_npot 1 528 #endif 529 530 /* GL_OES_vertex_array_object */ 531 #ifndef GL_OES_vertex_array_object 532 #define GL_OES_vertex_array_object 1 533 #ifdef GL_GLEXT_PROTOTYPES 534 GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); 535 GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); 536 GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); 537 GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); 538 #endif 539 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); 540 typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); 541 typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); 542 typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); 543 #endif 544 545 /* GL_OES_vertex_half_float */ 546 #ifndef GL_OES_vertex_half_float 547 #define GL_OES_vertex_half_float 1 548 #endif 549 550 /* GL_OES_vertex_type_10_10_10_2 */ 551 #ifndef GL_OES_vertex_type_10_10_10_2 552 #define GL_OES_vertex_type_10_10_10_2 1 553 #endif 554 555 /*------------------------------------------------------------------------* 556 * AMD extension functions 557 *------------------------------------------------------------------------*/ 558 559 /* GL_AMD_compressed_3DC_texture */ 560 #ifndef GL_AMD_compressed_3DC_texture 561 #define GL_AMD_compressed_3DC_texture 1 562 #endif 563 564 /* GL_AMD_compressed_ATC_texture */ 565 #ifndef GL_AMD_compressed_ATC_texture 566 #define GL_AMD_compressed_ATC_texture 1 567 #endif 568 569 /* AMD_performance_monitor */ 570 #ifndef GL_AMD_performance_monitor 571 #define GL_AMD_performance_monitor 1 572 #ifdef GL_GLEXT_PROTOTYPES 573 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); 574 GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); 575 GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); 576 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); 577 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); 578 GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); 579 GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); 580 GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); 581 GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); 582 GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); 583 GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); 584 #endif 585 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); 586 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); 587 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); 588 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); 589 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); 590 typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); 591 typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); 592 typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); 593 typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); 594 typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); 595 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); 596 #endif 597 598 /* GL_AMD_program_binary_Z400 */ 599 #ifndef GL_AMD_program_binary_Z400 600 #define GL_AMD_program_binary_Z400 1 601 #endif 602 603 /*------------------------------------------------------------------------* 604 * EXT extension functions 605 *------------------------------------------------------------------------*/ 606 607 /* GL_EXT_blend_minmax */ 608 #ifndef GL_EXT_blend_minmax 609 #define GL_EXT_blend_minmax 1 610 #endif 611 612 /* GL_EXT_discard_framebuffer */ 613 #ifndef GL_EXT_discard_framebuffer 614 #define GL_EXT_discard_framebuffer 1 615 #ifdef GL_GLEXT_PROTOTYPES 616 GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); 617 #endif 618 typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); 619 #endif 620 621 #ifndef GL_EXT_multi_draw_arrays 622 #define GL_EXT_multi_draw_arrays 1 623 #ifdef GL_GLEXT_PROTOTYPES 624 GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); 625 GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); 626 #endif /* GL_GLEXT_PROTOTYPES */ 627 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); 628 typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); 629 #endif 630 631 /* GL_EXT_read_format_bgra */ 632 #ifndef GL_EXT_read_format_bgra 633 #define GL_EXT_read_format_bgra 1 634 #endif 635 636 /* GL_EXT_texture_filter_anisotropic */ 637 #ifndef GL_EXT_texture_filter_anisotropic 638 #define GL_EXT_texture_filter_anisotropic 1 639 #endif 640 641 /* GL_EXT_texture_format_BGRA8888 */ 642 #ifndef GL_EXT_texture_format_BGRA8888 643 #define GL_EXT_texture_format_BGRA8888 1 644 #endif 645 646 /* GL_EXT_texture_type_2_10_10_10_REV */ 647 #ifndef GL_EXT_texture_type_2_10_10_10_REV 648 #define GL_EXT_texture_type_2_10_10_10_REV 1 649 #endif 650 651 /* GL_EXT_texture_compression_dxt1 */ 652 #ifndef GL_EXT_texture_compression_dxt1 653 #define GL_EXT_texture_compression_dxt1 1 654 #endif 655 656 /*------------------------------------------------------------------------* 657 * IMG extension functions 658 *------------------------------------------------------------------------*/ 659 660 /* GL_IMG_program_binary */ 661 #ifndef GL_IMG_program_binary 662 #define GL_IMG_program_binary 1 663 #endif 664 665 /* GL_IMG_read_format */ 666 #ifndef GL_IMG_read_format 667 #define GL_IMG_read_format 1 668 #endif 669 670 /* GL_IMG_shader_binary */ 671 #ifndef GL_IMG_shader_binary 672 #define GL_IMG_shader_binary 1 673 #endif 674 675 /* GL_IMG_texture_compression_pvrtc */ 676 #ifndef GL_IMG_texture_compression_pvrtc 677 #define GL_IMG_texture_compression_pvrtc 1 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 /*------------------------------------------------------------------------* 800 * ANGLE extension functions 801 *------------------------------------------------------------------------*/ 802 803 /* GL_ANGLE_framebuffer_blit */ 804 #ifndef GL_ANGLE_framebuffer_blit 805 #define GL_ANGLE_framebuffer_blit 1 806 #ifdef GL_GLEXT_PROTOTYPES 807 GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, 808 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, 809 GLbitfield mask, GLenum filter); 810 #endif 811 typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, 812 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, 813 GLbitfield mask, GLenum filter); 814 #endif 815 816 /* GL_ANGLE_framebuffer_multisample */ 817 #ifndef GL_ANGLE_framebuffer_multisample 818 #define GL_ANGLE_framebuffer_multisample 1 819 #ifdef GL_GLEXT_PROTOTYPES 820 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, 821 GLsizei width, GLsizei height); 822 #endif 823 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, 824 GLsizei width, GLsizei height); 825 #endif 826 827 #ifdef __cplusplus 828 } 829 #endif 830 831 #endif /* __gl2ext_h_ */ 832