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