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