gl2ext.h revision 1591693c7b415e9869157c711fe11263c95d74e7
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/*------------------------------------------------------------------------* 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/* GL_IMG_multisampled_render_to_texture */ 260#ifndef GL_IMG_multisampled_render_to_texture 261#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 262#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 263#define GL_MAX_SAMPLES_IMG 0x9135 264#define GL_TEXTURE_SAMPLES_IMG 0x9136 265#endif 266 267/*------------------------------------------------------------------------* 268 * NV extension tokens 269 *------------------------------------------------------------------------*/ 270 271/* GL_NV_fence */ 272#ifndef GL_NV_fence 273#define GL_ALL_COMPLETED_NV 0x84F2 274#define GL_FENCE_STATUS_NV 0x84F3 275#define GL_FENCE_CONDITION_NV 0x84F4 276#endif 277 278/* GL_NV_coverage_sample */ 279#ifndef GL_NV_coverage_sample 280#define GL_COVERAGE_COMPONENT_NV 0x8ED0 281#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 282#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 283#define GL_COVERAGE_BUFFERS_NV 0x8ED3 284#define GL_COVERAGE_SAMPLES_NV 0x8ED4 285#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 286#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 287#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 288#define GL_COVERAGE_BUFFER_BIT_NV 0x8000 289#endif 290 291/* GL_NV_depth_nonlinear */ 292#ifndef GL_NV_depth_nonlinear 293#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C 294#endif 295 296/*------------------------------------------------------------------------* 297 * QCOM extension tokens 298 *------------------------------------------------------------------------*/ 299 300/* GL_QCOM_driver_control */ 301/* No new tokens introduced by this extension. */ 302 303/* GL_QCOM_extended_get */ 304#ifndef GL_QCOM_extended_get 305#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 306#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 307#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 308#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 309#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 310#define GL_TEXTURE_TYPE_QCOM 0x8BD7 311#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 312#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 313#define GL_TEXTURE_TARGET_QCOM 0x8BDA 314#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB 315#define GL_STATE_RESTORE 0x8BDC 316#endif 317 318/* GL_QCOM_extended_get2 */ 319/* No new tokens introduced by this extension. */ 320 321/* GL_QCOM_perfmon_global_mode */ 322#ifndef GL_QCOM_perfmon_global_mode 323#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 324#endif 325 326/* GL_QCOM_writeonly_rendering */ 327#ifndef GL_QCOM_writeonly_rendering 328#define GL_WRITEONLY_RENDERING_QCOM 0x8823 329#endif 330 331/* GL_QCOM_tiled_rendering */ 332#ifndef GL_QCOM_tiled_rendering 333#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 334#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 335#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 336#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 337#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 338#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 339#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 340#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 341#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 342#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 343#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 344#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 345#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 346#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 347#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 348#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 349#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 350#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 351#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 352#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 353#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 354#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 355#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 356#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 357#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 358#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 359#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 360#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 361#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 362#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 363#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 364#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 365#endif 366 367/*------------------------------------------------------------------------* 368 * End of extension tokens, start of corresponding extension functions 369 *------------------------------------------------------------------------*/ 370 371/*------------------------------------------------------------------------* 372 * OES extension functions 373 *------------------------------------------------------------------------*/ 374 375/* GL_OES_compressed_ETC1_RGB8_texture */ 376#ifndef GL_OES_compressed_ETC1_RGB8_texture 377#define GL_OES_compressed_ETC1_RGB8_texture 1 378#endif 379 380/* GL_OES_compressed_paletted_texture */ 381#ifndef GL_OES_compressed_paletted_texture 382#define GL_OES_compressed_paletted_texture 1 383#endif 384 385/* GL_OES_depth24 */ 386#ifndef GL_OES_depth24 387#define GL_OES_depth24 1 388#endif 389 390/* GL_OES_depth32 */ 391#ifndef GL_OES_depth32 392#define GL_OES_depth32 1 393#endif 394 395/* GL_OES_depth_texture */ 396#ifndef GL_OES_depth_texture 397#define GL_OES_depth_texture 1 398#endif 399 400/* GL_OES_EGL_image */ 401#ifndef GL_OES_EGL_image 402#define GL_OES_EGL_image 1 403#ifdef GL_GLEXT_PROTOTYPES 404GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); 405GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); 406#endif 407typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); 408typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); 409#endif 410 411/* GL_OES_element_index_uint */ 412#ifndef GL_OES_element_index_uint 413#define GL_OES_element_index_uint 1 414#endif 415 416/* GL_OES_fbo_render_mipmap */ 417#ifndef GL_OES_fbo_render_mipmap 418#define GL_OES_fbo_render_mipmap 1 419#endif 420 421/* GL_OES_fragment_precision_high */ 422#ifndef GL_OES_fragment_precision_high 423#define GL_OES_fragment_precision_high 1 424#endif 425 426/* GL_OES_get_program_binary */ 427#ifndef GL_OES_get_program_binary 428#define GL_OES_get_program_binary 1 429#ifdef GL_GLEXT_PROTOTYPES 430GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); 431GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); 432#endif 433typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); 434typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); 435#endif 436 437/* GL_OES_mapbuffer */ 438#ifndef GL_OES_mapbuffer 439#define GL_OES_mapbuffer 1 440#ifdef GL_GLEXT_PROTOTYPES 441GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); 442GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); 443GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params); 444#endif 445typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); 446typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); 447typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params); 448#endif 449 450/* GL_OES_packed_depth_stencil */ 451#ifndef GL_OES_packed_depth_stencil 452#define GL_OES_packed_depth_stencil 1 453#endif 454 455/* GL_OES_rgb8_rgba8 */ 456#ifndef GL_OES_rgb8_rgba8 457#define GL_OES_rgb8_rgba8 1 458#endif 459 460/* GL_OES_standard_derivatives */ 461#ifndef GL_OES_standard_derivatives 462#define GL_OES_standard_derivatives 1 463#endif 464 465/* GL_OES_stencil1 */ 466#ifndef GL_OES_stencil1 467#define GL_OES_stencil1 1 468#endif 469 470/* GL_OES_stencil4 */ 471#ifndef GL_OES_stencil4 472#define GL_OES_stencil4 1 473#endif 474 475/* GL_OES_texture_3D */ 476#ifndef GL_OES_texture_3D 477#define GL_OES_texture_3D 1 478#ifdef GL_GLEXT_PROTOTYPES 479GL_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); 480GL_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); 481GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); 482GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); 483GL_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); 484GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); 485#endif 486typedef 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); 487typedef 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); 488typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); 489typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); 490typedef 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); 491typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); 492#endif 493 494/* GL_OES_texture_float */ 495#ifndef GL_OES_texture_float 496#define GL_OES_texture_float 1 497#endif 498 499/* GL_OES_texture_float_linear */ 500#ifndef GL_OES_texture_float_linear 501#define GL_OES_texture_float_linear 1 502#endif 503 504/* GL_OES_texture_half_float */ 505#ifndef GL_OES_texture_half_float 506#define GL_OES_texture_half_float 1 507#endif 508 509/* GL_OES_texture_half_float_linear */ 510#ifndef GL_OES_texture_half_float_linear 511#define GL_OES_texture_half_float_linear 1 512#endif 513 514/* GL_OES_texture_npot */ 515#ifndef GL_OES_texture_npot 516#define GL_OES_texture_npot 1 517#endif 518 519/* GL_OES_vertex_array_object */ 520#ifndef GL_OES_vertex_array_object 521#define GL_OES_vertex_array_object 1 522#ifdef GL_GLEXT_PROTOTYPES 523GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); 524GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); 525GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); 526GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); 527#endif 528typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); 529typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); 530typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); 531typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); 532#endif 533 534/* GL_OES_vertex_half_float */ 535#ifndef GL_OES_vertex_half_float 536#define GL_OES_vertex_half_float 1 537#endif 538 539/* GL_OES_vertex_type_10_10_10_2 */ 540#ifndef GL_OES_vertex_type_10_10_10_2 541#define GL_OES_vertex_type_10_10_10_2 1 542#endif 543 544/*------------------------------------------------------------------------* 545 * AMD extension functions 546 *------------------------------------------------------------------------*/ 547 548/* GL_AMD_compressed_3DC_texture */ 549#ifndef GL_AMD_compressed_3DC_texture 550#define GL_AMD_compressed_3DC_texture 1 551#endif 552 553/* GL_AMD_compressed_ATC_texture */ 554#ifndef GL_AMD_compressed_ATC_texture 555#define GL_AMD_compressed_ATC_texture 1 556#endif 557 558/* AMD_performance_monitor */ 559#ifndef GL_AMD_performance_monitor 560#define GL_AMD_performance_monitor 1 561#ifdef GL_GLEXT_PROTOTYPES 562GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); 563GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); 564GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); 565GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); 566GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); 567GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); 568GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); 569GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); 570GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); 571GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); 572GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); 573#endif 574typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); 575typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); 576typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); 577typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); 578typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); 579typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); 580typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); 581typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); 582typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); 583typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); 584typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); 585#endif 586 587/* GL_AMD_program_binary_Z400 */ 588#ifndef GL_AMD_program_binary_Z400 589#define GL_AMD_program_binary_Z400 1 590#endif 591 592/*------------------------------------------------------------------------* 593 * EXT extension functions 594 *------------------------------------------------------------------------*/ 595 596/* GL_EXT_blend_minmax */ 597#ifndef GL_EXT_blend_minmax 598#define GL_EXT_blend_minmax 1 599#endif 600 601/* GL_EXT_discard_framebuffer */ 602#ifndef GL_EXT_discard_framebuffer 603#define GL_EXT_discard_framebuffer 1 604#ifdef GL_GLEXT_PROTOTYPES 605GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); 606#endif 607typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); 608#endif 609 610#ifndef GL_EXT_multi_draw_arrays 611#define GL_EXT_multi_draw_arrays 1 612#ifdef GL_GLEXT_PROTOTYPES 613GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); 614GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); 615#endif /* GL_GLEXT_PROTOTYPES */ 616typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); 617typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); 618#endif 619 620/* GL_EXT_read_format_bgra */ 621#ifndef GL_EXT_read_format_bgra 622#define GL_EXT_read_format_bgra 1 623#endif 624 625/* GL_EXT_texture_filter_anisotropic */ 626#ifndef GL_EXT_texture_filter_anisotropic 627#define GL_EXT_texture_filter_anisotropic 1 628#endif 629 630/* GL_EXT_texture_format_BGRA8888 */ 631#ifndef GL_EXT_texture_format_BGRA8888 632#define GL_EXT_texture_format_BGRA8888 1 633#endif 634 635/* GL_EXT_texture_type_2_10_10_10_REV */ 636#ifndef GL_EXT_texture_type_2_10_10_10_REV 637#define GL_EXT_texture_type_2_10_10_10_REV 1 638#endif 639 640/* GL_EXT_texture_compression_dxt1 */ 641#ifndef GL_EXT_texture_compression_dxt1 642#define GL_EXT_texture_compression_dxt1 1 643#endif 644 645/*------------------------------------------------------------------------* 646 * IMG extension functions 647 *------------------------------------------------------------------------*/ 648 649/* GL_IMG_program_binary */ 650#ifndef GL_IMG_program_binary 651#define GL_IMG_program_binary 1 652#endif 653 654/* GL_IMG_read_format */ 655#ifndef GL_IMG_read_format 656#define GL_IMG_read_format 1 657#endif 658 659/* GL_IMG_shader_binary */ 660#ifndef GL_IMG_shader_binary 661#define GL_IMG_shader_binary 1 662#endif 663 664/* GL_IMG_texture_compression_pvrtc */ 665#ifndef GL_IMG_texture_compression_pvrtc 666#define GL_IMG_texture_compression_pvrtc 1 667#endif 668 669/* GL_IMG_multisampled_render_to_texture */ 670#ifndef GL_IMG_multisampled_render_to_texture 671#define GL_IMG_multisampled_render_to_texture 1 672#ifdef GL_GLEXT_PROTOTYPES 673GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei); 674GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); 675#endif 676typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); 677typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); 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 688GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); 689GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *); 690GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint); 691GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint); 692GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); 693GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint); 694GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum); 695#endif 696typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); 697typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); 698typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); 699typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); 700typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); 701typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); 702typedef 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 709GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); 710GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); 711#endif 712typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); 713typedef 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 729GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); 730GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); 731GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); 732GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); 733#endif 734typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); 735typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); 736typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); 737typedef 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 744GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); 745GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); 746GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); 747GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); 748GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); 749GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); 750GL_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); 751GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params); 752#endif 753typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); 754typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); 755typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); 756typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); 757typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); 758typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); 759typedef 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); 760typedef 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 767GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); 768GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); 769GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); 770GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); 771#endif 772typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); 773typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); 774typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); 775typedef 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 792GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); 793GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); 794#endif 795typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); 796typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); 797#endif 798 799#ifdef __cplusplus 800} 801#endif 802 803#endif /* __gl2ext_h_ */ 804