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