From 92e923d056a66e8126ee9d95e3fba72585cbb25b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 23 May 2015 12:46:54 +0200 Subject: [PATCH] First-class WebGL support, part 14: reduced available extensions. This was the actual problem. Most of ES extensions are not available in WebGL, thus the GL headers and the code was far more bloated than it needed to be. The GL header is now reduced and the previous 13 commits were disabling features that aren't actually available in WebGL. The final executable size is reduced by ~50 kB, which actually isn't much, but still something. Some ES extensions (ANGLE_depth_texture and ANGLE_instanced_arrays) have now WEBGL_* prefix. I'm still using the original prefix in the implementation because there are headers for these, but in public docs and elsewhere they are exposed with WEBGL_*. --- doc/opengl-support.dox | 23 + src/Magnum/Context.cpp | 20 + src/Magnum/Extensions.h | 30 + .../Implementation/setupDriverWorkarounds.cpp | 10 +- .../OpenGL/GLES2/Emscripten/extensions.txt | 20 + src/MagnumExternal/OpenGL/GLES2/README.md | 2 +- .../OpenGL/GLES2/flextGLEmscripten.h | 756 +----------------- 7 files changed, 124 insertions(+), 737 deletions(-) create mode 100644 src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt diff --git a/doc/opengl-support.dox b/doc/opengl-support.dox index 0c31ce66b..80f7dbae7 100644 --- a/doc/opengl-support.dox +++ b/doc/opengl-support.dox @@ -364,6 +364,29 @@ Extension | Status @es_extension{OES,stencil1} | done @es_extension{OES,stencil4} | done +@subsection opengl-support-webgl10 WebGL 1.0 + +Features that have their equivalents implemented in OpenGL ES 2.0 are +supported. + +@subsection opengl-support-webgl20 WebGL 2.0 + +Features that have their equivalents implemented in OpenGL ES 3.0 are +supported. + +@subsection opengl-support-webgl20-extensions WebGL 1.0 extensions to match WebGL 2.0 functionality + +Only extensions not already listed in above tables are included here. + +Extension | Status +------------------------------------------- | ------ +@webgl_extension{WEBGL,depth_texture} | done +@webgl_extension{WEBGL,draw_buffers} | done + +@subsection opengl-support-webgl-extensions WebGL extensions to match desktop functionality + +All currently implemented extensions are already listed in above tables. + @section opengl-unsupported Unsupported OpenGL features Some functionality, which is either soon-to-be deprecated or isn't proven to diff --git a/src/Magnum/Context.cpp b/src/Magnum/Context.cpp index 36a9da270..515bee3b6 100644 --- a/src/Magnum/Context.cpp +++ b/src/Magnum/Context.cpp @@ -218,6 +218,26 @@ const std::vector& Extension::extensions(Version version) { _extension(GL,ARB,texture_barrier), _extension(GL,KHR,context_flush_control), _extension(GL,KHR,robustness)}; + #elif defined(MAGNUM_TARGET_WEBGL) + static const std::vector extensions{ + _extension(GL,EXT,texture_filter_anisotropic), + _extension(GL,EXT,sRGB), + _extension(GL,EXT,disjoint_timer_query)}; + #ifdef MAGNUM_TARGET_GLES2 + static const std::vector extensionsES300{ + _extension(GL,ANGLE,instanced_arrays), + _extension(GL,EXT,blend_minmax), + _extension(GL,EXT,shader_texture_lod), + _extension(GL,OES,texture_float), + _extension(GL,OES,texture_half_float), + _extension(GL,OES,standard_derivatives), + _extension(GL,OES,element_index_uint), + _extension(GL,OES,texture_float_linear), + _extension(GL,OES,texture_half_float_linear), + _extension(GL,OES,vertex_array_object), + _extension(GL,WEBGL,depth_texture), + _extension(GL,WEBGL,draw_buffers)}; + #endif #else static const std::vector extensions{ _extension(GL,APPLE,texture_format_BGRA8888), diff --git a/src/Magnum/Extensions.h b/src/Magnum/Extensions.h index 6818e4983..bcf4aa20c 100644 --- a/src/Magnum/Extensions.h +++ b/src/Magnum/Extensions.h @@ -229,6 +229,36 @@ namespace GL { /* NV_draw_texture not supported */ // #430 } /* IMPORTANT: if this line is > 233 (73 + size), don't forget to update array size in Context.h */ + #elif defined(MAGNUM_TARGET_WEBGL) + #line 1 + namespace ANGLE { + #ifdef MAGNUM_TARGET_GLES2 + _extension(GL,ANGLE,instanced_arrays, GLES200, GLES300) // #19 + #endif + } namespace EXT { + _extension(GL,EXT,texture_filter_anisotropic, GLES200, None) // #11 + _extension(GL,EXT,sRGB, GLES200, None) // #17 + #ifdef MAGNUM_TARGET_GLES2 + _extension(GL,EXT,blend_minmax, GLES200, GLES300) // #25 + _extension(GL,EXT,shader_texture_lod, GLES200, GLES300) // #27 + #endif + _extension(GL,EXT,disjoint_timer_query, GLES200, None) // #26 + } namespace OES { + #ifdef MAGNUM_TARGET_GLES2 + _extension(GL,OES,texture_float, GLES200, GLES300) // #1 + _extension(GL,OES,texture_half_float, GLES200, GLES300) // #2 + _extension(GL,OES,standard_derivatives, GLES200, GLES300) // #4 + _extension(GL,OES,element_index_uint, GLES200, GLES300) // #10 + _extension(GL,OES,texture_float_linear, GLES200, GLES300) // #20 + _extension(GL,OES,texture_half_float_linear, GLES200, GLES300) // #21 + _extension(GL,OES,vertex_array_object, GLES200, GLES300) // #5 + #endif + } namespace WEBGL { + #ifdef MAGNUM_TARGET_GLES2 + _extension(GL,WEBGL,depth_texture, GLES200, GLES300) // #9, EXT + _extension(GL,WEBGL,draw_buffers, GLES200, GLES300) // #18, EXT + #endif + } #else #line 1 namespace ANGLE { diff --git a/src/Magnum/Implementation/setupDriverWorkarounds.cpp b/src/Magnum/Implementation/setupDriverWorkarounds.cpp index fe1e2c805..7f6d009e3 100644 --- a/src/Magnum/Implementation/setupDriverWorkarounds.cpp +++ b/src/Magnum/Implementation/setupDriverWorkarounds.cpp @@ -53,8 +53,8 @@ void Context::setupDriverWorkarounds() { _setRequiredVersion(GL::ARB::shading_language_420pack, GL320); #endif - /* Disable extensions not available on NaCl and Emscripten */ - #if defined(CORRADE_TARGET_NACL) || defined(CORRADE_TARGET_EMSCRIPTEN) + /* Disable extensions not available on NaCl */ + #ifdef CORRADE_TARGET_NACL _setRequiredVersion(GL::EXT::multi_draw_arrays, None); _setRequiredVersion(GL::EXT::debug_label, None); _setRequiredVersion(GL::EXT::debug_marker, None); @@ -86,12 +86,6 @@ void Context::setupDriverWorkarounds() { _setRequiredVersion(GL::OES::vertex_array_object, None); #endif - /* Disable extensions not available on Emscripten */ - #ifdef CORRADE_TARGET_EMSCRIPTEN - _setRequiredVersion(GL::CHROMIUM::map_sub, None); - _setRequiredVersion(GL::EXT::occlusion_query_boolean, None); - #endif - #undef _setRequiredVersion } diff --git a/src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt b/src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt new file mode 100644 index 000000000..bebe2e14c --- /dev/null +++ b/src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt @@ -0,0 +1,20 @@ +# The following output is taken from `magnum-info` with removed `GL_` prefixes. + +version 2.0 es + +extension ANGLE_instanced_arrays optional +extension EXT_blend_minmax optional +extension EXT_shader_texture_lod optional +extension OES_element_index_uint optional +extension OES_texture_half_float_linear optional +extension OES_texture_float_linear optional +extension OES_texture_half_float optional +extension OES_texture_float optional +extension OES_standard_derivatives optional +extension OES_vertex_array_object optional +# These are used as a base for WEBGL_* extensions +extension ANGLE_depth_texture optional +extension EXT_draw_buffers optional + +extension EXT_texture_filter_anisotropic optional +extension EXT_sRGB optional diff --git a/src/MagnumExternal/OpenGL/GLES2/README.md b/src/MagnumExternal/OpenGL/GLES2/README.md index c7942fabf..fb7ce33a1 100644 --- a/src/MagnumExternal/OpenGL/GLES2/README.md +++ b/src/MagnumExternal/OpenGL/GLES2/README.md @@ -13,7 +13,7 @@ NaCl and Emscripten don't have the ability to manually load extension pointers, thus they have only header files: .../flextGLgen.py -D . -t NaCl/ extensions.txt - .../flextGLgen.py -D . -t Emscripten/ extensions.txt + .../flextGLgen.py -D . -t Emscripten/ Emscripten/extensions.txt This will generate stripped-down `flextGLNaCl.h` and `flextGLEmscripten.h` files. diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h b/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h index 4744fb772..1be76c68b 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h @@ -43,8 +43,6 @@ typedef unsigned int GLuint; typedef int GLsizei; typedef char GLchar; typedef struct __GLsync *GLsync; -typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); typedef khronos_int8_t GLbyte; typedef khronos_uint8_t GLubyte; typedef khronos_float_t GLfloat; @@ -361,121 +359,47 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -/* GL_ANGLE_framebuffer_blit */ - -#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA - -/* GL_ANGLE_framebuffer_multisample */ - -#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 -#define GL_MAX_SAMPLES_ANGLE 0x8D57 - /* GL_ANGLE_instanced_arrays */ #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE -/* GL_ANGLE_depth_texture */ +/* GL_EXT_blend_minmax */ -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_UNSIGNED_INT 0x1405 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_BLEND_EQUATION_EXT 0x8009 -/* GL_APPLE_framebuffer_multisample */ +/* GL_OES_element_index_uint */ -#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 -#define GL_MAX_SAMPLES_APPLE 0x8D57 -#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA +#define GL_UNSIGNED_INT 0x1405 -/* GL_APPLE_texture_max_level */ +/* GL_OES_texture_half_float */ -#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D +#define GL_HALF_FLOAT_OES 0x8D61 -/* GL_EXT_texture_type_2_10_10_10_REV */ +/* GL_OES_texture_float */ -#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 +#define GL_FLOAT 0x1406 -/* GL_EXT_discard_framebuffer */ +/* GL_OES_standard_derivatives */ -#define GL_COLOR_EXT 0x1800 -#define GL_DEPTH_EXT 0x1801 -#define GL_STENCIL_EXT 0x1802 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B -/* GL_EXT_blend_minmax */ +/* GL_OES_vertex_array_object */ -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_BLEND_EQUATION_EXT 0x8009 +#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 -/* GL_EXT_occlusion_query_boolean */ - -#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A -#define GL_CURRENT_QUERY_EXT 0x8865 -#define GL_QUERY_RESULT_EXT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 - -/* GL_EXT_shadow_samplers */ - -#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C -#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D -#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E -#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 - -/* GL_EXT_texture_rg */ - -#define GL_RED_EXT 0x1903 -#define GL_RG_EXT 0x8227 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B - -/* GL_EXT_texture_storage */ - -#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F -#define GL_ALPHA8_EXT 0x803C -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_RGBA32F_EXT 0x8814 -#define GL_RGB32F_EXT 0x8815 -#define GL_ALPHA32F_EXT 0x8816 -#define GL_LUMINANCE32F_EXT 0x8818 -#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 -#define GL_RGBA16F_EXT 0x881A -#define GL_RGB16F_EXT 0x881B -#define GL_ALPHA16F_EXT 0x881C -#define GL_LUMINANCE16F_EXT 0x881E -#define GL_LUMINANCE_ALPHA16F_EXT 0x881F -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGB10_EXT 0x8052 -#define GL_BGRA8_EXT 0x93A1 -#define GL_R8_EXT 0x8229 -#define GL_RG8_EXT 0x822B -#define GL_R32F_EXT 0x822E -#define GL_RG32F_EXT 0x8230 -#define GL_R16F_EXT 0x822D -#define GL_RG16F_EXT 0x822F - -/* GL_EXT_map_buffer_range */ - -#define GL_MAP_READ_BIT_EXT 0x0001 -#define GL_MAP_WRITE_BIT_EXT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 +/* GL_ANGLE_depth_texture */ + +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 /* GL_EXT_draw_buffers */ @@ -514,228 +438,11 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_COLOR_ATTACHMENT14_EXT 0x8CEE #define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -/* GL_EXT_instanced_arrays */ - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE - -/* GL_NV_draw_buffers */ - -#define GL_MAX_DRAW_BUFFERS_NV 0x8824 -#define GL_DRAW_BUFFER0_NV 0x8825 -#define GL_DRAW_BUFFER1_NV 0x8826 -#define GL_DRAW_BUFFER2_NV 0x8827 -#define GL_DRAW_BUFFER3_NV 0x8828 -#define GL_DRAW_BUFFER4_NV 0x8829 -#define GL_DRAW_BUFFER5_NV 0x882A -#define GL_DRAW_BUFFER6_NV 0x882B -#define GL_DRAW_BUFFER7_NV 0x882C -#define GL_DRAW_BUFFER8_NV 0x882D -#define GL_DRAW_BUFFER9_NV 0x882E -#define GL_DRAW_BUFFER10_NV 0x882F -#define GL_DRAW_BUFFER11_NV 0x8830 -#define GL_DRAW_BUFFER12_NV 0x8831 -#define GL_DRAW_BUFFER13_NV 0x8832 -#define GL_DRAW_BUFFER14_NV 0x8833 -#define GL_DRAW_BUFFER15_NV 0x8834 -#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 -#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 -#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 -#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 -#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 -#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 -#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 -#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 -#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 -#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 -#define GL_COLOR_ATTACHMENT10_NV 0x8CEA -#define GL_COLOR_ATTACHMENT11_NV 0x8CEB -#define GL_COLOR_ATTACHMENT12_NV 0x8CEC -#define GL_COLOR_ATTACHMENT13_NV 0x8CED -#define GL_COLOR_ATTACHMENT14_NV 0x8CEE -#define GL_COLOR_ATTACHMENT15_NV 0x8CEF - -/* GL_NV_fbo_color_attachments */ - -#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF -#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 -#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 -#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 -#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 -#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 -#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 -#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 -#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 -#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 -#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 -#define GL_COLOR_ATTACHMENT10_NV 0x8CEA -#define GL_COLOR_ATTACHMENT11_NV 0x8CEB -#define GL_COLOR_ATTACHMENT12_NV 0x8CEC -#define GL_COLOR_ATTACHMENT13_NV 0x8CED -#define GL_COLOR_ATTACHMENT14_NV 0x8CEE -#define GL_COLOR_ATTACHMENT15_NV 0x8CEF - -/* GL_NV_read_buffer */ - -#define GL_READ_BUFFER_NV 0x0C02 - -/* GL_NV_framebuffer_blit */ - -#define GL_READ_FRAMEBUFFER_NV 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA - -/* GL_NV_framebuffer_multisample */ - -#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 -#define GL_MAX_SAMPLES_NV 0x8D57 - -/* GL_NV_instanced_arrays */ - -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE - -/* GL_NV_shadow_samplers_array */ - -#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 - -/* GL_NV_shadow_samplers_cube */ - -#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 - -/* GL_OES_depth24 */ - -#define GL_DEPTH_COMPONENT24_OES 0x81A6 - -/* GL_OES_element_index_uint */ - -#define GL_UNSIGNED_INT 0x1405 - -/* GL_OES_rgb8_rgba8 */ - -#define GL_RGB8_OES 0x8051 -#define GL_RGBA8_OES 0x8058 - -/* GL_OES_texture_3D */ - -#define GL_TEXTURE_WRAP_R_OES 0x8072 -#define GL_TEXTURE_3D_OES 0x806F -#define GL_TEXTURE_BINDING_3D_OES 0x806A -#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 -#define GL_SAMPLER_3D_OES 0x8B5F -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 - -/* GL_OES_texture_half_float */ - -#define GL_HALF_FLOAT_OES 0x8D61 - -/* GL_OES_texture_float */ - -#define GL_FLOAT 0x1406 - -/* GL_OES_vertex_half_float */ - -#define GL_HALF_FLOAT_OES 0x8D61 - -/* GL_OES_packed_depth_stencil */ - -#define GL_DEPTH_STENCIL_OES 0x84F9 -#define GL_UNSIGNED_INT_24_8_OES 0x84FA -#define GL_DEPTH24_STENCIL8_OES 0x88F0 - -/* GL_OES_depth_texture */ - -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_UNSIGNED_INT 0x1405 - -/* GL_OES_standard_derivatives */ - -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B - -/* GL_OES_vertex_array_object */ - -#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 - -/* GL_OES_required_internalformat */ - -#define GL_ALPHA8_OES 0x803C -#define GL_DEPTH_COMPONENT16_OES 0x81A5 -#define GL_DEPTH_COMPONENT24_OES 0x81A6 -#define GL_DEPTH24_STENCIL8_OES 0x88F0 -#define GL_DEPTH_COMPONENT32_OES 0x81A7 -#define GL_LUMINANCE4_ALPHA4_OES 0x8043 -#define GL_LUMINANCE8_ALPHA8_OES 0x8045 -#define GL_LUMINANCE8_OES 0x8040 -#define GL_RGBA4_OES 0x8056 -#define GL_RGB5_A1_OES 0x8057 -#define GL_RGB565_OES 0x8D62 -#define GL_RGB8_OES 0x8051 -#define GL_RGBA8_OES 0x8058 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB10_A2_EXT 0x8059 - -/* GL_OES_surfaceless_context */ - -#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 - -/* GL_APPLE_texture_format_BGRA8888 */ - -#define GL_BGRA_EXT 0x80E1 -#define GL_BGRA8_EXT 0x93A1 - /* GL_EXT_texture_filter_anisotropic */ #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -/* GL_EXT_texture_format_BGRA8888 */ - -#define GL_BGRA_EXT 0x80E1 - -/* GL_EXT_read_format_bgra */ - -#define GL_BGRA_EXT 0x80E1 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 - -/* GL_EXT_debug_label */ - -#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F -#define GL_PROGRAM_OBJECT_EXT 0x8B40 -#define GL_SHADER_OBJECT_EXT 0x8B48 -#define GL_BUFFER_OBJECT_EXT 0x9151 -#define GL_QUERY_OBJECT_EXT 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 -#define GL_SAMPLER 0x82E6 -#define GL_TRANSFORM_FEEDBACK 0x8E22 - -/* GL_EXT_disjoint_timer_query */ - -#define GL_QUERY_COUNTER_BITS_EXT 0x8864 -#define GL_CURRENT_QUERY_EXT 0x8865 -#define GL_QUERY_RESULT_EXT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 -#define GL_TIME_ELAPSED_EXT 0x88BF -#define GL_TIMESTAMP_EXT 0x8E28 -#define GL_GPU_DISJOINT_EXT 0x8FBB - -/* GL_EXT_texture_sRGB_decode */ - -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A - -/* GL_EXT_separate_shader_objects */ - -#define GL_ACTIVE_PROGRAM_EXT 0x8259 -#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 -#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE_EXT 0x8258 -#define GL_ACTIVE_PROGRAM_EXT 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A - /* GL_EXT_sRGB */ #define GL_SRGB_EXT 0x8C40 @@ -743,132 +450,6 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_SRGB8_ALPHA8_EXT 0x8C43 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 -/* GL_EXT_multisampled_render_to_texture */ - -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 - -/* GL_EXT_robustness */ - -#define GL_NO_ERROR 0 -#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 -#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 -#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 -#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 -#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 - -/* GL_KHR_debug */ - -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_BUFFER 0x82E0 -#define GL_SHADER 0x82E1 -#define GL_PROGRAM 0x82E2 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_QUERY 0x82E3 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_SAMPLER 0x82E6 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 -#define GL_DEBUG_SOURCE_API_KHR 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A -#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B -#define GL_DEBUG_TYPE_ERROR_KHR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 -#define GL_DEBUG_TYPE_OTHER_KHR 0x8251 -#define GL_DEBUG_TYPE_MARKER_KHR 0x8268 -#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 -#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A -#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C -#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D -#define GL_BUFFER_KHR 0x82E0 -#define GL_SHADER_KHR 0x82E1 -#define GL_PROGRAM_KHR 0x82E2 -#define GL_VERTEX_ARRAY_KHR 0x8074 -#define GL_QUERY_KHR 0x82E3 -#define GL_PROGRAM_PIPELINE_KHR 0x82E4 -#define GL_SAMPLER_KHR 0x82E6 -#define GL_MAX_LABEL_LENGTH_KHR 0x82E8 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 -#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 -#define GL_DEBUG_OUTPUT_KHR 0x92E0 -#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 -#define GL_STACK_OVERFLOW_KHR 0x0503 -#define GL_STACK_UNDERFLOW_KHR 0x0504 -#define GL_DISPLAY_LIST 0x82E7 - -/* GL_NV_texture_border_clamp */ - -#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 -#define GL_CLAMP_TO_BORDER_NV 0x812D - -/* GL_OES_depth32 */ - -#define GL_DEPTH_COMPONENT32_OES 0x81A7 - -/* GL_OES_mapbuffer */ - -#define GL_WRITE_ONLY_OES 0x88B9 -#define GL_BUFFER_ACCESS_OES 0x88BB -#define GL_BUFFER_MAPPED_OES 0x88BC -#define GL_BUFFER_MAP_POINTER_OES 0x88BD - -/* GL_OES_stencil1 */ - -#define GL_STENCIL_INDEX1_OES 0x8D46 - -/* GL_OES_stencil4 */ - -#define GL_STENCIL_INDEX4_OES 0x8D47 - /* Function prototypes */ /* GL_ES_VERSION_2_0 */ @@ -1016,41 +597,12 @@ GLAPI void glVertexAttrib4fv(GLuint, const GLfloat *); GLAPI void glVertexAttribPointer(GLuint, GLint, GLenum, GLboolean, GLsizei, const void *); GLAPI void glViewport(GLint, GLint, GLsizei, GLsizei); -/* GL_ANGLE_framebuffer_blit */ - -GLAPI void glBlitFramebufferANGLE(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); - -/* GL_ANGLE_framebuffer_multisample */ - -GLAPI void glRenderbufferStorageMultisampleANGLE(GLenum, GLsizei, GLenum, GLsizei, GLsizei); - /* GL_ANGLE_instanced_arrays */ GLAPI void glDrawArraysInstancedANGLE(GLenum, GLint, GLsizei, GLsizei); GLAPI void glDrawElementsInstancedANGLE(GLenum, GLsizei, GLenum, const void *, GLsizei); GLAPI void glVertexAttribDivisorANGLE(GLuint, GLuint); -/* GL_ANGLE_depth_texture */ - - -/* GL_APPLE_framebuffer_multisample */ - -GLAPI void glRenderbufferStorageMultisampleAPPLE(GLenum, GLsizei, GLenum, GLsizei, GLsizei); -GLAPI void glResolveMultisampleFramebufferAPPLE(void); - -/* GL_APPLE_texture_max_level */ - - -/* GL_ARM_rgba8 */ - - -/* GL_EXT_texture_type_2_10_10_10_REV */ - - -/* GL_EXT_discard_framebuffer */ - -GLAPI void glDiscardFramebufferEXT(GLenum, GLsizei, const GLenum *); - /* GL_EXT_blend_minmax */ GLAPI void glBlendEquationEXT(GLenum); @@ -1058,101 +610,9 @@ GLAPI void glBlendEquationEXT(GLenum); /* GL_EXT_shader_texture_lod */ -/* GL_EXT_occlusion_query_boolean */ - -GLAPI void glGenQueriesEXT(GLsizei, GLuint *); -GLAPI void glDeleteQueriesEXT(GLsizei, const GLuint *); -GLAPI GLboolean glIsQueryEXT(GLuint); -GLAPI void glBeginQueryEXT(GLenum, GLuint); -GLAPI void glEndQueryEXT(GLenum); -GLAPI void glGetQueryivEXT(GLenum, GLenum, GLint *); -GLAPI void glGetQueryObjectuivEXT(GLuint, GLenum, GLuint *); - -/* GL_EXT_shadow_samplers */ - - -/* GL_EXT_texture_rg */ - - -/* GL_EXT_texture_storage */ - -GLAPI void glTexStorage1DEXT(GLenum, GLsizei, GLenum, GLsizei); -GLAPI void glTexStorage2DEXT(GLenum, GLsizei, GLenum, GLsizei, GLsizei); -GLAPI void glTexStorage3DEXT(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei); -GLAPI void glTextureStorage1DEXT(GLuint, GLenum, GLsizei, GLenum, GLsizei); -GLAPI void glTextureStorage2DEXT(GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei); -GLAPI void glTextureStorage3DEXT(GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei); - -/* GL_EXT_map_buffer_range */ - -GLAPI void * glMapBufferRangeEXT(GLenum, GLintptr, GLsizeiptr, GLbitfield); -GLAPI void glFlushMappedBufferRangeEXT(GLenum, GLintptr, GLsizeiptr); - -/* GL_EXT_draw_buffers */ - -GLAPI void glDrawBuffersEXT(GLsizei, const GLenum *); - -/* GL_EXT_instanced_arrays */ - -GLAPI void glDrawArraysInstancedEXT(GLenum, GLint, GLsizei, GLsizei); -GLAPI void glDrawElementsInstancedEXT(GLenum, GLsizei, GLenum, const void *, GLsizei); -GLAPI void glVertexAttribDivisorEXT(GLuint, GLuint); - -/* GL_EXT_draw_instanced */ - - -/* GL_NV_draw_buffers */ - -GLAPI void glDrawBuffersNV(GLsizei, const GLenum *); - -/* GL_NV_fbo_color_attachments */ - - -/* GL_NV_read_buffer */ - -GLAPI void glReadBufferNV(GLenum); - -/* GL_NV_draw_instanced */ - -GLAPI void glDrawArraysInstancedNV(GLenum, GLint, GLsizei, GLsizei); -GLAPI void glDrawElementsInstancedNV(GLenum, GLsizei, GLenum, const void *, GLsizei); - -/* GL_NV_framebuffer_blit */ - -GLAPI void glBlitFramebufferNV(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); - -/* GL_NV_framebuffer_multisample */ - -GLAPI void glRenderbufferStorageMultisampleNV(GLenum, GLsizei, GLenum, GLsizei, GLsizei); - -/* GL_NV_instanced_arrays */ - -GLAPI void glVertexAttribDivisorNV(GLuint, GLuint); - -/* GL_NV_shadow_samplers_array */ - - -/* GL_NV_shadow_samplers_cube */ - - -/* GL_OES_depth24 */ - - /* GL_OES_element_index_uint */ -/* GL_OES_rgb8_rgba8 */ - - -/* GL_OES_texture_3D */ - -GLAPI void glTexImage3DOES(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const void *); -GLAPI void glTexSubImage3DOES(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *); -GLAPI void glCopyTexSubImage3DOES(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void glCompressedTexImage3DOES(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const void *); -GLAPI void glCompressedTexSubImage3DOES(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const void *); -GLAPI void glFramebufferTexture3DOES(GLenum, GLenum, GLenum, GLuint, GLint, GLint); - /* GL_OES_texture_half_float_linear */ @@ -1165,15 +625,6 @@ GLAPI void glFramebufferTexture3DOES(GLenum, GLenum, GLenum, GLuint, GLint, GLin /* GL_OES_texture_float */ -/* GL_OES_vertex_half_float */ - - -/* GL_OES_packed_depth_stencil */ - - -/* GL_OES_depth_texture */ - - /* GL_OES_standard_derivatives */ @@ -1184,170 +635,19 @@ GLAPI void glDeleteVertexArraysOES(GLsizei, const GLuint *); GLAPI void glGenVertexArraysOES(GLsizei, GLuint *); GLAPI GLboolean glIsVertexArrayOES(GLuint); -/* GL_OES_required_internalformat */ - - -/* GL_OES_surfaceless_context */ +/* GL_ANGLE_depth_texture */ -/* GL_APPLE_texture_format_BGRA8888 */ +/* GL_EXT_draw_buffers */ +GLAPI void glDrawBuffersEXT(GLsizei, const GLenum *); /* GL_EXT_texture_filter_anisotropic */ -/* GL_EXT_texture_format_BGRA8888 */ - - -/* GL_EXT_read_format_bgra */ - - -/* GL_EXT_multi_draw_arrays */ - -GLAPI void glMultiDrawArraysEXT(GLenum, const GLint *, const GLsizei *, GLsizei); -GLAPI void glMultiDrawElementsEXT(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei); - -/* GL_EXT_debug_label */ - -GLAPI void glLabelObjectEXT(GLenum, GLuint, GLsizei, const GLchar *); -GLAPI void glGetObjectLabelEXT(GLenum, GLuint, GLsizei, GLsizei *, GLchar *); - -/* GL_EXT_debug_marker */ - -GLAPI void glInsertEventMarkerEXT(GLsizei, const GLchar *); -GLAPI void glPushGroupMarkerEXT(GLsizei, const GLchar *); -GLAPI void glPopGroupMarkerEXT(void); - -/* GL_EXT_disjoint_timer_query */ - -GLAPI void glQueryCounterEXT(GLuint, GLenum); -GLAPI void glGetQueryObjectivEXT(GLuint, GLenum, GLint *); -GLAPI void glGetQueryObjecti64vEXT(GLuint, GLenum, GLint64 *); -GLAPI void glGetQueryObjectui64vEXT(GLuint, GLenum, GLuint64 *); - -/* GL_EXT_texture_sRGB_decode */ - - -/* GL_EXT_separate_shader_objects */ - -GLAPI void glUseShaderProgramEXT(GLenum, GLuint); -GLAPI void glActiveProgramEXT(GLuint); -GLAPI GLuint glCreateShaderProgramEXT(GLenum, const GLchar *); -GLAPI void glActiveShaderProgramEXT(GLuint, GLuint); -GLAPI void glBindProgramPipelineEXT(GLuint); -GLAPI GLuint glCreateShaderProgramvEXT(GLenum, GLsizei, const GLchar **); -GLAPI void glDeleteProgramPipelinesEXT(GLsizei, const GLuint *); -GLAPI void glGenProgramPipelinesEXT(GLsizei, GLuint *); -GLAPI void glGetProgramPipelineInfoLogEXT(GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI void glGetProgramPipelineivEXT(GLuint, GLenum, GLint *); -GLAPI GLboolean glIsProgramPipelineEXT(GLuint); -GLAPI void glProgramParameteriEXT(GLuint, GLenum, GLint); -GLAPI void glProgramUniform1fEXT(GLuint, GLint, GLfloat); -GLAPI void glProgramUniform1fvEXT(GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void glProgramUniform1iEXT(GLuint, GLint, GLint); -GLAPI void glProgramUniform1ivEXT(GLuint, GLint, GLsizei, const GLint *); -GLAPI void glProgramUniform2fEXT(GLuint, GLint, GLfloat, GLfloat); -GLAPI void glProgramUniform2fvEXT(GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void glProgramUniform2iEXT(GLuint, GLint, GLint, GLint); -GLAPI void glProgramUniform2ivEXT(GLuint, GLint, GLsizei, const GLint *); -GLAPI void glProgramUniform3fEXT(GLuint, GLint, GLfloat, GLfloat, GLfloat); -GLAPI void glProgramUniform3fvEXT(GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void glProgramUniform3iEXT(GLuint, GLint, GLint, GLint, GLint); -GLAPI void glProgramUniform3ivEXT(GLuint, GLint, GLsizei, const GLint *); -GLAPI void glProgramUniform4fEXT(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void glProgramUniform4fvEXT(GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void glProgramUniform4iEXT(GLuint, GLint, GLint, GLint, GLint, GLint); -GLAPI void glProgramUniform4ivEXT(GLuint, GLint, GLsizei, const GLint *); -GLAPI void glProgramUniformMatrix2fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glProgramUniformMatrix3fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glProgramUniformMatrix4fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glUseProgramStagesEXT(GLuint, GLbitfield, GLuint); -GLAPI void glValidateProgramPipelineEXT(GLuint); -GLAPI void glProgramUniform1uiEXT(GLuint, GLint, GLuint); -GLAPI void glProgramUniform2uiEXT(GLuint, GLint, GLuint, GLuint); -GLAPI void glProgramUniform3uiEXT(GLuint, GLint, GLuint, GLuint, GLuint); -GLAPI void glProgramUniform4uiEXT(GLuint, GLint, GLuint, GLuint, GLuint, GLuint); -GLAPI void glProgramUniform1uivEXT(GLuint, GLint, GLsizei, const GLuint *); -GLAPI void glProgramUniform2uivEXT(GLuint, GLint, GLsizei, const GLuint *); -GLAPI void glProgramUniform3uivEXT(GLuint, GLint, GLsizei, const GLuint *); -GLAPI void glProgramUniform4uivEXT(GLuint, GLint, GLsizei, const GLuint *); -GLAPI void glProgramUniformMatrix2x3fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glProgramUniformMatrix3x2fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glProgramUniformMatrix2x4fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glProgramUniformMatrix4x2fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glProgramUniformMatrix3x4fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void glProgramUniformMatrix4x3fvEXT(GLuint, GLint, GLsizei, GLboolean, const GLfloat *); - /* GL_EXT_sRGB */ -/* GL_EXT_multisampled_render_to_texture */ - -GLAPI void glRenderbufferStorageMultisampleEXT(GLenum, GLsizei, GLenum, GLsizei, GLsizei); -GLAPI void glFramebufferTexture2DMultisampleEXT(GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); - -/* GL_EXT_robustness */ - -GLAPI GLenum glGetGraphicsResetStatusEXT(void); -GLAPI void glReadnPixelsEXT(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, void *); -GLAPI void glGetnUniformfvEXT(GLuint, GLint, GLsizei, GLfloat *); -GLAPI void glGetnUniformivEXT(GLuint, GLint, GLsizei, GLint *); - -/* GL_KHR_debug */ - -GLAPI void glDebugMessageControl(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean); -GLAPI void glDebugMessageInsert(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *); -GLAPI void glDebugMessageCallback(GLDEBUGPROC, const void *); -GLAPI GLuint glGetDebugMessageLog(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *); -GLAPI void glPushDebugGroup(GLenum, GLuint, GLsizei, const GLchar *); -GLAPI void glPopDebugGroup(void); -GLAPI void glObjectLabel(GLenum, GLuint, GLsizei, const GLchar *); -GLAPI void glGetObjectLabel(GLenum, GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI void glObjectPtrLabel(const void *, GLsizei, const GLchar *); -GLAPI void glGetObjectPtrLabel(const void *, GLsizei, GLsizei *, GLchar *); -GLAPI void glGetPointerv(GLenum, void **); -GLAPI void glDebugMessageControlKHR(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean); -GLAPI void glDebugMessageInsertKHR(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *); -GLAPI void glDebugMessageCallbackKHR(GLDEBUGPROCKHR, const void *); -GLAPI GLuint glGetDebugMessageLogKHR(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *); -GLAPI void glPushDebugGroupKHR(GLenum, GLuint, GLsizei, const GLchar *); -GLAPI void glPopDebugGroupKHR(void); -GLAPI void glObjectLabelKHR(GLenum, GLuint, GLsizei, const GLchar *); -GLAPI void glGetObjectLabelKHR(GLenum, GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI void glObjectPtrLabelKHR(const void *, GLsizei, const GLchar *); -GLAPI void glGetObjectPtrLabelKHR(const void *, GLsizei, GLsizei *, GLchar *); -GLAPI void glGetPointervKHR(GLenum, void **); - -/* GL_NV_read_buffer_front */ - - -/* GL_NV_read_depth */ - - -/* GL_NV_read_stencil */ - - -/* GL_NV_read_depth_stencil */ - - -/* GL_NV_texture_border_clamp */ - - -/* GL_OES_depth32 */ - - -/* GL_OES_mapbuffer */ - -GLAPI void * glMapBufferOES(GLenum, GLenum); -GLAPI GLboolean glUnmapBufferOES(GLenum); -GLAPI void glGetBufferPointervOES(GLenum, GLenum, void **); - -/* GL_OES_stencil1 */ - - -/* GL_OES_stencil4 */ - - #ifdef __cplusplus } #endif