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