From 54423f65836869ef354ba7243af6667e66dfe8f8 Mon Sep 17 00:00:00 2001 From: reuk Date: Wed, 19 May 2021 14:47:35 +0100 Subject: [PATCH] OpenGL: Add GLEW-inspired dynamic function loading --- BREAKING-CHANGES.txt | 33 + examples/GUI/OpenGLAppDemo.h | 125 +- examples/GUI/OpenGLDemo.h | 127 +- modules/juce_opengl/juce_opengl.cpp | 73 +- modules/juce_opengl/juce_opengl.h | 71 +- .../native/juce_MissingGLDefinitions.h | 170 - .../native/juce_OpenGLExtensions.h | 179 +- modules/juce_opengl/native/juce_OpenGL_ios.h | 1 + modules/juce_opengl/native/juce_OpenGL_osx.h | 2 - .../juce_opengl/opengl/juce_OpenGLContext.cpp | 12 +- .../opengl/juce_OpenGLFrameBuffer.cpp | 6 +- .../opengl/juce_OpenGLGraphicsContext.cpp | 20 +- .../juce_opengl/opengl/juce_OpenGLHelpers.cpp | 4 - .../opengl/juce_OpenGLShaderProgram.cpp | 6 +- .../juce_opengl/opengl/juce_OpenGLTexture.cpp | 2 +- modules/juce_opengl/opengl/juce_gl.cpp | 4063 ++++++ modules/juce_opengl/opengl/juce_gl.h | 11981 ++++++++++++++++ modules/juce_opengl/opengl/juce_gles2.cpp | 1406 ++ modules/juce_opengl/opengl/juce_gles2.h | 5243 +++++++ modules/juce_opengl/opengl/juce_khrplatform.h | 290 + modules/juce_opengl/opengl/juce_wgl.h | 645 + 21 files changed, 23934 insertions(+), 525 deletions(-) delete mode 100644 modules/juce_opengl/native/juce_MissingGLDefinitions.h create mode 100644 modules/juce_opengl/opengl/juce_gl.cpp create mode 100644 modules/juce_opengl/opengl/juce_gl.h create mode 100644 modules/juce_opengl/opengl/juce_gles2.cpp create mode 100644 modules/juce_opengl/opengl/juce_gles2.h create mode 100644 modules/juce_opengl/opengl/juce_khrplatform.h create mode 100644 modules/juce_opengl/opengl/juce_wgl.h diff --git a/BREAKING-CHANGES.txt b/BREAKING-CHANGES.txt index 6f33212989..671c33f2cd 100644 --- a/BREAKING-CHANGES.txt +++ b/BREAKING-CHANGES.txt @@ -4,6 +4,39 @@ JUCE breaking changes Develop ======= +Change +------ +Platform GL headers are no longer included in juce_opengl.h + +Possible Issues +--------------- +Projects depending on symbols declared in these headers may fail to build. + +Workaround +---------- +The old platform-supplied headers have been replaced with a new juce_gl.h +header which is generated using the XML registry files supplied by Khronos. +This custom header declares GL symbols in the juce::gl namespace. If your code +only needs to be JUCE-compatible, you can explicitly qualify each name with +`juce::gl::`. If you need your code to build with different extension-loader +libraries (GLEW, GL3W etc.) you can make all GL symbols visible without +additional qualification with `using namespace juce::gl`. + +Rationale +--------- +Using our own GL headers allows us to generate platform-independent headers +which include symbols for all specified OpenGL versions and extensions. Note +that although the function signatures exist, they may not resolve to a function +at runtime. If your code uses commands from an extension or recent GL version, +you should check each function pointer against `nullptr` before attempting to +use it. To avoid repeatedly checking, you could query a subset of functions +after calling gl::loadFunctions() and cache the results. Supplying custom GL +headers also allows us to use C++ techniques (namespaces, references), making +the headers safer than the platform-defined headers. Platform headers are +generally written in C, and export a significant portion of their symbols as +preprocessor definitions. + + Change ------ The functions `getComponentAsyncLayerBackedViewDisabled` diff --git a/examples/GUI/OpenGLAppDemo.h b/examples/GUI/OpenGLAppDemo.h index f32029e542..4828dd4301 100644 --- a/examples/GUI/OpenGLAppDemo.h +++ b/examples/GUI/OpenGLAppDemo.h @@ -99,6 +99,8 @@ public: void render() override { + using namespace ::juce::gl; + jassert (OpenGLHelpers::isContextActive()); auto desktopScale = (float) openGLContext.getRenderingScale(); @@ -117,11 +119,11 @@ public: if (uniforms->viewMatrix.get() != nullptr) uniforms->viewMatrix->setMatrix4 (getViewMatrix().mat, 1, false); - shape->draw (openGLContext, *attributes); + shape->draw (*attributes); // Reset the element buffers so child Components draw correctly - openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, 0); - openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); + glBindBuffer (GL_ARRAY_BUFFER, 0); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); } @@ -197,9 +199,9 @@ public: shader.reset (newShader.release()); shader->use(); - shape .reset (new Shape (openGLContext)); - attributes.reset (new Attributes (openGLContext, *shader)); - uniforms .reset (new Uniforms (openGLContext, *shader)); + shape .reset (new Shape()); + attributes.reset (new Attributes (*shader)); + uniforms .reset (new Uniforms (*shader)); statusText = "GLSL: v" + String (OpenGLShaderProgram::getLanguageVersion(), 2); } @@ -224,57 +226,62 @@ private: // This class just manages the attributes that the shaders use. struct Attributes { - Attributes (OpenGLContext& openGLContext, OpenGLShaderProgram& shaderProgram) + explicit Attributes (OpenGLShaderProgram& shaderProgram) { - position .reset (createAttribute (openGLContext, shaderProgram, "position")); - normal .reset (createAttribute (openGLContext, shaderProgram, "normal")); - sourceColour .reset (createAttribute (openGLContext, shaderProgram, "sourceColour")); - textureCoordIn.reset (createAttribute (openGLContext, shaderProgram, "textureCoordIn")); + position .reset (createAttribute (shaderProgram, "position")); + normal .reset (createAttribute (shaderProgram, "normal")); + sourceColour .reset (createAttribute (shaderProgram, "sourceColour")); + textureCoordIn.reset (createAttribute (shaderProgram, "textureCoordIn")); } - void enable (OpenGLContext& glContext) + void enable() { + using namespace ::juce::gl; + if (position.get() != nullptr) { - glContext.extensions.glVertexAttribPointer (position->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), nullptr); - glContext.extensions.glEnableVertexAttribArray (position->attributeID); + glVertexAttribPointer (position->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), nullptr); + glEnableVertexAttribArray (position->attributeID); } if (normal.get() != nullptr) { - glContext.extensions.glVertexAttribPointer (normal->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 3)); - glContext.extensions.glEnableVertexAttribArray (normal->attributeID); + glVertexAttribPointer (normal->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 3)); + glEnableVertexAttribArray (normal->attributeID); } if (sourceColour.get() != nullptr) { - glContext.extensions.glVertexAttribPointer (sourceColour->attributeID, 4, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 6)); - glContext.extensions.glEnableVertexAttribArray (sourceColour->attributeID); + glVertexAttribPointer (sourceColour->attributeID, 4, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 6)); + glEnableVertexAttribArray (sourceColour->attributeID); } if (textureCoordIn.get() != nullptr) { - glContext.extensions.glVertexAttribPointer (textureCoordIn->attributeID, 2, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 10)); - glContext.extensions.glEnableVertexAttribArray (textureCoordIn->attributeID); + glVertexAttribPointer (textureCoordIn->attributeID, 2, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 10)); + glEnableVertexAttribArray (textureCoordIn->attributeID); } } - void disable (OpenGLContext& glContext) + void disable() { - if (position.get() != nullptr) glContext.extensions.glDisableVertexAttribArray (position->attributeID); - if (normal.get() != nullptr) glContext.extensions.glDisableVertexAttribArray (normal->attributeID); - if (sourceColour.get() != nullptr) glContext.extensions.glDisableVertexAttribArray (sourceColour->attributeID); - if (textureCoordIn.get() != nullptr) glContext.extensions.glDisableVertexAttribArray (textureCoordIn->attributeID); + using namespace ::juce::gl; + + if (position.get() != nullptr) glDisableVertexAttribArray (position->attributeID); + if (normal.get() != nullptr) glDisableVertexAttribArray (normal->attributeID); + if (sourceColour.get() != nullptr) glDisableVertexAttribArray (sourceColour->attributeID); + if (textureCoordIn.get() != nullptr) glDisableVertexAttribArray (textureCoordIn->attributeID); } std::unique_ptr position, normal, sourceColour, textureCoordIn; private: - static OpenGLShaderProgram::Attribute* createAttribute (OpenGLContext& openGLContext, - OpenGLShaderProgram& shader, + static OpenGLShaderProgram::Attribute* createAttribute (OpenGLShaderProgram& shader, const char* attributeName) { - if (openGLContext.extensions.glGetAttribLocation (shader.getProgramID(), attributeName) < 0) + using namespace ::juce::gl; + + if (glGetAttribLocation (shader.getProgramID(), attributeName) < 0) return nullptr; return new OpenGLShaderProgram::Attribute (shader, attributeName); @@ -285,20 +292,21 @@ private: // This class just manages the uniform values that the demo shaders use. struct Uniforms { - Uniforms (OpenGLContext& openGLContext, OpenGLShaderProgram& shaderProgram) + explicit Uniforms (OpenGLShaderProgram& shaderProgram) { - projectionMatrix.reset (createUniform (openGLContext, shaderProgram, "projectionMatrix")); - viewMatrix .reset (createUniform (openGLContext, shaderProgram, "viewMatrix")); + projectionMatrix.reset (createUniform (shaderProgram, "projectionMatrix")); + viewMatrix .reset (createUniform (shaderProgram, "viewMatrix")); } std::unique_ptr projectionMatrix, viewMatrix; private: - static OpenGLShaderProgram::Uniform* createUniform (OpenGLContext& openGLContext, - OpenGLShaderProgram& shaderProgram, + static OpenGLShaderProgram::Uniform* createUniform (OpenGLShaderProgram& shaderProgram, const char* uniformName) { - if (openGLContext.extensions.glGetUniformLocation (shaderProgram.getProgramID(), uniformName) < 0) + using namespace ::juce::gl; + + if (glGetUniformLocation (shaderProgram.getProgramID(), uniformName) < 0) return nullptr; return new OpenGLShaderProgram::Uniform (shaderProgram, uniformName); @@ -311,64 +319,71 @@ private: */ struct Shape { - Shape (OpenGLContext& glContext) + Shape() { if (shapeFile.load (loadEntireAssetIntoString ("teapot.obj")).wasOk()) for (auto* shapeVertices : shapeFile.shapes) - vertexBuffers.add (new VertexBuffer (glContext, *shapeVertices)); + vertexBuffers.add (new VertexBuffer (*shapeVertices)); } - void draw (OpenGLContext& glContext, Attributes& glAttributes) + void draw (Attributes& glAttributes) { + using namespace ::juce::gl; + for (auto* vertexBuffer : vertexBuffers) { vertexBuffer->bind(); - glAttributes.enable (glContext); + glAttributes.enable(); glDrawElements (GL_TRIANGLES, vertexBuffer->numIndices, GL_UNSIGNED_INT, nullptr); - glAttributes.disable (glContext); + glAttributes.disable(); } } private: struct VertexBuffer { - VertexBuffer (OpenGLContext& context, WavefrontObjFile::Shape& aShape) : openGLContext (context) + explicit VertexBuffer (WavefrontObjFile::Shape& aShape) { + using namespace ::juce::gl; + numIndices = aShape.mesh.indices.size(); - openGLContext.extensions.glGenBuffers (1, &vertexBuffer); - openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); + glGenBuffers (1, &vertexBuffer); + glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); Array vertices; createVertexListFromMesh (aShape.mesh, vertices, Colours::green); - openGLContext.extensions.glBufferData (GL_ARRAY_BUFFER, - static_cast (static_cast (vertices.size()) * sizeof (Vertex)), - vertices.getRawDataPointer(), GL_STATIC_DRAW); + glBufferData (GL_ARRAY_BUFFER, + static_cast (static_cast (vertices.size()) * sizeof (Vertex)), + vertices.getRawDataPointer(), GL_STATIC_DRAW); - openGLContext.extensions.glGenBuffers (1, &indexBuffer); - openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); - openGLContext.extensions.glBufferData (GL_ELEMENT_ARRAY_BUFFER, - static_cast (static_cast (numIndices) * sizeof (juce::uint32)), - aShape.mesh.indices.getRawDataPointer(), GL_STATIC_DRAW); + glGenBuffers (1, &indexBuffer); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); + glBufferData (GL_ELEMENT_ARRAY_BUFFER, + static_cast (static_cast (numIndices) * sizeof (juce::uint32)), + aShape.mesh.indices.getRawDataPointer(), GL_STATIC_DRAW); } ~VertexBuffer() { - openGLContext.extensions.glDeleteBuffers (1, &vertexBuffer); - openGLContext.extensions.glDeleteBuffers (1, &indexBuffer); + using namespace ::juce::gl; + + glDeleteBuffers (1, &vertexBuffer); + glDeleteBuffers (1, &indexBuffer); } void bind() { - openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); - openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); + using namespace ::juce::gl; + + glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); } GLuint vertexBuffer, indexBuffer; int numIndices; - OpenGLContext& openGLContext; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (VertexBuffer) }; diff --git a/examples/GUI/OpenGLDemo.h b/examples/GUI/OpenGLDemo.h index 639131f35d..bf6cb26836 100644 --- a/examples/GUI/OpenGLDemo.h +++ b/examples/GUI/OpenGLDemo.h @@ -69,57 +69,62 @@ struct OpenGLUtils // This class just manages the attributes that the demo shaders use. struct Attributes { - Attributes (OpenGLContext& openGLContext, OpenGLShaderProgram& shader) + explicit Attributes (OpenGLShaderProgram& shader) { - position .reset (createAttribute (openGLContext, shader, "position")); - normal .reset (createAttribute (openGLContext, shader, "normal")); - sourceColour .reset (createAttribute (openGLContext, shader, "sourceColour")); - textureCoordIn.reset (createAttribute (openGLContext, shader, "textureCoordIn")); + position .reset (createAttribute (shader, "position")); + normal .reset (createAttribute (shader, "normal")); + sourceColour .reset (createAttribute (shader, "sourceColour")); + textureCoordIn.reset (createAttribute (shader, "textureCoordIn")); } - void enable (OpenGLContext& openGLContext) + void enable() { + using namespace ::juce::gl; + if (position.get() != nullptr) { - openGLContext.extensions.glVertexAttribPointer (position->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), nullptr); - openGLContext.extensions.glEnableVertexAttribArray (position->attributeID); + glVertexAttribPointer (position->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), nullptr); + glEnableVertexAttribArray (position->attributeID); } if (normal.get() != nullptr) { - openGLContext.extensions.glVertexAttribPointer (normal->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 3)); - openGLContext.extensions.glEnableVertexAttribArray (normal->attributeID); + glVertexAttribPointer (normal->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 3)); + glEnableVertexAttribArray (normal->attributeID); } if (sourceColour.get() != nullptr) { - openGLContext.extensions.glVertexAttribPointer (sourceColour->attributeID, 4, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 6)); - openGLContext.extensions.glEnableVertexAttribArray (sourceColour->attributeID); + glVertexAttribPointer (sourceColour->attributeID, 4, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 6)); + glEnableVertexAttribArray (sourceColour->attributeID); } if (textureCoordIn.get() != nullptr) { - openGLContext.extensions.glVertexAttribPointer (textureCoordIn->attributeID, 2, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 10)); - openGLContext.extensions.glEnableVertexAttribArray (textureCoordIn->attributeID); + glVertexAttribPointer (textureCoordIn->attributeID, 2, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 10)); + glEnableVertexAttribArray (textureCoordIn->attributeID); } } - void disable (OpenGLContext& openGLContext) + void disable() { - if (position.get() != nullptr) openGLContext.extensions.glDisableVertexAttribArray (position->attributeID); - if (normal.get() != nullptr) openGLContext.extensions.glDisableVertexAttribArray (normal->attributeID); - if (sourceColour.get() != nullptr) openGLContext.extensions.glDisableVertexAttribArray (sourceColour->attributeID); - if (textureCoordIn.get() != nullptr) openGLContext.extensions.glDisableVertexAttribArray (textureCoordIn->attributeID); + using namespace ::juce::gl; + + if (position.get() != nullptr) glDisableVertexAttribArray (position->attributeID); + if (normal.get() != nullptr) glDisableVertexAttribArray (normal->attributeID); + if (sourceColour.get() != nullptr) glDisableVertexAttribArray (sourceColour->attributeID); + if (textureCoordIn.get() != nullptr) glDisableVertexAttribArray (textureCoordIn->attributeID); } std::unique_ptr position, normal, sourceColour, textureCoordIn; private: - static OpenGLShaderProgram::Attribute* createAttribute (OpenGLContext& openGLContext, - OpenGLShaderProgram& shader, + static OpenGLShaderProgram::Attribute* createAttribute (OpenGLShaderProgram& shader, const char* attributeName) { - if (openGLContext.extensions.glGetAttribLocation (shader.getProgramID(), attributeName) < 0) + using namespace ::juce::gl; + + if (glGetAttribLocation (shader.getProgramID(), attributeName) < 0) return nullptr; return new OpenGLShaderProgram::Attribute (shader, attributeName); @@ -130,23 +135,24 @@ struct OpenGLUtils // This class just manages the uniform values that the demo shaders use. struct Uniforms { - Uniforms (OpenGLContext& openGLContext, OpenGLShaderProgram& shader) + explicit Uniforms (OpenGLShaderProgram& shader) { - projectionMatrix.reset (createUniform (openGLContext, shader, "projectionMatrix")); - viewMatrix .reset (createUniform (openGLContext, shader, "viewMatrix")); - texture .reset (createUniform (openGLContext, shader, "demoTexture")); - lightPosition .reset (createUniform (openGLContext, shader, "lightPosition")); - bouncingNumber .reset (createUniform (openGLContext, shader, "bouncingNumber")); + projectionMatrix.reset (createUniform (shader, "projectionMatrix")); + viewMatrix .reset (createUniform (shader, "viewMatrix")); + texture .reset (createUniform (shader, "demoTexture")); + lightPosition .reset (createUniform (shader, "lightPosition")); + bouncingNumber .reset (createUniform (shader, "bouncingNumber")); } std::unique_ptr projectionMatrix, viewMatrix, texture, lightPosition, bouncingNumber; private: - static OpenGLShaderProgram::Uniform* createUniform (OpenGLContext& openGLContext, - OpenGLShaderProgram& shader, + static OpenGLShaderProgram::Uniform* createUniform (OpenGLShaderProgram& shader, const char* uniformName) { - if (openGLContext.extensions.glGetUniformLocation (shader.getProgramID(), uniformName) < 0) + using namespace ::juce::gl; + + if (glGetUniformLocation (shader.getProgramID(), uniformName) < 0) return nullptr; return new OpenGLShaderProgram::Uniform (shader, uniformName); @@ -159,62 +165,69 @@ struct OpenGLUtils */ struct Shape { - Shape (OpenGLContext& openGLContext) + Shape() { if (shapeFile.load (loadEntireAssetIntoString ("teapot.obj")).wasOk()) for (auto* s : shapeFile.shapes) - vertexBuffers.add (new VertexBuffer (openGLContext, *s)); + vertexBuffers.add (new VertexBuffer (*s)); } - void draw (OpenGLContext& openGLContext, Attributes& attributes) + void draw (Attributes& attributes) { + using namespace ::juce::gl; + for (auto* vertexBuffer : vertexBuffers) { vertexBuffer->bind(); - attributes.enable (openGLContext); + attributes.enable(); glDrawElements (GL_TRIANGLES, vertexBuffer->numIndices, GL_UNSIGNED_INT, nullptr); - attributes.disable (openGLContext); + attributes.disable(); } } private: struct VertexBuffer { - VertexBuffer (OpenGLContext& context, WavefrontObjFile::Shape& shape) : openGLContext (context) + explicit VertexBuffer (WavefrontObjFile::Shape& shape) { + using namespace ::juce::gl; + numIndices = shape.mesh.indices.size(); - openGLContext.extensions.glGenBuffers (1, &vertexBuffer); - openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); + glGenBuffers (1, &vertexBuffer); + glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); Array vertices; createVertexListFromMesh (shape.mesh, vertices, Colours::green); - openGLContext.extensions.glBufferData (GL_ARRAY_BUFFER, vertices.size() * (int) sizeof (Vertex), - vertices.getRawDataPointer(), GL_STATIC_DRAW); + glBufferData (GL_ARRAY_BUFFER, vertices.size() * (int) sizeof (Vertex), + vertices.getRawDataPointer(), GL_STATIC_DRAW); - openGLContext.extensions.glGenBuffers (1, &indexBuffer); - openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); - openGLContext.extensions.glBufferData (GL_ELEMENT_ARRAY_BUFFER, numIndices * (int) sizeof (juce::uint32), + glGenBuffers (1, &indexBuffer); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); + glBufferData (GL_ELEMENT_ARRAY_BUFFER, numIndices * (int) sizeof (juce::uint32), shape.mesh.indices.getRawDataPointer(), GL_STATIC_DRAW); } ~VertexBuffer() { - openGLContext.extensions.glDeleteBuffers (1, &vertexBuffer); - openGLContext.extensions.glDeleteBuffers (1, &indexBuffer); + using namespace ::juce::gl; + + glDeleteBuffers (1, &vertexBuffer); + glDeleteBuffers (1, &indexBuffer); } void bind() { - openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); - openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); + using namespace ::juce::gl; + + glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); } GLuint vertexBuffer, indexBuffer; int numIndices; - OpenGLContext& openGLContext; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (VertexBuffer) }; @@ -801,6 +814,8 @@ public: // to do your GL rendering. void renderOpenGL() override { + using namespace ::juce::gl; + jassert (OpenGLHelpers::isContextActive()); auto desktopScale = (float) openGLContext.getRenderingScale(); @@ -827,7 +842,7 @@ public: glDepthFunc (GL_LESS); glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - openGLContext.extensions.glActiveTexture (GL_TEXTURE0); + glActiveTexture (GL_TEXTURE0); glEnable (GL_TEXTURE_2D); glViewport (0, 0, roundToInt (desktopScale * (float) getWidth()), roundToInt (desktopScale * (float) getHeight())); @@ -854,11 +869,11 @@ public: if (uniforms->bouncingNumber.get() != nullptr) uniforms->bouncingNumber->set (bouncingNumber.getValue()); - shape->draw (openGLContext, *attributes); + shape->draw (*attributes); // Reset the element buffers so child Components draw correctly - openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, 0); - openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); + glBindBuffer (GL_ARRAY_BUFFER, 0); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); if (! controlsOverlay->isMouseButtonDown()) rotation += (float) rotationSpeed; @@ -1236,9 +1251,9 @@ private: shader.reset (newShader.release()); shader->use(); - shape .reset (new OpenGLUtils::Shape (openGLContext)); - attributes.reset (new OpenGLUtils::Attributes (openGLContext, *shader)); - uniforms .reset (new OpenGLUtils::Uniforms (openGLContext, *shader)); + shape .reset (new OpenGLUtils::Shape ()); + attributes.reset (new OpenGLUtils::Attributes (*shader)); + uniforms .reset (new OpenGLUtils::Uniforms (*shader)); statusText = "GLSL: v" + String (OpenGLShaderProgram::getLanguageVersion(), 2); } diff --git a/modules/juce_opengl/juce_opengl.cpp b/modules/juce_opengl/juce_opengl.cpp index 966e096106..76a3c8d05a 100644 --- a/modules/juce_opengl/juce_opengl.cpp +++ b/modules/juce_opengl/juce_opengl.cpp @@ -41,6 +41,20 @@ #include "juce_opengl.h" +#define JUCE_STATIC_LINK_GL_VERSION_1_0 1 +#define JUCE_STATIC_LINK_GL_VERSION_1_1 1 + +#define JUCE_STATIC_LINK_GL_ES_VERSION_2_0 1 +#if !JUCE_ANDROID || JUCE_ANDROID_GL_ES_VERSION_3_0 +#define JUCE_STATIC_LINK_GL_ES_VERSION_3_0 1 +#endif + +#if JUCE_OPENGL_ES + #include "opengl/juce_gles2.cpp" +#else + #include "opengl/juce_gl.cpp" +#endif + //============================================================================== #if JUCE_IOS #import @@ -69,63 +83,27 @@ //============================================================================== #elif JUCE_ANDROID - #ifndef GL_GLEXT_PROTOTYPES - #define GL_GLEXT_PROTOTYPES 1 - #endif - - #if JUCE_ANDROID_GL_ES_VERSION_3_0 - #include - - // workaround for a bug in SDK 18 and 19 - // see: https://stackoverflow.com/questions/31003863/gles-3-0-including-gl2ext-h - #define __gl2_h_ - #include - #else - #include - #endif + #include + #include + #include #endif //============================================================================== namespace juce { +using namespace ::juce::gl; + void OpenGLExtensionFunctions::initialise() { - #if JUCE_WINDOWS || JUCE_LINUX || JUCE_BSD - #define JUCE_INIT_GL_FUNCTION(name, returnType, params, callparams) \ - name = (type_ ## name) OpenGLHelpers::getExtensionFunction (#name); - - JUCE_GL_BASE_FUNCTIONS (JUCE_INIT_GL_FUNCTION) - #undef JUCE_INIT_GL_FUNCTION - - #define JUCE_INIT_GL_FUNCTION(name, returnType, params, callparams) \ - name = (type_ ## name) OpenGLHelpers::getExtensionFunction (#name); \ - if (name == nullptr) \ - name = (type_ ## name) OpenGLHelpers::getExtensionFunction (JUCE_STRINGIFY (name ## EXT)); - - JUCE_GL_EXTENSION_FUNCTIONS (JUCE_INIT_GL_FUNCTION) - #if JUCE_OPENGL3 - JUCE_GL_VERTEXBUFFER_FUNCTIONS (JUCE_INIT_GL_FUNCTION) - #endif - - #undef JUCE_INIT_GL_FUNCTION - #endif + gl::loadFunctions(); } -#if JUCE_OPENGL_ES - #define JUCE_DECLARE_GL_FUNCTION(name, returnType, params, callparams) \ - returnType OpenGLExtensionFunctions::name params noexcept { return ::name callparams; } - - JUCE_GL_BASE_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - JUCE_GL_EXTENSION_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) -#if JUCE_OPENGL3 - JUCE_GL_VERTEXBUFFER_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) -#endif - - #undef JUCE_DECLARE_GL_FUNCTION -#endif - -#undef JUCE_GL_EXTENSION_FUNCTIONS +#define X(name) decltype (::juce::gl::name)& OpenGLExtensionFunctions::name = ::juce::gl::name; +JUCE_GL_BASE_FUNCTIONS +JUCE_GL_EXTENSION_FUNCTIONS +JUCE_GL_VERTEXBUFFER_FUNCTIONS +#undef X #if JUCE_DEBUG && ! defined (JUCE_CHECK_OPENGL_ERROR) static const char* getGLErrorMessage (const GLenum e) noexcept @@ -271,6 +249,7 @@ private: #endif #elif JUCE_WINDOWS + #include "opengl/juce_wgl.h" #include "native/juce_OpenGL_win32.h" #elif JUCE_LINUX || JUCE_BSD diff --git a/modules/juce_opengl/juce_opengl.h b/modules/juce_opengl/juce_opengl.h index 701660fe22..5239c603f7 100644 --- a/modules/juce_opengl/juce_opengl.h +++ b/modules/juce_opengl/juce_opengl.h @@ -55,82 +55,28 @@ #pragma once #define JUCE_OPENGL_H_INCLUDED -#include +#include #undef JUCE_OPENGL #define JUCE_OPENGL 1 #if JUCE_IOS || JUCE_ANDROID #define JUCE_OPENGL_ES 1 + #include "opengl/juce_gles2.h" +#else + #include "opengl/juce_gl.h" #endif -#if JUCE_WINDOWS - #ifndef APIENTRY - #define APIENTRY __stdcall - #define CLEAR_TEMP_APIENTRY 1 - #endif - #ifndef WINGDIAPI - #define WINGDIAPI __declspec(dllimport) - #define CLEAR_TEMP_WINGDIAPI 1 - #endif - - #if JUCE_MINGW - #include - #else - #include - #endif - - #ifdef CLEAR_TEMP_WINGDIAPI - #undef WINGDIAPI - #undef CLEAR_TEMP_WINGDIAPI - #endif - #ifdef CLEAR_TEMP_APIENTRY - #undef APIENTRY - #undef CLEAR_TEMP_APIENTRY - #endif -#elif JUCE_LINUX || JUCE_BSD - #include - #undef KeyPress -#elif JUCE_IOS - #if defined (__IPHONE_12_0) && __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_12_0 - #define GLES_SILENCE_DEPRECATION 1 - #endif - #include -#elif JUCE_MAC - #define JUCE_OPENGL3 1 - #if defined (MAC_OS_X_VERSION_10_14) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_14 - #define GL_SILENCE_DEPRECATION 1 - #endif - #include - #include -#elif JUCE_ANDROID - #include - #include - #if JUCE_ANDROID_GL_ES_VERSION_3_0 - #define JUCE_OPENGL3 1 - #include - #else - #include - #endif - #include -#endif - -#if GL_ES_VERSION_3_0 - #define JUCE_OPENGL3 1 -#endif +#include //============================================================================== /** This macro is a helper for use in GLSL shader code which needs to compile on both OpenGL 2.1 and OpenGL 3.0. It's mandatory in OpenGL 3.0 to specify the GLSL version. */ -#if JUCE_OPENGL3 - #if JUCE_OPENGL_ES - #define JUCE_GLSL_VERSION "#version 300 es" - #else - #define JUCE_GLSL_VERSION "#version 150" - #endif +#if JUCE_OPENGL_ES + #define JUCE_GLSL_VERSION "#version 300 es" #else - #define JUCE_GLSL_VERSION "" + #define JUCE_GLSL_VERSION "#version 150" #endif //============================================================================== @@ -170,7 +116,6 @@ namespace juce #include "geometry/juce_Matrix3D.h" #include "geometry/juce_Quaternion.h" #include "geometry/juce_Draggable3DOrientation.h" -#include "native/juce_MissingGLDefinitions.h" #include "opengl/juce_OpenGLHelpers.h" #include "opengl/juce_OpenGLPixelFormat.h" #include "native/juce_OpenGLExtensions.h" diff --git a/modules/juce_opengl/native/juce_MissingGLDefinitions.h b/modules/juce_opengl/native/juce_MissingGLDefinitions.h deleted file mode 100644 index c23ec097a3..0000000000 --- a/modules/juce_opengl/native/juce_MissingGLDefinitions.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library. - Copyright (c) 2020 - Raw Material Software Limited - - JUCE is an open source library subject to commercial or open-source - licensing. - - By using JUCE, you agree to the terms of both the JUCE 6 End-User License - Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). - - End User License Agreement: www.juce.com/juce-6-licence - Privacy Policy: www.juce.com/juce-privacy-policy - - Or: You may also use this code under the terms of the GPL v3 (see - www.gnu.org/licenses). - - JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER - EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE - DISCLAIMED. - - ============================================================================== -*/ - -namespace juce -{ - -/** These are important openGL values that aren't defined by default - by the GL headers on various platforms. -*/ -enum MissingOpenGLDefinitions -{ - #ifndef GL_CLAMP_TO_EDGE - GL_CLAMP_TO_EDGE = 0x812f, - #endif - - #ifndef GL_NUM_EXTENSIONS - GL_NUM_EXTENSIONS = 0x821d, - #endif - - #ifndef GL_BGRA_EXT - GL_BGRA_EXT = 0x80e1, - #endif - - #ifndef GL_DEPTH24_STENCIL8 - GL_DEPTH24_STENCIL8 = 0x88F0, - #endif - - #ifndef GL_RGBA8 - GL_RGBA8 = GL_RGBA, - #endif - - #ifndef GL_RGBA32F - GL_RGBA32F = 0x8814, - #endif - - #ifndef GL_COLOR_ATTACHMENT0 - GL_COLOR_ATTACHMENT0 = 0x8CE0, - #endif - - #ifndef GL_DEPTH_ATTACHMENT - GL_DEPTH_ATTACHMENT = 0x8D00, - #endif - - #ifndef GL_FRAMEBUFFER - GL_FRAMEBUFFER = 0x8D40, - #endif - - #ifndef GL_FRAMEBUFFER_BINDING - GL_FRAMEBUFFER_BINDING = 0x8CA6, - #endif - - #ifndef GL_FRAMEBUFFER_COMPLETE - GL_FRAMEBUFFER_COMPLETE = 0x8CD5, - #endif - - #ifndef GL_RENDERBUFFER - GL_RENDERBUFFER = 0x8D41, - #endif - - #ifndef GL_RENDERBUFFER_DEPTH_SIZE - GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54, - #endif - - #ifndef GL_STENCIL_ATTACHMENT - GL_STENCIL_ATTACHMENT = 0x8D20, - #endif - - #ifndef GL_MULTISAMPLE - GL_MULTISAMPLE = 0x809D, - #endif - - #ifndef GL_MAX_ELEMENTS_INDICES - GL_MAX_ELEMENTS_INDICES = 0x80E9, - #endif - - #ifndef GL_POINT_SPRITE - GL_POINT_SPRITE = 0x8861, - #endif - - #if JUCE_WINDOWS && ! defined (GL_TEXTURE0) - GL_OPERAND0_RGB = 0x8590, - GL_OPERAND1_RGB = 0x8591, - GL_OPERAND0_ALPHA = 0x8598, - GL_OPERAND1_ALPHA = 0x8599, - GL_SRC0_RGB = 0x8580, - GL_SRC1_RGB = 0x8581, - GL_SRC0_ALPHA = 0x8588, - GL_SRC1_ALPHA = 0x8589, - GL_TEXTURE0 = 0x84C0, - GL_TEXTURE1 = 0x84C1, - GL_TEXTURE2 = 0x84C2, - GL_COMBINE = 0x8570, - GL_COMBINE_RGB = 0x8571, - GL_COMBINE_ALPHA = 0x8572, - GL_PREVIOUS = 0x8578, - GL_COMPILE_STATUS = 0x8B81, - GL_LINK_STATUS = 0x8B82, - GL_SHADING_LANGUAGE_VERSION = 0x8B8C, - GL_FRAGMENT_SHADER = 0x8B30, - GL_VERTEX_SHADER = 0x8B31, - GL_ARRAY_BUFFER = 0x8892, - GL_ELEMENT_ARRAY_BUFFER = 0x8893, - GL_STATIC_DRAW = 0x88E4, - GL_DYNAMIC_DRAW = 0x88E8, - GL_STREAM_DRAW = 0x88E0, - - WGL_NUMBER_PIXEL_FORMATS_ARB = 0x2000, - WGL_DRAW_TO_WINDOW_ARB = 0x2001, - WGL_ACCELERATION_ARB = 0x2003, - WGL_SWAP_METHOD_ARB = 0x2007, - WGL_SUPPORT_OPENGL_ARB = 0x2010, - WGL_PIXEL_TYPE_ARB = 0x2013, - WGL_DOUBLE_BUFFER_ARB = 0x2011, - WGL_COLOR_BITS_ARB = 0x2014, - WGL_RED_BITS_ARB = 0x2015, - WGL_GREEN_BITS_ARB = 0x2017, - WGL_BLUE_BITS_ARB = 0x2019, - WGL_ALPHA_BITS_ARB = 0x201B, - WGL_DEPTH_BITS_ARB = 0x2022, - WGL_STENCIL_BITS_ARB = 0x2023, - WGL_FULL_ACCELERATION_ARB = 0x2027, - WGL_ACCUM_RED_BITS_ARB = 0x201E, - WGL_ACCUM_GREEN_BITS_ARB = 0x201F, - WGL_ACCUM_BLUE_BITS_ARB = 0x2020, - WGL_ACCUM_ALPHA_BITS_ARB = 0x2021, - WGL_STEREO_ARB = 0x2012, - WGL_SAMPLE_BUFFERS_ARB = 0x2041, - WGL_SAMPLES_ARB = 0x2042, - WGL_TYPE_RGBA_ARB = 0x202B, - WGL_CONTEXT_MAJOR_VERSION_ARB = 0x2091, - WGL_CONTEXT_MINOR_VERSION_ARB = 0x2092, - WGL_CONTEXT_PROFILE_MASK_ARB = 0x9126, - #endif - - #if JUCE_ANDROID - JUCE_RGBA_FORMAT = GL_RGBA - #else - JUCE_RGBA_FORMAT = GL_BGRA_EXT - #endif -}; - -#if JUCE_WINDOWS - typedef char GLchar; - typedef pointer_sized_int GLsizeiptr; - typedef pointer_sized_int GLintptr; -#endif - -} // namespace juce diff --git a/modules/juce_opengl/native/juce_OpenGLExtensions.h b/modules/juce_opengl/native/juce_OpenGLExtensions.h index 9da5f05c8d..457300023d 100644 --- a/modules/juce_opengl/native/juce_OpenGLExtensions.h +++ b/modules/juce_opengl/native/juce_OpenGLExtensions.h @@ -29,79 +29,90 @@ namespace juce /** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux. @see OpenGLExtensionFunctions */ -#define JUCE_GL_BASE_FUNCTIONS(USE_FUNCTION) \ - USE_FUNCTION (glActiveTexture, void, (GLenum p1), (p1))\ - USE_FUNCTION (glBindBuffer, void, (GLenum p1, GLuint p2), (p1, p2))\ - USE_FUNCTION (glDeleteBuffers, void, (GLsizei p1, const GLuint* p2), (p1, p2))\ - USE_FUNCTION (glGenBuffers, void, (GLsizei p1, GLuint* p2), (p1, p2))\ - USE_FUNCTION (glBufferData, void, (GLenum p1, GLsizeiptr p2, const GLvoid* p3, GLenum p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glBufferSubData, void, (GLenum p1, GLintptr p2, GLsizeiptr p3, const GLvoid* p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glCreateProgram, GLuint, (), ())\ - USE_FUNCTION (glDeleteProgram, void, (GLuint p1), (p1))\ - USE_FUNCTION (glCreateShader, GLuint, (GLenum p1), (p1))\ - USE_FUNCTION (glDeleteShader, void, (GLuint p1), (p1))\ - USE_FUNCTION (glShaderSource, void, (GLuint p1, GLsizei p2, const GLchar** p3, const GLint* p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glCompileShader, void, (GLuint p1), (p1))\ - USE_FUNCTION (glAttachShader, void, (GLuint p1, GLuint p2), (p1, p2))\ - USE_FUNCTION (glLinkProgram, void, (GLuint p1), (p1))\ - USE_FUNCTION (glUseProgram, void, (GLuint p1), (p1))\ - USE_FUNCTION (glGetShaderiv, void, (GLuint p1, GLenum p2, GLint* p3), (p1, p2, p3))\ - USE_FUNCTION (glGetShaderInfoLog, void, (GLuint p1, GLsizei p2, GLsizei* p3, GLchar* p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glGetProgramInfoLog, void, (GLuint p1, GLsizei p2, GLsizei* p3, GLchar* p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glGetProgramiv, void, (GLuint p1, GLenum p2, GLint* p3), (p1, p2, p3))\ - USE_FUNCTION (glGetUniformLocation, GLint, (GLuint p1, const GLchar* p2), (p1, p2))\ - USE_FUNCTION (glGetAttribLocation, GLint, (GLuint p1, const GLchar* p2), (p1, p2))\ - USE_FUNCTION (glVertexAttribPointer, void, (GLuint p1, GLint p2, GLenum p3, GLboolean p4, GLsizei p5, const GLvoid* p6), (p1, p2, p3, p4, p5, p6))\ - USE_FUNCTION (glEnableVertexAttribArray, void, (GLuint p1), (p1))\ - USE_FUNCTION (glDisableVertexAttribArray, void, (GLuint p1), (p1))\ - USE_FUNCTION (glUniform1f, void, (GLint p1, GLfloat p2), (p1, p2))\ - USE_FUNCTION (glUniform1i, void, (GLint p1, GLint p2), (p1, p2))\ - USE_FUNCTION (glUniform2f, void, (GLint p1, GLfloat p2, GLfloat p3), (p1, p2, p3))\ - USE_FUNCTION (glUniform3f, void, (GLint p1, GLfloat p2, GLfloat p3, GLfloat p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glUniform4f, void, (GLint p1, GLfloat p2, GLfloat p3, GLfloat p4, GLfloat p5), (p1, p2, p3, p4, p5))\ - USE_FUNCTION (glUniform4i, void, (GLint p1, GLint p2, GLint p3, GLint p4, GLint p5), (p1, p2, p3, p4, p5))\ - USE_FUNCTION (glUniform1fv, void, (GLint p1, GLsizei p2, const GLfloat* p3), (p1, p2, p3))\ - USE_FUNCTION (glUniformMatrix2fv, void, (GLint p1, GLsizei p2, GLboolean p3, const GLfloat* p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glUniformMatrix3fv, void, (GLint p1, GLsizei p2, GLboolean p3, const GLfloat* p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glUniformMatrix4fv, void, (GLint p1, GLsizei p2, GLboolean p3, const GLfloat* p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glBindAttribLocation, void, (GLuint p1, GLuint p2, const GLchar* p3), (p1, p2, p3)) +#define JUCE_GL_BASE_FUNCTIONS \ + X (glActiveTexture) \ + X (glBindBuffer) \ + X (glDeleteBuffers) \ + X (glGenBuffers) \ + X (glBufferData) \ + X (glBufferSubData) \ + X (glCreateProgram) \ + X (glDeleteProgram) \ + X (glCreateShader) \ + X (glDeleteShader) \ + X (glShaderSource) \ + X (glCompileShader) \ + X (glAttachShader) \ + X (glLinkProgram) \ + X (glUseProgram) \ + X (glGetShaderiv) \ + X (glGetShaderInfoLog) \ + X (glGetProgramInfoLog) \ + X (glGetProgramiv) \ + X (glGetUniformLocation) \ + X (glGetAttribLocation) \ + X (glVertexAttribPointer) \ + X (glEnableVertexAttribArray) \ + X (glDisableVertexAttribArray) \ + X (glUniform1f) \ + X (glUniform1i) \ + X (glUniform2f) \ + X (glUniform3f) \ + X (glUniform4f) \ + X (glUniform4i) \ + X (glUniform1fv) \ + X (glUniformMatrix2fv) \ + X (glUniformMatrix3fv) \ + X (glUniformMatrix4fv) \ + X (glBindAttribLocation) /** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux. @see OpenGLExtensionFunctions */ -#define JUCE_GL_EXTENSION_FUNCTIONS(USE_FUNCTION) \ - USE_FUNCTION (glIsRenderbuffer, GLboolean, (GLuint p1), (p1))\ - USE_FUNCTION (glBindRenderbuffer, void, (GLenum p1, GLuint p2), (p1, p2))\ - USE_FUNCTION (glDeleteRenderbuffers, void, (GLsizei p1, const GLuint* p2), (p1, p2))\ - USE_FUNCTION (glGenRenderbuffers, void, (GLsizei p1, GLuint* p2), (p1, p2))\ - USE_FUNCTION (glRenderbufferStorage, void, (GLenum p1, GLenum p2, GLsizei p3, GLsizei p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glGetRenderbufferParameteriv, void, (GLenum p1, GLenum p2, GLint* p3), (p1, p2, p3))\ - USE_FUNCTION (glIsFramebuffer, GLboolean, (GLuint p1), (p1))\ - USE_FUNCTION (glBindFramebuffer, void, (GLenum p1, GLuint p2), (p1, p2))\ - USE_FUNCTION (glDeleteFramebuffers, void, (GLsizei p1, const GLuint* p2), (p1, p2))\ - USE_FUNCTION (glGenFramebuffers, void, (GLsizei p1, GLuint* p2), (p1, p2))\ - USE_FUNCTION (glCheckFramebufferStatus, GLenum, (GLenum p1), (p1))\ - USE_FUNCTION (glFramebufferTexture2D, void, (GLenum p1, GLenum p2, GLenum p3, GLuint p4, GLint p5), (p1, p2, p3, p4, p5))\ - USE_FUNCTION (glFramebufferRenderbuffer, void, (GLenum p1, GLenum p2, GLenum p3, GLuint p4), (p1, p2, p3, p4))\ - USE_FUNCTION (glGetFramebufferAttachmentParameteriv, void, (GLenum p1, GLenum p2, GLenum p3, GLint* p4), (p1, p2, p3, p4)) +#define JUCE_GL_EXTENSION_FUNCTIONS \ + X (glIsRenderbuffer) \ + X (glBindRenderbuffer) \ + X (glDeleteRenderbuffers) \ + X (glGenRenderbuffers) \ + X (glRenderbufferStorage) \ + X (glGetRenderbufferParameteriv) \ + X (glIsFramebuffer) \ + X (glBindFramebuffer) \ + X (glDeleteFramebuffers) \ + X (glGenFramebuffers) \ + X (glCheckFramebufferStatus) \ + X (glFramebufferTexture2D) \ + X (glFramebufferRenderbuffer) \ + X (glGetFramebufferAttachmentParameteriv) /** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux. @see OpenGLExtensionFunctions */ -#define JUCE_GL_VERTEXBUFFER_FUNCTIONS(USE_FUNCTION) \ - USE_FUNCTION (glGenVertexArrays, void, (GLsizei p1, GLuint* p2), (p1, p2))\ - USE_FUNCTION (glDeleteVertexArrays, void, (GLsizei p1, const GLuint* p2), (p1, p2))\ - USE_FUNCTION (glBindVertexArray, void, (GLuint p1), (p1)) - +#define JUCE_GL_VERTEXBUFFER_FUNCTIONS \ + X (glGenVertexArrays) \ + X (glDeleteVertexArrays) \ + X (glBindVertexArray) /** This class contains a generated list of OpenGL extension functions, which are either dynamically loaded for a specific GL context, or simply call-through to the appropriate OS function where available. + This class is provided for backwards compatibility. In new code, you should prefer to use + functions from the juce::gl namespace. By importing all these symbols with + `using namespace ::juce::gl;`, all GL enumerations and functions will be made available at + global scope. This may be helpful if you need to write code with C source compatibility, or + which is compatible with a different extension-loading library. + All the normal guidance about `using namespace` should still apply - don't do this in a header, + or at all if you can possibly avoid it! + @tags{OpenGL} */ struct OpenGLExtensionFunctions { - void initialise(); + /** A more complete set of GL commands can be found in the juce::gl namespace. + + You should use juce::gl::loadFunctions() to load GL functions. + */ + JUCE_DEPRECATED (static void initialise()); #if JUCE_WINDOWS && ! DOXYGEN typedef char GLchar; @@ -109,52 +120,20 @@ struct OpenGLExtensionFunctions typedef pointer_sized_int GLintptr; #endif - //============================================================================== - #if JUCE_WINDOWS - #define JUCE_DECLARE_GL_FUNCTION(name, returnType, params, callparams) typedef returnType (__stdcall *type_ ## name) params; type_ ## name name; - JUCE_GL_BASE_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - JUCE_GL_EXTENSION_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - #if JUCE_OPENGL3 - JUCE_GL_VERTEXBUFFER_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - #endif + #define X(name) static decltype (::juce::gl::name)& name; + JUCE_GL_BASE_FUNCTIONS + JUCE_GL_EXTENSION_FUNCTIONS + JUCE_GL_VERTEXBUFFER_FUNCTIONS + #undef X +}; - //============================================================================== - #elif JUCE_LINUX || JUCE_BSD - #define JUCE_DECLARE_GL_FUNCTION(name, returnType, params, callparams) typedef returnType (*type_ ## name) params; type_ ## name name; - JUCE_GL_BASE_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - JUCE_GL_EXTENSION_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - #if JUCE_OPENGL3 - JUCE_GL_VERTEXBUFFER_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - #endif - - //============================================================================== - #elif JUCE_OPENGL_ES - #define JUCE_DECLARE_GL_FUNCTION(name, returnType, params, callparams) static returnType name params noexcept; - JUCE_GL_BASE_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - JUCE_GL_EXTENSION_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - JUCE_GL_VERTEXBUFFER_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - - //============================================================================== +enum MissingOpenGLDefinitions +{ + #if JUCE_ANDROID + JUCE_RGBA_FORMAT = ::juce::gl::GL_RGBA, #else - #define JUCE_DECLARE_GL_FUNCTION(name, returnType, params, callparams) static returnType name params noexcept { return ::name callparams; } - JUCE_GL_BASE_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - - #ifndef GL3_PROTOTYPES - #undef JUCE_DECLARE_GL_FUNCTION - #define JUCE_DECLARE_GL_FUNCTION(name, returnType, params, callparams) static returnType name params noexcept { return ::name ## EXT callparams; } - #endif - JUCE_GL_EXTENSION_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - - #if JUCE_OPENGL3 - #ifndef GL3_PROTOTYPES - #undef JUCE_DECLARE_GL_FUNCTION - #define JUCE_DECLARE_GL_FUNCTION(name, returnType, params, callparams) static returnType name params noexcept { return ::name ## APPLE callparams; } - #endif - JUCE_GL_VERTEXBUFFER_FUNCTIONS (JUCE_DECLARE_GL_FUNCTION) - #endif + JUCE_RGBA_FORMAT = ::juce::gl::GL_BGRA_EXT, #endif - - #undef JUCE_DECLARE_GL_FUNCTION }; } // namespace juce diff --git a/modules/juce_opengl/native/juce_OpenGL_ios.h b/modules/juce_opengl/native/juce_OpenGL_ios.h index ae58579bc1..e1b1ccec0a 100644 --- a/modules/juce_opengl/native/juce_OpenGL_ios.h +++ b/modules/juce_opengl/native/juce_OpenGL_ios.h @@ -90,6 +90,7 @@ public: // I'd prefer to put this stuff in the initialiseOnRenderThread() call, but doing // so causes mysterious timing-related failures. [EAGLContext setCurrentContext: context]; + gl::loadFunctions(); createGLBuffers(); deactivateCurrentContext(); } diff --git a/modules/juce_opengl/native/juce_OpenGL_osx.h b/modules/juce_opengl/native/juce_OpenGL_osx.h index e6378a99c7..c139b7ea93 100644 --- a/modules/juce_opengl/native/juce_OpenGL_osx.h +++ b/modules/juce_opengl/native/juce_OpenGL_osx.h @@ -80,11 +80,9 @@ public: ignoreUnused (version); int numAttribs = 0; - #if JUCE_OPENGL3 attribs[numAttribs++] = NSOpenGLPFAOpenGLProfile; attribs[numAttribs++] = version >= openGL3_2 ? NSOpenGLProfileVersion3_2Core : NSOpenGLProfileVersionLegacy; - #endif attribs[numAttribs++] = NSOpenGLPFADoubleBuffer; attribs[numAttribs++] = NSOpenGLPFAClosestPolicy; diff --git a/modules/juce_opengl/opengl/juce_OpenGLContext.cpp b/modules/juce_opengl/opengl/juce_OpenGLContext.cpp index 0cc2a6114a..60d6bd668b 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLContext.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLContext.cpp @@ -317,10 +317,8 @@ public: void bindVertexArray() noexcept { - #if JUCE_OPENGL3 if (vertexArrayObject != 0) context.extensions.glBindVertexArray (vertexArrayObject); - #endif } void checkViewportBounds() @@ -515,25 +513,21 @@ public: context.makeActive(); #endif - context.extensions.initialise(); + gl::loadFunctions(); - #if JUCE_OPENGL3 if (OpenGLShaderProgram::getLanguageVersion() > 1.2) { context.extensions.glGenVertexArrays (1, &vertexArrayObject); bindVertexArray(); } - #endif glViewport (0, 0, component.getWidth(), component.getHeight()); nativeContext->setSwapInterval (1); - #if ! JUCE_OPENGL_ES JUCE_CHECK_OPENGL_ERROR shadersAvailable = OpenGLShaderProgram::getLanguageVersion() > 0; clearGLError(); - #endif if (context.renderer != nullptr) context.renderer->newOpenGLContextCreated(); @@ -555,10 +549,8 @@ public: if (context.renderer != nullptr) context.renderer->openGLContextClosing(); - #if JUCE_OPENGL3 if (vertexArrayObject != 0) context.extensions.glDeleteVertexArrays (1, &vertexArrayObject); - #endif associatedObjectNames.clear(); associatedObjects.clear(); @@ -661,9 +653,7 @@ public: Rectangle viewportArea, lastScreenBounds; double scale = 1.0; AffineTransform transform; - #if JUCE_OPENGL3 GLuint vertexArrayObject = 0; - #endif StringArray associatedObjectNames; ReferenceCountedArray associatedObjects; diff --git a/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp b/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp index f76c976fdf..75e3f6e0eb 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp @@ -69,11 +69,11 @@ public: jassert (context.extensions.glIsRenderbuffer (depthOrStencilBuffer)); context.extensions.glRenderbufferStorage (GL_RENDERBUFFER, - (wantsDepthBuffer && wantsStencilBuffer) ? GL_DEPTH24_STENCIL8 + (wantsDepthBuffer && wantsStencilBuffer) ? (GLenum) GL_DEPTH24_STENCIL8 #if JUCE_OPENGL_ES - : GL_DEPTH_COMPONENT16, + : (GLenum) GL_DEPTH_COMPONENT16, #else - : GL_DEPTH_COMPONENT, + : (GLenum) GL_DEPTH_COMPONENT, #endif width, height); diff --git a/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp b/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp index 7cb4a20066..0657ad8b93 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp @@ -419,18 +419,18 @@ struct ShaderPrograms : public ReferenceCountedObject screenBounds.set (bounds.getX(), bounds.getY(), 0.5f * bounds.getWidth(), 0.5f * bounds.getHeight()); } - void bindAttributes (OpenGLContext& context) + void bindAttributes() { - context.extensions.glVertexAttribPointer ((GLuint) positionAttribute.attributeID, 2, GL_SHORT, GL_FALSE, 8, nullptr); - context.extensions.glVertexAttribPointer ((GLuint) colourAttribute.attributeID, 4, GL_UNSIGNED_BYTE, GL_TRUE, 8, (void*) 4); - context.extensions.glEnableVertexAttribArray ((GLuint) positionAttribute.attributeID); - context.extensions.glEnableVertexAttribArray ((GLuint) colourAttribute.attributeID); + gl::glVertexAttribPointer ((GLuint) positionAttribute.attributeID, 2, GL_SHORT, GL_FALSE, 8, nullptr); + gl::glVertexAttribPointer ((GLuint) colourAttribute.attributeID, 4, GL_UNSIGNED_BYTE, GL_TRUE, 8, (void*) 4); + gl::glEnableVertexAttribArray ((GLuint) positionAttribute.attributeID); + gl::glEnableVertexAttribArray ((GLuint) colourAttribute.attributeID); } - void unbindAttributes (OpenGLContext& context) + void unbindAttributes() { - context.extensions.glDisableVertexAttribArray ((GLuint) positionAttribute.attributeID); - context.extensions.glDisableVertexAttribArray ((GLuint) colourAttribute.attributeID); + gl::glDisableVertexAttribArray ((GLuint) positionAttribute.attributeID); + gl::glDisableVertexAttribArray ((GLuint) colourAttribute.attributeID); } OpenGLShaderProgram::Attribute positionAttribute, colourAttribute; @@ -1314,7 +1314,7 @@ struct StateHelpers activeShader = &shader; shader.program.use(); - shader.bindAttributes (context); + shader.bindAttributes(); if (shader.onShaderActivated) shader.onShaderActivated (shader.program); @@ -1341,7 +1341,7 @@ struct StateHelpers if (activeShader != nullptr) { quadQueue.flush(); - activeShader->unbindAttributes (context); + activeShader->unbindAttributes(); activeShader = nullptr; context.extensions.glUseProgram (0); } diff --git a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp index d3aae888f8..5993097350 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp @@ -83,7 +83,6 @@ void OpenGLHelpers::enableScissorTest (Rectangle clip) String OpenGLHelpers::translateVertexShaderToV3 (const String& code) { - #if JUCE_OPENGL3 if (OpenGLShaderProgram::getLanguageVersion() > 1.2) { String output; @@ -112,21 +111,18 @@ String OpenGLHelpers::translateVertexShaderToV3 (const String& code) return JUCE_GLSL_VERSION "\n" + output.replace ("varying", "out"); } - #endif return code; } String OpenGLHelpers::translateFragmentShaderToV3 (const String& code) { - #if JUCE_OPENGL3 if (OpenGLShaderProgram::getLanguageVersion() > 1.2) return JUCE_GLSL_VERSION "\n" "out " JUCE_MEDIUMP " vec4 fragColor;\n" + code.replace ("varying", "in") .replace ("texture2D", "texture") .replace ("gl_FragColor", "fragColor"); - #endif return code; } diff --git a/modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp b/modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp index c9734242e2..4f9c469ce9 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp @@ -75,7 +75,7 @@ bool OpenGLShaderProgram::addShader (const String& code, GLenum type) GLint status = GL_FALSE; context.extensions.glGetShaderiv (shaderID, GL_COMPILE_STATUS, &status); - if (status == GL_FALSE) + if (status == (GLint) GL_FALSE) { GLchar infoLog [16384]; GLsizei infoLogLength = 0; @@ -113,7 +113,7 @@ bool OpenGLShaderProgram::link() noexcept GLint status = GL_FALSE; context.extensions.glGetProgramiv (progID, GL_LINK_STATUS, &status); - if (status == GL_FALSE) + if (status == (GLint) GL_FALSE) { GLchar infoLog [16384]; GLsizei infoLogLength = 0; @@ -129,7 +129,7 @@ bool OpenGLShaderProgram::link() noexcept } JUCE_CHECK_OPENGL_ERROR - return status != GL_FALSE; + return status != (GLint) GL_FALSE; } void OpenGLShaderProgram::use() const noexcept diff --git a/modules/juce_opengl/opengl/juce_OpenGLTexture.cpp b/modules/juce_opengl/opengl/juce_OpenGLTexture.cpp index 67ebf218bc..c358e8aeee 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLTexture.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLTexture.cpp @@ -65,7 +65,7 @@ void OpenGLTexture::create (const int w, const int h, const void* pixels, GLenum glBindTexture (GL_TEXTURE_2D, textureID); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - auto glMagFilter = (ownerContext->texMagFilter == OpenGLContext::linear ? GL_LINEAR : GL_NEAREST); + auto glMagFilter = (GLint) (ownerContext->texMagFilter == OpenGLContext::linear ? GL_LINEAR : GL_NEAREST); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, glMagFilter); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); diff --git a/modules/juce_opengl/opengl/juce_gl.cpp b/modules/juce_opengl/opengl/juce_gl.cpp new file mode 100644 index 0000000000..4e404c2076 --- /dev/null +++ b/modules/juce_opengl/opengl/juce_gl.cpp @@ -0,0 +1,4063 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2020 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 6 End-User License + Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). + + End User License Agreement: www.juce.com/juce-6-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +// This file was generated automatically using data from the opengl-registry +// https://github.com/KhronosGroup/OpenGL-Registry + + +// This file's corresponding header contains a reference to a function pointer +// for each command in the GL spec. The functions from earlier GL versions are +// (pretty much) guaranteed to be available in the platform GL library. For +// these functions, the references will be initialised to point directly at the +// library implementations. This behaviour is somewhat configurable: +// preprocessor defs of the form `JUCE_STATIC_LINK_` will +// ensure that the functions from a particular GL version are linked +// statically. Of course, this may fail to link if the platform doesn't +// implement the requested GL version. Any GL versions that are not explicitly +// requested for static linking, along with all known GL extensions, are loaded +// at runtime using gl::loadFunctions(). Again, these functions can be accessed +// via the references in the header. + +// You should be aware that *any* of the functions declared in the header may +// be nullptr if the implementation does not supply that function. If you +// depend on specific GL features/extensions, it's probably a good idea to +// check each function pointer to ensure that the function was loaded +// successfully. + + +#define JUCE_GL_FUNCTIONS_GL_VERSION_1_0 \ + X (void , glCullFace, (GLenum mode)) \ + X (void , glFrontFace, (GLenum mode)) \ + X (void , glHint, (GLenum target, GLenum mode)) \ + X (void , glLineWidth, (GLfloat width)) \ + X (void , glPointSize, (GLfloat size)) \ + X (void , glPolygonMode, (GLenum face, GLenum mode)) \ + X (void , glScissor, (GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glTexParameterf, (GLenum target, GLenum pname, GLfloat param)) \ + X (void , glTexParameterfv, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glTexParameteri, (GLenum target, GLenum pname, GLint param)) \ + X (void , glTexParameteriv, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexImage1D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glDrawBuffer, (GLenum buf)) \ + X (void , glClear, (GLbitfield mask)) \ + X (void , glClearColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ + X (void , glClearStencil, (GLint s)) \ + X (void , glClearDepth, (GLdouble depth)) \ + X (void , glStencilMask, (GLuint mask)) \ + X (void , glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) \ + X (void , glDepthMask, (GLboolean flag)) \ + X (void , glDisable, (GLenum cap)) \ + X (void , glEnable, (GLenum cap)) \ + X (void , glFinish, ()) \ + X (void , glFlush, ()) \ + X (void , glBlendFunc, (GLenum sfactor, GLenum dfactor)) \ + X (void , glLogicOp, (GLenum opcode)) \ + X (void , glStencilFunc, (GLenum func, GLint ref, GLuint mask)) \ + X (void , glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass)) \ + X (void , glDepthFunc, (GLenum func)) \ + X (void , glPixelStoref, (GLenum pname, GLfloat param)) \ + X (void , glPixelStorei, (GLenum pname, GLint param)) \ + X (void , glReadBuffer, (GLenum src)) \ + X (void , glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)) \ + X (void , glGetBooleanv, (GLenum pname, GLboolean *data)) \ + X (void , glGetDoublev, (GLenum pname, GLdouble *data)) \ + X (GLenum , glGetError, ()) \ + X (void , glGetFloatv, (GLenum pname, GLfloat *data)) \ + X (void , glGetIntegerv, (GLenum pname, GLint *data)) \ + X (const GLubyte *, glGetString, (GLenum name)) \ + X (void , glGetTexImage, (GLenum target, GLint level, GLenum format, GLenum type, void *pixels)) \ + X (void , glGetTexParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetTexParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat *params)) \ + X (void , glGetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint *params)) \ + X (GLboolean , glIsEnabled, (GLenum cap)) \ + X (void , glDepthRange, (GLdouble n, GLdouble f)) \ + X (void , glViewport, (GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glNewList, (GLuint list, GLenum mode)) \ + X (void , glEndList, ()) \ + X (void , glCallList, (GLuint list)) \ + X (void , glCallLists, (GLsizei n, GLenum type, const void *lists)) \ + X (void , glDeleteLists, (GLuint list, GLsizei range)) \ + X (GLuint , glGenLists, (GLsizei range)) \ + X (void , glListBase, (GLuint base)) \ + X (void , glBegin, (GLenum mode)) \ + X (void , glBitmap, (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)) \ + X (void , glColor3b, (GLbyte red, GLbyte green, GLbyte blue)) \ + X (void , glColor3bv, (const GLbyte *v)) \ + X (void , glColor3d, (GLdouble red, GLdouble green, GLdouble blue)) \ + X (void , glColor3dv, (const GLdouble *v)) \ + X (void , glColor3f, (GLfloat red, GLfloat green, GLfloat blue)) \ + X (void , glColor3fv, (const GLfloat *v)) \ + X (void , glColor3i, (GLint red, GLint green, GLint blue)) \ + X (void , glColor3iv, (const GLint *v)) \ + X (void , glColor3s, (GLshort red, GLshort green, GLshort blue)) \ + X (void , glColor3sv, (const GLshort *v)) \ + X (void , glColor3ub, (GLubyte red, GLubyte green, GLubyte blue)) \ + X (void , glColor3ubv, (const GLubyte *v)) \ + X (void , glColor3ui, (GLuint red, GLuint green, GLuint blue)) \ + X (void , glColor3uiv, (const GLuint *v)) \ + X (void , glColor3us, (GLushort red, GLushort green, GLushort blue)) \ + X (void , glColor3usv, (const GLushort *v)) \ + X (void , glColor4b, (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)) \ + X (void , glColor4bv, (const GLbyte *v)) \ + X (void , glColor4d, (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)) \ + X (void , glColor4dv, (const GLdouble *v)) \ + X (void , glColor4f, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ + X (void , glColor4fv, (const GLfloat *v)) \ + X (void , glColor4i, (GLint red, GLint green, GLint blue, GLint alpha)) \ + X (void , glColor4iv, (const GLint *v)) \ + X (void , glColor4s, (GLshort red, GLshort green, GLshort blue, GLshort alpha)) \ + X (void , glColor4sv, (const GLshort *v)) \ + X (void , glColor4ub, (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)) \ + X (void , glColor4ubv, (const GLubyte *v)) \ + X (void , glColor4ui, (GLuint red, GLuint green, GLuint blue, GLuint alpha)) \ + X (void , glColor4uiv, (const GLuint *v)) \ + X (void , glColor4us, (GLushort red, GLushort green, GLushort blue, GLushort alpha)) \ + X (void , glColor4usv, (const GLushort *v)) \ + X (void , glEdgeFlag, (GLboolean flag)) \ + X (void , glEdgeFlagv, (const GLboolean *flag)) \ + X (void , glEnd, ()) \ + X (void , glIndexd, (GLdouble c)) \ + X (void , glIndexdv, (const GLdouble *c)) \ + X (void , glIndexf, (GLfloat c)) \ + X (void , glIndexfv, (const GLfloat *c)) \ + X (void , glIndexi, (GLint c)) \ + X (void , glIndexiv, (const GLint *c)) \ + X (void , glIndexs, (GLshort c)) \ + X (void , glIndexsv, (const GLshort *c)) \ + X (void , glNormal3b, (GLbyte nx, GLbyte ny, GLbyte nz)) \ + X (void , glNormal3bv, (const GLbyte *v)) \ + X (void , glNormal3d, (GLdouble nx, GLdouble ny, GLdouble nz)) \ + X (void , glNormal3dv, (const GLdouble *v)) \ + X (void , glNormal3f, (GLfloat nx, GLfloat ny, GLfloat nz)) \ + X (void , glNormal3fv, (const GLfloat *v)) \ + X (void , glNormal3i, (GLint nx, GLint ny, GLint nz)) \ + X (void , glNormal3iv, (const GLint *v)) \ + X (void , glNormal3s, (GLshort nx, GLshort ny, GLshort nz)) \ + X (void , glNormal3sv, (const GLshort *v)) \ + X (void , glRasterPos2d, (GLdouble x, GLdouble y)) \ + X (void , glRasterPos2dv, (const GLdouble *v)) \ + X (void , glRasterPos2f, (GLfloat x, GLfloat y)) \ + X (void , glRasterPos2fv, (const GLfloat *v)) \ + X (void , glRasterPos2i, (GLint x, GLint y)) \ + X (void , glRasterPos2iv, (const GLint *v)) \ + X (void , glRasterPos2s, (GLshort x, GLshort y)) \ + X (void , glRasterPos2sv, (const GLshort *v)) \ + X (void , glRasterPos3d, (GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glRasterPos3dv, (const GLdouble *v)) \ + X (void , glRasterPos3f, (GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glRasterPos3fv, (const GLfloat *v)) \ + X (void , glRasterPos3i, (GLint x, GLint y, GLint z)) \ + X (void , glRasterPos3iv, (const GLint *v)) \ + X (void , glRasterPos3s, (GLshort x, GLshort y, GLshort z)) \ + X (void , glRasterPos3sv, (const GLshort *v)) \ + X (void , glRasterPos4d, (GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glRasterPos4dv, (const GLdouble *v)) \ + X (void , glRasterPos4f, (GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glRasterPos4fv, (const GLfloat *v)) \ + X (void , glRasterPos4i, (GLint x, GLint y, GLint z, GLint w)) \ + X (void , glRasterPos4iv, (const GLint *v)) \ + X (void , glRasterPos4s, (GLshort x, GLshort y, GLshort z, GLshort w)) \ + X (void , glRasterPos4sv, (const GLshort *v)) \ + X (void , glRectd, (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)) \ + X (void , glRectdv, (const GLdouble *v1, const GLdouble *v2)) \ + X (void , glRectf, (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)) \ + X (void , glRectfv, (const GLfloat *v1, const GLfloat *v2)) \ + X (void , glRecti, (GLint x1, GLint y1, GLint x2, GLint y2)) \ + X (void , glRectiv, (const GLint *v1, const GLint *v2)) \ + X (void , glRects, (GLshort x1, GLshort y1, GLshort x2, GLshort y2)) \ + X (void , glRectsv, (const GLshort *v1, const GLshort *v2)) \ + X (void , glTexCoord1d, (GLdouble s)) \ + X (void , glTexCoord1dv, (const GLdouble *v)) \ + X (void , glTexCoord1f, (GLfloat s)) \ + X (void , glTexCoord1fv, (const GLfloat *v)) \ + X (void , glTexCoord1i, (GLint s)) \ + X (void , glTexCoord1iv, (const GLint *v)) \ + X (void , glTexCoord1s, (GLshort s)) \ + X (void , glTexCoord1sv, (const GLshort *v)) \ + X (void , glTexCoord2d, (GLdouble s, GLdouble t)) \ + X (void , glTexCoord2dv, (const GLdouble *v)) \ + X (void , glTexCoord2f, (GLfloat s, GLfloat t)) \ + X (void , glTexCoord2fv, (const GLfloat *v)) \ + X (void , glTexCoord2i, (GLint s, GLint t)) \ + X (void , glTexCoord2iv, (const GLint *v)) \ + X (void , glTexCoord2s, (GLshort s, GLshort t)) \ + X (void , glTexCoord2sv, (const GLshort *v)) \ + X (void , glTexCoord3d, (GLdouble s, GLdouble t, GLdouble r)) \ + X (void , glTexCoord3dv, (const GLdouble *v)) \ + X (void , glTexCoord3f, (GLfloat s, GLfloat t, GLfloat r)) \ + X (void , glTexCoord3fv, (const GLfloat *v)) \ + X (void , glTexCoord3i, (GLint s, GLint t, GLint r)) \ + X (void , glTexCoord3iv, (const GLint *v)) \ + X (void , glTexCoord3s, (GLshort s, GLshort t, GLshort r)) \ + X (void , glTexCoord3sv, (const GLshort *v)) \ + X (void , glTexCoord4d, (GLdouble s, GLdouble t, GLdouble r, GLdouble q)) \ + X (void , glTexCoord4dv, (const GLdouble *v)) \ + X (void , glTexCoord4f, (GLfloat s, GLfloat t, GLfloat r, GLfloat q)) \ + X (void , glTexCoord4fv, (const GLfloat *v)) \ + X (void , glTexCoord4i, (GLint s, GLint t, GLint r, GLint q)) \ + X (void , glTexCoord4iv, (const GLint *v)) \ + X (void , glTexCoord4s, (GLshort s, GLshort t, GLshort r, GLshort q)) \ + X (void , glTexCoord4sv, (const GLshort *v)) \ + X (void , glVertex2d, (GLdouble x, GLdouble y)) \ + X (void , glVertex2dv, (const GLdouble *v)) \ + X (void , glVertex2f, (GLfloat x, GLfloat y)) \ + X (void , glVertex2fv, (const GLfloat *v)) \ + X (void , glVertex2i, (GLint x, GLint y)) \ + X (void , glVertex2iv, (const GLint *v)) \ + X (void , glVertex2s, (GLshort x, GLshort y)) \ + X (void , glVertex2sv, (const GLshort *v)) \ + X (void , glVertex3d, (GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glVertex3dv, (const GLdouble *v)) \ + X (void , glVertex3f, (GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glVertex3fv, (const GLfloat *v)) \ + X (void , glVertex3i, (GLint x, GLint y, GLint z)) \ + X (void , glVertex3iv, (const GLint *v)) \ + X (void , glVertex3s, (GLshort x, GLshort y, GLshort z)) \ + X (void , glVertex3sv, (const GLshort *v)) \ + X (void , glVertex4d, (GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glVertex4dv, (const GLdouble *v)) \ + X (void , glVertex4f, (GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glVertex4fv, (const GLfloat *v)) \ + X (void , glVertex4i, (GLint x, GLint y, GLint z, GLint w)) \ + X (void , glVertex4iv, (const GLint *v)) \ + X (void , glVertex4s, (GLshort x, GLshort y, GLshort z, GLshort w)) \ + X (void , glVertex4sv, (const GLshort *v)) \ + X (void , glClipPlane, (GLenum plane, const GLdouble *equation)) \ + X (void , glColorMaterial, (GLenum face, GLenum mode)) \ + X (void , glFogf, (GLenum pname, GLfloat param)) \ + X (void , glFogfv, (GLenum pname, const GLfloat *params)) \ + X (void , glFogi, (GLenum pname, GLint param)) \ + X (void , glFogiv, (GLenum pname, const GLint *params)) \ + X (void , glLightf, (GLenum light, GLenum pname, GLfloat param)) \ + X (void , glLightfv, (GLenum light, GLenum pname, const GLfloat *params)) \ + X (void , glLighti, (GLenum light, GLenum pname, GLint param)) \ + X (void , glLightiv, (GLenum light, GLenum pname, const GLint *params)) \ + X (void , glLightModelf, (GLenum pname, GLfloat param)) \ + X (void , glLightModelfv, (GLenum pname, const GLfloat *params)) \ + X (void , glLightModeli, (GLenum pname, GLint param)) \ + X (void , glLightModeliv, (GLenum pname, const GLint *params)) \ + X (void , glLineStipple, (GLint factor, GLushort pattern)) \ + X (void , glMaterialf, (GLenum face, GLenum pname, GLfloat param)) \ + X (void , glMaterialfv, (GLenum face, GLenum pname, const GLfloat *params)) \ + X (void , glMateriali, (GLenum face, GLenum pname, GLint param)) \ + X (void , glMaterialiv, (GLenum face, GLenum pname, const GLint *params)) \ + X (void , glPolygonStipple, (const GLubyte *mask)) \ + X (void , glShadeModel, (GLenum mode)) \ + X (void , glTexEnvf, (GLenum target, GLenum pname, GLfloat param)) \ + X (void , glTexEnvfv, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glTexEnvi, (GLenum target, GLenum pname, GLint param)) \ + X (void , glTexEnviv, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexGend, (GLenum coord, GLenum pname, GLdouble param)) \ + X (void , glTexGendv, (GLenum coord, GLenum pname, const GLdouble *params)) \ + X (void , glTexGenf, (GLenum coord, GLenum pname, GLfloat param)) \ + X (void , glTexGenfv, (GLenum coord, GLenum pname, const GLfloat *params)) \ + X (void , glTexGeni, (GLenum coord, GLenum pname, GLint param)) \ + X (void , glTexGeniv, (GLenum coord, GLenum pname, const GLint *params)) \ + X (void , glFeedbackBuffer, (GLsizei size, GLenum type, GLfloat *buffer)) \ + X (void , glSelectBuffer, (GLsizei size, GLuint *buffer)) \ + X (GLint , glRenderMode, (GLenum mode)) \ + X (void , glInitNames, ()) \ + X (void , glLoadName, (GLuint name)) \ + X (void , glPassThrough, (GLfloat token)) \ + X (void , glPopName, ()) \ + X (void , glPushName, (GLuint name)) \ + X (void , glClearAccum, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ + X (void , glClearIndex, (GLfloat c)) \ + X (void , glIndexMask, (GLuint mask)) \ + X (void , glAccum, (GLenum op, GLfloat value)) \ + X (void , glPopAttrib, ()) \ + X (void , glPushAttrib, (GLbitfield mask)) \ + X (void , glMap1d, (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)) \ + X (void , glMap1f, (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)) \ + X (void , glMap2d, (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)) \ + X (void , glMap2f, (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)) \ + X (void , glMapGrid1d, (GLint un, GLdouble u1, GLdouble u2)) \ + X (void , glMapGrid1f, (GLint un, GLfloat u1, GLfloat u2)) \ + X (void , glMapGrid2d, (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)) \ + X (void , glMapGrid2f, (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)) \ + X (void , glEvalCoord1d, (GLdouble u)) \ + X (void , glEvalCoord1dv, (const GLdouble *u)) \ + X (void , glEvalCoord1f, (GLfloat u)) \ + X (void , glEvalCoord1fv, (const GLfloat *u)) \ + X (void , glEvalCoord2d, (GLdouble u, GLdouble v)) \ + X (void , glEvalCoord2dv, (const GLdouble *u)) \ + X (void , glEvalCoord2f, (GLfloat u, GLfloat v)) \ + X (void , glEvalCoord2fv, (const GLfloat *u)) \ + X (void , glEvalMesh1, (GLenum mode, GLint i1, GLint i2)) \ + X (void , glEvalPoint1, (GLint i)) \ + X (void , glEvalMesh2, (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)) \ + X (void , glEvalPoint2, (GLint i, GLint j)) \ + X (void , glAlphaFunc, (GLenum func, GLfloat ref)) \ + X (void , glPixelZoom, (GLfloat xfactor, GLfloat yfactor)) \ + X (void , glPixelTransferf, (GLenum pname, GLfloat param)) \ + X (void , glPixelTransferi, (GLenum pname, GLint param)) \ + X (void , glPixelMapfv, (GLenum map, GLsizei mapsize, const GLfloat *values)) \ + X (void , glPixelMapuiv, (GLenum map, GLsizei mapsize, const GLuint *values)) \ + X (void , glPixelMapusv, (GLenum map, GLsizei mapsize, const GLushort *values)) \ + X (void , glCopyPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)) \ + X (void , glDrawPixels, (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \ + X (void , glGetClipPlane, (GLenum plane, GLdouble *equation)) \ + X (void , glGetLightfv, (GLenum light, GLenum pname, GLfloat *params)) \ + X (void , glGetLightiv, (GLenum light, GLenum pname, GLint *params)) \ + X (void , glGetMapdv, (GLenum target, GLenum query, GLdouble *v)) \ + X (void , glGetMapfv, (GLenum target, GLenum query, GLfloat *v)) \ + X (void , glGetMapiv, (GLenum target, GLenum query, GLint *v)) \ + X (void , glGetMaterialfv, (GLenum face, GLenum pname, GLfloat *params)) \ + X (void , glGetMaterialiv, (GLenum face, GLenum pname, GLint *params)) \ + X (void , glGetPixelMapfv, (GLenum map, GLfloat *values)) \ + X (void , glGetPixelMapuiv, (GLenum map, GLuint *values)) \ + X (void , glGetPixelMapusv, (GLenum map, GLushort *values)) \ + X (void , glGetPolygonStipple, (GLubyte *mask)) \ + X (void , glGetTexEnvfv, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetTexEnviv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTexGendv, (GLenum coord, GLenum pname, GLdouble *params)) \ + X (void , glGetTexGenfv, (GLenum coord, GLenum pname, GLfloat *params)) \ + X (void , glGetTexGeniv, (GLenum coord, GLenum pname, GLint *params)) \ + X (GLboolean , glIsList, (GLuint list)) \ + X (void , glFrustum, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ + X (void , glLoadIdentity, ()) \ + X (void , glLoadMatrixf, (const GLfloat *m)) \ + X (void , glLoadMatrixd, (const GLdouble *m)) \ + X (void , glMatrixMode, (GLenum mode)) \ + X (void , glMultMatrixf, (const GLfloat *m)) \ + X (void , glMultMatrixd, (const GLdouble *m)) \ + X (void , glOrtho, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ + X (void , glPopMatrix, ()) \ + X (void , glPushMatrix, ()) \ + X (void , glRotated, (GLdouble angle, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glRotatef, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glScaled, (GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glScalef, (GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glTranslated, (GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glTranslatef, (GLfloat x, GLfloat y, GLfloat z)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_1_1 \ + X (void , glDrawArrays, (GLenum mode, GLint first, GLsizei count)) \ + X (void , glDrawElements, (GLenum mode, GLsizei count, GLenum type, const void *indices)) \ + X (void , glGetPointerv, (GLenum pname, void **params)) \ + X (void , glPolygonOffset, (GLfloat factor, GLfloat units)) \ + X (void , glCopyTexImage1D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)) \ + X (void , glCopyTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \ + X (void , glCopyTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)) \ + X (void , glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \ + X (void , glBindTexture, (GLenum target, GLuint texture)) \ + X (void , glDeleteTextures, (GLsizei n, const GLuint *textures)) \ + X (void , glGenTextures, (GLsizei n, GLuint *textures)) \ + X (GLboolean , glIsTexture, (GLuint texture)) \ + X (void , glArrayElement, (GLint i)) \ + X (void , glColorPointer, (GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glDisableClientState, (GLenum array)) \ + X (void , glEdgeFlagPointer, (GLsizei stride, const void *pointer)) \ + X (void , glEnableClientState, (GLenum array)) \ + X (void , glIndexPointer, (GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glInterleavedArrays, (GLenum format, GLsizei stride, const void *pointer)) \ + X (void , glNormalPointer, (GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glTexCoordPointer, (GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glVertexPointer, (GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (GLboolean , glAreTexturesResident, (GLsizei n, const GLuint *textures, GLboolean *residences)) \ + X (void , glPrioritizeTextures, (GLsizei n, const GLuint *textures, const GLfloat *priorities)) \ + X (void , glIndexub, (GLubyte c)) \ + X (void , glIndexubv, (const GLubyte *c)) \ + X (void , glPopClientAttrib, ()) \ + X (void , glPushClientAttrib, (GLbitfield mask)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_1_2 \ + X (void , glDrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)) \ + X (void , glTexImage3D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_1_3 \ + X (void , glActiveTexture, (GLenum texture)) \ + X (void , glSampleCoverage, (GLfloat value, GLboolean invert)) \ + X (void , glCompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexImage1D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glGetCompressedTexImage, (GLenum target, GLint level, void *img)) \ + X (void , glClientActiveTexture, (GLenum texture)) \ + X (void , glMultiTexCoord1d, (GLenum target, GLdouble s)) \ + X (void , glMultiTexCoord1dv, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord1f, (GLenum target, GLfloat s)) \ + X (void , glMultiTexCoord1fv, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord1i, (GLenum target, GLint s)) \ + X (void , glMultiTexCoord1iv, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord1s, (GLenum target, GLshort s)) \ + X (void , glMultiTexCoord1sv, (GLenum target, const GLshort *v)) \ + X (void , glMultiTexCoord2d, (GLenum target, GLdouble s, GLdouble t)) \ + X (void , glMultiTexCoord2dv, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord2f, (GLenum target, GLfloat s, GLfloat t)) \ + X (void , glMultiTexCoord2fv, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord2i, (GLenum target, GLint s, GLint t)) \ + X (void , glMultiTexCoord2iv, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord2s, (GLenum target, GLshort s, GLshort t)) \ + X (void , glMultiTexCoord2sv, (GLenum target, const GLshort *v)) \ + X (void , glMultiTexCoord3d, (GLenum target, GLdouble s, GLdouble t, GLdouble r)) \ + X (void , glMultiTexCoord3dv, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord3f, (GLenum target, GLfloat s, GLfloat t, GLfloat r)) \ + X (void , glMultiTexCoord3fv, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord3i, (GLenum target, GLint s, GLint t, GLint r)) \ + X (void , glMultiTexCoord3iv, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord3s, (GLenum target, GLshort s, GLshort t, GLshort r)) \ + X (void , glMultiTexCoord3sv, (GLenum target, const GLshort *v)) \ + X (void , glMultiTexCoord4d, (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)) \ + X (void , glMultiTexCoord4dv, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord4f, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)) \ + X (void , glMultiTexCoord4fv, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord4i, (GLenum target, GLint s, GLint t, GLint r, GLint q)) \ + X (void , glMultiTexCoord4iv, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord4s, (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)) \ + X (void , glMultiTexCoord4sv, (GLenum target, const GLshort *v)) \ + X (void , glLoadTransposeMatrixf, (const GLfloat *m)) \ + X (void , glLoadTransposeMatrixd, (const GLdouble *m)) \ + X (void , glMultTransposeMatrixf, (const GLfloat *m)) \ + X (void , glMultTransposeMatrixd, (const GLdouble *m)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_1_4 \ + X (void , glBlendFuncSeparate, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)) \ + X (void , glMultiDrawArrays, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount)) \ + X (void , glMultiDrawElements, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount)) \ + X (void , glPointParameterf, (GLenum pname, GLfloat param)) \ + X (void , glPointParameterfv, (GLenum pname, const GLfloat *params)) \ + X (void , glPointParameteri, (GLenum pname, GLint param)) \ + X (void , glPointParameteriv, (GLenum pname, const GLint *params)) \ + X (void , glFogCoordf, (GLfloat coord)) \ + X (void , glFogCoordfv, (const GLfloat *coord)) \ + X (void , glFogCoordd, (GLdouble coord)) \ + X (void , glFogCoorddv, (const GLdouble *coord)) \ + X (void , glFogCoordPointer, (GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glSecondaryColor3b, (GLbyte red, GLbyte green, GLbyte blue)) \ + X (void , glSecondaryColor3bv, (const GLbyte *v)) \ + X (void , glSecondaryColor3d, (GLdouble red, GLdouble green, GLdouble blue)) \ + X (void , glSecondaryColor3dv, (const GLdouble *v)) \ + X (void , glSecondaryColor3f, (GLfloat red, GLfloat green, GLfloat blue)) \ + X (void , glSecondaryColor3fv, (const GLfloat *v)) \ + X (void , glSecondaryColor3i, (GLint red, GLint green, GLint blue)) \ + X (void , glSecondaryColor3iv, (const GLint *v)) \ + X (void , glSecondaryColor3s, (GLshort red, GLshort green, GLshort blue)) \ + X (void , glSecondaryColor3sv, (const GLshort *v)) \ + X (void , glSecondaryColor3ub, (GLubyte red, GLubyte green, GLubyte blue)) \ + X (void , glSecondaryColor3ubv, (const GLubyte *v)) \ + X (void , glSecondaryColor3ui, (GLuint red, GLuint green, GLuint blue)) \ + X (void , glSecondaryColor3uiv, (const GLuint *v)) \ + X (void , glSecondaryColor3us, (GLushort red, GLushort green, GLushort blue)) \ + X (void , glSecondaryColor3usv, (const GLushort *v)) \ + X (void , glSecondaryColorPointer, (GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glWindowPos2d, (GLdouble x, GLdouble y)) \ + X (void , glWindowPos2dv, (const GLdouble *v)) \ + X (void , glWindowPos2f, (GLfloat x, GLfloat y)) \ + X (void , glWindowPos2fv, (const GLfloat *v)) \ + X (void , glWindowPos2i, (GLint x, GLint y)) \ + X (void , glWindowPos2iv, (const GLint *v)) \ + X (void , glWindowPos2s, (GLshort x, GLshort y)) \ + X (void , glWindowPos2sv, (const GLshort *v)) \ + X (void , glWindowPos3d, (GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glWindowPos3dv, (const GLdouble *v)) \ + X (void , glWindowPos3f, (GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glWindowPos3fv, (const GLfloat *v)) \ + X (void , glWindowPos3i, (GLint x, GLint y, GLint z)) \ + X (void , glWindowPos3iv, (const GLint *v)) \ + X (void , glWindowPos3s, (GLshort x, GLshort y, GLshort z)) \ + X (void , glWindowPos3sv, (const GLshort *v)) \ + X (void , glBlendColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ + X (void , glBlendEquation, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_1_5 \ + X (void , glGenQueries, (GLsizei n, GLuint *ids)) \ + X (void , glDeleteQueries, (GLsizei n, const GLuint *ids)) \ + X (GLboolean , glIsQuery, (GLuint id)) \ + X (void , glBeginQuery, (GLenum target, GLuint id)) \ + X (void , glEndQuery, (GLenum target)) \ + X (void , glGetQueryiv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetQueryObjectiv, (GLuint id, GLenum pname, GLint *params)) \ + X (void , glGetQueryObjectuiv, (GLuint id, GLenum pname, GLuint *params)) \ + X (void , glBindBuffer, (GLenum target, GLuint buffer)) \ + X (void , glDeleteBuffers, (GLsizei n, const GLuint *buffers)) \ + X (void , glGenBuffers, (GLsizei n, GLuint *buffers)) \ + X (GLboolean , glIsBuffer, (GLuint buffer)) \ + X (void , glBufferData, (GLenum target, GLsizeiptr size, const void *data, GLenum usage)) \ + X (void , glBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, const void *data)) \ + X (void , glGetBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, void *data)) \ + X (void * , glMapBuffer, (GLenum target, GLenum access)) \ + X (GLboolean , glUnmapBuffer, (GLenum target)) \ + X (void , glGetBufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetBufferPointerv, (GLenum target, GLenum pname, void **params)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_2_0 \ + X (void , glBlendEquationSeparate, (GLenum modeRGB, GLenum modeAlpha)) \ + X (void , glDrawBuffers, (GLsizei n, const GLenum *bufs)) \ + X (void , glStencilOpSeparate, (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)) \ + X (void , glStencilFuncSeparate, (GLenum face, GLenum func, GLint ref, GLuint mask)) \ + X (void , glStencilMaskSeparate, (GLenum face, GLuint mask)) \ + X (void , glAttachShader, (GLuint program, GLuint shader)) \ + X (void , glBindAttribLocation, (GLuint program, GLuint index, const GLchar *name)) \ + X (void , glCompileShader, (GLuint shader)) \ + X (GLuint , glCreateProgram, ()) \ + X (GLuint , glCreateShader, (GLenum type)) \ + X (void , glDeleteProgram, (GLuint program)) \ + X (void , glDeleteShader, (GLuint shader)) \ + X (void , glDetachShader, (GLuint program, GLuint shader)) \ + X (void , glDisableVertexAttribArray, (GLuint index)) \ + X (void , glEnableVertexAttribArray, (GLuint index)) \ + X (void , glGetActiveAttrib, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \ + X (void , glGetActiveUniform, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \ + X (void , glGetAttachedShaders, (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders)) \ + X (GLint , glGetAttribLocation, (GLuint program, const GLchar *name)) \ + X (void , glGetProgramiv, (GLuint program, GLenum pname, GLint *params)) \ + X (void , glGetProgramInfoLog, (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glGetShaderiv, (GLuint shader, GLenum pname, GLint *params)) \ + X (void , glGetShaderInfoLog, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glGetShaderSource, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)) \ + X (GLint , glGetUniformLocation, (GLuint program, const GLchar *name)) \ + X (void , glGetUniformfv, (GLuint program, GLint location, GLfloat *params)) \ + X (void , glGetUniformiv, (GLuint program, GLint location, GLint *params)) \ + X (void , glGetVertexAttribdv, (GLuint index, GLenum pname, GLdouble *params)) \ + X (void , glGetVertexAttribfv, (GLuint index, GLenum pname, GLfloat *params)) \ + X (void , glGetVertexAttribiv, (GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribPointerv, (GLuint index, GLenum pname, void **pointer)) \ + X (GLboolean , glIsProgram, (GLuint program)) \ + X (GLboolean , glIsShader, (GLuint shader)) \ + X (void , glLinkProgram, (GLuint program)) \ + X (void , glShaderSource, (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length)) \ + X (void , glUseProgram, (GLuint program)) \ + X (void , glUniform1f, (GLint location, GLfloat v0)) \ + X (void , glUniform2f, (GLint location, GLfloat v0, GLfloat v1)) \ + X (void , glUniform3f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ + X (void , glUniform4f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ + X (void , glUniform1i, (GLint location, GLint v0)) \ + X (void , glUniform2i, (GLint location, GLint v0, GLint v1)) \ + X (void , glUniform3i, (GLint location, GLint v0, GLint v1, GLint v2)) \ + X (void , glUniform4i, (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ + X (void , glUniform1fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform2fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform3fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform4fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform1iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform2iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform3iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform4iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniformMatrix2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glValidateProgram, (GLuint program)) \ + X (void , glVertexAttrib1d, (GLuint index, GLdouble x)) \ + X (void , glVertexAttrib1dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib1f, (GLuint index, GLfloat x)) \ + X (void , glVertexAttrib1fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib1s, (GLuint index, GLshort x)) \ + X (void , glVertexAttrib1sv, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib2d, (GLuint index, GLdouble x, GLdouble y)) \ + X (void , glVertexAttrib2dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib2f, (GLuint index, GLfloat x, GLfloat y)) \ + X (void , glVertexAttrib2fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib2s, (GLuint index, GLshort x, GLshort y)) \ + X (void , glVertexAttrib2sv, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib3d, (GLuint index, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glVertexAttrib3dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib3f, (GLuint index, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glVertexAttrib3fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib3s, (GLuint index, GLshort x, GLshort y, GLshort z)) \ + X (void , glVertexAttrib3sv, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4Nbv, (GLuint index, const GLbyte *v)) \ + X (void , glVertexAttrib4Niv, (GLuint index, const GLint *v)) \ + X (void , glVertexAttrib4Nsv, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4Nub, (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)) \ + X (void , glVertexAttrib4Nubv, (GLuint index, const GLubyte *v)) \ + X (void , glVertexAttrib4Nuiv, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttrib4Nusv, (GLuint index, const GLushort *v)) \ + X (void , glVertexAttrib4bv, (GLuint index, const GLbyte *v)) \ + X (void , glVertexAttrib4d, (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glVertexAttrib4dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib4f, (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glVertexAttrib4fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib4iv, (GLuint index, const GLint *v)) \ + X (void , glVertexAttrib4s, (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)) \ + X (void , glVertexAttrib4sv, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4ubv, (GLuint index, const GLubyte *v)) \ + X (void , glVertexAttrib4uiv, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttrib4usv, (GLuint index, const GLushort *v)) \ + X (void , glVertexAttribPointer, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_2_1 \ + X (void , glUniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_3_0 \ + X (void , glColorMaski, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \ + X (void , glGetBooleani_v, (GLenum target, GLuint index, GLboolean *data)) \ + X (void , glGetIntegeri_v, (GLenum target, GLuint index, GLint *data)) \ + X (void , glEnablei, (GLenum target, GLuint index)) \ + X (void , glDisablei, (GLenum target, GLuint index)) \ + X (GLboolean , glIsEnabledi, (GLenum target, GLuint index)) \ + X (void , glBeginTransformFeedback, (GLenum primitiveMode)) \ + X (void , glEndTransformFeedback, ()) \ + X (void , glBindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glBindBufferBase, (GLenum target, GLuint index, GLuint buffer)) \ + X (void , glTransformFeedbackVaryings, (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)) \ + X (void , glGetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)) \ + X (void , glClampColor, (GLenum target, GLenum clamp)) \ + X (void , glBeginConditionalRender, (GLuint id, GLenum mode)) \ + X (void , glEndConditionalRender, ()) \ + X (void , glVertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glGetVertexAttribIiv, (GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint *params)) \ + X (void , glVertexAttribI1i, (GLuint index, GLint x)) \ + X (void , glVertexAttribI2i, (GLuint index, GLint x, GLint y)) \ + X (void , glVertexAttribI3i, (GLuint index, GLint x, GLint y, GLint z)) \ + X (void , glVertexAttribI4i, (GLuint index, GLint x, GLint y, GLint z, GLint w)) \ + X (void , glVertexAttribI1ui, (GLuint index, GLuint x)) \ + X (void , glVertexAttribI2ui, (GLuint index, GLuint x, GLuint y)) \ + X (void , glVertexAttribI3ui, (GLuint index, GLuint x, GLuint y, GLuint z)) \ + X (void , glVertexAttribI4ui, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \ + X (void , glVertexAttribI1iv, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI2iv, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI3iv, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI4iv, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI1uiv, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI2uiv, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI3uiv, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI4uiv, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI4bv, (GLuint index, const GLbyte *v)) \ + X (void , glVertexAttribI4sv, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttribI4ubv, (GLuint index, const GLubyte *v)) \ + X (void , glVertexAttribI4usv, (GLuint index, const GLushort *v)) \ + X (void , glGetUniformuiv, (GLuint program, GLint location, GLuint *params)) \ + X (void , glBindFragDataLocation, (GLuint program, GLuint color, const GLchar *name)) \ + X (GLint , glGetFragDataLocation, (GLuint program, const GLchar *name)) \ + X (void , glUniform1ui, (GLint location, GLuint v0)) \ + X (void , glUniform2ui, (GLint location, GLuint v0, GLuint v1)) \ + X (void , glUniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2)) \ + X (void , glUniform4ui, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ + X (void , glUniform1uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform2uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform3uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform4uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glTexParameterIiv, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexParameterIuiv, (GLenum target, GLenum pname, const GLuint *params)) \ + X (void , glGetTexParameterIiv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTexParameterIuiv, (GLenum target, GLenum pname, GLuint *params)) \ + X (void , glClearBufferiv, (GLenum buffer, GLint drawbuffer, const GLint *value)) \ + X (void , glClearBufferuiv, (GLenum buffer, GLint drawbuffer, const GLuint *value)) \ + X (void , glClearBufferfv, (GLenum buffer, GLint drawbuffer, const GLfloat *value)) \ + X (void , glClearBufferfi, (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)) \ + X (const GLubyte *, glGetStringi, (GLenum name, GLuint index)) \ + X (GLboolean , glIsRenderbuffer, (GLuint renderbuffer)) \ + X (void , glBindRenderbuffer, (GLenum target, GLuint renderbuffer)) \ + X (void , glDeleteRenderbuffers, (GLsizei n, const GLuint *renderbuffers)) \ + X (void , glGenRenderbuffers, (GLsizei n, GLuint *renderbuffers)) \ + X (void , glRenderbufferStorage, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glGetRenderbufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (GLboolean , glIsFramebuffer, (GLuint framebuffer)) \ + X (void , glBindFramebuffer, (GLenum target, GLuint framebuffer)) \ + X (void , glDeleteFramebuffers, (GLsizei n, const GLuint *framebuffers)) \ + X (void , glGenFramebuffers, (GLsizei n, GLuint *framebuffers)) \ + X (GLenum , glCheckFramebufferStatus, (GLenum target)) \ + X (void , glFramebufferTexture1D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ + X (void , glFramebufferTexture2D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ + X (void , glFramebufferTexture3D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)) \ + X (void , glFramebufferRenderbuffer, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \ + X (void , glGetFramebufferAttachmentParameteriv, (GLenum target, GLenum attachment, GLenum pname, GLint *params)) \ + X (void , glGenerateMipmap, (GLenum target)) \ + X (void , glBlitFramebuffer, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \ + X (void , glRenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glFramebufferTextureLayer, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)) \ + X (void * , glMapBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \ + X (void , glFlushMappedBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length)) \ + X (void , glBindVertexArray, (GLuint array)) \ + X (void , glDeleteVertexArrays, (GLsizei n, const GLuint *arrays)) \ + X (void , glGenVertexArrays, (GLsizei n, GLuint *arrays)) \ + X (GLboolean , glIsVertexArray, (GLuint array)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_3_1 \ + X (void , glDrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount)) \ + X (void , glDrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)) \ + X (void , glTexBuffer, (GLenum target, GLenum internalformat, GLuint buffer)) \ + X (void , glPrimitiveRestartIndex, (GLuint index)) \ + X (void , glCopyBufferSubData, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \ + X (void , glGetUniformIndices, (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)) \ + X (void , glGetActiveUniformsiv, (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)) \ + X (void , glGetActiveUniformName, (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName)) \ + X (GLuint , glGetUniformBlockIndex, (GLuint program, const GLchar *uniformBlockName)) \ + X (void , glGetActiveUniformBlockiv, (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)) \ + X (void , glGetActiveUniformBlockName, (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)) \ + X (void , glUniformBlockBinding, (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_3_2 \ + X (void , glDrawElementsBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawRangeElementsBaseVertex, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawElementsInstancedBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) \ + X (void , glMultiDrawElementsBaseVertex, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex)) \ + X (void , glProvokingVertex, (GLenum mode)) \ + X (GLsync , glFenceSync, (GLenum condition, GLbitfield flags)) \ + X (GLboolean , glIsSync, (GLsync sync)) \ + X (void , glDeleteSync, (GLsync sync)) \ + X (GLenum , glClientWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ + X (void , glWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ + X (void , glGetInteger64v, (GLenum pname, GLint64 *data)) \ + X (void , glGetSynciv, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) \ + X (void , glGetInteger64i_v, (GLenum target, GLuint index, GLint64 *data)) \ + X (void , glGetBufferParameteri64v, (GLenum target, GLenum pname, GLint64 *params)) \ + X (void , glFramebufferTexture, (GLenum target, GLenum attachment, GLuint texture, GLint level)) \ + X (void , glTexImage2DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ + X (void , glTexImage3DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) \ + X (void , glGetMultisamplefv, (GLenum pname, GLuint index, GLfloat *val)) \ + X (void , glSampleMaski, (GLuint maskNumber, GLbitfield mask)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_3_3 \ + X (void , glBindFragDataLocationIndexed, (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name)) \ + X (GLint , glGetFragDataIndex, (GLuint program, const GLchar *name)) \ + X (void , glGenSamplers, (GLsizei count, GLuint *samplers)) \ + X (void , glDeleteSamplers, (GLsizei count, const GLuint *samplers)) \ + X (GLboolean , glIsSampler, (GLuint sampler)) \ + X (void , glBindSampler, (GLuint unit, GLuint sampler)) \ + X (void , glSamplerParameteri, (GLuint sampler, GLenum pname, GLint param)) \ + X (void , glSamplerParameteriv, (GLuint sampler, GLenum pname, const GLint *param)) \ + X (void , glSamplerParameterf, (GLuint sampler, GLenum pname, GLfloat param)) \ + X (void , glSamplerParameterfv, (GLuint sampler, GLenum pname, const GLfloat *param)) \ + X (void , glSamplerParameterIiv, (GLuint sampler, GLenum pname, const GLint *param)) \ + X (void , glSamplerParameterIuiv, (GLuint sampler, GLenum pname, const GLuint *param)) \ + X (void , glGetSamplerParameteriv, (GLuint sampler, GLenum pname, GLint *params)) \ + X (void , glGetSamplerParameterIiv, (GLuint sampler, GLenum pname, GLint *params)) \ + X (void , glGetSamplerParameterfv, (GLuint sampler, GLenum pname, GLfloat *params)) \ + X (void , glGetSamplerParameterIuiv, (GLuint sampler, GLenum pname, GLuint *params)) \ + X (void , glQueryCounter, (GLuint id, GLenum target)) \ + X (void , glGetQueryObjecti64v, (GLuint id, GLenum pname, GLint64 *params)) \ + X (void , glGetQueryObjectui64v, (GLuint id, GLenum pname, GLuint64 *params)) \ + X (void , glVertexAttribDivisor, (GLuint index, GLuint divisor)) \ + X (void , glVertexAttribP1ui, (GLuint index, GLenum type, GLboolean normalized, GLuint value)) \ + X (void , glVertexAttribP1uiv, (GLuint index, GLenum type, GLboolean normalized, const GLuint *value)) \ + X (void , glVertexAttribP2ui, (GLuint index, GLenum type, GLboolean normalized, GLuint value)) \ + X (void , glVertexAttribP2uiv, (GLuint index, GLenum type, GLboolean normalized, const GLuint *value)) \ + X (void , glVertexAttribP3ui, (GLuint index, GLenum type, GLboolean normalized, GLuint value)) \ + X (void , glVertexAttribP3uiv, (GLuint index, GLenum type, GLboolean normalized, const GLuint *value)) \ + X (void , glVertexAttribP4ui, (GLuint index, GLenum type, GLboolean normalized, GLuint value)) \ + X (void , glVertexAttribP4uiv, (GLuint index, GLenum type, GLboolean normalized, const GLuint *value)) \ + X (void , glVertexP2ui, (GLenum type, GLuint value)) \ + X (void , glVertexP2uiv, (GLenum type, const GLuint *value)) \ + X (void , glVertexP3ui, (GLenum type, GLuint value)) \ + X (void , glVertexP3uiv, (GLenum type, const GLuint *value)) \ + X (void , glVertexP4ui, (GLenum type, GLuint value)) \ + X (void , glVertexP4uiv, (GLenum type, const GLuint *value)) \ + X (void , glTexCoordP1ui, (GLenum type, GLuint coords)) \ + X (void , glTexCoordP1uiv, (GLenum type, const GLuint *coords)) \ + X (void , glTexCoordP2ui, (GLenum type, GLuint coords)) \ + X (void , glTexCoordP2uiv, (GLenum type, const GLuint *coords)) \ + X (void , glTexCoordP3ui, (GLenum type, GLuint coords)) \ + X (void , glTexCoordP3uiv, (GLenum type, const GLuint *coords)) \ + X (void , glTexCoordP4ui, (GLenum type, GLuint coords)) \ + X (void , glTexCoordP4uiv, (GLenum type, const GLuint *coords)) \ + X (void , glMultiTexCoordP1ui, (GLenum texture, GLenum type, GLuint coords)) \ + X (void , glMultiTexCoordP1uiv, (GLenum texture, GLenum type, const GLuint *coords)) \ + X (void , glMultiTexCoordP2ui, (GLenum texture, GLenum type, GLuint coords)) \ + X (void , glMultiTexCoordP2uiv, (GLenum texture, GLenum type, const GLuint *coords)) \ + X (void , glMultiTexCoordP3ui, (GLenum texture, GLenum type, GLuint coords)) \ + X (void , glMultiTexCoordP3uiv, (GLenum texture, GLenum type, const GLuint *coords)) \ + X (void , glMultiTexCoordP4ui, (GLenum texture, GLenum type, GLuint coords)) \ + X (void , glMultiTexCoordP4uiv, (GLenum texture, GLenum type, const GLuint *coords)) \ + X (void , glNormalP3ui, (GLenum type, GLuint coords)) \ + X (void , glNormalP3uiv, (GLenum type, const GLuint *coords)) \ + X (void , glColorP3ui, (GLenum type, GLuint color)) \ + X (void , glColorP3uiv, (GLenum type, const GLuint *color)) \ + X (void , glColorP4ui, (GLenum type, GLuint color)) \ + X (void , glColorP4uiv, (GLenum type, const GLuint *color)) \ + X (void , glSecondaryColorP3ui, (GLenum type, GLuint color)) \ + X (void , glSecondaryColorP3uiv, (GLenum type, const GLuint *color)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_4_0 \ + X (void , glMinSampleShading, (GLfloat value)) \ + X (void , glBlendEquationi, (GLuint buf, GLenum mode)) \ + X (void , glBlendEquationSeparatei, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ + X (void , glBlendFunci, (GLuint buf, GLenum src, GLenum dst)) \ + X (void , glBlendFuncSeparatei, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ + X (void , glDrawArraysIndirect, (GLenum mode, const void *indirect)) \ + X (void , glDrawElementsIndirect, (GLenum mode, GLenum type, const void *indirect)) \ + X (void , glUniform1d, (GLint location, GLdouble x)) \ + X (void , glUniform2d, (GLint location, GLdouble x, GLdouble y)) \ + X (void , glUniform3d, (GLint location, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glUniform4d, (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glUniform1dv, (GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glUniform2dv, (GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glUniform3dv, (GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glUniform4dv, (GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glUniformMatrix2dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix3dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix4dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix2x3dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix2x4dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix3x2dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix3x4dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix4x2dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glUniformMatrix4x3dv, (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glGetUniformdv, (GLuint program, GLint location, GLdouble *params)) \ + X (GLint , glGetSubroutineUniformLocation, (GLuint program, GLenum shadertype, const GLchar *name)) \ + X (GLuint , glGetSubroutineIndex, (GLuint program, GLenum shadertype, const GLchar *name)) \ + X (void , glGetActiveSubroutineUniformiv, (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values)) \ + X (void , glGetActiveSubroutineUniformName, (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)) \ + X (void , glGetActiveSubroutineName, (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)) \ + X (void , glUniformSubroutinesuiv, (GLenum shadertype, GLsizei count, const GLuint *indices)) \ + X (void , glGetUniformSubroutineuiv, (GLenum shadertype, GLint location, GLuint *params)) \ + X (void , glGetProgramStageiv, (GLuint program, GLenum shadertype, GLenum pname, GLint *values)) \ + X (void , glPatchParameteri, (GLenum pname, GLint value)) \ + X (void , glPatchParameterfv, (GLenum pname, const GLfloat *values)) \ + X (void , glBindTransformFeedback, (GLenum target, GLuint id)) \ + X (void , glDeleteTransformFeedbacks, (GLsizei n, const GLuint *ids)) \ + X (void , glGenTransformFeedbacks, (GLsizei n, GLuint *ids)) \ + X (GLboolean , glIsTransformFeedback, (GLuint id)) \ + X (void , glPauseTransformFeedback, ()) \ + X (void , glResumeTransformFeedback, ()) \ + X (void , glDrawTransformFeedback, (GLenum mode, GLuint id)) \ + X (void , glDrawTransformFeedbackStream, (GLenum mode, GLuint id, GLuint stream)) \ + X (void , glBeginQueryIndexed, (GLenum target, GLuint index, GLuint id)) \ + X (void , glEndQueryIndexed, (GLenum target, GLuint index)) \ + X (void , glGetQueryIndexediv, (GLenum target, GLuint index, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_4_1 \ + X (void , glReleaseShaderCompiler, ()) \ + X (void , glShaderBinary, (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length)) \ + X (void , glGetShaderPrecisionFormat, (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)) \ + X (void , glDepthRangef, (GLfloat n, GLfloat f)) \ + X (void , glClearDepthf, (GLfloat d)) \ + X (void , glGetProgramBinary, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \ + X (void , glProgramBinary, (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)) \ + X (void , glProgramParameteri, (GLuint program, GLenum pname, GLint value)) \ + X (void , glUseProgramStages, (GLuint pipeline, GLbitfield stages, GLuint program)) \ + X (void , glActiveShaderProgram, (GLuint pipeline, GLuint program)) \ + X (GLuint , glCreateShaderProgramv, (GLenum type, GLsizei count, const GLchar *const*strings)) \ + X (void , glBindProgramPipeline, (GLuint pipeline)) \ + X (void , glDeleteProgramPipelines, (GLsizei n, const GLuint *pipelines)) \ + X (void , glGenProgramPipelines, (GLsizei n, GLuint *pipelines)) \ + X (GLboolean , glIsProgramPipeline, (GLuint pipeline)) \ + X (void , glGetProgramPipelineiv, (GLuint pipeline, GLenum pname, GLint *params)) \ + X (void , glProgramUniform1i, (GLuint program, GLint location, GLint v0)) \ + X (void , glProgramUniform1iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform1f, (GLuint program, GLint location, GLfloat v0)) \ + X (void , glProgramUniform1fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform1d, (GLuint program, GLint location, GLdouble v0)) \ + X (void , glProgramUniform1dv, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniform1ui, (GLuint program, GLint location, GLuint v0)) \ + X (void , glProgramUniform1uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform2i, (GLuint program, GLint location, GLint v0, GLint v1)) \ + X (void , glProgramUniform2iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform2f, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \ + X (void , glProgramUniform2fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform2d, (GLuint program, GLint location, GLdouble v0, GLdouble v1)) \ + X (void , glProgramUniform2dv, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniform2ui, (GLuint program, GLint location, GLuint v0, GLuint v1)) \ + X (void , glProgramUniform2uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform3i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \ + X (void , glProgramUniform3iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform3f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ + X (void , glProgramUniform3fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform3d, (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)) \ + X (void , glProgramUniform3dv, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniform3ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \ + X (void , glProgramUniform3uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform4i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ + X (void , glProgramUniform4iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform4f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ + X (void , glProgramUniform4fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform4d, (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)) \ + X (void , glProgramUniform4dv, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniform4ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ + X (void , glProgramUniform4uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniformMatrix2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix3dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix4dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix2x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2x3dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix3x2dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix2x4dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix4x2dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix3x4dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix4x3dv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glValidateProgramPipeline, (GLuint pipeline)) \ + X (void , glGetProgramPipelineInfoLog, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glVertexAttribL1d, (GLuint index, GLdouble x)) \ + X (void , glVertexAttribL2d, (GLuint index, GLdouble x, GLdouble y)) \ + X (void , glVertexAttribL3d, (GLuint index, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glVertexAttribL4d, (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glVertexAttribL1dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribL2dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribL3dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribL4dv, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribLPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glGetVertexAttribLdv, (GLuint index, GLenum pname, GLdouble *params)) \ + X (void , glViewportArrayv, (GLuint first, GLsizei count, const GLfloat *v)) \ + X (void , glViewportIndexedf, (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)) \ + X (void , glViewportIndexedfv, (GLuint index, const GLfloat *v)) \ + X (void , glScissorArrayv, (GLuint first, GLsizei count, const GLint *v)) \ + X (void , glScissorIndexed, (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)) \ + X (void , glScissorIndexedv, (GLuint index, const GLint *v)) \ + X (void , glDepthRangeArrayv, (GLuint first, GLsizei count, const GLdouble *v)) \ + X (void , glDepthRangeIndexed, (GLuint index, GLdouble n, GLdouble f)) \ + X (void , glGetFloati_v, (GLenum target, GLuint index, GLfloat *data)) \ + X (void , glGetDoublei_v, (GLenum target, GLuint index, GLdouble *data)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_4_2 \ + X (void , glDrawArraysInstancedBaseInstance, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)) \ + X (void , glDrawElementsInstancedBaseInstance, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)) \ + X (void , glDrawElementsInstancedBaseVertexBaseInstance, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)) \ + X (void , glGetInternalformativ, (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params)) \ + X (void , glGetActiveAtomicCounterBufferiv, (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params)) \ + X (void , glBindImageTexture, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \ + X (void , glMemoryBarrier, (GLbitfield barriers)) \ + X (void , glTexStorage1D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \ + X (void , glTexStorage2D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glTexStorage3D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ + X (void , glDrawTransformFeedbackInstanced, (GLenum mode, GLuint id, GLsizei instancecount)) \ + X (void , glDrawTransformFeedbackStreamInstanced, (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_4_3 \ + X (void , glClearBufferData, (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data)) \ + X (void , glClearBufferSubData, (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)) \ + X (void , glDispatchCompute, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \ + X (void , glDispatchComputeIndirect, (GLintptr indirect)) \ + X (void , glCopyImageSubData, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) \ + X (void , glFramebufferParameteri, (GLenum target, GLenum pname, GLint param)) \ + X (void , glGetFramebufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetInternalformati64v, (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params)) \ + X (void , glInvalidateTexSubImage, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth)) \ + X (void , glInvalidateTexImage, (GLuint texture, GLint level)) \ + X (void , glInvalidateBufferSubData, (GLuint buffer, GLintptr offset, GLsizeiptr length)) \ + X (void , glInvalidateBufferData, (GLuint buffer)) \ + X (void , glInvalidateFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments)) \ + X (void , glInvalidateSubFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glMultiDrawArraysIndirect, (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride)) \ + X (void , glMultiDrawElementsIndirect, (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride)) \ + X (void , glGetProgramInterfaceiv, (GLuint program, GLenum programInterface, GLenum pname, GLint *params)) \ + X (GLuint , glGetProgramResourceIndex, (GLuint program, GLenum programInterface, const GLchar *name)) \ + X (void , glGetProgramResourceName, (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)) \ + X (void , glGetProgramResourceiv, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params)) \ + X (GLint , glGetProgramResourceLocation, (GLuint program, GLenum programInterface, const GLchar *name)) \ + X (GLint , glGetProgramResourceLocationIndex, (GLuint program, GLenum programInterface, const GLchar *name)) \ + X (void , glShaderStorageBlockBinding, (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding)) \ + X (void , glTexBufferRange, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glTexStorage2DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ + X (void , glTexStorage3DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) \ + X (void , glTextureView, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)) \ + X (void , glBindVertexBuffer, (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \ + X (void , glVertexAttribFormat, (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ + X (void , glVertexAttribIFormat, (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ + X (void , glVertexAttribLFormat, (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ + X (void , glVertexAttribBinding, (GLuint attribindex, GLuint bindingindex)) \ + X (void , glVertexBindingDivisor, (GLuint bindingindex, GLuint divisor)) \ + X (void , glDebugMessageControl, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ + X (void , glDebugMessageInsert, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \ + X (void , glDebugMessageCallback, (GLDEBUGPROC callback, const void *userParam)) \ + X (GLuint , glGetDebugMessageLog, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \ + X (void , glPushDebugGroup, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \ + X (void , glPopDebugGroup, ()) \ + X (void , glObjectLabel, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectLabel, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \ + X (void , glObjectPtrLabel, (const void *ptr, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectPtrLabel, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_4_4 \ + X (void , glBufferStorage, (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags)) \ + X (void , glClearTexImage, (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)) \ + X (void , glClearTexSubImage, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data)) \ + X (void , glBindBuffersBase, (GLenum target, GLuint first, GLsizei count, const GLuint *buffers)) \ + X (void , glBindBuffersRange, (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes)) \ + X (void , glBindTextures, (GLuint first, GLsizei count, const GLuint *textures)) \ + X (void , glBindSamplers, (GLuint first, GLsizei count, const GLuint *samplers)) \ + X (void , glBindImageTextures, (GLuint first, GLsizei count, const GLuint *textures)) \ + X (void , glBindVertexBuffers, (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides)) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_4_5 \ + X (void , glClipControl, (GLenum origin, GLenum depth)) \ + X (void , glCreateTransformFeedbacks, (GLsizei n, GLuint *ids)) \ + X (void , glTransformFeedbackBufferBase, (GLuint xfb, GLuint index, GLuint buffer)) \ + X (void , glTransformFeedbackBufferRange, (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glGetTransformFeedbackiv, (GLuint xfb, GLenum pname, GLint *param)) \ + X (void , glGetTransformFeedbacki_v, (GLuint xfb, GLenum pname, GLuint index, GLint *param)) \ + X (void , glGetTransformFeedbacki64_v, (GLuint xfb, GLenum pname, GLuint index, GLint64 *param)) \ + X (void , glCreateBuffers, (GLsizei n, GLuint *buffers)) \ + X (void , glNamedBufferStorage, (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)) \ + X (void , glNamedBufferData, (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)) \ + X (void , glNamedBufferSubData, (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)) \ + X (void , glCopyNamedBufferSubData, (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \ + X (void , glClearNamedBufferData, (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)) \ + X (void , glClearNamedBufferSubData, (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)) \ + X (void * , glMapNamedBuffer, (GLuint buffer, GLenum access)) \ + X (void * , glMapNamedBufferRange, (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access)) \ + X (GLboolean , glUnmapNamedBuffer, (GLuint buffer)) \ + X (void , glFlushMappedNamedBufferRange, (GLuint buffer, GLintptr offset, GLsizeiptr length)) \ + X (void , glGetNamedBufferParameteriv, (GLuint buffer, GLenum pname, GLint *params)) \ + X (void , glGetNamedBufferParameteri64v, (GLuint buffer, GLenum pname, GLint64 *params)) \ + X (void , glGetNamedBufferPointerv, (GLuint buffer, GLenum pname, void **params)) \ + X (void , glGetNamedBufferSubData, (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)) \ + X (void , glCreateFramebuffers, (GLsizei n, GLuint *framebuffers)) \ + X (void , glNamedFramebufferRenderbuffer, (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \ + X (void , glNamedFramebufferParameteri, (GLuint framebuffer, GLenum pname, GLint param)) \ + X (void , glNamedFramebufferTexture, (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level)) \ + X (void , glNamedFramebufferTextureLayer, (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer)) \ + X (void , glNamedFramebufferDrawBuffer, (GLuint framebuffer, GLenum buf)) \ + X (void , glNamedFramebufferDrawBuffers, (GLuint framebuffer, GLsizei n, const GLenum *bufs)) \ + X (void , glNamedFramebufferReadBuffer, (GLuint framebuffer, GLenum src)) \ + X (void , glInvalidateNamedFramebufferData, (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments)) \ + X (void , glInvalidateNamedFramebufferSubData, (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glClearNamedFramebufferiv, (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value)) \ + X (void , glClearNamedFramebufferuiv, (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value)) \ + X (void , glClearNamedFramebufferfv, (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value)) \ + X (void , glClearNamedFramebufferfi, (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)) \ + X (void , glBlitNamedFramebuffer, (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \ + X (GLenum , glCheckNamedFramebufferStatus, (GLuint framebuffer, GLenum target)) \ + X (void , glGetNamedFramebufferParameteriv, (GLuint framebuffer, GLenum pname, GLint *param)) \ + X (void , glGetNamedFramebufferAttachmentParameteriv, (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params)) \ + X (void , glCreateRenderbuffers, (GLsizei n, GLuint *renderbuffers)) \ + X (void , glNamedRenderbufferStorage, (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glNamedRenderbufferStorageMultisample, (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glGetNamedRenderbufferParameteriv, (GLuint renderbuffer, GLenum pname, GLint *params)) \ + X (void , glCreateTextures, (GLenum target, GLsizei n, GLuint *textures)) \ + X (void , glTextureBuffer, (GLuint texture, GLenum internalformat, GLuint buffer)) \ + X (void , glTextureBufferRange, (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glTextureStorage1D, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width)) \ + X (void , glTextureStorage2D, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glTextureStorage3D, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ + X (void , glTextureStorage2DMultisample, (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ + X (void , glTextureStorage3DMultisample, (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) \ + X (void , glTextureSubImage1D, (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTextureSubImage2D, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTextureSubImage3D, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCompressedTextureSubImage1D, (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTextureSubImage2D, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTextureSubImage3D, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCopyTextureSubImage1D, (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)) \ + X (void , glCopyTextureSubImage2D, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glCopyTextureSubImage3D, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glTextureParameterf, (GLuint texture, GLenum pname, GLfloat param)) \ + X (void , glTextureParameterfv, (GLuint texture, GLenum pname, const GLfloat *param)) \ + X (void , glTextureParameteri, (GLuint texture, GLenum pname, GLint param)) \ + X (void , glTextureParameterIiv, (GLuint texture, GLenum pname, const GLint *params)) \ + X (void , glTextureParameterIuiv, (GLuint texture, GLenum pname, const GLuint *params)) \ + X (void , glTextureParameteriv, (GLuint texture, GLenum pname, const GLint *param)) \ + X (void , glGenerateTextureMipmap, (GLuint texture)) \ + X (void , glBindTextureUnit, (GLuint unit, GLuint texture)) \ + X (void , glGetTextureImage, (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)) \ + X (void , glGetCompressedTextureImage, (GLuint texture, GLint level, GLsizei bufSize, void *pixels)) \ + X (void , glGetTextureLevelParameterfv, (GLuint texture, GLint level, GLenum pname, GLfloat *params)) \ + X (void , glGetTextureLevelParameteriv, (GLuint texture, GLint level, GLenum pname, GLint *params)) \ + X (void , glGetTextureParameterfv, (GLuint texture, GLenum pname, GLfloat *params)) \ + X (void , glGetTextureParameterIiv, (GLuint texture, GLenum pname, GLint *params)) \ + X (void , glGetTextureParameterIuiv, (GLuint texture, GLenum pname, GLuint *params)) \ + X (void , glGetTextureParameteriv, (GLuint texture, GLenum pname, GLint *params)) \ + X (void , glCreateVertexArrays, (GLsizei n, GLuint *arrays)) \ + X (void , glDisableVertexArrayAttrib, (GLuint vaobj, GLuint index)) \ + X (void , glEnableVertexArrayAttrib, (GLuint vaobj, GLuint index)) \ + X (void , glVertexArrayElementBuffer, (GLuint vaobj, GLuint buffer)) \ + X (void , glVertexArrayVertexBuffer, (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \ + X (void , glVertexArrayVertexBuffers, (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides)) \ + X (void , glVertexArrayAttribBinding, (GLuint vaobj, GLuint attribindex, GLuint bindingindex)) \ + X (void , glVertexArrayAttribFormat, (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ + X (void , glVertexArrayAttribIFormat, (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ + X (void , glVertexArrayAttribLFormat, (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ + X (void , glVertexArrayBindingDivisor, (GLuint vaobj, GLuint bindingindex, GLuint divisor)) \ + X (void , glGetVertexArrayiv, (GLuint vaobj, GLenum pname, GLint *param)) \ + X (void , glGetVertexArrayIndexediv, (GLuint vaobj, GLuint index, GLenum pname, GLint *param)) \ + X (void , glGetVertexArrayIndexed64iv, (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param)) \ + X (void , glCreateSamplers, (GLsizei n, GLuint *samplers)) \ + X (void , glCreateProgramPipelines, (GLsizei n, GLuint *pipelines)) \ + X (void , glCreateQueries, (GLenum target, GLsizei n, GLuint *ids)) \ + X (void , glGetQueryBufferObjecti64v, (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)) \ + X (void , glGetQueryBufferObjectiv, (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)) \ + X (void , glGetQueryBufferObjectui64v, (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)) \ + X (void , glGetQueryBufferObjectuiv, (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)) \ + X (void , glMemoryBarrierByRegion, (GLbitfield barriers)) \ + X (void , glGetTextureSubImage, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels)) \ + X (void , glGetCompressedTextureSubImage, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels)) \ + X (GLenum , glGetGraphicsResetStatus, ()) \ + X (void , glGetnCompressedTexImage, (GLenum target, GLint lod, GLsizei bufSize, void *pixels)) \ + X (void , glGetnTexImage, (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)) \ + X (void , glGetnUniformdv, (GLuint program, GLint location, GLsizei bufSize, GLdouble *params)) \ + X (void , glGetnUniformfv, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ + X (void , glGetnUniformiv, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \ + X (void , glGetnUniformuiv, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) \ + X (void , glReadnPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ + X (void , glGetnMapdv, (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v)) \ + X (void , glGetnMapfv, (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v)) \ + X (void , glGetnMapiv, (GLenum target, GLenum query, GLsizei bufSize, GLint *v)) \ + X (void , glGetnPixelMapfv, (GLenum map, GLsizei bufSize, GLfloat *values)) \ + X (void , glGetnPixelMapuiv, (GLenum map, GLsizei bufSize, GLuint *values)) \ + X (void , glGetnPixelMapusv, (GLenum map, GLsizei bufSize, GLushort *values)) \ + X (void , glGetnPolygonStipple, (GLsizei bufSize, GLubyte *pattern)) \ + X (void , glGetnColorTable, (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table)) \ + X (void , glGetnConvolutionFilter, (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image)) \ + X (void , glGetnSeparableFilter, (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span)) \ + X (void , glGetnHistogram, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values)) \ + X (void , glGetnMinmax, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values)) \ + X (void , glTextureBarrier, ()) + +#define JUCE_GL_FUNCTIONS_GL_VERSION_4_6 \ + X (void , glSpecializeShader, (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue)) \ + X (void , glMultiDrawArraysIndirectCount, (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)) \ + X (void , glMultiDrawElementsIndirectCount, (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)) \ + X (void , glPolygonOffsetClamp, (GLfloat factor, GLfloat units, GLfloat clamp)) + +#define JUCE_GL_FUNCTIONS_GL_3DFX_tbuffer \ + X (void , glTbufferMask3DFX, (GLuint mask)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_debug_output \ + X (void , glDebugMessageEnableAMD, (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ + X (void , glDebugMessageInsertAMD, (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf)) \ + X (void , glDebugMessageCallbackAMD, (GLDEBUGPROCAMD callback, void *userParam)) \ + X (GLuint , glGetDebugMessageLogAMD, (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_draw_buffers_blend \ + X (void , glBlendFuncIndexedAMD, (GLuint buf, GLenum src, GLenum dst)) \ + X (void , glBlendFuncSeparateIndexedAMD, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ + X (void , glBlendEquationIndexedAMD, (GLuint buf, GLenum mode)) \ + X (void , glBlendEquationSeparateIndexedAMD, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \ + X (void , glRenderbufferStorageMultisampleAdvancedAMD, (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glNamedRenderbufferStorageMultisampleAdvancedAMD, (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_sample_positions \ + X (void , glFramebufferSamplePositionsfvAMD, (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values)) \ + X (void , glNamedFramebufferSamplePositionsfvAMD, (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values)) \ + X (void , glGetFramebufferParameterfvAMD, (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values)) \ + X (void , glGetNamedFramebufferParameterfvAMD, (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_gpu_shader_int64 \ + X (void , glUniform1i64NV, (GLint location, GLint64EXT x)) \ + X (void , glUniform2i64NV, (GLint location, GLint64EXT x, GLint64EXT y)) \ + X (void , glUniform3i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \ + X (void , glUniform4i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \ + X (void , glUniform1i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform2i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform3i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform4i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform1ui64NV, (GLint location, GLuint64EXT x)) \ + X (void , glUniform2ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y)) \ + X (void , glUniform3ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \ + X (void , glUniform4ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \ + X (void , glUniform1ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glUniform2ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glUniform3ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glUniform4ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glGetUniformi64vNV, (GLuint program, GLint location, GLint64EXT *params)) \ + X (void , glGetUniformui64vNV, (GLuint program, GLint location, GLuint64EXT *params)) \ + X (void , glProgramUniform1i64NV, (GLuint program, GLint location, GLint64EXT x)) \ + X (void , glProgramUniform2i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y)) \ + X (void , glProgramUniform3i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \ + X (void , glProgramUniform4i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \ + X (void , glProgramUniform1i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform2i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform3i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform4i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform1ui64NV, (GLuint program, GLint location, GLuint64EXT x)) \ + X (void , glProgramUniform2ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y)) \ + X (void , glProgramUniform3ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \ + X (void , glProgramUniform4ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \ + X (void , glProgramUniform1ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glProgramUniform2ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glProgramUniform3ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glProgramUniform4ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_interleaved_elements \ + X (void , glVertexAttribParameteriAMD, (GLuint index, GLenum pname, GLint param)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_multi_draw_indirect \ + X (void , glMultiDrawArraysIndirectAMD, (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride)) \ + X (void , glMultiDrawElementsIndirectAMD, (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_name_gen_delete \ + X (void , glGenNamesAMD, (GLenum identifier, GLuint num, GLuint *names)) \ + X (void , glDeleteNamesAMD, (GLenum identifier, GLuint num, const GLuint *names)) \ + X (GLboolean , glIsNameAMD, (GLenum identifier, GLuint name)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_occlusion_query_event \ + X (void , glQueryObjectParameteruiAMD, (GLenum target, GLuint id, GLenum pname, GLuint param)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \ + X (void , glGetPerfMonitorGroupsAMD, (GLint *numGroups, GLsizei groupsSize, GLuint *groups)) \ + X (void , glGetPerfMonitorCountersAMD, (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)) \ + X (void , glGetPerfMonitorGroupStringAMD, (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)) \ + X (void , glGetPerfMonitorCounterStringAMD, (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)) \ + X (void , glGetPerfMonitorCounterInfoAMD, (GLuint group, GLuint counter, GLenum pname, void *data)) \ + X (void , glGenPerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \ + X (void , glDeletePerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \ + X (void , glSelectPerfMonitorCountersAMD, (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList)) \ + X (void , glBeginPerfMonitorAMD, (GLuint monitor)) \ + X (void , glEndPerfMonitorAMD, (GLuint monitor)) \ + X (void , glGetPerfMonitorCounterDataAMD, (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_sample_positions \ + X (void , glSetMultisamplefvAMD, (GLenum pname, GLuint index, const GLfloat *val)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_sparse_texture \ + X (void , glTexStorageSparseAMD, (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags)) \ + X (void , glTextureStorageSparseAMD, (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_stencil_operation_extended \ + X (void , glStencilOpValueAMD, (GLenum face, GLuint value)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_vertex_shader_tessellator \ + X (void , glTessellationFactorAMD, (GLfloat factor)) \ + X (void , glTessellationModeAMD, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_element_array \ + X (void , glElementPointerAPPLE, (GLenum type, const void *pointer)) \ + X (void , glDrawElementArrayAPPLE, (GLenum mode, GLint first, GLsizei count)) \ + X (void , glDrawRangeElementArrayAPPLE, (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count)) \ + X (void , glMultiDrawElementArrayAPPLE, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)) \ + X (void , glMultiDrawRangeElementArrayAPPLE, (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_fence \ + X (void , glGenFencesAPPLE, (GLsizei n, GLuint *fences)) \ + X (void , glDeleteFencesAPPLE, (GLsizei n, const GLuint *fences)) \ + X (void , glSetFenceAPPLE, (GLuint fence)) \ + X (GLboolean , glIsFenceAPPLE, (GLuint fence)) \ + X (GLboolean , glTestFenceAPPLE, (GLuint fence)) \ + X (void , glFinishFenceAPPLE, (GLuint fence)) \ + X (GLboolean , glTestObjectAPPLE, (GLenum object, GLuint name)) \ + X (void , glFinishObjectAPPLE, (GLenum object, GLint name)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_flush_buffer_range \ + X (void , glBufferParameteriAPPLE, (GLenum target, GLenum pname, GLint param)) \ + X (void , glFlushMappedBufferRangeAPPLE, (GLenum target, GLintptr offset, GLsizeiptr size)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_object_purgeable \ + X (GLenum , glObjectPurgeableAPPLE, (GLenum objectType, GLuint name, GLenum option)) \ + X (GLenum , glObjectUnpurgeableAPPLE, (GLenum objectType, GLuint name, GLenum option)) \ + X (void , glGetObjectParameterivAPPLE, (GLenum objectType, GLuint name, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_texture_range \ + X (void , glTextureRangeAPPLE, (GLenum target, GLsizei length, const void *pointer)) \ + X (void , glGetTexParameterPointervAPPLE, (GLenum target, GLenum pname, void **params)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_vertex_array_object \ + X (void , glBindVertexArrayAPPLE, (GLuint array)) \ + X (void , glDeleteVertexArraysAPPLE, (GLsizei n, const GLuint *arrays)) \ + X (void , glGenVertexArraysAPPLE, (GLsizei n, GLuint *arrays)) \ + X (GLboolean , glIsVertexArrayAPPLE, (GLuint array)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_vertex_array_range \ + X (void , glVertexArrayRangeAPPLE, (GLsizei length, void *pointer)) \ + X (void , glFlushVertexArrayRangeAPPLE, (GLsizei length, void *pointer)) \ + X (void , glVertexArrayParameteriAPPLE, (GLenum pname, GLint param)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_vertex_program_evaluators \ + X (void , glEnableVertexAttribAPPLE, (GLuint index, GLenum pname)) \ + X (void , glDisableVertexAttribAPPLE, (GLuint index, GLenum pname)) \ + X (GLboolean , glIsVertexAttribEnabledAPPLE, (GLuint index, GLenum pname)) \ + X (void , glMapVertexAttrib1dAPPLE, (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)) \ + X (void , glMapVertexAttrib1fAPPLE, (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)) \ + X (void , glMapVertexAttrib2dAPPLE, (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)) \ + X (void , glMapVertexAttrib2fAPPLE, (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_ES3_2_compatibility \ + X (void , glPrimitiveBoundingBoxARB, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_bindless_texture \ + X (GLuint64 , glGetTextureHandleARB, (GLuint texture)) \ + X (GLuint64 , glGetTextureSamplerHandleARB, (GLuint texture, GLuint sampler)) \ + X (void , glMakeTextureHandleResidentARB, (GLuint64 handle)) \ + X (void , glMakeTextureHandleNonResidentARB, (GLuint64 handle)) \ + X (GLuint64 , glGetImageHandleARB, (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format)) \ + X (void , glMakeImageHandleResidentARB, (GLuint64 handle, GLenum access)) \ + X (void , glMakeImageHandleNonResidentARB, (GLuint64 handle)) \ + X (void , glUniformHandleui64ARB, (GLint location, GLuint64 value)) \ + X (void , glUniformHandleui64vARB, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glProgramUniformHandleui64ARB, (GLuint program, GLint location, GLuint64 value)) \ + X (void , glProgramUniformHandleui64vARB, (GLuint program, GLint location, GLsizei count, const GLuint64 *values)) \ + X (GLboolean , glIsTextureHandleResidentARB, (GLuint64 handle)) \ + X (GLboolean , glIsImageHandleResidentARB, (GLuint64 handle)) \ + X (void , glVertexAttribL1ui64ARB, (GLuint index, GLuint64EXT x)) \ + X (void , glVertexAttribL1ui64vARB, (GLuint index, const GLuint64EXT *v)) \ + X (void , glGetVertexAttribLui64vARB, (GLuint index, GLenum pname, GLuint64EXT *params)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_cl_event \ + X (GLsync , glCreateSyncFromCLeventARB, (struct _cl_context *context, struct _cl_event *event, GLbitfield flags)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_color_buffer_float \ + X (void , glClampColorARB, (GLenum target, GLenum clamp)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_compute_variable_group_size \ + X (void , glDispatchComputeGroupSizeARB, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_debug_output \ + X (void , glDebugMessageControlARB, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ + X (void , glDebugMessageInsertARB, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \ + X (void , glDebugMessageCallbackARB, (GLDEBUGPROCARB callback, const void *userParam)) \ + X (GLuint , glGetDebugMessageLogARB, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_draw_buffers \ + X (void , glDrawBuffersARB, (GLsizei n, const GLenum *bufs)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_draw_buffers_blend \ + X (void , glBlendEquationiARB, (GLuint buf, GLenum mode)) \ + X (void , glBlendEquationSeparateiARB, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ + X (void , glBlendFunciARB, (GLuint buf, GLenum src, GLenum dst)) \ + X (void , glBlendFuncSeparateiARB, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_draw_instanced \ + X (void , glDrawArraysInstancedARB, (GLenum mode, GLint first, GLsizei count, GLsizei primcount)) \ + X (void , glDrawElementsInstancedARB, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_fragment_program \ + X (void , glProgramStringARB, (GLenum target, GLenum format, GLsizei len, const void *string)) \ + X (void , glBindProgramARB, (GLenum target, GLuint program)) \ + X (void , glDeleteProgramsARB, (GLsizei n, const GLuint *programs)) \ + X (void , glGenProgramsARB, (GLsizei n, GLuint *programs)) \ + X (void , glProgramEnvParameter4dARB, (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glProgramEnvParameter4dvARB, (GLenum target, GLuint index, const GLdouble *params)) \ + X (void , glProgramEnvParameter4fARB, (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glProgramEnvParameter4fvARB, (GLenum target, GLuint index, const GLfloat *params)) \ + X (void , glProgramLocalParameter4dARB, (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glProgramLocalParameter4dvARB, (GLenum target, GLuint index, const GLdouble *params)) \ + X (void , glProgramLocalParameter4fARB, (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glProgramLocalParameter4fvARB, (GLenum target, GLuint index, const GLfloat *params)) \ + X (void , glGetProgramEnvParameterdvARB, (GLenum target, GLuint index, GLdouble *params)) \ + X (void , glGetProgramEnvParameterfvARB, (GLenum target, GLuint index, GLfloat *params)) \ + X (void , glGetProgramLocalParameterdvARB, (GLenum target, GLuint index, GLdouble *params)) \ + X (void , glGetProgramLocalParameterfvARB, (GLenum target, GLuint index, GLfloat *params)) \ + X (void , glGetProgramivARB, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetProgramStringARB, (GLenum target, GLenum pname, void *string)) \ + X (GLboolean , glIsProgramARB, (GLuint program)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_geometry_shader4 \ + X (void , glProgramParameteriARB, (GLuint program, GLenum pname, GLint value)) \ + X (void , glFramebufferTextureARB, (GLenum target, GLenum attachment, GLuint texture, GLint level)) \ + X (void , glFramebufferTextureLayerARB, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)) \ + X (void , glFramebufferTextureFaceARB, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_gl_spirv \ + X (void , glSpecializeShaderARB, (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_gpu_shader_int64 \ + X (void , glUniform1i64ARB, (GLint location, GLint64 x)) \ + X (void , glUniform2i64ARB, (GLint location, GLint64 x, GLint64 y)) \ + X (void , glUniform3i64ARB, (GLint location, GLint64 x, GLint64 y, GLint64 z)) \ + X (void , glUniform4i64ARB, (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w)) \ + X (void , glUniform1i64vARB, (GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glUniform2i64vARB, (GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glUniform3i64vARB, (GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glUniform4i64vARB, (GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glUniform1ui64ARB, (GLint location, GLuint64 x)) \ + X (void , glUniform2ui64ARB, (GLint location, GLuint64 x, GLuint64 y)) \ + X (void , glUniform3ui64ARB, (GLint location, GLuint64 x, GLuint64 y, GLuint64 z)) \ + X (void , glUniform4ui64ARB, (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w)) \ + X (void , glUniform1ui64vARB, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glUniform2ui64vARB, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glUniform3ui64vARB, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glUniform4ui64vARB, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glGetUniformi64vARB, (GLuint program, GLint location, GLint64 *params)) \ + X (void , glGetUniformui64vARB, (GLuint program, GLint location, GLuint64 *params)) \ + X (void , glGetnUniformi64vARB, (GLuint program, GLint location, GLsizei bufSize, GLint64 *params)) \ + X (void , glGetnUniformui64vARB, (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params)) \ + X (void , glProgramUniform1i64ARB, (GLuint program, GLint location, GLint64 x)) \ + X (void , glProgramUniform2i64ARB, (GLuint program, GLint location, GLint64 x, GLint64 y)) \ + X (void , glProgramUniform3i64ARB, (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z)) \ + X (void , glProgramUniform4i64ARB, (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w)) \ + X (void , glProgramUniform1i64vARB, (GLuint program, GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glProgramUniform2i64vARB, (GLuint program, GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glProgramUniform3i64vARB, (GLuint program, GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glProgramUniform4i64vARB, (GLuint program, GLint location, GLsizei count, const GLint64 *value)) \ + X (void , glProgramUniform1ui64ARB, (GLuint program, GLint location, GLuint64 x)) \ + X (void , glProgramUniform2ui64ARB, (GLuint program, GLint location, GLuint64 x, GLuint64 y)) \ + X (void , glProgramUniform3ui64ARB, (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z)) \ + X (void , glProgramUniform4ui64ARB, (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w)) \ + X (void , glProgramUniform1ui64vARB, (GLuint program, GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glProgramUniform2ui64vARB, (GLuint program, GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glProgramUniform3ui64vARB, (GLuint program, GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glProgramUniform4ui64vARB, (GLuint program, GLint location, GLsizei count, const GLuint64 *value)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_imaging \ + X (void , glColorTable, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table)) \ + X (void , glColorTableParameterfv, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glColorTableParameteriv, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glCopyColorTable, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)) \ + X (void , glGetColorTable, (GLenum target, GLenum format, GLenum type, void *table)) \ + X (void , glGetColorTableParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetColorTableParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glColorSubTable, (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data)) \ + X (void , glCopyColorSubTable, (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)) \ + X (void , glConvolutionFilter1D, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image)) \ + X (void , glConvolutionFilter2D, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image)) \ + X (void , glConvolutionParameterf, (GLenum target, GLenum pname, GLfloat params)) \ + X (void , glConvolutionParameterfv, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glConvolutionParameteri, (GLenum target, GLenum pname, GLint params)) \ + X (void , glConvolutionParameteriv, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glCopyConvolutionFilter1D, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)) \ + X (void , glCopyConvolutionFilter2D, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glGetConvolutionFilter, (GLenum target, GLenum format, GLenum type, void *image)) \ + X (void , glGetConvolutionParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetConvolutionParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetSeparableFilter, (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span)) \ + X (void , glSeparableFilter2D, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column)) \ + X (void , glGetHistogram, (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)) \ + X (void , glGetHistogramParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetHistogramParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetMinmax, (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)) \ + X (void , glGetMinmaxParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetMinmaxParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glHistogram, (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)) \ + X (void , glMinmax, (GLenum target, GLenum internalformat, GLboolean sink)) \ + X (void , glResetHistogram, (GLenum target)) \ + X (void , glResetMinmax, (GLenum target)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_indirect_parameters \ + X (void , glMultiDrawArraysIndirectCountARB, (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)) \ + X (void , glMultiDrawElementsIndirectCountARB, (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_instanced_arrays \ + X (void , glVertexAttribDivisorARB, (GLuint index, GLuint divisor)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_matrix_palette \ + X (void , glCurrentPaletteMatrixARB, (GLint index)) \ + X (void , glMatrixIndexubvARB, (GLint size, const GLubyte *indices)) \ + X (void , glMatrixIndexusvARB, (GLint size, const GLushort *indices)) \ + X (void , glMatrixIndexuivARB, (GLint size, const GLuint *indices)) \ + X (void , glMatrixIndexPointerARB, (GLint size, GLenum type, GLsizei stride, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_multisample \ + X (void , glSampleCoverageARB, (GLfloat value, GLboolean invert)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_multitexture \ + X (void , glActiveTextureARB, (GLenum texture)) \ + X (void , glClientActiveTextureARB, (GLenum texture)) \ + X (void , glMultiTexCoord1dARB, (GLenum target, GLdouble s)) \ + X (void , glMultiTexCoord1dvARB, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord1fARB, (GLenum target, GLfloat s)) \ + X (void , glMultiTexCoord1fvARB, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord1iARB, (GLenum target, GLint s)) \ + X (void , glMultiTexCoord1ivARB, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord1sARB, (GLenum target, GLshort s)) \ + X (void , glMultiTexCoord1svARB, (GLenum target, const GLshort *v)) \ + X (void , glMultiTexCoord2dARB, (GLenum target, GLdouble s, GLdouble t)) \ + X (void , glMultiTexCoord2dvARB, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord2fARB, (GLenum target, GLfloat s, GLfloat t)) \ + X (void , glMultiTexCoord2fvARB, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord2iARB, (GLenum target, GLint s, GLint t)) \ + X (void , glMultiTexCoord2ivARB, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord2sARB, (GLenum target, GLshort s, GLshort t)) \ + X (void , glMultiTexCoord2svARB, (GLenum target, const GLshort *v)) \ + X (void , glMultiTexCoord3dARB, (GLenum target, GLdouble s, GLdouble t, GLdouble r)) \ + X (void , glMultiTexCoord3dvARB, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord3fARB, (GLenum target, GLfloat s, GLfloat t, GLfloat r)) \ + X (void , glMultiTexCoord3fvARB, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord3iARB, (GLenum target, GLint s, GLint t, GLint r)) \ + X (void , glMultiTexCoord3ivARB, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord3sARB, (GLenum target, GLshort s, GLshort t, GLshort r)) \ + X (void , glMultiTexCoord3svARB, (GLenum target, const GLshort *v)) \ + X (void , glMultiTexCoord4dARB, (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)) \ + X (void , glMultiTexCoord4dvARB, (GLenum target, const GLdouble *v)) \ + X (void , glMultiTexCoord4fARB, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)) \ + X (void , glMultiTexCoord4fvARB, (GLenum target, const GLfloat *v)) \ + X (void , glMultiTexCoord4iARB, (GLenum target, GLint s, GLint t, GLint r, GLint q)) \ + X (void , glMultiTexCoord4ivARB, (GLenum target, const GLint *v)) \ + X (void , glMultiTexCoord4sARB, (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)) \ + X (void , glMultiTexCoord4svARB, (GLenum target, const GLshort *v)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_occlusion_query \ + X (void , glGenQueriesARB, (GLsizei n, GLuint *ids)) \ + X (void , glDeleteQueriesARB, (GLsizei n, const GLuint *ids)) \ + X (GLboolean , glIsQueryARB, (GLuint id)) \ + X (void , glBeginQueryARB, (GLenum target, GLuint id)) \ + X (void , glEndQueryARB, (GLenum target)) \ + X (void , glGetQueryivARB, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetQueryObjectivARB, (GLuint id, GLenum pname, GLint *params)) \ + X (void , glGetQueryObjectuivARB, (GLuint id, GLenum pname, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_parallel_shader_compile \ + X (void , glMaxShaderCompilerThreadsARB, (GLuint count)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_point_parameters \ + X (void , glPointParameterfARB, (GLenum pname, GLfloat param)) \ + X (void , glPointParameterfvARB, (GLenum pname, const GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_robustness \ + X (GLenum , glGetGraphicsResetStatusARB, ()) \ + X (void , glGetnTexImageARB, (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img)) \ + X (void , glReadnPixelsARB, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ + X (void , glGetnCompressedTexImageARB, (GLenum target, GLint lod, GLsizei bufSize, void *img)) \ + X (void , glGetnUniformfvARB, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ + X (void , glGetnUniformivARB, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \ + X (void , glGetnUniformuivARB, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) \ + X (void , glGetnUniformdvARB, (GLuint program, GLint location, GLsizei bufSize, GLdouble *params)) \ + X (void , glGetnMapdvARB, (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v)) \ + X (void , glGetnMapfvARB, (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v)) \ + X (void , glGetnMapivARB, (GLenum target, GLenum query, GLsizei bufSize, GLint *v)) \ + X (void , glGetnPixelMapfvARB, (GLenum map, GLsizei bufSize, GLfloat *values)) \ + X (void , glGetnPixelMapuivARB, (GLenum map, GLsizei bufSize, GLuint *values)) \ + X (void , glGetnPixelMapusvARB, (GLenum map, GLsizei bufSize, GLushort *values)) \ + X (void , glGetnPolygonStippleARB, (GLsizei bufSize, GLubyte *pattern)) \ + X (void , glGetnColorTableARB, (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table)) \ + X (void , glGetnConvolutionFilterARB, (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image)) \ + X (void , glGetnSeparableFilterARB, (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span)) \ + X (void , glGetnHistogramARB, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values)) \ + X (void , glGetnMinmaxARB, (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_sample_locations \ + X (void , glFramebufferSampleLocationsfvARB, (GLenum target, GLuint start, GLsizei count, const GLfloat *v)) \ + X (void , glNamedFramebufferSampleLocationsfvARB, (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v)) \ + X (void , glEvaluateDepthValuesARB, ()) + +#define JUCE_GL_FUNCTIONS_GL_ARB_sample_shading \ + X (void , glMinSampleShadingARB, (GLfloat value)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_shader_objects \ + X (void , glDeleteObjectARB, (GLhandleARB obj)) \ + X (GLhandleARB , glGetHandleARB, (GLenum pname)) \ + X (void , glDetachObjectARB, (GLhandleARB containerObj, GLhandleARB attachedObj)) \ + X (GLhandleARB , glCreateShaderObjectARB, (GLenum shaderType)) \ + X (void , glShaderSourceARB, (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length)) \ + X (void , glCompileShaderARB, (GLhandleARB shaderObj)) \ + X (GLhandleARB , glCreateProgramObjectARB, ()) \ + X (void , glAttachObjectARB, (GLhandleARB containerObj, GLhandleARB obj)) \ + X (void , glLinkProgramARB, (GLhandleARB programObj)) \ + X (void , glUseProgramObjectARB, (GLhandleARB programObj)) \ + X (void , glValidateProgramARB, (GLhandleARB programObj)) \ + X (void , glUniform1fARB, (GLint location, GLfloat v0)) \ + X (void , glUniform2fARB, (GLint location, GLfloat v0, GLfloat v1)) \ + X (void , glUniform3fARB, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ + X (void , glUniform4fARB, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ + X (void , glUniform1iARB, (GLint location, GLint v0)) \ + X (void , glUniform2iARB, (GLint location, GLint v0, GLint v1)) \ + X (void , glUniform3iARB, (GLint location, GLint v0, GLint v1, GLint v2)) \ + X (void , glUniform4iARB, (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ + X (void , glUniform1fvARB, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform2fvARB, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform3fvARB, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform4fvARB, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform1ivARB, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform2ivARB, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform3ivARB, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform4ivARB, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniformMatrix2fvARB, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3fvARB, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4fvARB, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glGetObjectParameterfvARB, (GLhandleARB obj, GLenum pname, GLfloat *params)) \ + X (void , glGetObjectParameterivARB, (GLhandleARB obj, GLenum pname, GLint *params)) \ + X (void , glGetInfoLogARB, (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog)) \ + X (void , glGetAttachedObjectsARB, (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj)) \ + X (GLint , glGetUniformLocationARB, (GLhandleARB programObj, const GLcharARB *name)) \ + X (void , glGetActiveUniformARB, (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name)) \ + X (void , glGetUniformfvARB, (GLhandleARB programObj, GLint location, GLfloat *params)) \ + X (void , glGetUniformivARB, (GLhandleARB programObj, GLint location, GLint *params)) \ + X (void , glGetShaderSourceARB, (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_shading_language_include \ + X (void , glNamedStringARB, (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string)) \ + X (void , glDeleteNamedStringARB, (GLint namelen, const GLchar *name)) \ + X (void , glCompileShaderIncludeARB, (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length)) \ + X (GLboolean , glIsNamedStringARB, (GLint namelen, const GLchar *name)) \ + X (void , glGetNamedStringARB, (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string)) \ + X (void , glGetNamedStringivARB, (GLint namelen, const GLchar *name, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_sparse_buffer \ + X (void , glBufferPageCommitmentARB, (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit)) \ + X (void , glNamedBufferPageCommitmentEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit)) \ + X (void , glNamedBufferPageCommitmentARB, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_sparse_texture \ + X (void , glTexPageCommitmentARB, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_texture_buffer_object \ + X (void , glTexBufferARB, (GLenum target, GLenum internalformat, GLuint buffer)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_texture_compression \ + X (void , glCompressedTexImage3DARB, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexImage2DARB, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexImage1DARB, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage3DARB, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage2DARB, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage1DARB, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glGetCompressedTexImageARB, (GLenum target, GLint level, void *img)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_transpose_matrix \ + X (void , glLoadTransposeMatrixfARB, (const GLfloat *m)) \ + X (void , glLoadTransposeMatrixdARB, (const GLdouble *m)) \ + X (void , glMultTransposeMatrixfARB, (const GLfloat *m)) \ + X (void , glMultTransposeMatrixdARB, (const GLdouble *m)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_vertex_blend \ + X (void , glWeightbvARB, (GLint size, const GLbyte *weights)) \ + X (void , glWeightsvARB, (GLint size, const GLshort *weights)) \ + X (void , glWeightivARB, (GLint size, const GLint *weights)) \ + X (void , glWeightfvARB, (GLint size, const GLfloat *weights)) \ + X (void , glWeightdvARB, (GLint size, const GLdouble *weights)) \ + X (void , glWeightubvARB, (GLint size, const GLubyte *weights)) \ + X (void , glWeightusvARB, (GLint size, const GLushort *weights)) \ + X (void , glWeightuivARB, (GLint size, const GLuint *weights)) \ + X (void , glWeightPointerARB, (GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glVertexBlendARB, (GLint count)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_vertex_buffer_object \ + X (void , glBindBufferARB, (GLenum target, GLuint buffer)) \ + X (void , glDeleteBuffersARB, (GLsizei n, const GLuint *buffers)) \ + X (void , glGenBuffersARB, (GLsizei n, GLuint *buffers)) \ + X (GLboolean , glIsBufferARB, (GLuint buffer)) \ + X (void , glBufferDataARB, (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage)) \ + X (void , glBufferSubDataARB, (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data)) \ + X (void , glGetBufferSubDataARB, (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data)) \ + X (void * , glMapBufferARB, (GLenum target, GLenum access)) \ + X (GLboolean , glUnmapBufferARB, (GLenum target)) \ + X (void , glGetBufferParameterivARB, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetBufferPointervARB, (GLenum target, GLenum pname, void **params)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_vertex_program \ + X (void , glVertexAttrib1dARB, (GLuint index, GLdouble x)) \ + X (void , glVertexAttrib1dvARB, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib1fARB, (GLuint index, GLfloat x)) \ + X (void , glVertexAttrib1fvARB, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib1sARB, (GLuint index, GLshort x)) \ + X (void , glVertexAttrib1svARB, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib2dARB, (GLuint index, GLdouble x, GLdouble y)) \ + X (void , glVertexAttrib2dvARB, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib2fARB, (GLuint index, GLfloat x, GLfloat y)) \ + X (void , glVertexAttrib2fvARB, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib2sARB, (GLuint index, GLshort x, GLshort y)) \ + X (void , glVertexAttrib2svARB, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib3dARB, (GLuint index, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glVertexAttrib3dvARB, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib3fARB, (GLuint index, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glVertexAttrib3fvARB, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib3sARB, (GLuint index, GLshort x, GLshort y, GLshort z)) \ + X (void , glVertexAttrib3svARB, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4NbvARB, (GLuint index, const GLbyte *v)) \ + X (void , glVertexAttrib4NivARB, (GLuint index, const GLint *v)) \ + X (void , glVertexAttrib4NsvARB, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4NubARB, (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)) \ + X (void , glVertexAttrib4NubvARB, (GLuint index, const GLubyte *v)) \ + X (void , glVertexAttrib4NuivARB, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttrib4NusvARB, (GLuint index, const GLushort *v)) \ + X (void , glVertexAttrib4bvARB, (GLuint index, const GLbyte *v)) \ + X (void , glVertexAttrib4dARB, (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glVertexAttrib4dvARB, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib4fARB, (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glVertexAttrib4fvARB, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib4ivARB, (GLuint index, const GLint *v)) \ + X (void , glVertexAttrib4sARB, (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)) \ + X (void , glVertexAttrib4svARB, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4ubvARB, (GLuint index, const GLubyte *v)) \ + X (void , glVertexAttrib4uivARB, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttrib4usvARB, (GLuint index, const GLushort *v)) \ + X (void , glVertexAttribPointerARB, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)) \ + X (void , glEnableVertexAttribArrayARB, (GLuint index)) \ + X (void , glDisableVertexAttribArrayARB, (GLuint index)) \ + X (void , glGetVertexAttribdvARB, (GLuint index, GLenum pname, GLdouble *params)) \ + X (void , glGetVertexAttribfvARB, (GLuint index, GLenum pname, GLfloat *params)) \ + X (void , glGetVertexAttribivARB, (GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribPointervARB, (GLuint index, GLenum pname, void **pointer)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_vertex_shader \ + X (void , glBindAttribLocationARB, (GLhandleARB programObj, GLuint index, const GLcharARB *name)) \ + X (void , glGetActiveAttribARB, (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name)) \ + X (GLint , glGetAttribLocationARB, (GLhandleARB programObj, const GLcharARB *name)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_viewport_array \ + X (void , glDepthRangeArraydvNV, (GLuint first, GLsizei count, const GLdouble *v)) \ + X (void , glDepthRangeIndexeddNV, (GLuint index, GLdouble n, GLdouble f)) + +#define JUCE_GL_FUNCTIONS_GL_ARB_window_pos \ + X (void , glWindowPos2dARB, (GLdouble x, GLdouble y)) \ + X (void , glWindowPos2dvARB, (const GLdouble *v)) \ + X (void , glWindowPos2fARB, (GLfloat x, GLfloat y)) \ + X (void , glWindowPos2fvARB, (const GLfloat *v)) \ + X (void , glWindowPos2iARB, (GLint x, GLint y)) \ + X (void , glWindowPos2ivARB, (const GLint *v)) \ + X (void , glWindowPos2sARB, (GLshort x, GLshort y)) \ + X (void , glWindowPos2svARB, (const GLshort *v)) \ + X (void , glWindowPos3dARB, (GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glWindowPos3dvARB, (const GLdouble *v)) \ + X (void , glWindowPos3fARB, (GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glWindowPos3fvARB, (const GLfloat *v)) \ + X (void , glWindowPos3iARB, (GLint x, GLint y, GLint z)) \ + X (void , glWindowPos3ivARB, (const GLint *v)) \ + X (void , glWindowPos3sARB, (GLshort x, GLshort y, GLshort z)) \ + X (void , glWindowPos3svARB, (const GLshort *v)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_draw_buffers \ + X (void , glDrawBuffersATI, (GLsizei n, const GLenum *bufs)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_element_array \ + X (void , glElementPointerATI, (GLenum type, const void *pointer)) \ + X (void , glDrawElementArrayATI, (GLenum mode, GLsizei count)) \ + X (void , glDrawRangeElementArrayATI, (GLenum mode, GLuint start, GLuint end, GLsizei count)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_envmap_bumpmap \ + X (void , glTexBumpParameterivATI, (GLenum pname, const GLint *param)) \ + X (void , glTexBumpParameterfvATI, (GLenum pname, const GLfloat *param)) \ + X (void , glGetTexBumpParameterivATI, (GLenum pname, GLint *param)) \ + X (void , glGetTexBumpParameterfvATI, (GLenum pname, GLfloat *param)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_fragment_shader \ + X (GLuint , glGenFragmentShadersATI, (GLuint range)) \ + X (void , glBindFragmentShaderATI, (GLuint id)) \ + X (void , glDeleteFragmentShaderATI, (GLuint id)) \ + X (void , glBeginFragmentShaderATI, ()) \ + X (void , glEndFragmentShaderATI, ()) \ + X (void , glPassTexCoordATI, (GLuint dst, GLuint coord, GLenum swizzle)) \ + X (void , glSampleMapATI, (GLuint dst, GLuint interp, GLenum swizzle)) \ + X (void , glColorFragmentOp1ATI, (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod)) \ + X (void , glColorFragmentOp2ATI, (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod)) \ + X (void , glColorFragmentOp3ATI, (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod)) \ + X (void , glAlphaFragmentOp1ATI, (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod)) \ + X (void , glAlphaFragmentOp2ATI, (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod)) \ + X (void , glAlphaFragmentOp3ATI, (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod)) \ + X (void , glSetFragmentShaderConstantATI, (GLuint dst, const GLfloat *value)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_map_object_buffer \ + X (void * , glMapObjectBufferATI, (GLuint buffer)) \ + X (void , glUnmapObjectBufferATI, (GLuint buffer)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_pn_triangles \ + X (void , glPNTrianglesiATI, (GLenum pname, GLint param)) \ + X (void , glPNTrianglesfATI, (GLenum pname, GLfloat param)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_separate_stencil \ + X (void , glStencilOpSeparateATI, (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)) \ + X (void , glStencilFuncSeparateATI, (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_vertex_array_object \ + X (GLuint , glNewObjectBufferATI, (GLsizei size, const void *pointer, GLenum usage)) \ + X (GLboolean , glIsObjectBufferATI, (GLuint buffer)) \ + X (void , glUpdateObjectBufferATI, (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve)) \ + X (void , glGetObjectBufferfvATI, (GLuint buffer, GLenum pname, GLfloat *params)) \ + X (void , glGetObjectBufferivATI, (GLuint buffer, GLenum pname, GLint *params)) \ + X (void , glFreeObjectBufferATI, (GLuint buffer)) \ + X (void , glArrayObjectATI, (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset)) \ + X (void , glGetArrayObjectfvATI, (GLenum array, GLenum pname, GLfloat *params)) \ + X (void , glGetArrayObjectivATI, (GLenum array, GLenum pname, GLint *params)) \ + X (void , glVariantArrayObjectATI, (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset)) \ + X (void , glGetVariantArrayObjectfvATI, (GLuint id, GLenum pname, GLfloat *params)) \ + X (void , glGetVariantArrayObjectivATI, (GLuint id, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_vertex_attrib_array_object \ + X (void , glVertexAttribArrayObjectATI, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset)) \ + X (void , glGetVertexAttribArrayObjectfvATI, (GLuint index, GLenum pname, GLfloat *params)) \ + X (void , glGetVertexAttribArrayObjectivATI, (GLuint index, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_ATI_vertex_streams \ + X (void , glVertexStream1sATI, (GLenum stream, GLshort x)) \ + X (void , glVertexStream1svATI, (GLenum stream, const GLshort *coords)) \ + X (void , glVertexStream1iATI, (GLenum stream, GLint x)) \ + X (void , glVertexStream1ivATI, (GLenum stream, const GLint *coords)) \ + X (void , glVertexStream1fATI, (GLenum stream, GLfloat x)) \ + X (void , glVertexStream1fvATI, (GLenum stream, const GLfloat *coords)) \ + X (void , glVertexStream1dATI, (GLenum stream, GLdouble x)) \ + X (void , glVertexStream1dvATI, (GLenum stream, const GLdouble *coords)) \ + X (void , glVertexStream2sATI, (GLenum stream, GLshort x, GLshort y)) \ + X (void , glVertexStream2svATI, (GLenum stream, const GLshort *coords)) \ + X (void , glVertexStream2iATI, (GLenum stream, GLint x, GLint y)) \ + X (void , glVertexStream2ivATI, (GLenum stream, const GLint *coords)) \ + X (void , glVertexStream2fATI, (GLenum stream, GLfloat x, GLfloat y)) \ + X (void , glVertexStream2fvATI, (GLenum stream, const GLfloat *coords)) \ + X (void , glVertexStream2dATI, (GLenum stream, GLdouble x, GLdouble y)) \ + X (void , glVertexStream2dvATI, (GLenum stream, const GLdouble *coords)) \ + X (void , glVertexStream3sATI, (GLenum stream, GLshort x, GLshort y, GLshort z)) \ + X (void , glVertexStream3svATI, (GLenum stream, const GLshort *coords)) \ + X (void , glVertexStream3iATI, (GLenum stream, GLint x, GLint y, GLint z)) \ + X (void , glVertexStream3ivATI, (GLenum stream, const GLint *coords)) \ + X (void , glVertexStream3fATI, (GLenum stream, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glVertexStream3fvATI, (GLenum stream, const GLfloat *coords)) \ + X (void , glVertexStream3dATI, (GLenum stream, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glVertexStream3dvATI, (GLenum stream, const GLdouble *coords)) \ + X (void , glVertexStream4sATI, (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w)) \ + X (void , glVertexStream4svATI, (GLenum stream, const GLshort *coords)) \ + X (void , glVertexStream4iATI, (GLenum stream, GLint x, GLint y, GLint z, GLint w)) \ + X (void , glVertexStream4ivATI, (GLenum stream, const GLint *coords)) \ + X (void , glVertexStream4fATI, (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glVertexStream4fvATI, (GLenum stream, const GLfloat *coords)) \ + X (void , glVertexStream4dATI, (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glVertexStream4dvATI, (GLenum stream, const GLdouble *coords)) \ + X (void , glNormalStream3bATI, (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz)) \ + X (void , glNormalStream3bvATI, (GLenum stream, const GLbyte *coords)) \ + X (void , glNormalStream3sATI, (GLenum stream, GLshort nx, GLshort ny, GLshort nz)) \ + X (void , glNormalStream3svATI, (GLenum stream, const GLshort *coords)) \ + X (void , glNormalStream3iATI, (GLenum stream, GLint nx, GLint ny, GLint nz)) \ + X (void , glNormalStream3ivATI, (GLenum stream, const GLint *coords)) \ + X (void , glNormalStream3fATI, (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz)) \ + X (void , glNormalStream3fvATI, (GLenum stream, const GLfloat *coords)) \ + X (void , glNormalStream3dATI, (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz)) \ + X (void , glNormalStream3dvATI, (GLenum stream, const GLdouble *coords)) \ + X (void , glClientActiveVertexStreamATI, (GLenum stream)) \ + X (void , glVertexBlendEnviATI, (GLenum pname, GLint param)) \ + X (void , glVertexBlendEnvfATI, (GLenum pname, GLfloat param)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \ + X (void , glEGLImageTargetTexStorageEXT, (GLenum target, GLeglImageOES image, const GLint* attrib_list)) \ + X (void , glEGLImageTargetTextureStorageEXT, (GLuint texture, GLeglImageOES image, const GLint* attrib_list)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_bindable_uniform \ + X (void , glUniformBufferEXT, (GLuint program, GLint location, GLuint buffer)) \ + X (GLint , glGetUniformBufferSizeEXT, (GLuint program, GLint location)) \ + X (GLintptr , glGetUniformOffsetEXT, (GLuint program, GLint location)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_blend_color \ + X (void , glBlendColorEXT, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_blend_equation_separate \ + X (void , glBlendEquationSeparateEXT, (GLenum modeRGB, GLenum modeAlpha)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_blend_func_separate \ + X (void , glBlendFuncSeparateEXT, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \ + X (void , glBlendEquationEXT, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_color_subtable \ + X (void , glColorSubTableEXT, (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data)) \ + X (void , glCopyColorSubTableEXT, (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_compiled_vertex_array \ + X (void , glLockArraysEXT, (GLint first, GLsizei count)) \ + X (void , glUnlockArraysEXT, ()) + +#define JUCE_GL_FUNCTIONS_GL_EXT_convolution \ + X (void , glConvolutionFilter1DEXT, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image)) \ + X (void , glConvolutionFilter2DEXT, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image)) \ + X (void , glConvolutionParameterfEXT, (GLenum target, GLenum pname, GLfloat params)) \ + X (void , glConvolutionParameterfvEXT, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glConvolutionParameteriEXT, (GLenum target, GLenum pname, GLint params)) \ + X (void , glConvolutionParameterivEXT, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glCopyConvolutionFilter1DEXT, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)) \ + X (void , glCopyConvolutionFilter2DEXT, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glGetConvolutionFilterEXT, (GLenum target, GLenum format, GLenum type, void *image)) \ + X (void , glGetConvolutionParameterfvEXT, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetConvolutionParameterivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetSeparableFilterEXT, (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span)) \ + X (void , glSeparableFilter2DEXT, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_coordinate_frame \ + X (void , glTangent3bEXT, (GLbyte tx, GLbyte ty, GLbyte tz)) \ + X (void , glTangent3bvEXT, (const GLbyte *v)) \ + X (void , glTangent3dEXT, (GLdouble tx, GLdouble ty, GLdouble tz)) \ + X (void , glTangent3dvEXT, (const GLdouble *v)) \ + X (void , glTangent3fEXT, (GLfloat tx, GLfloat ty, GLfloat tz)) \ + X (void , glTangent3fvEXT, (const GLfloat *v)) \ + X (void , glTangent3iEXT, (GLint tx, GLint ty, GLint tz)) \ + X (void , glTangent3ivEXT, (const GLint *v)) \ + X (void , glTangent3sEXT, (GLshort tx, GLshort ty, GLshort tz)) \ + X (void , glTangent3svEXT, (const GLshort *v)) \ + X (void , glBinormal3bEXT, (GLbyte bx, GLbyte by, GLbyte bz)) \ + X (void , glBinormal3bvEXT, (const GLbyte *v)) \ + X (void , glBinormal3dEXT, (GLdouble bx, GLdouble by, GLdouble bz)) \ + X (void , glBinormal3dvEXT, (const GLdouble *v)) \ + X (void , glBinormal3fEXT, (GLfloat bx, GLfloat by, GLfloat bz)) \ + X (void , glBinormal3fvEXT, (const GLfloat *v)) \ + X (void , glBinormal3iEXT, (GLint bx, GLint by, GLint bz)) \ + X (void , glBinormal3ivEXT, (const GLint *v)) \ + X (void , glBinormal3sEXT, (GLshort bx, GLshort by, GLshort bz)) \ + X (void , glBinormal3svEXT, (const GLshort *v)) \ + X (void , glTangentPointerEXT, (GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glBinormalPointerEXT, (GLenum type, GLsizei stride, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_copy_texture \ + X (void , glCopyTexImage1DEXT, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)) \ + X (void , glCopyTexImage2DEXT, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \ + X (void , glCopyTexSubImage1DEXT, (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)) \ + X (void , glCopyTexSubImage2DEXT, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glCopyTexSubImage3DEXT, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_cull_vertex \ + X (void , glCullParameterdvEXT, (GLenum pname, GLdouble *params)) \ + X (void , glCullParameterfvEXT, (GLenum pname, GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_debug_label \ + X (void , glLabelObjectEXT, (GLenum type, GLuint object, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectLabelEXT, (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \ + X (void , glInsertEventMarkerEXT, (GLsizei length, const GLchar *marker)) \ + X (void , glPushGroupMarkerEXT, (GLsizei length, const GLchar *marker)) \ + X (void , glPopGroupMarkerEXT, ()) + +#define JUCE_GL_FUNCTIONS_GL_EXT_depth_bounds_test \ + X (void , glDepthBoundsEXT, (GLclampd zmin, GLclampd zmax)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_direct_state_access \ + X (void , glMatrixLoadfEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixLoaddEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glMatrixMultfEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixMultdEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glMatrixLoadIdentityEXT, (GLenum mode)) \ + X (void , glMatrixRotatefEXT, (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glMatrixRotatedEXT, (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glMatrixScalefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glMatrixScaledEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glMatrixTranslatefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glMatrixTranslatedEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glMatrixFrustumEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ + X (void , glMatrixOrthoEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ + X (void , glMatrixPopEXT, (GLenum mode)) \ + X (void , glMatrixPushEXT, (GLenum mode)) \ + X (void , glClientAttribDefaultEXT, (GLbitfield mask)) \ + X (void , glPushClientAttribDefaultEXT, (GLbitfield mask)) \ + X (void , glTextureParameterfEXT, (GLuint texture, GLenum target, GLenum pname, GLfloat param)) \ + X (void , glTextureParameterfvEXT, (GLuint texture, GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glTextureParameteriEXT, (GLuint texture, GLenum target, GLenum pname, GLint param)) \ + X (void , glTextureParameterivEXT, (GLuint texture, GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTextureImage1DEXT, (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTextureImage2DEXT, (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTextureSubImage1DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTextureSubImage2DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCopyTextureImage1DEXT, (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)) \ + X (void , glCopyTextureImage2DEXT, (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \ + X (void , glCopyTextureSubImage1DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)) \ + X (void , glCopyTextureSubImage2DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glGetTextureImageEXT, (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels)) \ + X (void , glGetTextureParameterfvEXT, (GLuint texture, GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetTextureParameterivEXT, (GLuint texture, GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTextureLevelParameterfvEXT, (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params)) \ + X (void , glGetTextureLevelParameterivEXT, (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params)) \ + X (void , glTextureImage3DEXT, (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTextureSubImage3DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCopyTextureSubImage3DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glBindMultiTextureEXT, (GLenum texunit, GLenum target, GLuint texture)) \ + X (void , glMultiTexCoordPointerEXT, (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glMultiTexEnvfEXT, (GLenum texunit, GLenum target, GLenum pname, GLfloat param)) \ + X (void , glMultiTexEnvfvEXT, (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glMultiTexEnviEXT, (GLenum texunit, GLenum target, GLenum pname, GLint param)) \ + X (void , glMultiTexEnvivEXT, (GLenum texunit, GLenum target, GLenum pname, const GLint *params)) \ + X (void , glMultiTexGendEXT, (GLenum texunit, GLenum coord, GLenum pname, GLdouble param)) \ + X (void , glMultiTexGendvEXT, (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params)) \ + X (void , glMultiTexGenfEXT, (GLenum texunit, GLenum coord, GLenum pname, GLfloat param)) \ + X (void , glMultiTexGenfvEXT, (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params)) \ + X (void , glMultiTexGeniEXT, (GLenum texunit, GLenum coord, GLenum pname, GLint param)) \ + X (void , glMultiTexGenivEXT, (GLenum texunit, GLenum coord, GLenum pname, const GLint *params)) \ + X (void , glGetMultiTexEnvfvEXT, (GLenum texunit, GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetMultiTexEnvivEXT, (GLenum texunit, GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetMultiTexGendvEXT, (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params)) \ + X (void , glGetMultiTexGenfvEXT, (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params)) \ + X (void , glGetMultiTexGenivEXT, (GLenum texunit, GLenum coord, GLenum pname, GLint *params)) \ + X (void , glMultiTexParameteriEXT, (GLenum texunit, GLenum target, GLenum pname, GLint param)) \ + X (void , glMultiTexParameterivEXT, (GLenum texunit, GLenum target, GLenum pname, const GLint *params)) \ + X (void , glMultiTexParameterfEXT, (GLenum texunit, GLenum target, GLenum pname, GLfloat param)) \ + X (void , glMultiTexParameterfvEXT, (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glMultiTexImage1DEXT, (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glMultiTexImage2DEXT, (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glMultiTexSubImage1DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)) \ + X (void , glMultiTexSubImage2DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCopyMultiTexImage1DEXT, (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)) \ + X (void , glCopyMultiTexImage2DEXT, (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \ + X (void , glCopyMultiTexSubImage1DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)) \ + X (void , glCopyMultiTexSubImage2DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glGetMultiTexImageEXT, (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels)) \ + X (void , glGetMultiTexParameterfvEXT, (GLenum texunit, GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetMultiTexParameterivEXT, (GLenum texunit, GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetMultiTexLevelParameterfvEXT, (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params)) \ + X (void , glGetMultiTexLevelParameterivEXT, (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params)) \ + X (void , glMultiTexImage3DEXT, (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glMultiTexSubImage3DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCopyMultiTexSubImage3DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glEnableClientStateIndexedEXT, (GLenum array, GLuint index)) \ + X (void , glDisableClientStateIndexedEXT, (GLenum array, GLuint index)) \ + X (void , glGetFloatIndexedvEXT, (GLenum target, GLuint index, GLfloat *data)) \ + X (void , glGetDoubleIndexedvEXT, (GLenum target, GLuint index, GLdouble *data)) \ + X (void , glGetPointerIndexedvEXT, (GLenum target, GLuint index, void **data)) \ + X (void , glEnableIndexedEXT, (GLenum target, GLuint index)) \ + X (void , glDisableIndexedEXT, (GLenum target, GLuint index)) \ + X (GLboolean , glIsEnabledIndexedEXT, (GLenum target, GLuint index)) \ + X (void , glGetIntegerIndexedvEXT, (GLenum target, GLuint index, GLint *data)) \ + X (void , glGetBooleanIndexedvEXT, (GLenum target, GLuint index, GLboolean *data)) \ + X (void , glCompressedTextureImage3DEXT, (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedTextureImage2DEXT, (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedTextureImage1DEXT, (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedTextureSubImage3DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedTextureSubImage2DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedTextureSubImage1DEXT, (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits)) \ + X (void , glGetCompressedTextureImageEXT, (GLuint texture, GLenum target, GLint lod, void *img)) \ + X (void , glCompressedMultiTexImage3DEXT, (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedMultiTexImage2DEXT, (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedMultiTexImage1DEXT, (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedMultiTexSubImage3DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedMultiTexSubImage2DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits)) \ + X (void , glCompressedMultiTexSubImage1DEXT, (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits)) \ + X (void , glGetCompressedMultiTexImageEXT, (GLenum texunit, GLenum target, GLint lod, void *img)) \ + X (void , glMatrixLoadTransposefEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixLoadTransposedEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glMatrixMultTransposefEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixMultTransposedEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glNamedBufferDataEXT, (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)) \ + X (void , glNamedBufferSubDataEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)) \ + X (void * , glMapNamedBufferEXT, (GLuint buffer, GLenum access)) \ + X (GLboolean , glUnmapNamedBufferEXT, (GLuint buffer)) \ + X (void , glGetNamedBufferParameterivEXT, (GLuint buffer, GLenum pname, GLint *params)) \ + X (void , glGetNamedBufferPointervEXT, (GLuint buffer, GLenum pname, void **params)) \ + X (void , glGetNamedBufferSubDataEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)) \ + X (void , glProgramUniform1fEXT, (GLuint program, GLint location, GLfloat v0)) \ + X (void , glProgramUniform2fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \ + X (void , glProgramUniform3fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ + X (void , glProgramUniform4fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ + X (void , glProgramUniform1iEXT, (GLuint program, GLint location, GLint v0)) \ + X (void , glProgramUniform2iEXT, (GLuint program, GLint location, GLint v0, GLint v1)) \ + X (void , glProgramUniform3iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \ + X (void , glProgramUniform4iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ + X (void , glProgramUniform1fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform2fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform3fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform4fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform1ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform2ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform3ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform4ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniformMatrix2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glTextureBufferEXT, (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer)) \ + X (void , glMultiTexBufferEXT, (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer)) \ + X (void , glTextureParameterIivEXT, (GLuint texture, GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTextureParameterIuivEXT, (GLuint texture, GLenum target, GLenum pname, const GLuint *params)) \ + X (void , glGetTextureParameterIivEXT, (GLuint texture, GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTextureParameterIuivEXT, (GLuint texture, GLenum target, GLenum pname, GLuint *params)) \ + X (void , glMultiTexParameterIivEXT, (GLenum texunit, GLenum target, GLenum pname, const GLint *params)) \ + X (void , glMultiTexParameterIuivEXT, (GLenum texunit, GLenum target, GLenum pname, const GLuint *params)) \ + X (void , glGetMultiTexParameterIivEXT, (GLenum texunit, GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetMultiTexParameterIuivEXT, (GLenum texunit, GLenum target, GLenum pname, GLuint *params)) \ + X (void , glProgramUniform1uiEXT, (GLuint program, GLint location, GLuint v0)) \ + X (void , glProgramUniform2uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1)) \ + X (void , glProgramUniform3uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \ + X (void , glProgramUniform4uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ + X (void , glProgramUniform1uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform2uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform3uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform4uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glNamedProgramLocalParameters4fvEXT, (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params)) \ + X (void , glNamedProgramLocalParameterI4iEXT, (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)) \ + X (void , glNamedProgramLocalParameterI4ivEXT, (GLuint program, GLenum target, GLuint index, const GLint *params)) \ + X (void , glNamedProgramLocalParametersI4ivEXT, (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params)) \ + X (void , glNamedProgramLocalParameterI4uiEXT, (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \ + X (void , glNamedProgramLocalParameterI4uivEXT, (GLuint program, GLenum target, GLuint index, const GLuint *params)) \ + X (void , glNamedProgramLocalParametersI4uivEXT, (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params)) \ + X (void , glGetNamedProgramLocalParameterIivEXT, (GLuint program, GLenum target, GLuint index, GLint *params)) \ + X (void , glGetNamedProgramLocalParameterIuivEXT, (GLuint program, GLenum target, GLuint index, GLuint *params)) \ + X (void , glEnableClientStateiEXT, (GLenum array, GLuint index)) \ + X (void , glDisableClientStateiEXT, (GLenum array, GLuint index)) \ + X (void , glGetFloati_vEXT, (GLenum pname, GLuint index, GLfloat *params)) \ + X (void , glGetDoublei_vEXT, (GLenum pname, GLuint index, GLdouble *params)) \ + X (void , glGetPointeri_vEXT, (GLenum pname, GLuint index, void **params)) \ + X (void , glNamedProgramStringEXT, (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string)) \ + X (void , glNamedProgramLocalParameter4dEXT, (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glNamedProgramLocalParameter4dvEXT, (GLuint program, GLenum target, GLuint index, const GLdouble *params)) \ + X (void , glNamedProgramLocalParameter4fEXT, (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glNamedProgramLocalParameter4fvEXT, (GLuint program, GLenum target, GLuint index, const GLfloat *params)) \ + X (void , glGetNamedProgramLocalParameterdvEXT, (GLuint program, GLenum target, GLuint index, GLdouble *params)) \ + X (void , glGetNamedProgramLocalParameterfvEXT, (GLuint program, GLenum target, GLuint index, GLfloat *params)) \ + X (void , glGetNamedProgramivEXT, (GLuint program, GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetNamedProgramStringEXT, (GLuint program, GLenum target, GLenum pname, void *string)) \ + X (void , glNamedRenderbufferStorageEXT, (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glGetNamedRenderbufferParameterivEXT, (GLuint renderbuffer, GLenum pname, GLint *params)) \ + X (void , glNamedRenderbufferStorageMultisampleEXT, (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glNamedRenderbufferStorageMultisampleCoverageEXT, (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (GLenum , glCheckNamedFramebufferStatusEXT, (GLuint framebuffer, GLenum target)) \ + X (void , glNamedFramebufferTexture1DEXT, (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ + X (void , glNamedFramebufferTexture2DEXT, (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ + X (void , glNamedFramebufferTexture3DEXT, (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)) \ + X (void , glNamedFramebufferRenderbufferEXT, (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \ + X (void , glGetNamedFramebufferAttachmentParameterivEXT, (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params)) \ + X (void , glGenerateTextureMipmapEXT, (GLuint texture, GLenum target)) \ + X (void , glGenerateMultiTexMipmapEXT, (GLenum texunit, GLenum target)) \ + X (void , glFramebufferDrawBufferEXT, (GLuint framebuffer, GLenum mode)) \ + X (void , glFramebufferDrawBuffersEXT, (GLuint framebuffer, GLsizei n, const GLenum *bufs)) \ + X (void , glFramebufferReadBufferEXT, (GLuint framebuffer, GLenum mode)) \ + X (void , glGetFramebufferParameterivEXT, (GLuint framebuffer, GLenum pname, GLint *params)) \ + X (void , glNamedCopyBufferSubDataEXT, (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \ + X (void , glNamedFramebufferTextureEXT, (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level)) \ + X (void , glNamedFramebufferTextureLayerEXT, (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer)) \ + X (void , glNamedFramebufferTextureFaceEXT, (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face)) \ + X (void , glTextureRenderbufferEXT, (GLuint texture, GLenum target, GLuint renderbuffer)) \ + X (void , glMultiTexRenderbufferEXT, (GLenum texunit, GLenum target, GLuint renderbuffer)) \ + X (void , glVertexArrayVertexOffsetEXT, (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayColorOffsetEXT, (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayEdgeFlagOffsetEXT, (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayIndexOffsetEXT, (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayNormalOffsetEXT, (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayTexCoordOffsetEXT, (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayMultiTexCoordOffsetEXT, (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayFogCoordOffsetEXT, (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArraySecondaryColorOffsetEXT, (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayVertexAttribOffsetEXT, (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset)) \ + X (void , glVertexArrayVertexAttribIOffsetEXT, (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glEnableVertexArrayEXT, (GLuint vaobj, GLenum array)) \ + X (void , glDisableVertexArrayEXT, (GLuint vaobj, GLenum array)) \ + X (void , glEnableVertexArrayAttribEXT, (GLuint vaobj, GLuint index)) \ + X (void , glDisableVertexArrayAttribEXT, (GLuint vaobj, GLuint index)) \ + X (void , glGetVertexArrayIntegervEXT, (GLuint vaobj, GLenum pname, GLint *param)) \ + X (void , glGetVertexArrayPointervEXT, (GLuint vaobj, GLenum pname, void **param)) \ + X (void , glGetVertexArrayIntegeri_vEXT, (GLuint vaobj, GLuint index, GLenum pname, GLint *param)) \ + X (void , glGetVertexArrayPointeri_vEXT, (GLuint vaobj, GLuint index, GLenum pname, void **param)) \ + X (void * , glMapNamedBufferRangeEXT, (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access)) \ + X (void , glFlushMappedNamedBufferRangeEXT, (GLuint buffer, GLintptr offset, GLsizeiptr length)) \ + X (void , glNamedBufferStorageEXT, (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)) \ + X (void , glClearNamedBufferDataEXT, (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)) \ + X (void , glClearNamedBufferSubDataEXT, (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)) \ + X (void , glNamedFramebufferParameteriEXT, (GLuint framebuffer, GLenum pname, GLint param)) \ + X (void , glGetNamedFramebufferParameterivEXT, (GLuint framebuffer, GLenum pname, GLint *params)) \ + X (void , glProgramUniform1dEXT, (GLuint program, GLint location, GLdouble x)) \ + X (void , glProgramUniform2dEXT, (GLuint program, GLint location, GLdouble x, GLdouble y)) \ + X (void , glProgramUniform3dEXT, (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glProgramUniform4dEXT, (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glProgramUniform1dvEXT, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniform2dvEXT, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniform3dvEXT, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniform4dvEXT, (GLuint program, GLint location, GLsizei count, const GLdouble *value)) \ + X (void , glProgramUniformMatrix2dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix3dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix4dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix2x3dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix2x4dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix3x2dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix3x4dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix4x2dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glProgramUniformMatrix4x3dvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)) \ + X (void , glTextureBufferRangeEXT, (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glTextureStorage1DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \ + X (void , glTextureStorage2DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glTextureStorage3DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ + X (void , glTextureStorage2DMultisampleEXT, (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ + X (void , glTextureStorage3DMultisampleEXT, (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) \ + X (void , glVertexArrayBindVertexBufferEXT, (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \ + X (void , glVertexArrayVertexAttribFormatEXT, (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ + X (void , glVertexArrayVertexAttribIFormatEXT, (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ + X (void , glVertexArrayVertexAttribLFormatEXT, (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ + X (void , glVertexArrayVertexAttribBindingEXT, (GLuint vaobj, GLuint attribindex, GLuint bindingindex)) \ + X (void , glVertexArrayVertexBindingDivisorEXT, (GLuint vaobj, GLuint bindingindex, GLuint divisor)) \ + X (void , glVertexArrayVertexAttribLOffsetEXT, (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset)) \ + X (void , glTexturePageCommitmentEXT, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)) \ + X (void , glVertexArrayVertexAttribDivisorEXT, (GLuint vaobj, GLuint index, GLuint divisor)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers2 \ + X (void , glColorMaskIndexedEXT, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \ + X (void , glDrawArraysInstancedEXT, (GLenum mode, GLint start, GLsizei count, GLsizei primcount)) \ + X (void , glDrawElementsInstancedEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_range_elements \ + X (void , glDrawRangeElementsEXT, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \ + X (void , glBufferStorageExternalEXT, (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) \ + X (void , glNamedBufferStorageExternalEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_fog_coord \ + X (void , glFogCoordfEXT, (GLfloat coord)) \ + X (void , glFogCoordfvEXT, (const GLfloat *coord)) \ + X (void , glFogCoorddEXT, (GLdouble coord)) \ + X (void , glFogCoorddvEXT, (const GLdouble *coord)) \ + X (void , glFogCoordPointerEXT, (GLenum type, GLsizei stride, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit \ + X (void , glBlitFramebufferEXT, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_multisample \ + X (void , glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_object \ + X (GLboolean , glIsRenderbufferEXT, (GLuint renderbuffer)) \ + X (void , glBindRenderbufferEXT, (GLenum target, GLuint renderbuffer)) \ + X (void , glDeleteRenderbuffersEXT, (GLsizei n, const GLuint *renderbuffers)) \ + X (void , glGenRenderbuffersEXT, (GLsizei n, GLuint *renderbuffers)) \ + X (void , glRenderbufferStorageEXT, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glGetRenderbufferParameterivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (GLboolean , glIsFramebufferEXT, (GLuint framebuffer)) \ + X (void , glBindFramebufferEXT, (GLenum target, GLuint framebuffer)) \ + X (void , glDeleteFramebuffersEXT, (GLsizei n, const GLuint *framebuffers)) \ + X (void , glGenFramebuffersEXT, (GLsizei n, GLuint *framebuffers)) \ + X (GLenum , glCheckFramebufferStatusEXT, (GLenum target)) \ + X (void , glFramebufferTexture1DEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ + X (void , glFramebufferTexture2DEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ + X (void , glFramebufferTexture3DEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)) \ + X (void , glFramebufferRenderbufferEXT, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \ + X (void , glGetFramebufferAttachmentParameterivEXT, (GLenum target, GLenum attachment, GLenum pname, GLint *params)) \ + X (void , glGenerateMipmapEXT, (GLenum target)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader4 \ + X (void , glProgramParameteriEXT, (GLuint program, GLenum pname, GLint value)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_gpu_program_parameters \ + X (void , glProgramEnvParameters4fvEXT, (GLenum target, GLuint index, GLsizei count, const GLfloat *params)) \ + X (void , glProgramLocalParameters4fvEXT, (GLenum target, GLuint index, GLsizei count, const GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_gpu_shader4 \ + X (void , glGetUniformuivEXT, (GLuint program, GLint location, GLuint *params)) \ + X (void , glBindFragDataLocationEXT, (GLuint program, GLuint color, const GLchar *name)) \ + X (GLint , glGetFragDataLocationEXT, (GLuint program, const GLchar *name)) \ + X (void , glUniform1uiEXT, (GLint location, GLuint v0)) \ + X (void , glUniform2uiEXT, (GLint location, GLuint v0, GLuint v1)) \ + X (void , glUniform3uiEXT, (GLint location, GLuint v0, GLuint v1, GLuint v2)) \ + X (void , glUniform4uiEXT, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ + X (void , glUniform1uivEXT, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform2uivEXT, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform3uivEXT, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform4uivEXT, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glVertexAttribI1iEXT, (GLuint index, GLint x)) \ + X (void , glVertexAttribI2iEXT, (GLuint index, GLint x, GLint y)) \ + X (void , glVertexAttribI3iEXT, (GLuint index, GLint x, GLint y, GLint z)) \ + X (void , glVertexAttribI4iEXT, (GLuint index, GLint x, GLint y, GLint z, GLint w)) \ + X (void , glVertexAttribI1uiEXT, (GLuint index, GLuint x)) \ + X (void , glVertexAttribI2uiEXT, (GLuint index, GLuint x, GLuint y)) \ + X (void , glVertexAttribI3uiEXT, (GLuint index, GLuint x, GLuint y, GLuint z)) \ + X (void , glVertexAttribI4uiEXT, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \ + X (void , glVertexAttribI1ivEXT, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI2ivEXT, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI3ivEXT, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI4ivEXT, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI1uivEXT, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI2uivEXT, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI3uivEXT, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI4uivEXT, (GLuint index, const GLuint *v)) \ + X (void , glVertexAttribI4bvEXT, (GLuint index, const GLbyte *v)) \ + X (void , glVertexAttribI4svEXT, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttribI4ubvEXT, (GLuint index, const GLubyte *v)) \ + X (void , glVertexAttribI4usvEXT, (GLuint index, const GLushort *v)) \ + X (void , glVertexAttribIPointerEXT, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glGetVertexAttribIivEXT, (GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribIuivEXT, (GLuint index, GLenum pname, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_histogram \ + X (void , glGetHistogramEXT, (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)) \ + X (void , glGetHistogramParameterfvEXT, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetHistogramParameterivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetMinmaxEXT, (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)) \ + X (void , glGetMinmaxParameterfvEXT, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetMinmaxParameterivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glHistogramEXT, (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)) \ + X (void , glMinmaxEXT, (GLenum target, GLenum internalformat, GLboolean sink)) \ + X (void , glResetHistogramEXT, (GLenum target)) \ + X (void , glResetMinmaxEXT, (GLenum target)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_index_func \ + X (void , glIndexFuncEXT, (GLenum func, GLclampf ref)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_index_material \ + X (void , glIndexMaterialEXT, (GLenum face, GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_light_texture \ + X (void , glApplyTextureEXT, (GLenum mode)) \ + X (void , glTextureLightEXT, (GLenum pname)) \ + X (void , glTextureMaterialEXT, (GLenum face, GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_memory_object \ + X (void , glGetUnsignedBytevEXT, (GLenum pname, GLubyte *data)) \ + X (void , glGetUnsignedBytei_vEXT, (GLenum target, GLuint index, GLubyte *data)) \ + X (void , glDeleteMemoryObjectsEXT, (GLsizei n, const GLuint *memoryObjects)) \ + X (GLboolean , glIsMemoryObjectEXT, (GLuint memoryObject)) \ + X (void , glCreateMemoryObjectsEXT, (GLsizei n, GLuint *memoryObjects)) \ + X (void , glMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, const GLint *params)) \ + X (void , glGetMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, GLint *params)) \ + X (void , glTexStorageMem2DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem2DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem3DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem3DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glBufferStorageMemEXT, (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem2DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem2DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem3DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem3DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glNamedBufferStorageMemEXT, (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem1DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem1DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \ + X (void , glImportMemoryFdEXT, (GLuint memory, GLuint64 size, GLenum handleType, GLint fd)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \ + X (void , glImportMemoryWin32HandleEXT, (GLuint memory, GLuint64 size, GLenum handleType, void *handle)) \ + X (void , glImportMemoryWin32NameEXT, (GLuint memory, GLuint64 size, GLenum handleType, const void *name)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \ + X (void , glMultiDrawArraysEXT, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)) \ + X (void , glMultiDrawElementsEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_multisample \ + X (void , glSampleMaskEXT, (GLclampf value, GLboolean invert)) \ + X (void , glSamplePatternEXT, (GLenum pattern)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_paletted_texture \ + X (void , glColorTableEXT, (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table)) \ + X (void , glGetColorTableEXT, (GLenum target, GLenum format, GLenum type, void *data)) \ + X (void , glGetColorTableParameterivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetColorTableParameterfvEXT, (GLenum target, GLenum pname, GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_pixel_transform \ + X (void , glPixelTransformParameteriEXT, (GLenum target, GLenum pname, GLint param)) \ + X (void , glPixelTransformParameterfEXT, (GLenum target, GLenum pname, GLfloat param)) \ + X (void , glPixelTransformParameterivEXT, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glPixelTransformParameterfvEXT, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glGetPixelTransformParameterivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetPixelTransformParameterfvEXT, (GLenum target, GLenum pname, GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_point_parameters \ + X (void , glPointParameterfEXT, (GLenum pname, GLfloat param)) \ + X (void , glPointParameterfvEXT, (GLenum pname, const GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset \ + X (void , glPolygonOffsetEXT, (GLfloat factor, GLfloat bias)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \ + X (void , glPolygonOffsetClampEXT, (GLfloat factor, GLfloat units, GLfloat clamp)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_provoking_vertex \ + X (void , glProvokingVertexEXT, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \ + X (void , glRasterSamplesEXT, (GLuint samples, GLboolean fixedsamplelocations)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_semaphore \ + X (void , glGenSemaphoresEXT, (GLsizei n, GLuint *semaphores)) \ + X (void , glDeleteSemaphoresEXT, (GLsizei n, const GLuint *semaphores)) \ + X (GLboolean , glIsSemaphoreEXT, (GLuint semaphore)) \ + X (void , glSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, const GLuint64 *params)) \ + X (void , glGetSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, GLuint64 *params)) \ + X (void , glWaitSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts)) \ + X (void , glSignalSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \ + X (void , glImportSemaphoreFdEXT, (GLuint semaphore, GLenum handleType, GLint fd)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \ + X (void , glImportSemaphoreWin32HandleEXT, (GLuint semaphore, GLenum handleType, void *handle)) \ + X (void , glImportSemaphoreWin32NameEXT, (GLuint semaphore, GLenum handleType, const void *name)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_secondary_color \ + X (void , glSecondaryColor3bEXT, (GLbyte red, GLbyte green, GLbyte blue)) \ + X (void , glSecondaryColor3bvEXT, (const GLbyte *v)) \ + X (void , glSecondaryColor3dEXT, (GLdouble red, GLdouble green, GLdouble blue)) \ + X (void , glSecondaryColor3dvEXT, (const GLdouble *v)) \ + X (void , glSecondaryColor3fEXT, (GLfloat red, GLfloat green, GLfloat blue)) \ + X (void , glSecondaryColor3fvEXT, (const GLfloat *v)) \ + X (void , glSecondaryColor3iEXT, (GLint red, GLint green, GLint blue)) \ + X (void , glSecondaryColor3ivEXT, (const GLint *v)) \ + X (void , glSecondaryColor3sEXT, (GLshort red, GLshort green, GLshort blue)) \ + X (void , glSecondaryColor3svEXT, (const GLshort *v)) \ + X (void , glSecondaryColor3ubEXT, (GLubyte red, GLubyte green, GLubyte blue)) \ + X (void , glSecondaryColor3ubvEXT, (const GLubyte *v)) \ + X (void , glSecondaryColor3uiEXT, (GLuint red, GLuint green, GLuint blue)) \ + X (void , glSecondaryColor3uivEXT, (const GLuint *v)) \ + X (void , glSecondaryColor3usEXT, (GLushort red, GLushort green, GLushort blue)) \ + X (void , glSecondaryColor3usvEXT, (const GLushort *v)) \ + X (void , glSecondaryColorPointerEXT, (GLint size, GLenum type, GLsizei stride, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \ + X (void , glUseShaderProgramEXT, (GLenum type, GLuint program)) \ + X (void , glActiveProgramEXT, (GLuint program)) \ + X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \ + X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \ + X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \ + X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar **strings)) \ + X (void , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \ + X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \ + X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glGetProgramPipelineivEXT, (GLuint pipeline, GLenum pname, GLint *params)) \ + X (GLboolean , glIsProgramPipelineEXT, (GLuint pipeline)) \ + X (void , glUseProgramStagesEXT, (GLuint pipeline, GLbitfield stages, GLuint program)) \ + X (void , glValidateProgramPipelineEXT, (GLuint pipeline)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \ + X (void , glFramebufferFetchBarrierEXT, ()) + +#define JUCE_GL_FUNCTIONS_GL_EXT_shader_image_load_store \ + X (void , glBindImageTextureEXT, (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format)) \ + X (void , glMemoryBarrierEXT, (GLbitfield barriers)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_stencil_clear_tag \ + X (void , glStencilClearTagEXT, (GLsizei stencilTagBits, GLuint stencilClearTag)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_stencil_two_side \ + X (void , glActiveStencilFaceEXT, (GLenum face)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_subtexture \ + X (void , glTexSubImage1DEXT, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexSubImage2DEXT, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture3D \ + X (void , glTexImage3DEXT, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexSubImage3DEXT, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_array \ + X (void , glFramebufferTextureLayerEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer_object \ + X (void , glTexBufferEXT, (GLenum target, GLenum internalformat, GLuint buffer)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_integer \ + X (void , glTexParameterIivEXT, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexParameterIuivEXT, (GLenum target, GLenum pname, const GLuint *params)) \ + X (void , glGetTexParameterIivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTexParameterIuivEXT, (GLenum target, GLenum pname, GLuint *params)) \ + X (void , glClearColorIiEXT, (GLint red, GLint green, GLint blue, GLint alpha)) \ + X (void , glClearColorIuiEXT, (GLuint red, GLuint green, GLuint blue, GLuint alpha)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_object \ + X (GLboolean , glAreTexturesResidentEXT, (GLsizei n, const GLuint *textures, GLboolean *residences)) \ + X (void , glBindTextureEXT, (GLenum target, GLuint texture)) \ + X (void , glDeleteTexturesEXT, (GLsizei n, const GLuint *textures)) \ + X (void , glGenTexturesEXT, (GLsizei n, GLuint *textures)) \ + X (GLboolean , glIsTextureEXT, (GLuint texture)) \ + X (void , glPrioritizeTexturesEXT, (GLsizei n, const GLuint *textures, const GLclampf *priorities)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_perturb_normal \ + X (void , glTextureNormalEXT, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \ + X (void , glCreateSemaphoresNV, (GLsizei n, GLuint *semaphores)) \ + X (void , glSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, const GLint *params)) \ + X (void , glGetSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_timer_query \ + X (void , glGetQueryObjecti64vEXT, (GLuint id, GLenum pname, GLint64 *params)) \ + X (void , glGetQueryObjectui64vEXT, (GLuint id, GLenum pname, GLuint64 *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_transform_feedback \ + X (void , glBeginTransformFeedbackEXT, (GLenum primitiveMode)) \ + X (void , glEndTransformFeedbackEXT, ()) \ + X (void , glBindBufferRangeEXT, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glBindBufferOffsetEXT, (GLenum target, GLuint index, GLuint buffer, GLintptr offset)) \ + X (void , glBindBufferBaseEXT, (GLenum target, GLuint index, GLuint buffer)) \ + X (void , glTransformFeedbackVaryingsEXT, (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)) \ + X (void , glGetTransformFeedbackVaryingEXT, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_vertex_array \ + X (void , glArrayElementEXT, (GLint i)) \ + X (void , glColorPointerEXT, (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)) \ + X (void , glDrawArraysEXT, (GLenum mode, GLint first, GLsizei count)) \ + X (void , glEdgeFlagPointerEXT, (GLsizei stride, GLsizei count, const GLboolean *pointer)) \ + X (void , glGetPointervEXT, (GLenum pname, void **params)) \ + X (void , glIndexPointerEXT, (GLenum type, GLsizei stride, GLsizei count, const void *pointer)) \ + X (void , glNormalPointerEXT, (GLenum type, GLsizei stride, GLsizei count, const void *pointer)) \ + X (void , glTexCoordPointerEXT, (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)) \ + X (void , glVertexPointerEXT, (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_vertex_attrib_64bit \ + X (void , glVertexAttribL1dEXT, (GLuint index, GLdouble x)) \ + X (void , glVertexAttribL2dEXT, (GLuint index, GLdouble x, GLdouble y)) \ + X (void , glVertexAttribL3dEXT, (GLuint index, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glVertexAttribL4dEXT, (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glVertexAttribL1dvEXT, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribL2dvEXT, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribL3dvEXT, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribL4dvEXT, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttribLPointerEXT, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glGetVertexAttribLdvEXT, (GLuint index, GLenum pname, GLdouble *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_vertex_shader \ + X (void , glBeginVertexShaderEXT, ()) \ + X (void , glEndVertexShaderEXT, ()) \ + X (void , glBindVertexShaderEXT, (GLuint id)) \ + X (GLuint , glGenVertexShadersEXT, (GLuint range)) \ + X (void , glDeleteVertexShaderEXT, (GLuint id)) \ + X (void , glShaderOp1EXT, (GLenum op, GLuint res, GLuint arg1)) \ + X (void , glShaderOp2EXT, (GLenum op, GLuint res, GLuint arg1, GLuint arg2)) \ + X (void , glShaderOp3EXT, (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3)) \ + X (void , glSwizzleEXT, (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)) \ + X (void , glWriteMaskEXT, (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)) \ + X (void , glInsertComponentEXT, (GLuint res, GLuint src, GLuint num)) \ + X (void , glExtractComponentEXT, (GLuint res, GLuint src, GLuint num)) \ + X (GLuint , glGenSymbolsEXT, (GLenum datatype, GLenum storagetype, GLenum range, GLuint components)) \ + X (void , glSetInvariantEXT, (GLuint id, GLenum type, const void *addr)) \ + X (void , glSetLocalConstantEXT, (GLuint id, GLenum type, const void *addr)) \ + X (void , glVariantbvEXT, (GLuint id, const GLbyte *addr)) \ + X (void , glVariantsvEXT, (GLuint id, const GLshort *addr)) \ + X (void , glVariantivEXT, (GLuint id, const GLint *addr)) \ + X (void , glVariantfvEXT, (GLuint id, const GLfloat *addr)) \ + X (void , glVariantdvEXT, (GLuint id, const GLdouble *addr)) \ + X (void , glVariantubvEXT, (GLuint id, const GLubyte *addr)) \ + X (void , glVariantusvEXT, (GLuint id, const GLushort *addr)) \ + X (void , glVariantuivEXT, (GLuint id, const GLuint *addr)) \ + X (void , glVariantPointerEXT, (GLuint id, GLenum type, GLuint stride, const void *addr)) \ + X (void , glEnableVariantClientStateEXT, (GLuint id)) \ + X (void , glDisableVariantClientStateEXT, (GLuint id)) \ + X (GLuint , glBindLightParameterEXT, (GLenum light, GLenum value)) \ + X (GLuint , glBindMaterialParameterEXT, (GLenum face, GLenum value)) \ + X (GLuint , glBindTexGenParameterEXT, (GLenum unit, GLenum coord, GLenum value)) \ + X (GLuint , glBindTextureUnitParameterEXT, (GLenum unit, GLenum value)) \ + X (GLuint , glBindParameterEXT, (GLenum value)) \ + X (GLboolean , glIsVariantEnabledEXT, (GLuint id, GLenum cap)) \ + X (void , glGetVariantBooleanvEXT, (GLuint id, GLenum value, GLboolean *data)) \ + X (void , glGetVariantIntegervEXT, (GLuint id, GLenum value, GLint *data)) \ + X (void , glGetVariantFloatvEXT, (GLuint id, GLenum value, GLfloat *data)) \ + X (void , glGetVariantPointervEXT, (GLuint id, GLenum value, void **data)) \ + X (void , glGetInvariantBooleanvEXT, (GLuint id, GLenum value, GLboolean *data)) \ + X (void , glGetInvariantIntegervEXT, (GLuint id, GLenum value, GLint *data)) \ + X (void , glGetInvariantFloatvEXT, (GLuint id, GLenum value, GLfloat *data)) \ + X (void , glGetLocalConstantBooleanvEXT, (GLuint id, GLenum value, GLboolean *data)) \ + X (void , glGetLocalConstantIntegervEXT, (GLuint id, GLenum value, GLint *data)) \ + X (void , glGetLocalConstantFloatvEXT, (GLuint id, GLenum value, GLfloat *data)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_vertex_weighting \ + X (void , glVertexWeightfEXT, (GLfloat weight)) \ + X (void , glVertexWeightfvEXT, (const GLfloat *weight)) \ + X (void , glVertexWeightPointerEXT, (GLint size, GLenum type, GLsizei stride, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \ + X (GLboolean , glAcquireKeyedMutexWin32EXT, (GLuint memory, GLuint64 key, GLuint timeout)) \ + X (GLboolean , glReleaseKeyedMutexWin32EXT, (GLuint memory, GLuint64 key)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \ + X (void , glWindowRectanglesEXT, (GLenum mode, GLsizei count, const GLint *box)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_x11_sync_object \ + X (GLsync , glImportSyncEXT, (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags)) + +#define JUCE_GL_FUNCTIONS_GL_GREMEDY_frame_terminator \ + X (void , glFrameTerminatorGREMEDY, ()) + +#define JUCE_GL_FUNCTIONS_GL_GREMEDY_string_marker \ + X (void , glStringMarkerGREMEDY, (GLsizei len, const void *string)) + +#define JUCE_GL_FUNCTIONS_GL_HP_image_transform \ + X (void , glImageTransformParameteriHP, (GLenum target, GLenum pname, GLint param)) \ + X (void , glImageTransformParameterfHP, (GLenum target, GLenum pname, GLfloat param)) \ + X (void , glImageTransformParameterivHP, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glImageTransformParameterfvHP, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glGetImageTransformParameterivHP, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetImageTransformParameterfvHP, (GLenum target, GLenum pname, GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_IBM_multimode_draw_arrays \ + X (void , glMultiModeDrawArraysIBM, (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride)) \ + X (void , glMultiModeDrawElementsIBM, (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride)) + +#define JUCE_GL_FUNCTIONS_GL_IBM_static_data \ + X (void , glFlushStaticDataIBM, (GLenum target)) + +#define JUCE_GL_FUNCTIONS_GL_IBM_vertex_array_lists \ + X (void , glColorPointerListIBM, (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride)) \ + X (void , glSecondaryColorPointerListIBM, (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride)) \ + X (void , glEdgeFlagPointerListIBM, (GLint stride, const GLboolean **pointer, GLint ptrstride)) \ + X (void , glFogCoordPointerListIBM, (GLenum type, GLint stride, const void **pointer, GLint ptrstride)) \ + X (void , glIndexPointerListIBM, (GLenum type, GLint stride, const void **pointer, GLint ptrstride)) \ + X (void , glNormalPointerListIBM, (GLenum type, GLint stride, const void **pointer, GLint ptrstride)) \ + X (void , glTexCoordPointerListIBM, (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride)) \ + X (void , glVertexPointerListIBM, (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride)) + +#define JUCE_GL_FUNCTIONS_GL_INGR_blend_func_separate \ + X (void , glBlendFuncSeparateINGR, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)) + +#define JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \ + X (void , glApplyFramebufferAttachmentCMAAINTEL, ()) + +#define JUCE_GL_FUNCTIONS_GL_INTEL_map_texture \ + X (void , glSyncTextureINTEL, (GLuint texture)) \ + X (void , glUnmapTexture2DINTEL, (GLuint texture, GLint level)) \ + X (void * , glMapTexture2DINTEL, (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout)) + +#define JUCE_GL_FUNCTIONS_GL_INTEL_parallel_arrays \ + X (void , glVertexPointervINTEL, (GLint size, GLenum type, const void **pointer)) \ + X (void , glNormalPointervINTEL, (GLenum type, const void **pointer)) \ + X (void , glColorPointervINTEL, (GLint size, GLenum type, const void **pointer)) \ + X (void , glTexCoordPointervINTEL, (GLint size, GLenum type, const void **pointer)) + +#define JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \ + X (void , glBeginPerfQueryINTEL, (GLuint queryHandle)) \ + X (void , glCreatePerfQueryINTEL, (GLuint queryId, GLuint *queryHandle)) \ + X (void , glDeletePerfQueryINTEL, (GLuint queryHandle)) \ + X (void , glEndPerfQueryINTEL, (GLuint queryHandle)) \ + X (void , glGetFirstPerfQueryIdINTEL, (GLuint *queryId)) \ + X (void , glGetNextPerfQueryIdINTEL, (GLuint queryId, GLuint *nextQueryId)) \ + X (void , glGetPerfCounterInfoINTEL, (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue)) \ + X (void , glGetPerfQueryDataINTEL, (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten)) \ + X (void , glGetPerfQueryIdByNameINTEL, (GLchar *queryName, GLuint *queryId)) \ + X (void , glGetPerfQueryInfoINTEL, (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask)) + +#define JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \ + X (void , glBlendBarrierKHR, ()) + +#define JUCE_GL_FUNCTIONS_GL_KHR_debug \ + X (void , glDebugMessageControlKHR, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ + X (void , glDebugMessageInsertKHR, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \ + X (void , glDebugMessageCallbackKHR, (GLDEBUGPROCKHR callback, const void *userParam)) \ + X (GLuint , glGetDebugMessageLogKHR, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \ + X (void , glPushDebugGroupKHR, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \ + X (void , glPopDebugGroupKHR, ()) \ + X (void , glObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \ + X (void , glObjectPtrLabelKHR, (const void *ptr, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectPtrLabelKHR, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) \ + X (void , glGetPointervKHR, (GLenum pname, void **params)) + +#define JUCE_GL_FUNCTIONS_GL_KHR_robustness \ + X (GLenum , glGetGraphicsResetStatusKHR, ()) \ + X (void , glReadnPixelsKHR, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ + X (void , glGetnUniformfvKHR, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ + X (void , glGetnUniformivKHR, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \ + X (void , glGetnUniformuivKHR, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \ + X (void , glMaxShaderCompilerThreadsKHR, (GLuint count)) + +#define JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \ + X (void , glFramebufferParameteriMESA, (GLenum target, GLenum pname, GLint param)) \ + X (void , glGetFramebufferParameterivMESA, (GLenum target, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_MESA_resize_buffers \ + X (void , glResizeBuffersMESA, ()) + +#define JUCE_GL_FUNCTIONS_GL_MESA_window_pos \ + X (void , glWindowPos2dMESA, (GLdouble x, GLdouble y)) \ + X (void , glWindowPos2dvMESA, (const GLdouble *v)) \ + X (void , glWindowPos2fMESA, (GLfloat x, GLfloat y)) \ + X (void , glWindowPos2fvMESA, (const GLfloat *v)) \ + X (void , glWindowPos2iMESA, (GLint x, GLint y)) \ + X (void , glWindowPos2ivMESA, (const GLint *v)) \ + X (void , glWindowPos2sMESA, (GLshort x, GLshort y)) \ + X (void , glWindowPos2svMESA, (const GLshort *v)) \ + X (void , glWindowPos3dMESA, (GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glWindowPos3dvMESA, (const GLdouble *v)) \ + X (void , glWindowPos3fMESA, (GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glWindowPos3fvMESA, (const GLfloat *v)) \ + X (void , glWindowPos3iMESA, (GLint x, GLint y, GLint z)) \ + X (void , glWindowPos3ivMESA, (const GLint *v)) \ + X (void , glWindowPos3sMESA, (GLshort x, GLshort y, GLshort z)) \ + X (void , glWindowPos3svMESA, (const GLshort *v)) \ + X (void , glWindowPos4dMESA, (GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glWindowPos4dvMESA, (const GLdouble *v)) \ + X (void , glWindowPos4fMESA, (GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glWindowPos4fvMESA, (const GLfloat *v)) \ + X (void , glWindowPos4iMESA, (GLint x, GLint y, GLint z, GLint w)) \ + X (void , glWindowPos4ivMESA, (const GLint *v)) \ + X (void , glWindowPos4sMESA, (GLshort x, GLshort y, GLshort z, GLshort w)) \ + X (void , glWindowPos4svMESA, (const GLshort *v)) + +#define JUCE_GL_FUNCTIONS_GL_NVX_conditional_render \ + X (void , glBeginConditionalRenderNVX, (GLuint id)) \ + X (void , glEndConditionalRenderNVX, ()) + +#define JUCE_GL_FUNCTIONS_GL_NVX_linked_gpu_multicast \ + X (void , glLGPUNamedBufferSubDataNVX, (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)) \ + X (void , glLGPUCopyImageSubDataNVX, (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)) \ + X (void , glLGPUInterlockNVX, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_alpha_to_coverage_dither_control \ + X (void , glAlphaToCoverageDitherControlNV, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_NV_bindless_multi_draw_indirect \ + X (void , glMultiDrawArraysIndirectBindlessNV, (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount)) \ + X (void , glMultiDrawElementsIndirectBindlessNV, (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount)) + +#define JUCE_GL_FUNCTIONS_GL_NV_bindless_multi_draw_indirect_count \ + X (void , glMultiDrawArraysIndirectBindlessCountNV, (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount)) \ + X (void , glMultiDrawElementsIndirectBindlessCountNV, (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount)) + +#define JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \ + X (GLuint64 , glGetTextureHandleNV, (GLuint texture)) \ + X (GLuint64 , glGetTextureSamplerHandleNV, (GLuint texture, GLuint sampler)) \ + X (void , glMakeTextureHandleResidentNV, (GLuint64 handle)) \ + X (void , glMakeTextureHandleNonResidentNV, (GLuint64 handle)) \ + X (GLuint64 , glGetImageHandleNV, (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format)) \ + X (void , glMakeImageHandleResidentNV, (GLuint64 handle, GLenum access)) \ + X (void , glMakeImageHandleNonResidentNV, (GLuint64 handle)) \ + X (void , glUniformHandleui64NV, (GLint location, GLuint64 value)) \ + X (void , glUniformHandleui64vNV, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glProgramUniformHandleui64NV, (GLuint program, GLint location, GLuint64 value)) \ + X (void , glProgramUniformHandleui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64 *values)) \ + X (GLboolean , glIsTextureHandleResidentNV, (GLuint64 handle)) \ + X (GLboolean , glIsImageHandleResidentNV, (GLuint64 handle)) + +#define JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \ + X (void , glBlendParameteriNV, (GLenum pname, GLint value)) \ + X (void , glBlendBarrierNV, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \ + X (void , glViewportPositionWScaleNV, (GLuint index, GLfloat xcoeff, GLfloat ycoeff)) + +#define JUCE_GL_FUNCTIONS_GL_NV_command_list \ + X (void , glCreateStatesNV, (GLsizei n, GLuint *states)) \ + X (void , glDeleteStatesNV, (GLsizei n, const GLuint *states)) \ + X (GLboolean , glIsStateNV, (GLuint state)) \ + X (void , glStateCaptureNV, (GLuint state, GLenum mode)) \ + X (GLuint , glGetCommandHeaderNV, (GLenum tokenID, GLuint size)) \ + X (GLushort , glGetStageIndexNV, (GLenum shadertype)) \ + X (void , glDrawCommandsNV, (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count)) \ + X (void , glDrawCommandsAddressNV, (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count)) \ + X (void , glDrawCommandsStatesNV, (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count)) \ + X (void , glDrawCommandsStatesAddressNV, (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count)) \ + X (void , glCreateCommandListsNV, (GLsizei n, GLuint *lists)) \ + X (void , glDeleteCommandListsNV, (GLsizei n, const GLuint *lists)) \ + X (GLboolean , glIsCommandListNV, (GLuint list)) \ + X (void , glListDrawCommandsStatesClientNV, (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count)) \ + X (void , glCommandListSegmentsNV, (GLuint list, GLuint segments)) \ + X (void , glCompileCommandListNV, (GLuint list)) \ + X (void , glCallCommandListNV, (GLuint list)) + +#define JUCE_GL_FUNCTIONS_GL_NV_conditional_render \ + X (void , glBeginConditionalRenderNV, (GLuint id, GLenum mode)) \ + X (void , glEndConditionalRenderNV, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \ + X (void , glSubpixelPrecisionBiasNV, (GLuint xbits, GLuint ybits)) + +#define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_dilate \ + X (void , glConservativeRasterParameterfNV, (GLenum pname, GLfloat value)) + +#define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \ + X (void , glConservativeRasterParameteriNV, (GLenum pname, GLint param)) + +#define JUCE_GL_FUNCTIONS_GL_NV_copy_image \ + X (void , glCopyImageSubDataNV, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)) + +#define JUCE_GL_FUNCTIONS_GL_NV_depth_buffer_float \ + X (void , glDepthRangedNV, (GLdouble zNear, GLdouble zFar)) \ + X (void , glClearDepthdNV, (GLdouble depth)) \ + X (void , glDepthBoundsdNV, (GLdouble zmin, GLdouble zmax)) + +#define JUCE_GL_FUNCTIONS_GL_NV_draw_texture \ + X (void , glDrawTextureNV, (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1)) + +#define JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \ + X (void , glDrawVkImageNV, (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1)) \ + X (GLVULKANPROCNV, glGetVkProcAddrNV, (const GLchar *name)) \ + X (void , glWaitVkSemaphoreNV, (GLuint64 vkSemaphore)) \ + X (void , glSignalVkSemaphoreNV, (GLuint64 vkSemaphore)) \ + X (void , glSignalVkFenceNV, (GLuint64 vkFence)) + +#define JUCE_GL_FUNCTIONS_GL_NV_evaluators \ + X (void , glMapControlPointsNV, (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points)) \ + X (void , glMapParameterivNV, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glMapParameterfvNV, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glGetMapControlPointsNV, (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points)) \ + X (void , glGetMapParameterivNV, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetMapParameterfvNV, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetMapAttribParameterivNV, (GLenum target, GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetMapAttribParameterfvNV, (GLenum target, GLuint index, GLenum pname, GLfloat *params)) \ + X (void , glEvalMapsNV, (GLenum target, GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_NV_explicit_multisample \ + X (void , glGetMultisamplefvNV, (GLenum pname, GLuint index, GLfloat *val)) \ + X (void , glSampleMaskIndexedNV, (GLuint index, GLbitfield mask)) \ + X (void , glTexRenderbufferNV, (GLenum target, GLuint renderbuffer)) + +#define JUCE_GL_FUNCTIONS_GL_NV_fence \ + X (void , glDeleteFencesNV, (GLsizei n, const GLuint *fences)) \ + X (void , glGenFencesNV, (GLsizei n, GLuint *fences)) \ + X (GLboolean , glIsFenceNV, (GLuint fence)) \ + X (GLboolean , glTestFenceNV, (GLuint fence)) \ + X (void , glGetFenceivNV, (GLuint fence, GLenum pname, GLint *params)) \ + X (void , glFinishFenceNV, (GLuint fence)) \ + X (void , glSetFenceNV, (GLuint fence, GLenum condition)) + +#define JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \ + X (void , glFragmentCoverageColorNV, (GLuint color)) + +#define JUCE_GL_FUNCTIONS_GL_NV_fragment_program \ + X (void , glProgramNamedParameter4fNV, (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glProgramNamedParameter4fvNV, (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v)) \ + X (void , glProgramNamedParameter4dNV, (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glProgramNamedParameter4dvNV, (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v)) \ + X (void , glGetProgramNamedParameterfvNV, (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params)) \ + X (void , glGetProgramNamedParameterdvNV, (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \ + X (void , glCoverageModulationTableNV, (GLsizei n, const GLfloat *v)) \ + X (void , glGetCoverageModulationTableNV, (GLsizei bufSize, GLfloat *v)) \ + X (void , glCoverageModulationNV, (GLenum components)) + +#define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample_coverage \ + X (void , glRenderbufferStorageMultisampleCoverageNV, (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_NV_geometry_program4 \ + X (void , glProgramVertexLimitNV, (GLenum target, GLint limit)) \ + X (void , glFramebufferTextureEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level)) \ + X (void , glFramebufferTextureFaceEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face)) + +#define JUCE_GL_FUNCTIONS_GL_NV_gpu_program4 \ + X (void , glProgramLocalParameterI4iNV, (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)) \ + X (void , glProgramLocalParameterI4ivNV, (GLenum target, GLuint index, const GLint *params)) \ + X (void , glProgramLocalParametersI4ivNV, (GLenum target, GLuint index, GLsizei count, const GLint *params)) \ + X (void , glProgramLocalParameterI4uiNV, (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \ + X (void , glProgramLocalParameterI4uivNV, (GLenum target, GLuint index, const GLuint *params)) \ + X (void , glProgramLocalParametersI4uivNV, (GLenum target, GLuint index, GLsizei count, const GLuint *params)) \ + X (void , glProgramEnvParameterI4iNV, (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)) \ + X (void , glProgramEnvParameterI4ivNV, (GLenum target, GLuint index, const GLint *params)) \ + X (void , glProgramEnvParametersI4ivNV, (GLenum target, GLuint index, GLsizei count, const GLint *params)) \ + X (void , glProgramEnvParameterI4uiNV, (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \ + X (void , glProgramEnvParameterI4uivNV, (GLenum target, GLuint index, const GLuint *params)) \ + X (void , glProgramEnvParametersI4uivNV, (GLenum target, GLuint index, GLsizei count, const GLuint *params)) \ + X (void , glGetProgramLocalParameterIivNV, (GLenum target, GLuint index, GLint *params)) \ + X (void , glGetProgramLocalParameterIuivNV, (GLenum target, GLuint index, GLuint *params)) \ + X (void , glGetProgramEnvParameterIivNV, (GLenum target, GLuint index, GLint *params)) \ + X (void , glGetProgramEnvParameterIuivNV, (GLenum target, GLuint index, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_gpu_program5 \ + X (void , glProgramSubroutineParametersuivNV, (GLenum target, GLsizei count, const GLuint *params)) \ + X (void , glGetProgramSubroutineParameteruivNV, (GLenum target, GLuint index, GLuint *param)) + +#define JUCE_GL_FUNCTIONS_GL_NV_half_float \ + X (void , glVertex2hNV, (GLhalfNV x, GLhalfNV y)) \ + X (void , glVertex2hvNV, (const GLhalfNV *v)) \ + X (void , glVertex3hNV, (GLhalfNV x, GLhalfNV y, GLhalfNV z)) \ + X (void , glVertex3hvNV, (const GLhalfNV *v)) \ + X (void , glVertex4hNV, (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w)) \ + X (void , glVertex4hvNV, (const GLhalfNV *v)) \ + X (void , glNormal3hNV, (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz)) \ + X (void , glNormal3hvNV, (const GLhalfNV *v)) \ + X (void , glColor3hNV, (GLhalfNV red, GLhalfNV green, GLhalfNV blue)) \ + X (void , glColor3hvNV, (const GLhalfNV *v)) \ + X (void , glColor4hNV, (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha)) \ + X (void , glColor4hvNV, (const GLhalfNV *v)) \ + X (void , glTexCoord1hNV, (GLhalfNV s)) \ + X (void , glTexCoord1hvNV, (const GLhalfNV *v)) \ + X (void , glTexCoord2hNV, (GLhalfNV s, GLhalfNV t)) \ + X (void , glTexCoord2hvNV, (const GLhalfNV *v)) \ + X (void , glTexCoord3hNV, (GLhalfNV s, GLhalfNV t, GLhalfNV r)) \ + X (void , glTexCoord3hvNV, (const GLhalfNV *v)) \ + X (void , glTexCoord4hNV, (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)) \ + X (void , glTexCoord4hvNV, (const GLhalfNV *v)) \ + X (void , glMultiTexCoord1hNV, (GLenum target, GLhalfNV s)) \ + X (void , glMultiTexCoord1hvNV, (GLenum target, const GLhalfNV *v)) \ + X (void , glMultiTexCoord2hNV, (GLenum target, GLhalfNV s, GLhalfNV t)) \ + X (void , glMultiTexCoord2hvNV, (GLenum target, const GLhalfNV *v)) \ + X (void , glMultiTexCoord3hNV, (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r)) \ + X (void , glMultiTexCoord3hvNV, (GLenum target, const GLhalfNV *v)) \ + X (void , glMultiTexCoord4hNV, (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)) \ + X (void , glMultiTexCoord4hvNV, (GLenum target, const GLhalfNV *v)) \ + X (void , glFogCoordhNV, (GLhalfNV fog)) \ + X (void , glFogCoordhvNV, (const GLhalfNV *fog)) \ + X (void , glSecondaryColor3hNV, (GLhalfNV red, GLhalfNV green, GLhalfNV blue)) \ + X (void , glSecondaryColor3hvNV, (const GLhalfNV *v)) \ + X (void , glVertexWeighthNV, (GLhalfNV weight)) \ + X (void , glVertexWeighthvNV, (const GLhalfNV *weight)) \ + X (void , glVertexAttrib1hNV, (GLuint index, GLhalfNV x)) \ + X (void , glVertexAttrib1hvNV, (GLuint index, const GLhalfNV *v)) \ + X (void , glVertexAttrib2hNV, (GLuint index, GLhalfNV x, GLhalfNV y)) \ + X (void , glVertexAttrib2hvNV, (GLuint index, const GLhalfNV *v)) \ + X (void , glVertexAttrib3hNV, (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z)) \ + X (void , glVertexAttrib3hvNV, (GLuint index, const GLhalfNV *v)) \ + X (void , glVertexAttrib4hNV, (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w)) \ + X (void , glVertexAttrib4hvNV, (GLuint index, const GLhalfNV *v)) \ + X (void , glVertexAttribs1hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \ + X (void , glVertexAttribs2hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \ + X (void , glVertexAttribs3hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \ + X (void , glVertexAttribs4hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) + +#define JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \ + X (void , glGetInternalformatSampleivNV, (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_gpu_multicast \ + X (void , glRenderGpuMaskNV, (GLbitfield mask)) \ + X (void , glMulticastBufferSubDataNV, (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)) \ + X (void , glMulticastCopyBufferSubDataNV, (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \ + X (void , glMulticastCopyImageSubDataNV, (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) \ + X (void , glMulticastBlitFramebufferNV, (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \ + X (void , glMulticastFramebufferSampleLocationsfvNV, (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v)) \ + X (void , glMulticastBarrierNV, ()) \ + X (void , glMulticastWaitSyncNV, (GLuint signalGpu, GLbitfield waitGpuMask)) \ + X (void , glMulticastGetQueryObjectivNV, (GLuint gpu, GLuint id, GLenum pname, GLint *params)) \ + X (void , glMulticastGetQueryObjectuivNV, (GLuint gpu, GLuint id, GLenum pname, GLuint *params)) \ + X (void , glMulticastGetQueryObjecti64vNV, (GLuint gpu, GLuint id, GLenum pname, GLint64 *params)) \ + X (void , glMulticastGetQueryObjectui64vNV, (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params)) + +#define JUCE_GL_FUNCTIONS_GL_NVX_gpu_multicast2 \ + X (void , glUploadGpuMaskNVX, (GLbitfield mask)) \ + X (void , glMulticastViewportArrayvNVX, (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v)) \ + X (void , glMulticastViewportPositionWScaleNVX, (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff)) \ + X (void , glMulticastScissorArrayvNVX, (GLuint gpu, GLuint first, GLsizei count, const GLint *v)) \ + X (GLuint , glAsyncCopyBufferSubDataNVX, (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray)) \ + X (GLuint , glAsyncCopyImageSubDataNVX, (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray)) + +#define JUCE_GL_FUNCTIONS_GL_NVX_progress_fence \ + X (GLuint , glCreateProgressFenceNVX, ()) \ + X (void , glSignalSemaphoreui64NVX, (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray)) \ + X (void , glWaitSemaphoreui64NVX, (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray)) \ + X (void , glClientWaitSemaphoreui64NVX, (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray)) + +#define JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \ + X (void , glGetMemoryObjectDetachedResourcesuivNV, (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params)) \ + X (void , glResetMemoryObjectParameterNV, (GLuint memory, GLenum pname)) \ + X (void , glTexAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \ + X (void , glBufferAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \ + X (void , glTextureAttachMemoryNV, (GLuint texture, GLuint memory, GLuint64 offset)) \ + X (void , glNamedBufferAttachMemoryNV, (GLuint buffer, GLuint memory, GLuint64 offset)) + +#define JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \ + X (void , glBufferPageCommitmentMemNV, (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \ + X (void , glTexPageCommitmentMemNV, (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)) \ + X (void , glNamedBufferPageCommitmentMemNV, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \ + X (void , glTexturePageCommitmentMemNV, (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)) + +#define JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \ + X (void , glDrawMeshTasksNV, (GLuint first, GLuint count)) \ + X (void , glDrawMeshTasksIndirectNV, (GLintptr indirect)) \ + X (void , glMultiDrawMeshTasksIndirectNV, (GLintptr indirect, GLsizei drawcount, GLsizei stride)) \ + X (void , glMultiDrawMeshTasksIndirectCountNV, (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)) + +#define JUCE_GL_FUNCTIONS_GL_NV_occlusion_query \ + X (void , glGenOcclusionQueriesNV, (GLsizei n, GLuint *ids)) \ + X (void , glDeleteOcclusionQueriesNV, (GLsizei n, const GLuint *ids)) \ + X (GLboolean , glIsOcclusionQueryNV, (GLuint id)) \ + X (void , glBeginOcclusionQueryNV, (GLuint id)) \ + X (void , glEndOcclusionQueryNV, ()) \ + X (void , glGetOcclusionQueryivNV, (GLuint id, GLenum pname, GLint *params)) \ + X (void , glGetOcclusionQueryuivNV, (GLuint id, GLenum pname, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_parameter_buffer_object \ + X (void , glProgramBufferParametersfvNV, (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params)) \ + X (void , glProgramBufferParametersIivNV, (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params)) \ + X (void , glProgramBufferParametersIuivNV, (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_path_rendering \ + X (GLuint , glGenPathsNV, (GLsizei range)) \ + X (void , glDeletePathsNV, (GLuint path, GLsizei range)) \ + X (GLboolean , glIsPathNV, (GLuint path)) \ + X (void , glPathCommandsNV, (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathCoordsNV, (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathSubCommandsNV, (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathSubCoordsNV, (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathStringNV, (GLuint path, GLenum format, GLsizei length, const void *pathString)) \ + X (void , glPathGlyphsNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (void , glPathGlyphRangeNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (void , glWeightPathsNV, (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights)) \ + X (void , glCopyPathNV, (GLuint resultPath, GLuint srcPath)) \ + X (void , glInterpolatePathsNV, (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight)) \ + X (void , glTransformPathNV, (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glPathParameterivNV, (GLuint path, GLenum pname, const GLint *value)) \ + X (void , glPathParameteriNV, (GLuint path, GLenum pname, GLint value)) \ + X (void , glPathParameterfvNV, (GLuint path, GLenum pname, const GLfloat *value)) \ + X (void , glPathParameterfNV, (GLuint path, GLenum pname, GLfloat value)) \ + X (void , glPathDashArrayNV, (GLuint path, GLsizei dashCount, const GLfloat *dashArray)) \ + X (void , glPathStencilFuncNV, (GLenum func, GLint ref, GLuint mask)) \ + X (void , glPathStencilDepthOffsetNV, (GLfloat factor, GLfloat units)) \ + X (void , glStencilFillPathNV, (GLuint path, GLenum fillMode, GLuint mask)) \ + X (void , glStencilStrokePathNV, (GLuint path, GLint reference, GLuint mask)) \ + X (void , glStencilFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glStencilStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glPathCoverDepthFuncNV, (GLenum func)) \ + X (void , glCoverFillPathNV, (GLuint path, GLenum coverMode)) \ + X (void , glCoverStrokePathNV, (GLuint path, GLenum coverMode)) \ + X (void , glCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glGetPathParameterivNV, (GLuint path, GLenum pname, GLint *value)) \ + X (void , glGetPathParameterfvNV, (GLuint path, GLenum pname, GLfloat *value)) \ + X (void , glGetPathCommandsNV, (GLuint path, GLubyte *commands)) \ + X (void , glGetPathCoordsNV, (GLuint path, GLfloat *coords)) \ + X (void , glGetPathDashArrayNV, (GLuint path, GLfloat *dashArray)) \ + X (void , glGetPathMetricsNV, (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics)) \ + X (void , glGetPathMetricRangeNV, (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics)) \ + X (void , glGetPathSpacingNV, (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing)) \ + X (GLboolean , glIsPointInFillPathNV, (GLuint path, GLuint mask, GLfloat x, GLfloat y)) \ + X (GLboolean , glIsPointInStrokePathNV, (GLuint path, GLfloat x, GLfloat y)) \ + X (GLfloat , glGetPathLengthNV, (GLuint path, GLsizei startSegment, GLsizei numSegments)) \ + X (GLboolean , glPointAlongPathNV, (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY)) \ + X (void , glMatrixLoad3x2fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixLoad3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixLoadTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixMult3x2fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixMult3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixMultTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glStencilThenCoverFillPathNV, (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode)) \ + X (void , glStencilThenCoverStrokePathNV, (GLuint path, GLint reference, GLuint mask, GLenum coverMode)) \ + X (void , glStencilThenCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glStencilThenCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (GLenum , glPathGlyphIndexRangeNV, (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount)) \ + X (GLenum , glPathGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (GLenum , glPathMemoryGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (void , glProgramPathFragmentInputGenNV, (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs)) \ + X (void , glGetProgramResourcefvNV, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params)) \ + X (void , glPathColorGenNV, (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs)) \ + X (void , glPathTexGenNV, (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs)) \ + X (void , glPathFogGenNV, (GLenum genMode)) \ + X (void , glGetPathColorGenivNV, (GLenum color, GLenum pname, GLint *value)) \ + X (void , glGetPathColorGenfvNV, (GLenum color, GLenum pname, GLfloat *value)) \ + X (void , glGetPathTexGenivNV, (GLenum texCoordSet, GLenum pname, GLint *value)) \ + X (void , glGetPathTexGenfvNV, (GLenum texCoordSet, GLenum pname, GLfloat *value)) + +#define JUCE_GL_FUNCTIONS_GL_NV_pixel_data_range \ + X (void , glPixelDataRangeNV, (GLenum target, GLsizei length, const void *pointer)) \ + X (void , glFlushPixelDataRangeNV, (GLenum target)) + +#define JUCE_GL_FUNCTIONS_GL_NV_point_sprite \ + X (void , glPointParameteriNV, (GLenum pname, GLint param)) \ + X (void , glPointParameterivNV, (GLenum pname, const GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_present_video \ + X (void , glPresentFrameKeyedNV, (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1)) \ + X (void , glPresentFrameDualFillNV, (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3)) \ + X (void , glGetVideoivNV, (GLuint video_slot, GLenum pname, GLint *params)) \ + X (void , glGetVideouivNV, (GLuint video_slot, GLenum pname, GLuint *params)) \ + X (void , glGetVideoi64vNV, (GLuint video_slot, GLenum pname, GLint64EXT *params)) \ + X (void , glGetVideoui64vNV, (GLuint video_slot, GLenum pname, GLuint64EXT *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_primitive_restart \ + X (void , glPrimitiveRestartNV, ()) \ + X (void , glPrimitiveRestartIndexNV, (GLuint index)) + +#define JUCE_GL_FUNCTIONS_GL_NV_query_resource \ + X (GLint , glQueryResourceNV, (GLenum queryType, GLint tagId, GLuint count, GLint *buffer)) + +#define JUCE_GL_FUNCTIONS_GL_NV_query_resource_tag \ + X (void , glGenQueryResourceTagNV, (GLsizei n, GLint *tagIds)) \ + X (void , glDeleteQueryResourceTagNV, (GLsizei n, const GLint *tagIds)) \ + X (void , glQueryResourceTagNV, (GLint tagId, const GLchar *tagString)) + +#define JUCE_GL_FUNCTIONS_GL_NV_register_combiners \ + X (void , glCombinerParameterfvNV, (GLenum pname, const GLfloat *params)) \ + X (void , glCombinerParameterfNV, (GLenum pname, GLfloat param)) \ + X (void , glCombinerParameterivNV, (GLenum pname, const GLint *params)) \ + X (void , glCombinerParameteriNV, (GLenum pname, GLint param)) \ + X (void , glCombinerInputNV, (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage)) \ + X (void , glCombinerOutputNV, (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum)) \ + X (void , glFinalCombinerInputNV, (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage)) \ + X (void , glGetCombinerInputParameterfvNV, (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params)) \ + X (void , glGetCombinerInputParameterivNV, (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params)) \ + X (void , glGetCombinerOutputParameterfvNV, (GLenum stage, GLenum portion, GLenum pname, GLfloat *params)) \ + X (void , glGetCombinerOutputParameterivNV, (GLenum stage, GLenum portion, GLenum pname, GLint *params)) \ + X (void , glGetFinalCombinerInputParameterfvNV, (GLenum variable, GLenum pname, GLfloat *params)) \ + X (void , glGetFinalCombinerInputParameterivNV, (GLenum variable, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_register_combiners2 \ + X (void , glCombinerStageParameterfvNV, (GLenum stage, GLenum pname, const GLfloat *params)) \ + X (void , glGetCombinerStageParameterfvNV, (GLenum stage, GLenum pname, GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_sample_locations \ + X (void , glFramebufferSampleLocationsfvNV, (GLenum target, GLuint start, GLsizei count, const GLfloat *v)) \ + X (void , glNamedFramebufferSampleLocationsfvNV, (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v)) \ + X (void , glResolveDepthValuesNV, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \ + X (void , glScissorExclusiveNV, (GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glScissorExclusiveArrayvNV, (GLuint first, GLsizei count, const GLint *v)) + +#define JUCE_GL_FUNCTIONS_GL_NV_shader_buffer_load \ + X (void , glMakeBufferResidentNV, (GLenum target, GLenum access)) \ + X (void , glMakeBufferNonResidentNV, (GLenum target)) \ + X (GLboolean , glIsBufferResidentNV, (GLenum target)) \ + X (void , glMakeNamedBufferResidentNV, (GLuint buffer, GLenum access)) \ + X (void , glMakeNamedBufferNonResidentNV, (GLuint buffer)) \ + X (GLboolean , glIsNamedBufferResidentNV, (GLuint buffer)) \ + X (void , glGetBufferParameterui64vNV, (GLenum target, GLenum pname, GLuint64EXT *params)) \ + X (void , glGetNamedBufferParameterui64vNV, (GLuint buffer, GLenum pname, GLuint64EXT *params)) \ + X (void , glGetIntegerui64vNV, (GLenum value, GLuint64EXT *result)) \ + X (void , glUniformui64NV, (GLint location, GLuint64EXT value)) \ + X (void , glUniformui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glProgramUniformui64NV, (GLuint program, GLint location, GLuint64EXT value)) \ + X (void , glProgramUniformui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) + +#define JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \ + X (void , glBindShadingRateImageNV, (GLuint texture)) \ + X (void , glGetShadingRateImagePaletteNV, (GLuint viewport, GLuint entry, GLenum *rate)) \ + X (void , glGetShadingRateSampleLocationivNV, (GLenum rate, GLuint samples, GLuint index, GLint *location)) \ + X (void , glShadingRateImageBarrierNV, (GLboolean synchronize)) \ + X (void , glShadingRateImagePaletteNV, (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates)) \ + X (void , glShadingRateSampleOrderNV, (GLenum order)) \ + X (void , glShadingRateSampleOrderCustomNV, (GLenum rate, GLuint samples, const GLint *locations)) + +#define JUCE_GL_FUNCTIONS_GL_NV_texture_barrier \ + X (void , glTextureBarrierNV, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_texture_multisample \ + X (void , glTexImage2DMultisampleCoverageNV, (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)) \ + X (void , glTexImage3DMultisampleCoverageNV, (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)) \ + X (void , glTextureImage2DMultisampleNV, (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)) \ + X (void , glTextureImage3DMultisampleNV, (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)) \ + X (void , glTextureImage2DMultisampleCoverageNV, (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)) \ + X (void , glTextureImage3DMultisampleCoverageNV, (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)) + +#define JUCE_GL_FUNCTIONS_GL_NV_transform_feedback \ + X (void , glBeginTransformFeedbackNV, (GLenum primitiveMode)) \ + X (void , glEndTransformFeedbackNV, ()) \ + X (void , glTransformFeedbackAttribsNV, (GLsizei count, const GLint *attribs, GLenum bufferMode)) \ + X (void , glBindBufferRangeNV, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glBindBufferOffsetNV, (GLenum target, GLuint index, GLuint buffer, GLintptr offset)) \ + X (void , glBindBufferBaseNV, (GLenum target, GLuint index, GLuint buffer)) \ + X (void , glTransformFeedbackVaryingsNV, (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode)) \ + X (void , glActiveVaryingNV, (GLuint program, const GLchar *name)) \ + X (GLint , glGetVaryingLocationNV, (GLuint program, const GLchar *name)) \ + X (void , glGetActiveVaryingNV, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)) \ + X (void , glGetTransformFeedbackVaryingNV, (GLuint program, GLuint index, GLint *location)) \ + X (void , glTransformFeedbackStreamAttribsNV, (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode)) + +#define JUCE_GL_FUNCTIONS_GL_NV_transform_feedback2 \ + X (void , glBindTransformFeedbackNV, (GLenum target, GLuint id)) \ + X (void , glDeleteTransformFeedbacksNV, (GLsizei n, const GLuint *ids)) \ + X (void , glGenTransformFeedbacksNV, (GLsizei n, GLuint *ids)) \ + X (GLboolean , glIsTransformFeedbackNV, (GLuint id)) \ + X (void , glPauseTransformFeedbackNV, ()) \ + X (void , glResumeTransformFeedbackNV, ()) \ + X (void , glDrawTransformFeedbackNV, (GLenum mode, GLuint id)) + +#define JUCE_GL_FUNCTIONS_GL_NV_vdpau_interop \ + X (void , glVDPAUInitNV, (const void *vdpDevice, const void *getProcAddress)) \ + X (void , glVDPAUFiniNV, ()) \ + X (GLvdpauSurfaceNV, glVDPAURegisterVideoSurfaceNV, (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames)) \ + X (GLvdpauSurfaceNV, glVDPAURegisterOutputSurfaceNV, (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames)) \ + X (GLboolean , glVDPAUIsSurfaceNV, (GLvdpauSurfaceNV surface)) \ + X (void , glVDPAUUnregisterSurfaceNV, (GLvdpauSurfaceNV surface)) \ + X (void , glVDPAUGetSurfaceivNV, (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) \ + X (void , glVDPAUSurfaceAccessNV, (GLvdpauSurfaceNV surface, GLenum access)) \ + X (void , glVDPAUMapSurfacesNV, (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces)) \ + X (void , glVDPAUUnmapSurfacesNV, (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces)) + +#define JUCE_GL_FUNCTIONS_GL_NV_vdpau_interop2 \ + X (GLvdpauSurfaceNV, glVDPAURegisterVideoSurfaceWithPictureStructureNV, (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure)) + +#define JUCE_GL_FUNCTIONS_GL_NV_vertex_array_range \ + X (void , glFlushVertexArrayRangeNV, ()) \ + X (void , glVertexArrayRangeNV, (GLsizei length, const void *pointer)) + +#define JUCE_GL_FUNCTIONS_GL_NV_vertex_attrib_integer_64bit \ + X (void , glVertexAttribL1i64NV, (GLuint index, GLint64EXT x)) \ + X (void , glVertexAttribL2i64NV, (GLuint index, GLint64EXT x, GLint64EXT y)) \ + X (void , glVertexAttribL3i64NV, (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \ + X (void , glVertexAttribL4i64NV, (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \ + X (void , glVertexAttribL1i64vNV, (GLuint index, const GLint64EXT *v)) \ + X (void , glVertexAttribL2i64vNV, (GLuint index, const GLint64EXT *v)) \ + X (void , glVertexAttribL3i64vNV, (GLuint index, const GLint64EXT *v)) \ + X (void , glVertexAttribL4i64vNV, (GLuint index, const GLint64EXT *v)) \ + X (void , glVertexAttribL1ui64NV, (GLuint index, GLuint64EXT x)) \ + X (void , glVertexAttribL2ui64NV, (GLuint index, GLuint64EXT x, GLuint64EXT y)) \ + X (void , glVertexAttribL3ui64NV, (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \ + X (void , glVertexAttribL4ui64NV, (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \ + X (void , glVertexAttribL1ui64vNV, (GLuint index, const GLuint64EXT *v)) \ + X (void , glVertexAttribL2ui64vNV, (GLuint index, const GLuint64EXT *v)) \ + X (void , glVertexAttribL3ui64vNV, (GLuint index, const GLuint64EXT *v)) \ + X (void , glVertexAttribL4ui64vNV, (GLuint index, const GLuint64EXT *v)) \ + X (void , glGetVertexAttribLi64vNV, (GLuint index, GLenum pname, GLint64EXT *params)) \ + X (void , glGetVertexAttribLui64vNV, (GLuint index, GLenum pname, GLuint64EXT *params)) \ + X (void , glVertexAttribLFormatNV, (GLuint index, GLint size, GLenum type, GLsizei stride)) + +#define JUCE_GL_FUNCTIONS_GL_NV_vertex_buffer_unified_memory \ + X (void , glBufferAddressRangeNV, (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length)) \ + X (void , glVertexFormatNV, (GLint size, GLenum type, GLsizei stride)) \ + X (void , glNormalFormatNV, (GLenum type, GLsizei stride)) \ + X (void , glColorFormatNV, (GLint size, GLenum type, GLsizei stride)) \ + X (void , glIndexFormatNV, (GLenum type, GLsizei stride)) \ + X (void , glTexCoordFormatNV, (GLint size, GLenum type, GLsizei stride)) \ + X (void , glEdgeFlagFormatNV, (GLsizei stride)) \ + X (void , glSecondaryColorFormatNV, (GLint size, GLenum type, GLsizei stride)) \ + X (void , glFogCoordFormatNV, (GLenum type, GLsizei stride)) \ + X (void , glVertexAttribFormatNV, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride)) \ + X (void , glVertexAttribIFormatNV, (GLuint index, GLint size, GLenum type, GLsizei stride)) \ + X (void , glGetIntegerui64i_vNV, (GLenum value, GLuint index, GLuint64EXT *result)) + +#define JUCE_GL_FUNCTIONS_GL_NV_vertex_program \ + X (GLboolean , glAreProgramsResidentNV, (GLsizei n, const GLuint *programs, GLboolean *residences)) \ + X (void , glBindProgramNV, (GLenum target, GLuint id)) \ + X (void , glDeleteProgramsNV, (GLsizei n, const GLuint *programs)) \ + X (void , glExecuteProgramNV, (GLenum target, GLuint id, const GLfloat *params)) \ + X (void , glGenProgramsNV, (GLsizei n, GLuint *programs)) \ + X (void , glGetProgramParameterdvNV, (GLenum target, GLuint index, GLenum pname, GLdouble *params)) \ + X (void , glGetProgramParameterfvNV, (GLenum target, GLuint index, GLenum pname, GLfloat *params)) \ + X (void , glGetProgramivNV, (GLuint id, GLenum pname, GLint *params)) \ + X (void , glGetProgramStringNV, (GLuint id, GLenum pname, GLubyte *program)) \ + X (void , glGetTrackMatrixivNV, (GLenum target, GLuint address, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribdvNV, (GLuint index, GLenum pname, GLdouble *params)) \ + X (void , glGetVertexAttribfvNV, (GLuint index, GLenum pname, GLfloat *params)) \ + X (void , glGetVertexAttribivNV, (GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribPointervNV, (GLuint index, GLenum pname, void **pointer)) \ + X (GLboolean , glIsProgramNV, (GLuint id)) \ + X (void , glLoadProgramNV, (GLenum target, GLuint id, GLsizei len, const GLubyte *program)) \ + X (void , glProgramParameter4dNV, (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glProgramParameter4dvNV, (GLenum target, GLuint index, const GLdouble *v)) \ + X (void , glProgramParameter4fNV, (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glProgramParameter4fvNV, (GLenum target, GLuint index, const GLfloat *v)) \ + X (void , glProgramParameters4dvNV, (GLenum target, GLuint index, GLsizei count, const GLdouble *v)) \ + X (void , glProgramParameters4fvNV, (GLenum target, GLuint index, GLsizei count, const GLfloat *v)) \ + X (void , glRequestResidentProgramsNV, (GLsizei n, const GLuint *programs)) \ + X (void , glTrackMatrixNV, (GLenum target, GLuint address, GLenum matrix, GLenum transform)) \ + X (void , glVertexAttribPointerNV, (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glVertexAttrib1dNV, (GLuint index, GLdouble x)) \ + X (void , glVertexAttrib1dvNV, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib1fNV, (GLuint index, GLfloat x)) \ + X (void , glVertexAttrib1fvNV, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib1sNV, (GLuint index, GLshort x)) \ + X (void , glVertexAttrib1svNV, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib2dNV, (GLuint index, GLdouble x, GLdouble y)) \ + X (void , glVertexAttrib2dvNV, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib2fNV, (GLuint index, GLfloat x, GLfloat y)) \ + X (void , glVertexAttrib2fvNV, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib2sNV, (GLuint index, GLshort x, GLshort y)) \ + X (void , glVertexAttrib2svNV, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib3dNV, (GLuint index, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glVertexAttrib3dvNV, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib3fNV, (GLuint index, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glVertexAttrib3fvNV, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib3sNV, (GLuint index, GLshort x, GLshort y, GLshort z)) \ + X (void , glVertexAttrib3svNV, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4dNV, (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) \ + X (void , glVertexAttrib4dvNV, (GLuint index, const GLdouble *v)) \ + X (void , glVertexAttrib4fNV, (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glVertexAttrib4fvNV, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib4sNV, (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)) \ + X (void , glVertexAttrib4svNV, (GLuint index, const GLshort *v)) \ + X (void , glVertexAttrib4ubNV, (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)) \ + X (void , glVertexAttrib4ubvNV, (GLuint index, const GLubyte *v)) \ + X (void , glVertexAttribs1dvNV, (GLuint index, GLsizei count, const GLdouble *v)) \ + X (void , glVertexAttribs1fvNV, (GLuint index, GLsizei count, const GLfloat *v)) \ + X (void , glVertexAttribs1svNV, (GLuint index, GLsizei count, const GLshort *v)) \ + X (void , glVertexAttribs2dvNV, (GLuint index, GLsizei count, const GLdouble *v)) \ + X (void , glVertexAttribs2fvNV, (GLuint index, GLsizei count, const GLfloat *v)) \ + X (void , glVertexAttribs2svNV, (GLuint index, GLsizei count, const GLshort *v)) \ + X (void , glVertexAttribs3dvNV, (GLuint index, GLsizei count, const GLdouble *v)) \ + X (void , glVertexAttribs3fvNV, (GLuint index, GLsizei count, const GLfloat *v)) \ + X (void , glVertexAttribs3svNV, (GLuint index, GLsizei count, const GLshort *v)) \ + X (void , glVertexAttribs4dvNV, (GLuint index, GLsizei count, const GLdouble *v)) \ + X (void , glVertexAttribs4fvNV, (GLuint index, GLsizei count, const GLfloat *v)) \ + X (void , glVertexAttribs4svNV, (GLuint index, GLsizei count, const GLshort *v)) \ + X (void , glVertexAttribs4ubvNV, (GLuint index, GLsizei count, const GLubyte *v)) + +#define JUCE_GL_FUNCTIONS_GL_NV_video_capture \ + X (void , glBeginVideoCaptureNV, (GLuint video_capture_slot)) \ + X (void , glBindVideoCaptureStreamBufferNV, (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset)) \ + X (void , glBindVideoCaptureStreamTextureNV, (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture)) \ + X (void , glEndVideoCaptureNV, (GLuint video_capture_slot)) \ + X (void , glGetVideoCaptureivNV, (GLuint video_capture_slot, GLenum pname, GLint *params)) \ + X (void , glGetVideoCaptureStreamivNV, (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params)) \ + X (void , glGetVideoCaptureStreamfvNV, (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params)) \ + X (void , glGetVideoCaptureStreamdvNV, (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params)) \ + X (GLenum , glVideoCaptureNV, (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time)) \ + X (void , glVideoCaptureStreamParameterivNV, (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params)) \ + X (void , glVideoCaptureStreamParameterfvNV, (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params)) \ + X (void , glVideoCaptureStreamParameterdvNV, (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \ + X (void , glViewportSwizzleNV, (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew)) + +#define JUCE_GL_FUNCTIONS_GL_OES_byte_coordinates \ + X (void , glMultiTexCoord1bOES, (GLenum texture, GLbyte s)) \ + X (void , glMultiTexCoord1bvOES, (GLenum texture, const GLbyte *coords)) \ + X (void , glMultiTexCoord2bOES, (GLenum texture, GLbyte s, GLbyte t)) \ + X (void , glMultiTexCoord2bvOES, (GLenum texture, const GLbyte *coords)) \ + X (void , glMultiTexCoord3bOES, (GLenum texture, GLbyte s, GLbyte t, GLbyte r)) \ + X (void , glMultiTexCoord3bvOES, (GLenum texture, const GLbyte *coords)) \ + X (void , glMultiTexCoord4bOES, (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q)) \ + X (void , glMultiTexCoord4bvOES, (GLenum texture, const GLbyte *coords)) \ + X (void , glTexCoord1bOES, (GLbyte s)) \ + X (void , glTexCoord1bvOES, (const GLbyte *coords)) \ + X (void , glTexCoord2bOES, (GLbyte s, GLbyte t)) \ + X (void , glTexCoord2bvOES, (const GLbyte *coords)) \ + X (void , glTexCoord3bOES, (GLbyte s, GLbyte t, GLbyte r)) \ + X (void , glTexCoord3bvOES, (const GLbyte *coords)) \ + X (void , glTexCoord4bOES, (GLbyte s, GLbyte t, GLbyte r, GLbyte q)) \ + X (void , glTexCoord4bvOES, (const GLbyte *coords)) \ + X (void , glVertex2bOES, (GLbyte x, GLbyte y)) \ + X (void , glVertex2bvOES, (const GLbyte *coords)) \ + X (void , glVertex3bOES, (GLbyte x, GLbyte y, GLbyte z)) \ + X (void , glVertex3bvOES, (const GLbyte *coords)) \ + X (void , glVertex4bOES, (GLbyte x, GLbyte y, GLbyte z, GLbyte w)) \ + X (void , glVertex4bvOES, (const GLbyte *coords)) + +#define JUCE_GL_FUNCTIONS_GL_OES_fixed_point \ + X (void , glAlphaFuncxOES, (GLenum func, GLfixed ref)) \ + X (void , glClearColorxOES, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)) \ + X (void , glClearDepthxOES, (GLfixed depth)) \ + X (void , glClipPlanexOES, (GLenum plane, const GLfixed *equation)) \ + X (void , glColor4xOES, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)) \ + X (void , glDepthRangexOES, (GLfixed n, GLfixed f)) \ + X (void , glFogxOES, (GLenum pname, GLfixed param)) \ + X (void , glFogxvOES, (GLenum pname, const GLfixed *param)) \ + X (void , glFrustumxOES, (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f)) \ + X (void , glGetClipPlanexOES, (GLenum plane, GLfixed *equation)) \ + X (void , glGetFixedvOES, (GLenum pname, GLfixed *params)) \ + X (void , glGetTexEnvxvOES, (GLenum target, GLenum pname, GLfixed *params)) \ + X (void , glGetTexParameterxvOES, (GLenum target, GLenum pname, GLfixed *params)) \ + X (void , glLightModelxOES, (GLenum pname, GLfixed param)) \ + X (void , glLightModelxvOES, (GLenum pname, const GLfixed *param)) \ + X (void , glLightxOES, (GLenum light, GLenum pname, GLfixed param)) \ + X (void , glLightxvOES, (GLenum light, GLenum pname, const GLfixed *params)) \ + X (void , glLineWidthxOES, (GLfixed width)) \ + X (void , glLoadMatrixxOES, (const GLfixed *m)) \ + X (void , glMaterialxOES, (GLenum face, GLenum pname, GLfixed param)) \ + X (void , glMaterialxvOES, (GLenum face, GLenum pname, const GLfixed *param)) \ + X (void , glMultMatrixxOES, (const GLfixed *m)) \ + X (void , glMultiTexCoord4xOES, (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q)) \ + X (void , glNormal3xOES, (GLfixed nx, GLfixed ny, GLfixed nz)) \ + X (void , glOrthoxOES, (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f)) \ + X (void , glPointParameterxvOES, (GLenum pname, const GLfixed *params)) \ + X (void , glPointSizexOES, (GLfixed size)) \ + X (void , glPolygonOffsetxOES, (GLfixed factor, GLfixed units)) \ + X (void , glRotatexOES, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z)) \ + X (void , glScalexOES, (GLfixed x, GLfixed y, GLfixed z)) \ + X (void , glTexEnvxOES, (GLenum target, GLenum pname, GLfixed param)) \ + X (void , glTexEnvxvOES, (GLenum target, GLenum pname, const GLfixed *params)) \ + X (void , glTexParameterxOES, (GLenum target, GLenum pname, GLfixed param)) \ + X (void , glTexParameterxvOES, (GLenum target, GLenum pname, const GLfixed *params)) \ + X (void , glTranslatexOES, (GLfixed x, GLfixed y, GLfixed z)) \ + X (void , glGetLightxvOES, (GLenum light, GLenum pname, GLfixed *params)) \ + X (void , glGetMaterialxvOES, (GLenum face, GLenum pname, GLfixed *params)) \ + X (void , glPointParameterxOES, (GLenum pname, GLfixed param)) \ + X (void , glSampleCoveragexOES, (GLclampx value, GLboolean invert)) \ + X (void , glAccumxOES, (GLenum op, GLfixed value)) \ + X (void , glBitmapxOES, (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap)) \ + X (void , glBlendColorxOES, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)) \ + X (void , glClearAccumxOES, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)) \ + X (void , glColor3xOES, (GLfixed red, GLfixed green, GLfixed blue)) \ + X (void , glColor3xvOES, (const GLfixed *components)) \ + X (void , glColor4xvOES, (const GLfixed *components)) \ + X (void , glConvolutionParameterxOES, (GLenum target, GLenum pname, GLfixed param)) \ + X (void , glConvolutionParameterxvOES, (GLenum target, GLenum pname, const GLfixed *params)) \ + X (void , glEvalCoord1xOES, (GLfixed u)) \ + X (void , glEvalCoord1xvOES, (const GLfixed *coords)) \ + X (void , glEvalCoord2xOES, (GLfixed u, GLfixed v)) \ + X (void , glEvalCoord2xvOES, (const GLfixed *coords)) \ + X (void , glFeedbackBufferxOES, (GLsizei n, GLenum type, const GLfixed *buffer)) \ + X (void , glGetConvolutionParameterxvOES, (GLenum target, GLenum pname, GLfixed *params)) \ + X (void , glGetHistogramParameterxvOES, (GLenum target, GLenum pname, GLfixed *params)) \ + X (void , glGetLightxOES, (GLenum light, GLenum pname, GLfixed *params)) \ + X (void , glGetMapxvOES, (GLenum target, GLenum query, GLfixed *v)) \ + X (void , glGetMaterialxOES, (GLenum face, GLenum pname, GLfixed param)) \ + X (void , glGetPixelMapxv, (GLenum map, GLint size, GLfixed *values)) \ + X (void , glGetTexGenxvOES, (GLenum coord, GLenum pname, GLfixed *params)) \ + X (void , glGetTexLevelParameterxvOES, (GLenum target, GLint level, GLenum pname, GLfixed *params)) \ + X (void , glIndexxOES, (GLfixed component)) \ + X (void , glIndexxvOES, (const GLfixed *component)) \ + X (void , glLoadTransposeMatrixxOES, (const GLfixed *m)) \ + X (void , glMap1xOES, (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points)) \ + X (void , glMap2xOES, (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points)) \ + X (void , glMapGrid1xOES, (GLint n, GLfixed u1, GLfixed u2)) \ + X (void , glMapGrid2xOES, (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2)) \ + X (void , glMultTransposeMatrixxOES, (const GLfixed *m)) \ + X (void , glMultiTexCoord1xOES, (GLenum texture, GLfixed s)) \ + X (void , glMultiTexCoord1xvOES, (GLenum texture, const GLfixed *coords)) \ + X (void , glMultiTexCoord2xOES, (GLenum texture, GLfixed s, GLfixed t)) \ + X (void , glMultiTexCoord2xvOES, (GLenum texture, const GLfixed *coords)) \ + X (void , glMultiTexCoord3xOES, (GLenum texture, GLfixed s, GLfixed t, GLfixed r)) \ + X (void , glMultiTexCoord3xvOES, (GLenum texture, const GLfixed *coords)) \ + X (void , glMultiTexCoord4xvOES, (GLenum texture, const GLfixed *coords)) \ + X (void , glNormal3xvOES, (const GLfixed *coords)) \ + X (void , glPassThroughxOES, (GLfixed token)) \ + X (void , glPixelMapx, (GLenum map, GLint size, const GLfixed *values)) \ + X (void , glPixelStorex, (GLenum pname, GLfixed param)) \ + X (void , glPixelTransferxOES, (GLenum pname, GLfixed param)) \ + X (void , glPixelZoomxOES, (GLfixed xfactor, GLfixed yfactor)) \ + X (void , glPrioritizeTexturesxOES, (GLsizei n, const GLuint *textures, const GLfixed *priorities)) \ + X (void , glRasterPos2xOES, (GLfixed x, GLfixed y)) \ + X (void , glRasterPos2xvOES, (const GLfixed *coords)) \ + X (void , glRasterPos3xOES, (GLfixed x, GLfixed y, GLfixed z)) \ + X (void , glRasterPos3xvOES, (const GLfixed *coords)) \ + X (void , glRasterPos4xOES, (GLfixed x, GLfixed y, GLfixed z, GLfixed w)) \ + X (void , glRasterPos4xvOES, (const GLfixed *coords)) \ + X (void , glRectxOES, (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2)) \ + X (void , glRectxvOES, (const GLfixed *v1, const GLfixed *v2)) \ + X (void , glTexCoord1xOES, (GLfixed s)) \ + X (void , glTexCoord1xvOES, (const GLfixed *coords)) \ + X (void , glTexCoord2xOES, (GLfixed s, GLfixed t)) \ + X (void , glTexCoord2xvOES, (const GLfixed *coords)) \ + X (void , glTexCoord3xOES, (GLfixed s, GLfixed t, GLfixed r)) \ + X (void , glTexCoord3xvOES, (const GLfixed *coords)) \ + X (void , glTexCoord4xOES, (GLfixed s, GLfixed t, GLfixed r, GLfixed q)) \ + X (void , glTexCoord4xvOES, (const GLfixed *coords)) \ + X (void , glTexGenxOES, (GLenum coord, GLenum pname, GLfixed param)) \ + X (void , glTexGenxvOES, (GLenum coord, GLenum pname, const GLfixed *params)) \ + X (void , glVertex2xOES, (GLfixed x)) \ + X (void , glVertex2xvOES, (const GLfixed *coords)) \ + X (void , glVertex3xOES, (GLfixed x, GLfixed y)) \ + X (void , glVertex3xvOES, (const GLfixed *coords)) \ + X (void , glVertex4xOES, (GLfixed x, GLfixed y, GLfixed z)) \ + X (void , glVertex4xvOES, (const GLfixed *coords)) + +#define JUCE_GL_FUNCTIONS_GL_OES_query_matrix \ + X (GLbitfield , glQueryMatrixxOES, (GLfixed *mantissa, GLint *exponent)) + +#define JUCE_GL_FUNCTIONS_GL_OES_single_precision \ + X (void , glClearDepthfOES, (GLclampf depth)) \ + X (void , glClipPlanefOES, (GLenum plane, const GLfloat *equation)) \ + X (void , glDepthRangefOES, (GLclampf n, GLclampf f)) \ + X (void , glFrustumfOES, (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)) \ + X (void , glGetClipPlanefOES, (GLenum plane, GLfloat *equation)) \ + X (void , glOrthofOES, (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)) + +#define JUCE_GL_FUNCTIONS_GL_OVR_multiview \ + X (void , glFramebufferTextureMultiviewOVR, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)) + +#define JUCE_GL_FUNCTIONS_GL_PGI_misc_hints \ + X (void , glHintPGI, (GLenum target, GLint mode)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_detail_texture \ + X (void , glDetailTexFuncSGIS, (GLenum target, GLsizei n, const GLfloat *points)) \ + X (void , glGetDetailTexFuncSGIS, (GLenum target, GLfloat *points)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_fog_function \ + X (void , glFogFuncSGIS, (GLsizei n, const GLfloat *points)) \ + X (void , glGetFogFuncSGIS, (GLfloat *points)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_multisample \ + X (void , glSampleMaskSGIS, (GLclampf value, GLboolean invert)) \ + X (void , glSamplePatternSGIS, (GLenum pattern)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_pixel_texture \ + X (void , glPixelTexGenParameteriSGIS, (GLenum pname, GLint param)) \ + X (void , glPixelTexGenParameterivSGIS, (GLenum pname, const GLint *params)) \ + X (void , glPixelTexGenParameterfSGIS, (GLenum pname, GLfloat param)) \ + X (void , glPixelTexGenParameterfvSGIS, (GLenum pname, const GLfloat *params)) \ + X (void , glGetPixelTexGenParameterivSGIS, (GLenum pname, GLint *params)) \ + X (void , glGetPixelTexGenParameterfvSGIS, (GLenum pname, GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_point_parameters \ + X (void , glPointParameterfSGIS, (GLenum pname, GLfloat param)) \ + X (void , glPointParameterfvSGIS, (GLenum pname, const GLfloat *params)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_sharpen_texture \ + X (void , glSharpenTexFuncSGIS, (GLenum target, GLsizei n, const GLfloat *points)) \ + X (void , glGetSharpenTexFuncSGIS, (GLenum target, GLfloat *points)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_texture4D \ + X (void , glTexImage4DSGIS, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexSubImage4DSGIS, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_texture_color_mask \ + X (void , glTextureColorMaskSGIS, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) + +#define JUCE_GL_FUNCTIONS_GL_SGIS_texture_filter4 \ + X (void , glGetTexFilterFuncSGIS, (GLenum target, GLenum filter, GLfloat *weights)) \ + X (void , glTexFilterFuncSGIS, (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_async \ + X (void , glAsyncMarkerSGIX, (GLuint marker)) \ + X (GLint , glFinishAsyncSGIX, (GLuint *markerp)) \ + X (GLint , glPollAsyncSGIX, (GLuint *markerp)) \ + X (GLuint , glGenAsyncMarkersSGIX, (GLsizei range)) \ + X (void , glDeleteAsyncMarkersSGIX, (GLuint marker, GLsizei range)) \ + X (GLboolean , glIsAsyncMarkerSGIX, (GLuint marker)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_flush_raster \ + X (void , glFlushRasterSGIX, ()) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_fragment_lighting \ + X (void , glFragmentColorMaterialSGIX, (GLenum face, GLenum mode)) \ + X (void , glFragmentLightfSGIX, (GLenum light, GLenum pname, GLfloat param)) \ + X (void , glFragmentLightfvSGIX, (GLenum light, GLenum pname, const GLfloat *params)) \ + X (void , glFragmentLightiSGIX, (GLenum light, GLenum pname, GLint param)) \ + X (void , glFragmentLightivSGIX, (GLenum light, GLenum pname, const GLint *params)) \ + X (void , glFragmentLightModelfSGIX, (GLenum pname, GLfloat param)) \ + X (void , glFragmentLightModelfvSGIX, (GLenum pname, const GLfloat *params)) \ + X (void , glFragmentLightModeliSGIX, (GLenum pname, GLint param)) \ + X (void , glFragmentLightModelivSGIX, (GLenum pname, const GLint *params)) \ + X (void , glFragmentMaterialfSGIX, (GLenum face, GLenum pname, GLfloat param)) \ + X (void , glFragmentMaterialfvSGIX, (GLenum face, GLenum pname, const GLfloat *params)) \ + X (void , glFragmentMaterialiSGIX, (GLenum face, GLenum pname, GLint param)) \ + X (void , glFragmentMaterialivSGIX, (GLenum face, GLenum pname, const GLint *params)) \ + X (void , glGetFragmentLightfvSGIX, (GLenum light, GLenum pname, GLfloat *params)) \ + X (void , glGetFragmentLightivSGIX, (GLenum light, GLenum pname, GLint *params)) \ + X (void , glGetFragmentMaterialfvSGIX, (GLenum face, GLenum pname, GLfloat *params)) \ + X (void , glGetFragmentMaterialivSGIX, (GLenum face, GLenum pname, GLint *params)) \ + X (void , glLightEnviSGIX, (GLenum pname, GLint param)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_framezoom \ + X (void , glFrameZoomSGIX, (GLint factor)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_igloo_interface \ + X (void , glIglooInterfaceSGIX, (GLenum pname, const void *params)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_instruments \ + X (GLint , glGetInstrumentsSGIX, ()) \ + X (void , glInstrumentsBufferSGIX, (GLsizei size, GLint *buffer)) \ + X (GLint , glPollInstrumentsSGIX, (GLint *marker_p)) \ + X (void , glReadInstrumentsSGIX, (GLint marker)) \ + X (void , glStartInstrumentsSGIX, ()) \ + X (void , glStopInstrumentsSGIX, (GLint marker)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_list_priority \ + X (void , glGetListParameterfvSGIX, (GLuint list, GLenum pname, GLfloat *params)) \ + X (void , glGetListParameterivSGIX, (GLuint list, GLenum pname, GLint *params)) \ + X (void , glListParameterfSGIX, (GLuint list, GLenum pname, GLfloat param)) \ + X (void , glListParameterfvSGIX, (GLuint list, GLenum pname, const GLfloat *params)) \ + X (void , glListParameteriSGIX, (GLuint list, GLenum pname, GLint param)) \ + X (void , glListParameterivSGIX, (GLuint list, GLenum pname, const GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_pixel_texture \ + X (void , glPixelTexGenSGIX, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_polynomial_ffd \ + X (void , glDeformationMap3dSGIX, (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points)) \ + X (void , glDeformationMap3fSGIX, (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points)) \ + X (void , glDeformSGIX, (GLbitfield mask)) \ + X (void , glLoadIdentityDeformationMapSGIX, (GLbitfield mask)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_reference_plane \ + X (void , glReferencePlaneSGIX, (const GLdouble *equation)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_sprite \ + X (void , glSpriteParameterfSGIX, (GLenum pname, GLfloat param)) \ + X (void , glSpriteParameterfvSGIX, (GLenum pname, const GLfloat *params)) \ + X (void , glSpriteParameteriSGIX, (GLenum pname, GLint param)) \ + X (void , glSpriteParameterivSGIX, (GLenum pname, const GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_SGIX_tag_sample_buffer \ + X (void , glTagSampleBufferSGIX, ()) + +#define JUCE_GL_FUNCTIONS_GL_SGI_color_table \ + X (void , glColorTableSGI, (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table)) \ + X (void , glColorTableParameterfvSGI, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glColorTableParameterivSGI, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glCopyColorTableSGI, (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)) \ + X (void , glGetColorTableSGI, (GLenum target, GLenum format, GLenum type, void *table)) \ + X (void , glGetColorTableParameterfvSGI, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetColorTableParameterivSGI, (GLenum target, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_SUNX_constant_data \ + X (void , glFinishTextureSUNX, ()) + +#define JUCE_GL_FUNCTIONS_GL_SUN_global_alpha \ + X (void , glGlobalAlphaFactorbSUN, (GLbyte factor)) \ + X (void , glGlobalAlphaFactorsSUN, (GLshort factor)) \ + X (void , glGlobalAlphaFactoriSUN, (GLint factor)) \ + X (void , glGlobalAlphaFactorfSUN, (GLfloat factor)) \ + X (void , glGlobalAlphaFactordSUN, (GLdouble factor)) \ + X (void , glGlobalAlphaFactorubSUN, (GLubyte factor)) \ + X (void , glGlobalAlphaFactorusSUN, (GLushort factor)) \ + X (void , glGlobalAlphaFactoruiSUN, (GLuint factor)) + +#define JUCE_GL_FUNCTIONS_GL_SUN_mesh_array \ + X (void , glDrawMeshArraysSUN, (GLenum mode, GLint first, GLsizei count, GLsizei width)) + +#define JUCE_GL_FUNCTIONS_GL_SUN_triangle_list \ + X (void , glReplacementCodeuiSUN, (GLuint code)) \ + X (void , glReplacementCodeusSUN, (GLushort code)) \ + X (void , glReplacementCodeubSUN, (GLubyte code)) \ + X (void , glReplacementCodeuivSUN, (const GLuint *code)) \ + X (void , glReplacementCodeusvSUN, (const GLushort *code)) \ + X (void , glReplacementCodeubvSUN, (const GLubyte *code)) \ + X (void , glReplacementCodePointerSUN, (GLenum type, GLsizei stride, const void **pointer)) + +#define JUCE_GL_FUNCTIONS_GL_SUN_vertex \ + X (void , glColor4ubVertex2fSUN, (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y)) \ + X (void , glColor4ubVertex2fvSUN, (const GLubyte *c, const GLfloat *v)) \ + X (void , glColor4ubVertex3fSUN, (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glColor4ubVertex3fvSUN, (const GLubyte *c, const GLfloat *v)) \ + X (void , glColor3fVertex3fSUN, (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glColor3fVertex3fvSUN, (const GLfloat *c, const GLfloat *v)) \ + X (void , glNormal3fVertex3fSUN, (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glNormal3fVertex3fvSUN, (const GLfloat *n, const GLfloat *v)) \ + X (void , glColor4fNormal3fVertex3fSUN, (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glColor4fNormal3fVertex3fvSUN, (const GLfloat *c, const GLfloat *n, const GLfloat *v)) \ + X (void , glTexCoord2fVertex3fSUN, (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glTexCoord2fVertex3fvSUN, (const GLfloat *tc, const GLfloat *v)) \ + X (void , glTexCoord4fVertex4fSUN, (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glTexCoord4fVertex4fvSUN, (const GLfloat *tc, const GLfloat *v)) \ + X (void , glTexCoord2fColor4ubVertex3fSUN, (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glTexCoord2fColor4ubVertex3fvSUN, (const GLfloat *tc, const GLubyte *c, const GLfloat *v)) \ + X (void , glTexCoord2fColor3fVertex3fSUN, (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glTexCoord2fColor3fVertex3fvSUN, (const GLfloat *tc, const GLfloat *c, const GLfloat *v)) \ + X (void , glTexCoord2fNormal3fVertex3fSUN, (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glTexCoord2fNormal3fVertex3fvSUN, (const GLfloat *tc, const GLfloat *n, const GLfloat *v)) \ + X (void , glTexCoord2fColor4fNormal3fVertex3fSUN, (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glTexCoord2fColor4fNormal3fVertex3fvSUN, (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v)) \ + X (void , glTexCoord4fColor4fNormal3fVertex4fSUN, (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glTexCoord4fColor4fNormal3fVertex4fvSUN, (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v)) \ + X (void , glReplacementCodeuiVertex3fSUN, (GLuint rc, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiVertex3fvSUN, (const GLuint *rc, const GLfloat *v)) \ + X (void , glReplacementCodeuiColor4ubVertex3fSUN, (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiColor4ubVertex3fvSUN, (const GLuint *rc, const GLubyte *c, const GLfloat *v)) \ + X (void , glReplacementCodeuiColor3fVertex3fSUN, (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiColor3fVertex3fvSUN, (const GLuint *rc, const GLfloat *c, const GLfloat *v)) \ + X (void , glReplacementCodeuiNormal3fVertex3fSUN, (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiNormal3fVertex3fvSUN, (const GLuint *rc, const GLfloat *n, const GLfloat *v)) \ + X (void , glReplacementCodeuiColor4fNormal3fVertex3fSUN, (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiColor4fNormal3fVertex3fvSUN, (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v)) \ + X (void , glReplacementCodeuiTexCoord2fVertex3fSUN, (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiTexCoord2fVertex3fvSUN, (const GLuint *rc, const GLfloat *tc, const GLfloat *v)) \ + X (void , glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v)) \ + X (void , glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v)) + + +#if JUCE_STATIC_LINK_GL_VERSION_1_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_0_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_1_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_0_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_0_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_1_0 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_1_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_1_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_1_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_1_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_1_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_1_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_1_1 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_1_2 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_2_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_1_2 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_2_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_2_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_2_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_1_2 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_1_3 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_3_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_1_3 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_3_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_3_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_3_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_1_3 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_1_4 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_4_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_1_4 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_4_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_4_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_4_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_1_4 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_1_5 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_5_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_1_5 + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_5_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_5_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_1_5_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_1_5 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_2_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_0_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_2_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_0_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_0_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_2_0 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_2_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_1_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_2_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_1_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_1_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_2_1_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_2_1 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_3_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_0_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_3_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_0_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_0_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_3_0 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_3_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_1_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_3_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_1_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_1_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_1_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_3_1 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_3_2 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_2_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_3_2 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_2_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_2_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_2_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_3_2 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_3_3 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_3_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_3_3 + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_3_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_3_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_3_3_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_3_3 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_4_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_0_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_4_0 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_0_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_0_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_4_0 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_4_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_1_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_4_1 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_1_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_1_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_1_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_4_1 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_4_2 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_2_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_4_2 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_2_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_2_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_2_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_4_2 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_4_3 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_3_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_4_3 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_3_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_3_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_3_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_4_3 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_4_4 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_4_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_4_4 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_4_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_4_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_4_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_4_4 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_4_5 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_5_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_4_5 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_5_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_5_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_5_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_4_5 +#endif + +#if JUCE_STATIC_LINK_GL_VERSION_4_6 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_6_STATIC JUCE_GL_FUNCTIONS_GL_VERSION_4_6 + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_6_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_6_STATIC + #define JUCE_GL_FUNCTIONS_GL_VERSION_4_6_DYNAMIC JUCE_GL_FUNCTIONS_GL_VERSION_4_6 +#endif + + +#define JUCE_STATIC_GL_FUNCTIONS \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_0_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_1_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_2_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_3_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_4_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_5_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_2_0_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_2_1_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_0_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_1_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_2_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_3_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_0_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_1_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_2_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_3_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_4_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_5_STATIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_6_STATIC + +#define JUCE_DYNAMIC_GL_FUNCTIONS \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_0_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_1_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_2_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_3_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_4_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_1_5_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_2_0_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_2_1_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_0_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_1_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_2_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_3_3_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_0_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_1_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_2_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_3_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_4_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_5_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_VERSION_4_6_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_3DFX_tbuffer \ + JUCE_GL_FUNCTIONS_GL_AMD_debug_output \ + JUCE_GL_FUNCTIONS_GL_AMD_draw_buffers_blend \ + JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \ + JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_sample_positions \ + JUCE_GL_FUNCTIONS_GL_AMD_gpu_shader_int64 \ + JUCE_GL_FUNCTIONS_GL_AMD_interleaved_elements \ + JUCE_GL_FUNCTIONS_GL_AMD_multi_draw_indirect \ + JUCE_GL_FUNCTIONS_GL_AMD_name_gen_delete \ + JUCE_GL_FUNCTIONS_GL_AMD_occlusion_query_event \ + JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \ + JUCE_GL_FUNCTIONS_GL_AMD_sample_positions \ + JUCE_GL_FUNCTIONS_GL_AMD_sparse_texture \ + JUCE_GL_FUNCTIONS_GL_AMD_stencil_operation_extended \ + JUCE_GL_FUNCTIONS_GL_AMD_vertex_shader_tessellator \ + JUCE_GL_FUNCTIONS_GL_APPLE_element_array \ + JUCE_GL_FUNCTIONS_GL_APPLE_fence \ + JUCE_GL_FUNCTIONS_GL_APPLE_flush_buffer_range \ + JUCE_GL_FUNCTIONS_GL_APPLE_object_purgeable \ + JUCE_GL_FUNCTIONS_GL_APPLE_texture_range \ + JUCE_GL_FUNCTIONS_GL_APPLE_vertex_array_object \ + JUCE_GL_FUNCTIONS_GL_APPLE_vertex_array_range \ + JUCE_GL_FUNCTIONS_GL_APPLE_vertex_program_evaluators \ + JUCE_GL_FUNCTIONS_GL_ARB_ES3_2_compatibility \ + JUCE_GL_FUNCTIONS_GL_ARB_bindless_texture \ + JUCE_GL_FUNCTIONS_GL_ARB_cl_event \ + JUCE_GL_FUNCTIONS_GL_ARB_color_buffer_float \ + JUCE_GL_FUNCTIONS_GL_ARB_compute_variable_group_size \ + JUCE_GL_FUNCTIONS_GL_ARB_debug_output \ + JUCE_GL_FUNCTIONS_GL_ARB_draw_buffers \ + JUCE_GL_FUNCTIONS_GL_ARB_draw_buffers_blend \ + JUCE_GL_FUNCTIONS_GL_ARB_draw_instanced \ + JUCE_GL_FUNCTIONS_GL_ARB_fragment_program \ + JUCE_GL_FUNCTIONS_GL_ARB_geometry_shader4 \ + JUCE_GL_FUNCTIONS_GL_ARB_gl_spirv \ + JUCE_GL_FUNCTIONS_GL_ARB_gpu_shader_int64 \ + JUCE_GL_FUNCTIONS_GL_ARB_imaging \ + JUCE_GL_FUNCTIONS_GL_ARB_indirect_parameters \ + JUCE_GL_FUNCTIONS_GL_ARB_instanced_arrays \ + JUCE_GL_FUNCTIONS_GL_ARB_matrix_palette \ + JUCE_GL_FUNCTIONS_GL_ARB_multisample \ + JUCE_GL_FUNCTIONS_GL_ARB_multitexture \ + JUCE_GL_FUNCTIONS_GL_ARB_occlusion_query \ + JUCE_GL_FUNCTIONS_GL_ARB_parallel_shader_compile \ + JUCE_GL_FUNCTIONS_GL_ARB_point_parameters \ + JUCE_GL_FUNCTIONS_GL_ARB_robustness \ + JUCE_GL_FUNCTIONS_GL_ARB_sample_locations \ + JUCE_GL_FUNCTIONS_GL_ARB_sample_shading \ + JUCE_GL_FUNCTIONS_GL_ARB_shader_objects \ + JUCE_GL_FUNCTIONS_GL_ARB_shading_language_include \ + JUCE_GL_FUNCTIONS_GL_ARB_sparse_buffer \ + JUCE_GL_FUNCTIONS_GL_ARB_sparse_texture \ + JUCE_GL_FUNCTIONS_GL_ARB_texture_buffer_object \ + JUCE_GL_FUNCTIONS_GL_ARB_texture_compression \ + JUCE_GL_FUNCTIONS_GL_ARB_transpose_matrix \ + JUCE_GL_FUNCTIONS_GL_ARB_vertex_blend \ + JUCE_GL_FUNCTIONS_GL_ARB_vertex_buffer_object \ + JUCE_GL_FUNCTIONS_GL_ARB_vertex_program \ + JUCE_GL_FUNCTIONS_GL_ARB_vertex_shader \ + JUCE_GL_FUNCTIONS_GL_ARB_viewport_array \ + JUCE_GL_FUNCTIONS_GL_ARB_window_pos \ + JUCE_GL_FUNCTIONS_GL_ATI_draw_buffers \ + JUCE_GL_FUNCTIONS_GL_ATI_element_array \ + JUCE_GL_FUNCTIONS_GL_ATI_envmap_bumpmap \ + JUCE_GL_FUNCTIONS_GL_ATI_fragment_shader \ + JUCE_GL_FUNCTIONS_GL_ATI_map_object_buffer \ + JUCE_GL_FUNCTIONS_GL_ATI_pn_triangles \ + JUCE_GL_FUNCTIONS_GL_ATI_separate_stencil \ + JUCE_GL_FUNCTIONS_GL_ATI_vertex_array_object \ + JUCE_GL_FUNCTIONS_GL_ATI_vertex_attrib_array_object \ + JUCE_GL_FUNCTIONS_GL_ATI_vertex_streams \ + JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \ + JUCE_GL_FUNCTIONS_GL_EXT_bindable_uniform \ + JUCE_GL_FUNCTIONS_GL_EXT_blend_color \ + JUCE_GL_FUNCTIONS_GL_EXT_blend_equation_separate \ + JUCE_GL_FUNCTIONS_GL_EXT_blend_func_separate \ + JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \ + JUCE_GL_FUNCTIONS_GL_EXT_color_subtable \ + JUCE_GL_FUNCTIONS_GL_EXT_compiled_vertex_array \ + JUCE_GL_FUNCTIONS_GL_EXT_convolution \ + JUCE_GL_FUNCTIONS_GL_EXT_coordinate_frame \ + JUCE_GL_FUNCTIONS_GL_EXT_copy_texture \ + JUCE_GL_FUNCTIONS_GL_EXT_cull_vertex \ + JUCE_GL_FUNCTIONS_GL_EXT_debug_label \ + JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \ + JUCE_GL_FUNCTIONS_GL_EXT_depth_bounds_test \ + JUCE_GL_FUNCTIONS_GL_EXT_direct_state_access \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers2 \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_range_elements \ + JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \ + JUCE_GL_FUNCTIONS_GL_EXT_fog_coord \ + JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit \ + JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_multisample \ + JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_object \ + JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader4 \ + JUCE_GL_FUNCTIONS_GL_EXT_gpu_program_parameters \ + JUCE_GL_FUNCTIONS_GL_EXT_gpu_shader4 \ + JUCE_GL_FUNCTIONS_GL_EXT_histogram \ + JUCE_GL_FUNCTIONS_GL_EXT_index_func \ + JUCE_GL_FUNCTIONS_GL_EXT_index_material \ + JUCE_GL_FUNCTIONS_GL_EXT_light_texture \ + JUCE_GL_FUNCTIONS_GL_EXT_memory_object \ + JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \ + JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \ + JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \ + JUCE_GL_FUNCTIONS_GL_EXT_multisample \ + JUCE_GL_FUNCTIONS_GL_EXT_paletted_texture \ + JUCE_GL_FUNCTIONS_GL_EXT_pixel_transform \ + JUCE_GL_FUNCTIONS_GL_EXT_point_parameters \ + JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset \ + JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \ + JUCE_GL_FUNCTIONS_GL_EXT_provoking_vertex \ + JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \ + JUCE_GL_FUNCTIONS_GL_EXT_semaphore \ + JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \ + JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \ + JUCE_GL_FUNCTIONS_GL_EXT_secondary_color \ + JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \ + JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \ + JUCE_GL_FUNCTIONS_GL_EXT_shader_image_load_store \ + JUCE_GL_FUNCTIONS_GL_EXT_stencil_clear_tag \ + JUCE_GL_FUNCTIONS_GL_EXT_stencil_two_side \ + JUCE_GL_FUNCTIONS_GL_EXT_subtexture \ + JUCE_GL_FUNCTIONS_GL_EXT_texture3D \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_array \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer_object \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_integer \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_object \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_perturb_normal \ + JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \ + JUCE_GL_FUNCTIONS_GL_EXT_timer_query \ + JUCE_GL_FUNCTIONS_GL_EXT_transform_feedback \ + JUCE_GL_FUNCTIONS_GL_EXT_vertex_array \ + JUCE_GL_FUNCTIONS_GL_EXT_vertex_attrib_64bit \ + JUCE_GL_FUNCTIONS_GL_EXT_vertex_shader \ + JUCE_GL_FUNCTIONS_GL_EXT_vertex_weighting \ + JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \ + JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \ + JUCE_GL_FUNCTIONS_GL_EXT_x11_sync_object \ + JUCE_GL_FUNCTIONS_GL_GREMEDY_frame_terminator \ + JUCE_GL_FUNCTIONS_GL_GREMEDY_string_marker \ + JUCE_GL_FUNCTIONS_GL_HP_image_transform \ + JUCE_GL_FUNCTIONS_GL_IBM_multimode_draw_arrays \ + JUCE_GL_FUNCTIONS_GL_IBM_static_data \ + JUCE_GL_FUNCTIONS_GL_IBM_vertex_array_lists \ + JUCE_GL_FUNCTIONS_GL_INGR_blend_func_separate \ + JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \ + JUCE_GL_FUNCTIONS_GL_INTEL_map_texture \ + JUCE_GL_FUNCTIONS_GL_INTEL_parallel_arrays \ + JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \ + JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \ + JUCE_GL_FUNCTIONS_GL_KHR_debug \ + JUCE_GL_FUNCTIONS_GL_KHR_robustness \ + JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \ + JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \ + JUCE_GL_FUNCTIONS_GL_MESA_resize_buffers \ + JUCE_GL_FUNCTIONS_GL_MESA_window_pos \ + JUCE_GL_FUNCTIONS_GL_NVX_conditional_render \ + JUCE_GL_FUNCTIONS_GL_NVX_linked_gpu_multicast \ + JUCE_GL_FUNCTIONS_GL_NV_alpha_to_coverage_dither_control \ + JUCE_GL_FUNCTIONS_GL_NV_bindless_multi_draw_indirect \ + JUCE_GL_FUNCTIONS_GL_NV_bindless_multi_draw_indirect_count \ + JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \ + JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \ + JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \ + JUCE_GL_FUNCTIONS_GL_NV_command_list \ + JUCE_GL_FUNCTIONS_GL_NV_conditional_render \ + JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \ + JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_dilate \ + JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \ + JUCE_GL_FUNCTIONS_GL_NV_copy_image \ + JUCE_GL_FUNCTIONS_GL_NV_depth_buffer_float \ + JUCE_GL_FUNCTIONS_GL_NV_draw_texture \ + JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \ + JUCE_GL_FUNCTIONS_GL_NV_evaluators \ + JUCE_GL_FUNCTIONS_GL_NV_explicit_multisample \ + JUCE_GL_FUNCTIONS_GL_NV_fence \ + JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \ + JUCE_GL_FUNCTIONS_GL_NV_fragment_program \ + JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \ + JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample_coverage \ + JUCE_GL_FUNCTIONS_GL_NV_geometry_program4 \ + JUCE_GL_FUNCTIONS_GL_NV_gpu_program4 \ + JUCE_GL_FUNCTIONS_GL_NV_gpu_program5 \ + JUCE_GL_FUNCTIONS_GL_NV_half_float \ + JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \ + JUCE_GL_FUNCTIONS_GL_NV_gpu_multicast \ + JUCE_GL_FUNCTIONS_GL_NVX_gpu_multicast2 \ + JUCE_GL_FUNCTIONS_GL_NVX_progress_fence \ + JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \ + JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \ + JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \ + JUCE_GL_FUNCTIONS_GL_NV_occlusion_query \ + JUCE_GL_FUNCTIONS_GL_NV_parameter_buffer_object \ + JUCE_GL_FUNCTIONS_GL_NV_path_rendering \ + JUCE_GL_FUNCTIONS_GL_NV_pixel_data_range \ + JUCE_GL_FUNCTIONS_GL_NV_point_sprite \ + JUCE_GL_FUNCTIONS_GL_NV_present_video \ + JUCE_GL_FUNCTIONS_GL_NV_primitive_restart \ + JUCE_GL_FUNCTIONS_GL_NV_query_resource \ + JUCE_GL_FUNCTIONS_GL_NV_query_resource_tag \ + JUCE_GL_FUNCTIONS_GL_NV_register_combiners \ + JUCE_GL_FUNCTIONS_GL_NV_register_combiners2 \ + JUCE_GL_FUNCTIONS_GL_NV_sample_locations \ + JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \ + JUCE_GL_FUNCTIONS_GL_NV_shader_buffer_load \ + JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \ + JUCE_GL_FUNCTIONS_GL_NV_texture_barrier \ + JUCE_GL_FUNCTIONS_GL_NV_texture_multisample \ + JUCE_GL_FUNCTIONS_GL_NV_transform_feedback \ + JUCE_GL_FUNCTIONS_GL_NV_transform_feedback2 \ + JUCE_GL_FUNCTIONS_GL_NV_vdpau_interop \ + JUCE_GL_FUNCTIONS_GL_NV_vdpau_interop2 \ + JUCE_GL_FUNCTIONS_GL_NV_vertex_array_range \ + JUCE_GL_FUNCTIONS_GL_NV_vertex_attrib_integer_64bit \ + JUCE_GL_FUNCTIONS_GL_NV_vertex_buffer_unified_memory \ + JUCE_GL_FUNCTIONS_GL_NV_vertex_program \ + JUCE_GL_FUNCTIONS_GL_NV_video_capture \ + JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \ + JUCE_GL_FUNCTIONS_GL_OES_byte_coordinates \ + JUCE_GL_FUNCTIONS_GL_OES_fixed_point \ + JUCE_GL_FUNCTIONS_GL_OES_query_matrix \ + JUCE_GL_FUNCTIONS_GL_OES_single_precision \ + JUCE_GL_FUNCTIONS_GL_OVR_multiview \ + JUCE_GL_FUNCTIONS_GL_PGI_misc_hints \ + JUCE_GL_FUNCTIONS_GL_SGIS_detail_texture \ + JUCE_GL_FUNCTIONS_GL_SGIS_fog_function \ + JUCE_GL_FUNCTIONS_GL_SGIS_multisample \ + JUCE_GL_FUNCTIONS_GL_SGIS_pixel_texture \ + JUCE_GL_FUNCTIONS_GL_SGIS_point_parameters \ + JUCE_GL_FUNCTIONS_GL_SGIS_sharpen_texture \ + JUCE_GL_FUNCTIONS_GL_SGIS_texture4D \ + JUCE_GL_FUNCTIONS_GL_SGIS_texture_color_mask \ + JUCE_GL_FUNCTIONS_GL_SGIS_texture_filter4 \ + JUCE_GL_FUNCTIONS_GL_SGIX_async \ + JUCE_GL_FUNCTIONS_GL_SGIX_flush_raster \ + JUCE_GL_FUNCTIONS_GL_SGIX_fragment_lighting \ + JUCE_GL_FUNCTIONS_GL_SGIX_framezoom \ + JUCE_GL_FUNCTIONS_GL_SGIX_igloo_interface \ + JUCE_GL_FUNCTIONS_GL_SGIX_instruments \ + JUCE_GL_FUNCTIONS_GL_SGIX_list_priority \ + JUCE_GL_FUNCTIONS_GL_SGIX_pixel_texture \ + JUCE_GL_FUNCTIONS_GL_SGIX_polynomial_ffd \ + JUCE_GL_FUNCTIONS_GL_SGIX_reference_plane \ + JUCE_GL_FUNCTIONS_GL_SGIX_sprite \ + JUCE_GL_FUNCTIONS_GL_SGIX_tag_sample_buffer \ + JUCE_GL_FUNCTIONS_GL_SGI_color_table \ + JUCE_GL_FUNCTIONS_GL_SUNX_constant_data \ + JUCE_GL_FUNCTIONS_GL_SUN_global_alpha \ + JUCE_GL_FUNCTIONS_GL_SUN_mesh_array \ + JUCE_GL_FUNCTIONS_GL_SUN_triangle_list \ + JUCE_GL_FUNCTIONS_GL_SUN_vertex + +#define X(returns, name, params) \ + extern "C" KHRONOS_APICALL returns KHRONOS_APIENTRY name params; \ + returns (* const& ::juce::gl::name) params = ::name; +JUCE_STATIC_GL_FUNCTIONS +#undef X + +#define X(returns, name, params) \ + static returns (* juce_ ## name) params = nullptr; \ + returns (* const& ::juce::gl::name) params = juce_ ## name; +JUCE_DYNAMIC_GL_FUNCTIONS +#undef X + +void juce::gl::loadFunctions() +{ + #define X(returns, name, params) \ + juce_ ## name = reinterpret_cast (::juce::OpenGLHelpers::getExtensionFunction (#name)); + JUCE_DYNAMIC_GL_FUNCTIONS + #undef X +} + +#undef JUCE_STATIC_GL_FUNCTIONS +#undef JUCE_DYNAMIC_GL_FUNCTIONS diff --git a/modules/juce_opengl/opengl/juce_gl.h b/modules/juce_opengl/opengl/juce_gl.h new file mode 100644 index 0000000000..558230fe20 --- /dev/null +++ b/modules/juce_opengl/opengl/juce_gl.h @@ -0,0 +1,11981 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2020 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 6 End-User License + Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). + + End User License Agreement: www.juce.com/juce-6-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +// This file was generated automatically using data from the opengl-registry +// https://github.com/KhronosGroup/OpenGL-Registry + +#pragma once + +// IMPORTANT! Include this before any platform gl files. + +// The portion of this file between the line reading BEGIN_GLEW_LICENSE +// and the line reading END_GLEW_LICENSE is taken from the GLEW library. +// We thank the maintainers of GLEW for sharing their code under a permissive +// license. +// The original license of this portion of the file is as follows: + +// BEGIN_GLEW_LICENSE + +/* + The OpenGL Extension Wrangler Library + Copyright (C) 2002-2007, Milan Ikits + Copyright (C) 2002-2007, Marcelo E. Magallon + Copyright (C) 2002, Lev Povalahev + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * The name of the author may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + Mesa 3-D graphics library + Version: 7.0 + + Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + Copyright (c) 2007 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and/or associated documentation files (the + "Materials"), to deal in the Materials without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Materials, and to + permit persons to whom the Materials are furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Materials. + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#if defined (__gl_h_) || defined (__GL_H__) || defined (_GL_H) || defined (__gl_gl_h_) || defined (__X_GL_H) +#error gl.h included before juce_gl.h +#endif +#if defined (__gl2_h_) +#error gl2.h included before juce_gl.h +#endif +#if defined (__gltypes_h_) +#error gltypes.h included before juce_gl.h +#endif +#if defined (__REGAL_H__) +#error Regal.h included before juce_gl.h +#endif +#if defined (__glext_h_) || defined (__GLEXT_H_) || defined (__gl_glext_h_) +#error glext.h included before juce_gl.h +#endif +#if defined (__gl_ATI_h_) +#error glATI.h included before juce_gl.h +#endif + +#define __gl_h_ +#define __gl2_h_ +#define __GL_H__ +#define _GL_H +#define __gl_gl_h_ +#define __gltypes_h_ +#define __REGAL_H__ +#define __X_GL_H +#define __glext_h_ +#define __GLEXT_H_ +#define __gl_glext_h_ +#define __gl_ATI_h_ + +// END_GLEW_LICENSE + +#include "juce_khrplatform.h" +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef khronos_int8_t GLbyte; +typedef khronos_uint8_t GLubyte; +typedef khronos_int16_t GLshort; +typedef khronos_uint16_t GLushort; +typedef int GLint; +typedef unsigned int GLuint; +typedef khronos_int32_t GLclampx; +typedef int GLsizei; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void *GLeglClientBufferEXT; +typedef void *GLeglImageOES; +typedef char GLchar; +typedef char GLcharARB; +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef khronos_uint16_t GLhalf; +typedef khronos_uint16_t GLhalfARB; +typedef khronos_int32_t GLfixed; +typedef khronos_intptr_t GLintptr; +typedef khronos_intptr_t GLintptrARB; +typedef khronos_ssize_t GLsizeiptr; +typedef khronos_ssize_t GLsizeiptrARB; +typedef khronos_int64_t GLint64; +typedef khronos_int64_t GLint64EXT; +typedef khronos_uint64_t GLuint64; +typedef khronos_uint64_t GLuint64EXT; +typedef struct __GLsync *GLsync; +struct _cl_context; +struct _cl_event; +typedef void ( *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void ( *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +typedef unsigned short GLhalfNV; +typedef GLintptr GLvdpauSurfaceNV; +typedef void ( *GLVULKANPROCNV)(void); + +namespace juce +{ +namespace gl +{ + +#ifndef GL_VERSION_1_0 +#define GL_VERSION_1_0 1 +enum +{ + GL_DEPTH_BUFFER_BIT = 0x00000100, + GL_STENCIL_BUFFER_BIT = 0x00000400, + GL_COLOR_BUFFER_BIT = 0x00004000, + GL_FALSE = 0, + GL_TRUE = 1, + GL_POINTS = 0x0000, + GL_LINES = 0x0001, + GL_LINE_LOOP = 0x0002, + GL_LINE_STRIP = 0x0003, + GL_TRIANGLES = 0x0004, + GL_TRIANGLE_STRIP = 0x0005, + GL_TRIANGLE_FAN = 0x0006, + GL_QUADS = 0x0007, + GL_NEVER = 0x0200, + GL_LESS = 0x0201, + GL_EQUAL = 0x0202, + GL_LEQUAL = 0x0203, + GL_GREATER = 0x0204, + GL_NOTEQUAL = 0x0205, + GL_GEQUAL = 0x0206, + GL_ALWAYS = 0x0207, + GL_ZERO = 0, + GL_ONE = 1, + GL_SRC_COLOR = 0x0300, + GL_ONE_MINUS_SRC_COLOR = 0x0301, + GL_SRC_ALPHA = 0x0302, + GL_ONE_MINUS_SRC_ALPHA = 0x0303, + GL_DST_ALPHA = 0x0304, + GL_ONE_MINUS_DST_ALPHA = 0x0305, + GL_DST_COLOR = 0x0306, + GL_ONE_MINUS_DST_COLOR = 0x0307, + GL_SRC_ALPHA_SATURATE = 0x0308, + GL_NONE = 0, + GL_FRONT_LEFT = 0x0400, + GL_FRONT_RIGHT = 0x0401, + GL_BACK_LEFT = 0x0402, + GL_BACK_RIGHT = 0x0403, + GL_FRONT = 0x0404, + GL_BACK = 0x0405, + GL_LEFT = 0x0406, + GL_RIGHT = 0x0407, + GL_FRONT_AND_BACK = 0x0408, + GL_NO_ERROR = 0, + GL_INVALID_ENUM = 0x0500, + GL_INVALID_VALUE = 0x0501, + GL_INVALID_OPERATION = 0x0502, + GL_OUT_OF_MEMORY = 0x0505, + GL_CW = 0x0900, + GL_CCW = 0x0901, + GL_POINT_SIZE = 0x0B11, + GL_POINT_SIZE_RANGE = 0x0B12, + GL_POINT_SIZE_GRANULARITY = 0x0B13, + GL_LINE_SMOOTH = 0x0B20, + GL_LINE_WIDTH = 0x0B21, + GL_LINE_WIDTH_RANGE = 0x0B22, + GL_LINE_WIDTH_GRANULARITY = 0x0B23, + GL_POLYGON_MODE = 0x0B40, + GL_POLYGON_SMOOTH = 0x0B41, + GL_CULL_FACE = 0x0B44, + GL_CULL_FACE_MODE = 0x0B45, + GL_FRONT_FACE = 0x0B46, + GL_DEPTH_RANGE = 0x0B70, + GL_DEPTH_TEST = 0x0B71, + GL_DEPTH_WRITEMASK = 0x0B72, + GL_DEPTH_CLEAR_VALUE = 0x0B73, + GL_DEPTH_FUNC = 0x0B74, + GL_STENCIL_TEST = 0x0B90, + GL_STENCIL_CLEAR_VALUE = 0x0B91, + GL_STENCIL_FUNC = 0x0B92, + GL_STENCIL_VALUE_MASK = 0x0B93, + GL_STENCIL_FAIL = 0x0B94, + GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, + GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, + GL_STENCIL_REF = 0x0B97, + GL_STENCIL_WRITEMASK = 0x0B98, + GL_VIEWPORT = 0x0BA2, + GL_DITHER = 0x0BD0, + GL_BLEND_DST = 0x0BE0, + GL_BLEND_SRC = 0x0BE1, + GL_BLEND = 0x0BE2, + GL_LOGIC_OP_MODE = 0x0BF0, + GL_DRAW_BUFFER = 0x0C01, + GL_READ_BUFFER = 0x0C02, + GL_SCISSOR_BOX = 0x0C10, + GL_SCISSOR_TEST = 0x0C11, + GL_COLOR_CLEAR_VALUE = 0x0C22, + GL_COLOR_WRITEMASK = 0x0C23, + GL_DOUBLEBUFFER = 0x0C32, + GL_STEREO = 0x0C33, + GL_LINE_SMOOTH_HINT = 0x0C52, + GL_POLYGON_SMOOTH_HINT = 0x0C53, + GL_UNPACK_SWAP_BYTES = 0x0CF0, + GL_UNPACK_LSB_FIRST = 0x0CF1, + GL_UNPACK_ROW_LENGTH = 0x0CF2, + GL_UNPACK_SKIP_ROWS = 0x0CF3, + GL_UNPACK_SKIP_PIXELS = 0x0CF4, + GL_UNPACK_ALIGNMENT = 0x0CF5, + GL_PACK_SWAP_BYTES = 0x0D00, + GL_PACK_LSB_FIRST = 0x0D01, + GL_PACK_ROW_LENGTH = 0x0D02, + GL_PACK_SKIP_ROWS = 0x0D03, + GL_PACK_SKIP_PIXELS = 0x0D04, + GL_PACK_ALIGNMENT = 0x0D05, + GL_MAX_TEXTURE_SIZE = 0x0D33, + GL_MAX_VIEWPORT_DIMS = 0x0D3A, + GL_SUBPIXEL_BITS = 0x0D50, + GL_TEXTURE_1D = 0x0DE0, + GL_TEXTURE_2D = 0x0DE1, + GL_TEXTURE_WIDTH = 0x1000, + GL_TEXTURE_HEIGHT = 0x1001, + GL_TEXTURE_BORDER_COLOR = 0x1004, + GL_DONT_CARE = 0x1100, + GL_FASTEST = 0x1101, + GL_NICEST = 0x1102, + GL_BYTE = 0x1400, + GL_UNSIGNED_BYTE = 0x1401, + GL_SHORT = 0x1402, + GL_UNSIGNED_SHORT = 0x1403, + GL_INT = 0x1404, + GL_UNSIGNED_INT = 0x1405, + GL_FLOAT = 0x1406, + GL_STACK_OVERFLOW = 0x0503, + GL_STACK_UNDERFLOW = 0x0504, + GL_CLEAR = 0x1500, + GL_AND = 0x1501, + GL_AND_REVERSE = 0x1502, + GL_COPY = 0x1503, + GL_AND_INVERTED = 0x1504, + GL_NOOP = 0x1505, + GL_XOR = 0x1506, + GL_OR = 0x1507, + GL_NOR = 0x1508, + GL_EQUIV = 0x1509, + GL_INVERT = 0x150A, + GL_OR_REVERSE = 0x150B, + GL_COPY_INVERTED = 0x150C, + GL_OR_INVERTED = 0x150D, + GL_NAND = 0x150E, + GL_SET = 0x150F, + GL_TEXTURE = 0x1702, + GL_COLOR = 0x1800, + GL_DEPTH = 0x1801, + GL_STENCIL = 0x1802, + GL_STENCIL_INDEX = 0x1901, + GL_DEPTH_COMPONENT = 0x1902, + GL_RED = 0x1903, + GL_GREEN = 0x1904, + GL_BLUE = 0x1905, + GL_ALPHA = 0x1906, + GL_RGB = 0x1907, + GL_RGBA = 0x1908, + GL_POINT = 0x1B00, + GL_LINE = 0x1B01, + GL_FILL = 0x1B02, + GL_KEEP = 0x1E00, + GL_REPLACE = 0x1E01, + GL_INCR = 0x1E02, + GL_DECR = 0x1E03, + GL_VENDOR = 0x1F00, + GL_RENDERER = 0x1F01, + GL_VERSION = 0x1F02, + GL_EXTENSIONS = 0x1F03, + GL_NEAREST = 0x2600, + GL_LINEAR = 0x2601, + GL_NEAREST_MIPMAP_NEAREST = 0x2700, + GL_LINEAR_MIPMAP_NEAREST = 0x2701, + GL_NEAREST_MIPMAP_LINEAR = 0x2702, + GL_LINEAR_MIPMAP_LINEAR = 0x2703, + GL_TEXTURE_MAG_FILTER = 0x2800, + GL_TEXTURE_MIN_FILTER = 0x2801, + GL_TEXTURE_WRAP_S = 0x2802, + GL_TEXTURE_WRAP_T = 0x2803, + GL_REPEAT = 0x2901, + GL_CURRENT_BIT = 0x00000001, + GL_POINT_BIT = 0x00000002, + GL_LINE_BIT = 0x00000004, + GL_POLYGON_BIT = 0x00000008, + GL_POLYGON_STIPPLE_BIT = 0x00000010, + GL_PIXEL_MODE_BIT = 0x00000020, + GL_LIGHTING_BIT = 0x00000040, + GL_FOG_BIT = 0x00000080, + GL_ACCUM_BUFFER_BIT = 0x00000200, + GL_VIEWPORT_BIT = 0x00000800, + GL_TRANSFORM_BIT = 0x00001000, + GL_ENABLE_BIT = 0x00002000, + GL_HINT_BIT = 0x00008000, + GL_EVAL_BIT = 0x00010000, + GL_LIST_BIT = 0x00020000, + GL_TEXTURE_BIT = 0x00040000, + GL_SCISSOR_BIT = 0x00080000, + GL_ALL_ATTRIB_BITS = 0xFFFFFFFF, + GL_QUAD_STRIP = 0x0008, + GL_POLYGON = 0x0009, + GL_ACCUM = 0x0100, + GL_LOAD = 0x0101, + GL_RETURN = 0x0102, + GL_MULT = 0x0103, + GL_ADD = 0x0104, + GL_AUX0 = 0x0409, + GL_AUX1 = 0x040A, + GL_AUX2 = 0x040B, + GL_AUX3 = 0x040C, + GL_2D = 0x0600, + GL_3D = 0x0601, + GL_3D_COLOR = 0x0602, + GL_3D_COLOR_TEXTURE = 0x0603, + GL_4D_COLOR_TEXTURE = 0x0604, + GL_PASS_THROUGH_TOKEN = 0x0700, + GL_POINT_TOKEN = 0x0701, + GL_LINE_TOKEN = 0x0702, + GL_POLYGON_TOKEN = 0x0703, + GL_BITMAP_TOKEN = 0x0704, + GL_DRAW_PIXEL_TOKEN = 0x0705, + GL_COPY_PIXEL_TOKEN = 0x0706, + GL_LINE_RESET_TOKEN = 0x0707, + GL_EXP = 0x0800, + GL_EXP2 = 0x0801, + GL_COEFF = 0x0A00, + GL_ORDER = 0x0A01, + GL_DOMAIN = 0x0A02, + GL_PIXEL_MAP_I_TO_I = 0x0C70, + GL_PIXEL_MAP_S_TO_S = 0x0C71, + GL_PIXEL_MAP_I_TO_R = 0x0C72, + GL_PIXEL_MAP_I_TO_G = 0x0C73, + GL_PIXEL_MAP_I_TO_B = 0x0C74, + GL_PIXEL_MAP_I_TO_A = 0x0C75, + GL_PIXEL_MAP_R_TO_R = 0x0C76, + GL_PIXEL_MAP_G_TO_G = 0x0C77, + GL_PIXEL_MAP_B_TO_B = 0x0C78, + GL_PIXEL_MAP_A_TO_A = 0x0C79, + GL_CURRENT_COLOR = 0x0B00, + GL_CURRENT_INDEX = 0x0B01, + GL_CURRENT_NORMAL = 0x0B02, + GL_CURRENT_TEXTURE_COORDS = 0x0B03, + GL_CURRENT_RASTER_COLOR = 0x0B04, + GL_CURRENT_RASTER_INDEX = 0x0B05, + GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, + GL_CURRENT_RASTER_POSITION = 0x0B07, + GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, + GL_CURRENT_RASTER_DISTANCE = 0x0B09, + GL_POINT_SMOOTH = 0x0B10, + GL_LINE_STIPPLE = 0x0B24, + GL_LINE_STIPPLE_PATTERN = 0x0B25, + GL_LINE_STIPPLE_REPEAT = 0x0B26, + GL_LIST_MODE = 0x0B30, + GL_MAX_LIST_NESTING = 0x0B31, + GL_LIST_BASE = 0x0B32, + GL_LIST_INDEX = 0x0B33, + GL_POLYGON_STIPPLE = 0x0B42, + GL_EDGE_FLAG = 0x0B43, + GL_LIGHTING = 0x0B50, + GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51, + GL_LIGHT_MODEL_TWO_SIDE = 0x0B52, + GL_LIGHT_MODEL_AMBIENT = 0x0B53, + GL_SHADE_MODEL = 0x0B54, + GL_COLOR_MATERIAL_FACE = 0x0B55, + GL_COLOR_MATERIAL_PARAMETER = 0x0B56, + GL_COLOR_MATERIAL = 0x0B57, + GL_FOG = 0x0B60, + GL_FOG_INDEX = 0x0B61, + GL_FOG_DENSITY = 0x0B62, + GL_FOG_START = 0x0B63, + GL_FOG_END = 0x0B64, + GL_FOG_MODE = 0x0B65, + GL_FOG_COLOR = 0x0B66, + GL_ACCUM_CLEAR_VALUE = 0x0B80, + GL_MATRIX_MODE = 0x0BA0, + GL_NORMALIZE = 0x0BA1, + GL_MODELVIEW_STACK_DEPTH = 0x0BA3, + GL_PROJECTION_STACK_DEPTH = 0x0BA4, + GL_TEXTURE_STACK_DEPTH = 0x0BA5, + GL_MODELVIEW_MATRIX = 0x0BA6, + GL_PROJECTION_MATRIX = 0x0BA7, + GL_TEXTURE_MATRIX = 0x0BA8, + GL_ATTRIB_STACK_DEPTH = 0x0BB0, + GL_ALPHA_TEST = 0x0BC0, + GL_ALPHA_TEST_FUNC = 0x0BC1, + GL_ALPHA_TEST_REF = 0x0BC2, + GL_LOGIC_OP = 0x0BF1, + GL_AUX_BUFFERS = 0x0C00, + GL_INDEX_CLEAR_VALUE = 0x0C20, + GL_INDEX_WRITEMASK = 0x0C21, + GL_INDEX_MODE = 0x0C30, + GL_RGBA_MODE = 0x0C31, + GL_RENDER_MODE = 0x0C40, + GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50, + GL_POINT_SMOOTH_HINT = 0x0C51, + GL_FOG_HINT = 0x0C54, + GL_TEXTURE_GEN_S = 0x0C60, + GL_TEXTURE_GEN_T = 0x0C61, + GL_TEXTURE_GEN_R = 0x0C62, + GL_TEXTURE_GEN_Q = 0x0C63, + GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0, + GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1, + GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2, + GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3, + GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4, + GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5, + GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6, + GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7, + GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8, + GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9, + GL_MAP_COLOR = 0x0D10, + GL_MAP_STENCIL = 0x0D11, + GL_INDEX_SHIFT = 0x0D12, + GL_INDEX_OFFSET = 0x0D13, + GL_RED_SCALE = 0x0D14, + GL_RED_BIAS = 0x0D15, + GL_ZOOM_X = 0x0D16, + GL_ZOOM_Y = 0x0D17, + GL_GREEN_SCALE = 0x0D18, + GL_GREEN_BIAS = 0x0D19, + GL_BLUE_SCALE = 0x0D1A, + GL_BLUE_BIAS = 0x0D1B, + GL_ALPHA_SCALE = 0x0D1C, + GL_ALPHA_BIAS = 0x0D1D, + GL_DEPTH_SCALE = 0x0D1E, + GL_DEPTH_BIAS = 0x0D1F, + GL_MAX_EVAL_ORDER = 0x0D30, + GL_MAX_LIGHTS = 0x0D31, + GL_MAX_CLIP_PLANES = 0x0D32, + GL_MAX_PIXEL_MAP_TABLE = 0x0D34, + GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35, + GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36, + GL_MAX_NAME_STACK_DEPTH = 0x0D37, + GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38, + GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39, + GL_INDEX_BITS = 0x0D51, + GL_RED_BITS = 0x0D52, + GL_GREEN_BITS = 0x0D53, + GL_BLUE_BITS = 0x0D54, + GL_ALPHA_BITS = 0x0D55, + GL_DEPTH_BITS = 0x0D56, + GL_STENCIL_BITS = 0x0D57, + GL_ACCUM_RED_BITS = 0x0D58, + GL_ACCUM_GREEN_BITS = 0x0D59, + GL_ACCUM_BLUE_BITS = 0x0D5A, + GL_ACCUM_ALPHA_BITS = 0x0D5B, + GL_NAME_STACK_DEPTH = 0x0D70, + GL_AUTO_NORMAL = 0x0D80, + GL_MAP1_COLOR_4 = 0x0D90, + GL_MAP1_INDEX = 0x0D91, + GL_MAP1_NORMAL = 0x0D92, + GL_MAP1_TEXTURE_COORD_1 = 0x0D93, + GL_MAP1_TEXTURE_COORD_2 = 0x0D94, + GL_MAP1_TEXTURE_COORD_3 = 0x0D95, + GL_MAP1_TEXTURE_COORD_4 = 0x0D96, + GL_MAP1_VERTEX_3 = 0x0D97, + GL_MAP1_VERTEX_4 = 0x0D98, + GL_MAP2_COLOR_4 = 0x0DB0, + GL_MAP2_INDEX = 0x0DB1, + GL_MAP2_NORMAL = 0x0DB2, + GL_MAP2_TEXTURE_COORD_1 = 0x0DB3, + GL_MAP2_TEXTURE_COORD_2 = 0x0DB4, + GL_MAP2_TEXTURE_COORD_3 = 0x0DB5, + GL_MAP2_TEXTURE_COORD_4 = 0x0DB6, + GL_MAP2_VERTEX_3 = 0x0DB7, + GL_MAP2_VERTEX_4 = 0x0DB8, + GL_MAP1_GRID_DOMAIN = 0x0DD0, + GL_MAP1_GRID_SEGMENTS = 0x0DD1, + GL_MAP2_GRID_DOMAIN = 0x0DD2, + GL_MAP2_GRID_SEGMENTS = 0x0DD3, + GL_TEXTURE_COMPONENTS = 0x1003, + GL_TEXTURE_BORDER = 0x1005, + GL_AMBIENT = 0x1200, + GL_DIFFUSE = 0x1201, + GL_SPECULAR = 0x1202, + GL_POSITION = 0x1203, + GL_SPOT_DIRECTION = 0x1204, + GL_SPOT_EXPONENT = 0x1205, + GL_SPOT_CUTOFF = 0x1206, + GL_CONSTANT_ATTENUATION = 0x1207, + GL_LINEAR_ATTENUATION = 0x1208, + GL_QUADRATIC_ATTENUATION = 0x1209, + GL_COMPILE = 0x1300, + GL_COMPILE_AND_EXECUTE = 0x1301, + GL_2_BYTES = 0x1407, + GL_3_BYTES = 0x1408, + GL_4_BYTES = 0x1409, + GL_EMISSION = 0x1600, + GL_SHININESS = 0x1601, + GL_AMBIENT_AND_DIFFUSE = 0x1602, + GL_COLOR_INDEXES = 0x1603, + GL_MODELVIEW = 0x1700, + GL_PROJECTION = 0x1701, + GL_COLOR_INDEX = 0x1900, + GL_LUMINANCE = 0x1909, + GL_LUMINANCE_ALPHA = 0x190A, + GL_BITMAP = 0x1A00, + GL_RENDER = 0x1C00, + GL_FEEDBACK = 0x1C01, + GL_SELECT = 0x1C02, + GL_FLAT = 0x1D00, + GL_SMOOTH = 0x1D01, + GL_S = 0x2000, + GL_T = 0x2001, + GL_R = 0x2002, + GL_Q = 0x2003, + GL_MODULATE = 0x2100, + GL_DECAL = 0x2101, + GL_TEXTURE_ENV_MODE = 0x2200, + GL_TEXTURE_ENV_COLOR = 0x2201, + GL_TEXTURE_ENV = 0x2300, + GL_EYE_LINEAR = 0x2400, + GL_OBJECT_LINEAR = 0x2401, + GL_SPHERE_MAP = 0x2402, + GL_TEXTURE_GEN_MODE = 0x2500, + GL_OBJECT_PLANE = 0x2501, + GL_EYE_PLANE = 0x2502, + GL_CLAMP = 0x2900, + GL_CLIP_PLANE0 = 0x3000, + GL_CLIP_PLANE1 = 0x3001, + GL_CLIP_PLANE2 = 0x3002, + GL_CLIP_PLANE3 = 0x3003, + GL_CLIP_PLANE4 = 0x3004, + GL_CLIP_PLANE5 = 0x3005, + GL_LIGHT0 = 0x4000, + GL_LIGHT1 = 0x4001, + GL_LIGHT2 = 0x4002, + GL_LIGHT3 = 0x4003, + GL_LIGHT4 = 0x4004, + GL_LIGHT5 = 0x4005, + GL_LIGHT6 = 0x4006, + GL_LIGHT7 = 0x4007, +}; +extern void (* const& glCullFace) (GLenum mode); +extern void (* const& glFrontFace) (GLenum mode); +extern void (* const& glHint) (GLenum target, GLenum mode); +extern void (* const& glLineWidth) (GLfloat width); +extern void (* const& glPointSize) (GLfloat size); +extern void (* const& glPolygonMode) (GLenum face, GLenum mode); +extern void (* const& glScissor) (GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glTexParameterf) (GLenum target, GLenum pname, GLfloat param); +extern void (* const& glTexParameterfv) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glTexParameteri) (GLenum target, GLenum pname, GLint param); +extern void (* const& glTexParameteriv) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexImage1D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glDrawBuffer) (GLenum buf); +extern void (* const& glClear) (GLbitfield mask); +extern void (* const& glClearColor) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void (* const& glClearStencil) (GLint s); +extern void (* const& glClearDepth) (GLdouble depth); +extern void (* const& glStencilMask) (GLuint mask); +extern void (* const& glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +extern void (* const& glDepthMask) (GLboolean flag); +extern void (* const& glDisable) (GLenum cap); +extern void (* const& glEnable) (GLenum cap); +extern void (* const& glFinish) (); +extern void (* const& glFlush) (); +extern void (* const& glBlendFunc) (GLenum sfactor, GLenum dfactor); +extern void (* const& glLogicOp) (GLenum opcode); +extern void (* const& glStencilFunc) (GLenum func, GLint ref, GLuint mask); +extern void (* const& glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass); +extern void (* const& glDepthFunc) (GLenum func); +extern void (* const& glPixelStoref) (GLenum pname, GLfloat param); +extern void (* const& glPixelStorei) (GLenum pname, GLint param); +extern void (* const& glReadBuffer) (GLenum src); +extern void (* const& glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +extern void (* const& glGetBooleanv) (GLenum pname, GLboolean *data); +extern void (* const& glGetDoublev) (GLenum pname, GLdouble *data); +extern GLenum (* const& glGetError) (); +extern void (* const& glGetFloatv) (GLenum pname, GLfloat *data); +extern void (* const& glGetIntegerv) (GLenum pname, GLint *data); +extern const GLubyte * (* const& glGetString) (GLenum name); +extern void (* const& glGetTexImage) (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +extern void (* const& glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetTexParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTexLevelParameterfv) (GLenum target, GLint level, GLenum pname, GLfloat *params); +extern void (* const& glGetTexLevelParameteriv) (GLenum target, GLint level, GLenum pname, GLint *params); +extern GLboolean (* const& glIsEnabled) (GLenum cap); +extern void (* const& glDepthRange) (GLdouble n, GLdouble f); +extern void (* const& glViewport) (GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glNewList) (GLuint list, GLenum mode); +extern void (* const& glEndList) (); +extern void (* const& glCallList) (GLuint list); +extern void (* const& glCallLists) (GLsizei n, GLenum type, const void *lists); +extern void (* const& glDeleteLists) (GLuint list, GLsizei range); +extern GLuint (* const& glGenLists) (GLsizei range); +extern void (* const& glListBase) (GLuint base); +extern void (* const& glBegin) (GLenum mode); +extern void (* const& glBitmap) (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +extern void (* const& glColor3b) (GLbyte red, GLbyte green, GLbyte blue); +extern void (* const& glColor3bv) (const GLbyte *v); +extern void (* const& glColor3d) (GLdouble red, GLdouble green, GLdouble blue); +extern void (* const& glColor3dv) (const GLdouble *v); +extern void (* const& glColor3f) (GLfloat red, GLfloat green, GLfloat blue); +extern void (* const& glColor3fv) (const GLfloat *v); +extern void (* const& glColor3i) (GLint red, GLint green, GLint blue); +extern void (* const& glColor3iv) (const GLint *v); +extern void (* const& glColor3s) (GLshort red, GLshort green, GLshort blue); +extern void (* const& glColor3sv) (const GLshort *v); +extern void (* const& glColor3ub) (GLubyte red, GLubyte green, GLubyte blue); +extern void (* const& glColor3ubv) (const GLubyte *v); +extern void (* const& glColor3ui) (GLuint red, GLuint green, GLuint blue); +extern void (* const& glColor3uiv) (const GLuint *v); +extern void (* const& glColor3us) (GLushort red, GLushort green, GLushort blue); +extern void (* const& glColor3usv) (const GLushort *v); +extern void (* const& glColor4b) (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +extern void (* const& glColor4bv) (const GLbyte *v); +extern void (* const& glColor4d) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +extern void (* const& glColor4dv) (const GLdouble *v); +extern void (* const& glColor4f) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void (* const& glColor4fv) (const GLfloat *v); +extern void (* const& glColor4i) (GLint red, GLint green, GLint blue, GLint alpha); +extern void (* const& glColor4iv) (const GLint *v); +extern void (* const& glColor4s) (GLshort red, GLshort green, GLshort blue, GLshort alpha); +extern void (* const& glColor4sv) (const GLshort *v); +extern void (* const& glColor4ub) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +extern void (* const& glColor4ubv) (const GLubyte *v); +extern void (* const& glColor4ui) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +extern void (* const& glColor4uiv) (const GLuint *v); +extern void (* const& glColor4us) (GLushort red, GLushort green, GLushort blue, GLushort alpha); +extern void (* const& glColor4usv) (const GLushort *v); +extern void (* const& glEdgeFlag) (GLboolean flag); +extern void (* const& glEdgeFlagv) (const GLboolean *flag); +extern void (* const& glEnd) (); +extern void (* const& glIndexd) (GLdouble c); +extern void (* const& glIndexdv) (const GLdouble *c); +extern void (* const& glIndexf) (GLfloat c); +extern void (* const& glIndexfv) (const GLfloat *c); +extern void (* const& glIndexi) (GLint c); +extern void (* const& glIndexiv) (const GLint *c); +extern void (* const& glIndexs) (GLshort c); +extern void (* const& glIndexsv) (const GLshort *c); +extern void (* const& glNormal3b) (GLbyte nx, GLbyte ny, GLbyte nz); +extern void (* const& glNormal3bv) (const GLbyte *v); +extern void (* const& glNormal3d) (GLdouble nx, GLdouble ny, GLdouble nz); +extern void (* const& glNormal3dv) (const GLdouble *v); +extern void (* const& glNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz); +extern void (* const& glNormal3fv) (const GLfloat *v); +extern void (* const& glNormal3i) (GLint nx, GLint ny, GLint nz); +extern void (* const& glNormal3iv) (const GLint *v); +extern void (* const& glNormal3s) (GLshort nx, GLshort ny, GLshort nz); +extern void (* const& glNormal3sv) (const GLshort *v); +extern void (* const& glRasterPos2d) (GLdouble x, GLdouble y); +extern void (* const& glRasterPos2dv) (const GLdouble *v); +extern void (* const& glRasterPos2f) (GLfloat x, GLfloat y); +extern void (* const& glRasterPos2fv) (const GLfloat *v); +extern void (* const& glRasterPos2i) (GLint x, GLint y); +extern void (* const& glRasterPos2iv) (const GLint *v); +extern void (* const& glRasterPos2s) (GLshort x, GLshort y); +extern void (* const& glRasterPos2sv) (const GLshort *v); +extern void (* const& glRasterPos3d) (GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glRasterPos3dv) (const GLdouble *v); +extern void (* const& glRasterPos3f) (GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glRasterPos3fv) (const GLfloat *v); +extern void (* const& glRasterPos3i) (GLint x, GLint y, GLint z); +extern void (* const& glRasterPos3iv) (const GLint *v); +extern void (* const& glRasterPos3s) (GLshort x, GLshort y, GLshort z); +extern void (* const& glRasterPos3sv) (const GLshort *v); +extern void (* const& glRasterPos4d) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glRasterPos4dv) (const GLdouble *v); +extern void (* const& glRasterPos4f) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glRasterPos4fv) (const GLfloat *v); +extern void (* const& glRasterPos4i) (GLint x, GLint y, GLint z, GLint w); +extern void (* const& glRasterPos4iv) (const GLint *v); +extern void (* const& glRasterPos4s) (GLshort x, GLshort y, GLshort z, GLshort w); +extern void (* const& glRasterPos4sv) (const GLshort *v); +extern void (* const& glRectd) (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +extern void (* const& glRectdv) (const GLdouble *v1, const GLdouble *v2); +extern void (* const& glRectf) (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +extern void (* const& glRectfv) (const GLfloat *v1, const GLfloat *v2); +extern void (* const& glRecti) (GLint x1, GLint y1, GLint x2, GLint y2); +extern void (* const& glRectiv) (const GLint *v1, const GLint *v2); +extern void (* const& glRects) (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +extern void (* const& glRectsv) (const GLshort *v1, const GLshort *v2); +extern void (* const& glTexCoord1d) (GLdouble s); +extern void (* const& glTexCoord1dv) (const GLdouble *v); +extern void (* const& glTexCoord1f) (GLfloat s); +extern void (* const& glTexCoord1fv) (const GLfloat *v); +extern void (* const& glTexCoord1i) (GLint s); +extern void (* const& glTexCoord1iv) (const GLint *v); +extern void (* const& glTexCoord1s) (GLshort s); +extern void (* const& glTexCoord1sv) (const GLshort *v); +extern void (* const& glTexCoord2d) (GLdouble s, GLdouble t); +extern void (* const& glTexCoord2dv) (const GLdouble *v); +extern void (* const& glTexCoord2f) (GLfloat s, GLfloat t); +extern void (* const& glTexCoord2fv) (const GLfloat *v); +extern void (* const& glTexCoord2i) (GLint s, GLint t); +extern void (* const& glTexCoord2iv) (const GLint *v); +extern void (* const& glTexCoord2s) (GLshort s, GLshort t); +extern void (* const& glTexCoord2sv) (const GLshort *v); +extern void (* const& glTexCoord3d) (GLdouble s, GLdouble t, GLdouble r); +extern void (* const& glTexCoord3dv) (const GLdouble *v); +extern void (* const& glTexCoord3f) (GLfloat s, GLfloat t, GLfloat r); +extern void (* const& glTexCoord3fv) (const GLfloat *v); +extern void (* const& glTexCoord3i) (GLint s, GLint t, GLint r); +extern void (* const& glTexCoord3iv) (const GLint *v); +extern void (* const& glTexCoord3s) (GLshort s, GLshort t, GLshort r); +extern void (* const& glTexCoord3sv) (const GLshort *v); +extern void (* const& glTexCoord4d) (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void (* const& glTexCoord4dv) (const GLdouble *v); +extern void (* const& glTexCoord4f) (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void (* const& glTexCoord4fv) (const GLfloat *v); +extern void (* const& glTexCoord4i) (GLint s, GLint t, GLint r, GLint q); +extern void (* const& glTexCoord4iv) (const GLint *v); +extern void (* const& glTexCoord4s) (GLshort s, GLshort t, GLshort r, GLshort q); +extern void (* const& glTexCoord4sv) (const GLshort *v); +extern void (* const& glVertex2d) (GLdouble x, GLdouble y); +extern void (* const& glVertex2dv) (const GLdouble *v); +extern void (* const& glVertex2f) (GLfloat x, GLfloat y); +extern void (* const& glVertex2fv) (const GLfloat *v); +extern void (* const& glVertex2i) (GLint x, GLint y); +extern void (* const& glVertex2iv) (const GLint *v); +extern void (* const& glVertex2s) (GLshort x, GLshort y); +extern void (* const& glVertex2sv) (const GLshort *v); +extern void (* const& glVertex3d) (GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glVertex3dv) (const GLdouble *v); +extern void (* const& glVertex3f) (GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glVertex3fv) (const GLfloat *v); +extern void (* const& glVertex3i) (GLint x, GLint y, GLint z); +extern void (* const& glVertex3iv) (const GLint *v); +extern void (* const& glVertex3s) (GLshort x, GLshort y, GLshort z); +extern void (* const& glVertex3sv) (const GLshort *v); +extern void (* const& glVertex4d) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glVertex4dv) (const GLdouble *v); +extern void (* const& glVertex4f) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glVertex4fv) (const GLfloat *v); +extern void (* const& glVertex4i) (GLint x, GLint y, GLint z, GLint w); +extern void (* const& glVertex4iv) (const GLint *v); +extern void (* const& glVertex4s) (GLshort x, GLshort y, GLshort z, GLshort w); +extern void (* const& glVertex4sv) (const GLshort *v); +extern void (* const& glClipPlane) (GLenum plane, const GLdouble *equation); +extern void (* const& glColorMaterial) (GLenum face, GLenum mode); +extern void (* const& glFogf) (GLenum pname, GLfloat param); +extern void (* const& glFogfv) (GLenum pname, const GLfloat *params); +extern void (* const& glFogi) (GLenum pname, GLint param); +extern void (* const& glFogiv) (GLenum pname, const GLint *params); +extern void (* const& glLightf) (GLenum light, GLenum pname, GLfloat param); +extern void (* const& glLightfv) (GLenum light, GLenum pname, const GLfloat *params); +extern void (* const& glLighti) (GLenum light, GLenum pname, GLint param); +extern void (* const& glLightiv) (GLenum light, GLenum pname, const GLint *params); +extern void (* const& glLightModelf) (GLenum pname, GLfloat param); +extern void (* const& glLightModelfv) (GLenum pname, const GLfloat *params); +extern void (* const& glLightModeli) (GLenum pname, GLint param); +extern void (* const& glLightModeliv) (GLenum pname, const GLint *params); +extern void (* const& glLineStipple) (GLint factor, GLushort pattern); +extern void (* const& glMaterialf) (GLenum face, GLenum pname, GLfloat param); +extern void (* const& glMaterialfv) (GLenum face, GLenum pname, const GLfloat *params); +extern void (* const& glMateriali) (GLenum face, GLenum pname, GLint param); +extern void (* const& glMaterialiv) (GLenum face, GLenum pname, const GLint *params); +extern void (* const& glPolygonStipple) (const GLubyte *mask); +extern void (* const& glShadeModel) (GLenum mode); +extern void (* const& glTexEnvf) (GLenum target, GLenum pname, GLfloat param); +extern void (* const& glTexEnvfv) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glTexEnvi) (GLenum target, GLenum pname, GLint param); +extern void (* const& glTexEnviv) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexGend) (GLenum coord, GLenum pname, GLdouble param); +extern void (* const& glTexGendv) (GLenum coord, GLenum pname, const GLdouble *params); +extern void (* const& glTexGenf) (GLenum coord, GLenum pname, GLfloat param); +extern void (* const& glTexGenfv) (GLenum coord, GLenum pname, const GLfloat *params); +extern void (* const& glTexGeni) (GLenum coord, GLenum pname, GLint param); +extern void (* const& glTexGeniv) (GLenum coord, GLenum pname, const GLint *params); +extern void (* const& glFeedbackBuffer) (GLsizei size, GLenum type, GLfloat *buffer); +extern void (* const& glSelectBuffer) (GLsizei size, GLuint *buffer); +extern GLint (* const& glRenderMode) (GLenum mode); +extern void (* const& glInitNames) (); +extern void (* const& glLoadName) (GLuint name); +extern void (* const& glPassThrough) (GLfloat token); +extern void (* const& glPopName) (); +extern void (* const& glPushName) (GLuint name); +extern void (* const& glClearAccum) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void (* const& glClearIndex) (GLfloat c); +extern void (* const& glIndexMask) (GLuint mask); +extern void (* const& glAccum) (GLenum op, GLfloat value); +extern void (* const& glPopAttrib) (); +extern void (* const& glPushAttrib) (GLbitfield mask); +extern void (* const& glMap1d) (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void (* const& glMap1f) (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void (* const& glMap2d) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void (* const& glMap2f) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +extern void (* const& glMapGrid1d) (GLint un, GLdouble u1, GLdouble u2); +extern void (* const& glMapGrid1f) (GLint un, GLfloat u1, GLfloat u2); +extern void (* const& glMapGrid2d) (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +extern void (* const& glMapGrid2f) (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +extern void (* const& glEvalCoord1d) (GLdouble u); +extern void (* const& glEvalCoord1dv) (const GLdouble *u); +extern void (* const& glEvalCoord1f) (GLfloat u); +extern void (* const& glEvalCoord1fv) (const GLfloat *u); +extern void (* const& glEvalCoord2d) (GLdouble u, GLdouble v); +extern void (* const& glEvalCoord2dv) (const GLdouble *u); +extern void (* const& glEvalCoord2f) (GLfloat u, GLfloat v); +extern void (* const& glEvalCoord2fv) (const GLfloat *u); +extern void (* const& glEvalMesh1) (GLenum mode, GLint i1, GLint i2); +extern void (* const& glEvalPoint1) (GLint i); +extern void (* const& glEvalMesh2) (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +extern void (* const& glEvalPoint2) (GLint i, GLint j); +extern void (* const& glAlphaFunc) (GLenum func, GLfloat ref); +extern void (* const& glPixelZoom) (GLfloat xfactor, GLfloat yfactor); +extern void (* const& glPixelTransferf) (GLenum pname, GLfloat param); +extern void (* const& glPixelTransferi) (GLenum pname, GLint param); +extern void (* const& glPixelMapfv) (GLenum map, GLsizei mapsize, const GLfloat *values); +extern void (* const& glPixelMapuiv) (GLenum map, GLsizei mapsize, const GLuint *values); +extern void (* const& glPixelMapusv) (GLenum map, GLsizei mapsize, const GLushort *values); +extern void (* const& glCopyPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +extern void (* const& glDrawPixels) (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +extern void (* const& glGetClipPlane) (GLenum plane, GLdouble *equation); +extern void (* const& glGetLightfv) (GLenum light, GLenum pname, GLfloat *params); +extern void (* const& glGetLightiv) (GLenum light, GLenum pname, GLint *params); +extern void (* const& glGetMapdv) (GLenum target, GLenum query, GLdouble *v); +extern void (* const& glGetMapfv) (GLenum target, GLenum query, GLfloat *v); +extern void (* const& glGetMapiv) (GLenum target, GLenum query, GLint *v); +extern void (* const& glGetMaterialfv) (GLenum face, GLenum pname, GLfloat *params); +extern void (* const& glGetMaterialiv) (GLenum face, GLenum pname, GLint *params); +extern void (* const& glGetPixelMapfv) (GLenum map, GLfloat *values); +extern void (* const& glGetPixelMapuiv) (GLenum map, GLuint *values); +extern void (* const& glGetPixelMapusv) (GLenum map, GLushort *values); +extern void (* const& glGetPolygonStipple) (GLubyte *mask); +extern void (* const& glGetTexEnvfv) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetTexEnviv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTexGendv) (GLenum coord, GLenum pname, GLdouble *params); +extern void (* const& glGetTexGenfv) (GLenum coord, GLenum pname, GLfloat *params); +extern void (* const& glGetTexGeniv) (GLenum coord, GLenum pname, GLint *params); +extern GLboolean (* const& glIsList) (GLuint list); +extern void (* const& glFrustum) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void (* const& glLoadIdentity) (); +extern void (* const& glLoadMatrixf) (const GLfloat *m); +extern void (* const& glLoadMatrixd) (const GLdouble *m); +extern void (* const& glMatrixMode) (GLenum mode); +extern void (* const& glMultMatrixf) (const GLfloat *m); +extern void (* const& glMultMatrixd) (const GLdouble *m); +extern void (* const& glOrtho) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void (* const& glPopMatrix) (); +extern void (* const& glPushMatrix) (); +extern void (* const& glRotated) (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glScaled) (GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glScalef) (GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glTranslated) (GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glTranslatef) (GLfloat x, GLfloat y, GLfloat z); +#endif + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 +enum +{ + GL_COLOR_LOGIC_OP = 0x0BF2, + GL_POLYGON_OFFSET_UNITS = 0x2A00, + GL_POLYGON_OFFSET_POINT = 0x2A01, + GL_POLYGON_OFFSET_LINE = 0x2A02, + GL_POLYGON_OFFSET_FILL = 0x8037, + GL_POLYGON_OFFSET_FACTOR = 0x8038, + GL_TEXTURE_BINDING_1D = 0x8068, + GL_TEXTURE_BINDING_2D = 0x8069, + GL_TEXTURE_INTERNAL_FORMAT = 0x1003, + GL_TEXTURE_RED_SIZE = 0x805C, + GL_TEXTURE_GREEN_SIZE = 0x805D, + GL_TEXTURE_BLUE_SIZE = 0x805E, + GL_TEXTURE_ALPHA_SIZE = 0x805F, + GL_DOUBLE = 0x140A, + GL_PROXY_TEXTURE_1D = 0x8063, + GL_PROXY_TEXTURE_2D = 0x8064, + GL_R3_G3_B2 = 0x2A10, + GL_RGB4 = 0x804F, + GL_RGB5 = 0x8050, + GL_RGB8 = 0x8051, + GL_RGB10 = 0x8052, + GL_RGB12 = 0x8053, + GL_RGB16 = 0x8054, + GL_RGBA2 = 0x8055, + GL_RGBA4 = 0x8056, + GL_RGB5_A1 = 0x8057, + GL_RGBA8 = 0x8058, + GL_RGB10_A2 = 0x8059, + GL_RGBA12 = 0x805A, + GL_RGBA16 = 0x805B, + GL_CLIENT_PIXEL_STORE_BIT = 0x00000001, + GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002, + GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF, + GL_VERTEX_ARRAY_POINTER = 0x808E, + GL_NORMAL_ARRAY_POINTER = 0x808F, + GL_COLOR_ARRAY_POINTER = 0x8090, + GL_INDEX_ARRAY_POINTER = 0x8091, + GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092, + GL_EDGE_FLAG_ARRAY_POINTER = 0x8093, + GL_FEEDBACK_BUFFER_POINTER = 0x0DF0, + GL_SELECTION_BUFFER_POINTER = 0x0DF3, + GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1, + GL_INDEX_LOGIC_OP = 0x0BF1, + GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B, + GL_FEEDBACK_BUFFER_SIZE = 0x0DF1, + GL_FEEDBACK_BUFFER_TYPE = 0x0DF2, + GL_SELECTION_BUFFER_SIZE = 0x0DF4, + GL_VERTEX_ARRAY = 0x8074, + GL_NORMAL_ARRAY = 0x8075, + GL_COLOR_ARRAY = 0x8076, + GL_INDEX_ARRAY = 0x8077, + GL_TEXTURE_COORD_ARRAY = 0x8078, + GL_EDGE_FLAG_ARRAY = 0x8079, + GL_VERTEX_ARRAY_SIZE = 0x807A, + GL_VERTEX_ARRAY_TYPE = 0x807B, + GL_VERTEX_ARRAY_STRIDE = 0x807C, + GL_NORMAL_ARRAY_TYPE = 0x807E, + GL_NORMAL_ARRAY_STRIDE = 0x807F, + GL_COLOR_ARRAY_SIZE = 0x8081, + GL_COLOR_ARRAY_TYPE = 0x8082, + GL_COLOR_ARRAY_STRIDE = 0x8083, + GL_INDEX_ARRAY_TYPE = 0x8085, + GL_INDEX_ARRAY_STRIDE = 0x8086, + GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088, + GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089, + GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A, + GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C, + GL_TEXTURE_LUMINANCE_SIZE = 0x8060, + GL_TEXTURE_INTENSITY_SIZE = 0x8061, + GL_TEXTURE_PRIORITY = 0x8066, + GL_TEXTURE_RESIDENT = 0x8067, + GL_ALPHA4 = 0x803B, + GL_ALPHA8 = 0x803C, + GL_ALPHA12 = 0x803D, + GL_ALPHA16 = 0x803E, + GL_LUMINANCE4 = 0x803F, + GL_LUMINANCE8 = 0x8040, + GL_LUMINANCE12 = 0x8041, + GL_LUMINANCE16 = 0x8042, + GL_LUMINANCE4_ALPHA4 = 0x8043, + GL_LUMINANCE6_ALPHA2 = 0x8044, + GL_LUMINANCE8_ALPHA8 = 0x8045, + GL_LUMINANCE12_ALPHA4 = 0x8046, + GL_LUMINANCE12_ALPHA12 = 0x8047, + GL_LUMINANCE16_ALPHA16 = 0x8048, + GL_INTENSITY = 0x8049, + GL_INTENSITY4 = 0x804A, + GL_INTENSITY8 = 0x804B, + GL_INTENSITY12 = 0x804C, + GL_INTENSITY16 = 0x804D, + GL_V2F = 0x2A20, + GL_V3F = 0x2A21, + GL_C4UB_V2F = 0x2A22, + GL_C4UB_V3F = 0x2A23, + GL_C3F_V3F = 0x2A24, + GL_N3F_V3F = 0x2A25, + GL_C4F_N3F_V3F = 0x2A26, + GL_T2F_V3F = 0x2A27, + GL_T4F_V4F = 0x2A28, + GL_T2F_C4UB_V3F = 0x2A29, + GL_T2F_C3F_V3F = 0x2A2A, + GL_T2F_N3F_V3F = 0x2A2B, + GL_T2F_C4F_N3F_V3F = 0x2A2C, + GL_T4F_C4F_N3F_V4F = 0x2A2D, +}; +extern void (* const& glDrawArrays) (GLenum mode, GLint first, GLsizei count); +extern void (* const& glDrawElements) (GLenum mode, GLsizei count, GLenum type, const void *indices); +extern void (* const& glGetPointerv) (GLenum pname, void **params); +extern void (* const& glPolygonOffset) (GLfloat factor, GLfloat units); +extern void (* const& glCopyTexImage1D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +extern void (* const& glCopyTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void (* const& glCopyTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void (* const& glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +extern void (* const& glBindTexture) (GLenum target, GLuint texture); +extern void (* const& glDeleteTextures) (GLsizei n, const GLuint *textures); +extern void (* const& glGenTextures) (GLsizei n, GLuint *textures); +extern GLboolean (* const& glIsTexture) (GLuint texture); +extern void (* const& glArrayElement) (GLint i); +extern void (* const& glColorPointer) (GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glDisableClientState) (GLenum array); +extern void (* const& glEdgeFlagPointer) (GLsizei stride, const void *pointer); +extern void (* const& glEnableClientState) (GLenum array); +extern void (* const& glIndexPointer) (GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glInterleavedArrays) (GLenum format, GLsizei stride, const void *pointer); +extern void (* const& glNormalPointer) (GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glTexCoordPointer) (GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glVertexPointer) (GLint size, GLenum type, GLsizei stride, const void *pointer); +extern GLboolean (* const& glAreTexturesResident) (GLsizei n, const GLuint *textures, GLboolean *residences); +extern void (* const& glPrioritizeTextures) (GLsizei n, const GLuint *textures, const GLfloat *priorities); +extern void (* const& glIndexub) (GLubyte c); +extern void (* const& glIndexubv) (const GLubyte *c); +extern void (* const& glPopClientAttrib) (); +extern void (* const& glPushClientAttrib) (GLbitfield mask); +#endif + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +enum +{ + GL_UNSIGNED_BYTE_3_3_2 = 0x8032, + GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033, + GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034, + GL_UNSIGNED_INT_8_8_8_8 = 0x8035, + GL_UNSIGNED_INT_10_10_10_2 = 0x8036, + GL_TEXTURE_BINDING_3D = 0x806A, + GL_PACK_SKIP_IMAGES = 0x806B, + GL_PACK_IMAGE_HEIGHT = 0x806C, + GL_UNPACK_SKIP_IMAGES = 0x806D, + GL_UNPACK_IMAGE_HEIGHT = 0x806E, + GL_TEXTURE_3D = 0x806F, + GL_PROXY_TEXTURE_3D = 0x8070, + GL_TEXTURE_DEPTH = 0x8071, + GL_TEXTURE_WRAP_R = 0x8072, + GL_MAX_3D_TEXTURE_SIZE = 0x8073, + GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362, + GL_UNSIGNED_SHORT_5_6_5 = 0x8363, + GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364, + GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365, + GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366, + GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367, + GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, + GL_BGR = 0x80E0, + GL_BGRA = 0x80E1, + GL_MAX_ELEMENTS_VERTICES = 0x80E8, + GL_MAX_ELEMENTS_INDICES = 0x80E9, + GL_CLAMP_TO_EDGE = 0x812F, + GL_TEXTURE_MIN_LOD = 0x813A, + GL_TEXTURE_MAX_LOD = 0x813B, + GL_TEXTURE_BASE_LEVEL = 0x813C, + GL_TEXTURE_MAX_LEVEL = 0x813D, + GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12, + GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13, + GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22, + GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23, + GL_ALIASED_LINE_WIDTH_RANGE = 0x846E, + GL_RESCALE_NORMAL = 0x803A, + GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8, + GL_SINGLE_COLOR = 0x81F9, + GL_SEPARATE_SPECULAR_COLOR = 0x81FA, + GL_ALIASED_POINT_SIZE_RANGE = 0x846D, +}; +extern void (* const& glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +extern void (* const& glTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +enum +{ + GL_TEXTURE0 = 0x84C0, + GL_TEXTURE1 = 0x84C1, + GL_TEXTURE2 = 0x84C2, + GL_TEXTURE3 = 0x84C3, + GL_TEXTURE4 = 0x84C4, + GL_TEXTURE5 = 0x84C5, + GL_TEXTURE6 = 0x84C6, + GL_TEXTURE7 = 0x84C7, + GL_TEXTURE8 = 0x84C8, + GL_TEXTURE9 = 0x84C9, + GL_TEXTURE10 = 0x84CA, + GL_TEXTURE11 = 0x84CB, + GL_TEXTURE12 = 0x84CC, + GL_TEXTURE13 = 0x84CD, + GL_TEXTURE14 = 0x84CE, + GL_TEXTURE15 = 0x84CF, + GL_TEXTURE16 = 0x84D0, + GL_TEXTURE17 = 0x84D1, + GL_TEXTURE18 = 0x84D2, + GL_TEXTURE19 = 0x84D3, + GL_TEXTURE20 = 0x84D4, + GL_TEXTURE21 = 0x84D5, + GL_TEXTURE22 = 0x84D6, + GL_TEXTURE23 = 0x84D7, + GL_TEXTURE24 = 0x84D8, + GL_TEXTURE25 = 0x84D9, + GL_TEXTURE26 = 0x84DA, + GL_TEXTURE27 = 0x84DB, + GL_TEXTURE28 = 0x84DC, + GL_TEXTURE29 = 0x84DD, + GL_TEXTURE30 = 0x84DE, + GL_TEXTURE31 = 0x84DF, + GL_ACTIVE_TEXTURE = 0x84E0, + GL_MULTISAMPLE = 0x809D, + GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE = 0x809F, + GL_SAMPLE_COVERAGE = 0x80A0, + GL_SAMPLE_BUFFERS = 0x80A8, + GL_SAMPLES = 0x80A9, + GL_SAMPLE_COVERAGE_VALUE = 0x80AA, + GL_SAMPLE_COVERAGE_INVERT = 0x80AB, + GL_TEXTURE_CUBE_MAP = 0x8513, + GL_TEXTURE_BINDING_CUBE_MAP = 0x8514, + GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A, + GL_PROXY_TEXTURE_CUBE_MAP = 0x851B, + GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C, + GL_COMPRESSED_RGB = 0x84ED, + GL_COMPRESSED_RGBA = 0x84EE, + GL_TEXTURE_COMPRESSION_HINT = 0x84EF, + GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0, + GL_TEXTURE_COMPRESSED = 0x86A1, + GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2, + GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3, + GL_CLAMP_TO_BORDER = 0x812D, + GL_CLIENT_ACTIVE_TEXTURE = 0x84E1, + GL_MAX_TEXTURE_UNITS = 0x84E2, + GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3, + GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4, + GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5, + GL_TRANSPOSE_COLOR_MATRIX = 0x84E6, + GL_MULTISAMPLE_BIT = 0x20000000, + GL_NORMAL_MAP = 0x8511, + GL_REFLECTION_MAP = 0x8512, + GL_COMPRESSED_ALPHA = 0x84E9, + GL_COMPRESSED_LUMINANCE = 0x84EA, + GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB, + GL_COMPRESSED_INTENSITY = 0x84EC, + GL_COMBINE = 0x8570, + GL_COMBINE_RGB = 0x8571, + GL_COMBINE_ALPHA = 0x8572, + GL_SOURCE0_RGB = 0x8580, + GL_SOURCE1_RGB = 0x8581, + GL_SOURCE2_RGB = 0x8582, + GL_SOURCE0_ALPHA = 0x8588, + GL_SOURCE1_ALPHA = 0x8589, + GL_SOURCE2_ALPHA = 0x858A, + GL_OPERAND0_RGB = 0x8590, + GL_OPERAND1_RGB = 0x8591, + GL_OPERAND2_RGB = 0x8592, + GL_OPERAND0_ALPHA = 0x8598, + GL_OPERAND1_ALPHA = 0x8599, + GL_OPERAND2_ALPHA = 0x859A, + GL_RGB_SCALE = 0x8573, + GL_ADD_SIGNED = 0x8574, + GL_INTERPOLATE = 0x8575, + GL_SUBTRACT = 0x84E7, + GL_CONSTANT = 0x8576, + GL_PRIMARY_COLOR = 0x8577, + GL_PREVIOUS = 0x8578, + GL_DOT3_RGB = 0x86AE, + GL_DOT3_RGBA = 0x86AF, +}; +extern void (* const& glActiveTexture) (GLenum texture); +extern void (* const& glSampleCoverage) (GLfloat value, GLboolean invert); +extern void (* const& glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexImage1D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glGetCompressedTexImage) (GLenum target, GLint level, void *img); +extern void (* const& glClientActiveTexture) (GLenum texture); +extern void (* const& glMultiTexCoord1d) (GLenum target, GLdouble s); +extern void (* const& glMultiTexCoord1dv) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord1f) (GLenum target, GLfloat s); +extern void (* const& glMultiTexCoord1fv) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord1i) (GLenum target, GLint s); +extern void (* const& glMultiTexCoord1iv) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord1s) (GLenum target, GLshort s); +extern void (* const& glMultiTexCoord1sv) (GLenum target, const GLshort *v); +extern void (* const& glMultiTexCoord2d) (GLenum target, GLdouble s, GLdouble t); +extern void (* const& glMultiTexCoord2dv) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord2f) (GLenum target, GLfloat s, GLfloat t); +extern void (* const& glMultiTexCoord2fv) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord2i) (GLenum target, GLint s, GLint t); +extern void (* const& glMultiTexCoord2iv) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord2s) (GLenum target, GLshort s, GLshort t); +extern void (* const& glMultiTexCoord2sv) (GLenum target, const GLshort *v); +extern void (* const& glMultiTexCoord3d) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void (* const& glMultiTexCoord3dv) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord3f) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void (* const& glMultiTexCoord3fv) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord3i) (GLenum target, GLint s, GLint t, GLint r); +extern void (* const& glMultiTexCoord3iv) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord3s) (GLenum target, GLshort s, GLshort t, GLshort r); +extern void (* const& glMultiTexCoord3sv) (GLenum target, const GLshort *v); +extern void (* const& glMultiTexCoord4d) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void (* const& glMultiTexCoord4dv) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord4f) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void (* const& glMultiTexCoord4fv) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord4i) (GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void (* const& glMultiTexCoord4iv) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord4s) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void (* const& glMultiTexCoord4sv) (GLenum target, const GLshort *v); +extern void (* const& glLoadTransposeMatrixf) (const GLfloat *m); +extern void (* const& glLoadTransposeMatrixd) (const GLdouble *m); +extern void (* const& glMultTransposeMatrixf) (const GLfloat *m); +extern void (* const& glMultTransposeMatrixd) (const GLdouble *m); +#endif + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +enum +{ + GL_BLEND_DST_RGB = 0x80C8, + GL_BLEND_SRC_RGB = 0x80C9, + GL_BLEND_DST_ALPHA = 0x80CA, + GL_BLEND_SRC_ALPHA = 0x80CB, + GL_POINT_FADE_THRESHOLD_SIZE = 0x8128, + GL_DEPTH_COMPONENT16 = 0x81A5, + GL_DEPTH_COMPONENT24 = 0x81A6, + GL_DEPTH_COMPONENT32 = 0x81A7, + GL_MIRRORED_REPEAT = 0x8370, + GL_MAX_TEXTURE_LOD_BIAS = 0x84FD, + GL_TEXTURE_LOD_BIAS = 0x8501, + GL_INCR_WRAP = 0x8507, + GL_DECR_WRAP = 0x8508, + GL_TEXTURE_DEPTH_SIZE = 0x884A, + GL_TEXTURE_COMPARE_MODE = 0x884C, + GL_TEXTURE_COMPARE_FUNC = 0x884D, + GL_POINT_SIZE_MIN = 0x8126, + GL_POINT_SIZE_MAX = 0x8127, + GL_POINT_DISTANCE_ATTENUATION = 0x8129, + GL_GENERATE_MIPMAP = 0x8191, + GL_GENERATE_MIPMAP_HINT = 0x8192, + GL_FOG_COORDINATE_SOURCE = 0x8450, + GL_FOG_COORDINATE = 0x8451, + GL_FRAGMENT_DEPTH = 0x8452, + GL_CURRENT_FOG_COORDINATE = 0x8453, + GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454, + GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455, + GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456, + GL_FOG_COORDINATE_ARRAY = 0x8457, + GL_COLOR_SUM = 0x8458, + GL_CURRENT_SECONDARY_COLOR = 0x8459, + GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A, + GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B, + GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C, + GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D, + GL_SECONDARY_COLOR_ARRAY = 0x845E, + GL_TEXTURE_FILTER_CONTROL = 0x8500, + GL_DEPTH_TEXTURE_MODE = 0x884B, + GL_COMPARE_R_TO_TEXTURE = 0x884E, + GL_BLEND_COLOR = 0x8005, + GL_BLEND_EQUATION = 0x8009, + GL_CONSTANT_COLOR = 0x8001, + GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, + GL_CONSTANT_ALPHA = 0x8003, + GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, + GL_FUNC_ADD = 0x8006, + GL_FUNC_REVERSE_SUBTRACT = 0x800B, + GL_FUNC_SUBTRACT = 0x800A, + GL_MIN = 0x8007, + GL_MAX = 0x8008, +}; +extern void (* const& glBlendFuncSeparate) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +extern void (* const& glMultiDrawArrays) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +extern void (* const& glMultiDrawElements) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); +extern void (* const& glPointParameterf) (GLenum pname, GLfloat param); +extern void (* const& glPointParameterfv) (GLenum pname, const GLfloat *params); +extern void (* const& glPointParameteri) (GLenum pname, GLint param); +extern void (* const& glPointParameteriv) (GLenum pname, const GLint *params); +extern void (* const& glFogCoordf) (GLfloat coord); +extern void (* const& glFogCoordfv) (const GLfloat *coord); +extern void (* const& glFogCoordd) (GLdouble coord); +extern void (* const& glFogCoorddv) (const GLdouble *coord); +extern void (* const& glFogCoordPointer) (GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glSecondaryColor3b) (GLbyte red, GLbyte green, GLbyte blue); +extern void (* const& glSecondaryColor3bv) (const GLbyte *v); +extern void (* const& glSecondaryColor3d) (GLdouble red, GLdouble green, GLdouble blue); +extern void (* const& glSecondaryColor3dv) (const GLdouble *v); +extern void (* const& glSecondaryColor3f) (GLfloat red, GLfloat green, GLfloat blue); +extern void (* const& glSecondaryColor3fv) (const GLfloat *v); +extern void (* const& glSecondaryColor3i) (GLint red, GLint green, GLint blue); +extern void (* const& glSecondaryColor3iv) (const GLint *v); +extern void (* const& glSecondaryColor3s) (GLshort red, GLshort green, GLshort blue); +extern void (* const& glSecondaryColor3sv) (const GLshort *v); +extern void (* const& glSecondaryColor3ub) (GLubyte red, GLubyte green, GLubyte blue); +extern void (* const& glSecondaryColor3ubv) (const GLubyte *v); +extern void (* const& glSecondaryColor3ui) (GLuint red, GLuint green, GLuint blue); +extern void (* const& glSecondaryColor3uiv) (const GLuint *v); +extern void (* const& glSecondaryColor3us) (GLushort red, GLushort green, GLushort blue); +extern void (* const& glSecondaryColor3usv) (const GLushort *v); +extern void (* const& glSecondaryColorPointer) (GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glWindowPos2d) (GLdouble x, GLdouble y); +extern void (* const& glWindowPos2dv) (const GLdouble *v); +extern void (* const& glWindowPos2f) (GLfloat x, GLfloat y); +extern void (* const& glWindowPos2fv) (const GLfloat *v); +extern void (* const& glWindowPos2i) (GLint x, GLint y); +extern void (* const& glWindowPos2iv) (const GLint *v); +extern void (* const& glWindowPos2s) (GLshort x, GLshort y); +extern void (* const& glWindowPos2sv) (const GLshort *v); +extern void (* const& glWindowPos3d) (GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glWindowPos3dv) (const GLdouble *v); +extern void (* const& glWindowPos3f) (GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glWindowPos3fv) (const GLfloat *v); +extern void (* const& glWindowPos3i) (GLint x, GLint y, GLint z); +extern void (* const& glWindowPos3iv) (const GLint *v); +extern void (* const& glWindowPos3s) (GLshort x, GLshort y, GLshort z); +extern void (* const& glWindowPos3sv) (const GLshort *v); +extern void (* const& glBlendColor) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void (* const& glBlendEquation) (GLenum mode); +#endif + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +enum +{ + GL_BUFFER_SIZE = 0x8764, + GL_BUFFER_USAGE = 0x8765, + GL_QUERY_COUNTER_BITS = 0x8864, + GL_CURRENT_QUERY = 0x8865, + GL_QUERY_RESULT = 0x8866, + GL_QUERY_RESULT_AVAILABLE = 0x8867, + GL_ARRAY_BUFFER = 0x8892, + GL_ELEMENT_ARRAY_BUFFER = 0x8893, + GL_ARRAY_BUFFER_BINDING = 0x8894, + GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895, + GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F, + GL_READ_ONLY = 0x88B8, + GL_WRITE_ONLY = 0x88B9, + GL_READ_WRITE = 0x88BA, + GL_BUFFER_ACCESS = 0x88BB, + GL_BUFFER_MAPPED = 0x88BC, + GL_BUFFER_MAP_POINTER = 0x88BD, + GL_STREAM_DRAW = 0x88E0, + GL_STREAM_READ = 0x88E1, + GL_STREAM_COPY = 0x88E2, + GL_STATIC_DRAW = 0x88E4, + GL_STATIC_READ = 0x88E5, + GL_STATIC_COPY = 0x88E6, + GL_DYNAMIC_DRAW = 0x88E8, + GL_DYNAMIC_READ = 0x88E9, + GL_DYNAMIC_COPY = 0x88EA, + GL_SAMPLES_PASSED = 0x8914, + GL_SRC1_ALPHA = 0x8589, + GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896, + GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897, + GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898, + GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899, + GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A, + GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B, + GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C, + GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D, + GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E, + GL_FOG_COORD_SRC = 0x8450, + GL_FOG_COORD = 0x8451, + GL_CURRENT_FOG_COORD = 0x8453, + GL_FOG_COORD_ARRAY_TYPE = 0x8454, + GL_FOG_COORD_ARRAY_STRIDE = 0x8455, + GL_FOG_COORD_ARRAY_POINTER = 0x8456, + GL_FOG_COORD_ARRAY = 0x8457, + GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D, + GL_SRC0_RGB = 0x8580, + GL_SRC1_RGB = 0x8581, + GL_SRC2_RGB = 0x8582, + GL_SRC0_ALPHA = 0x8588, + GL_SRC2_ALPHA = 0x858A, +}; +extern void (* const& glGenQueries) (GLsizei n, GLuint *ids); +extern void (* const& glDeleteQueries) (GLsizei n, const GLuint *ids); +extern GLboolean (* const& glIsQuery) (GLuint id); +extern void (* const& glBeginQuery) (GLenum target, GLuint id); +extern void (* const& glEndQuery) (GLenum target); +extern void (* const& glGetQueryiv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetQueryObjectiv) (GLuint id, GLenum pname, GLint *params); +extern void (* const& glGetQueryObjectuiv) (GLuint id, GLenum pname, GLuint *params); +extern void (* const& glBindBuffer) (GLenum target, GLuint buffer); +extern void (* const& glDeleteBuffers) (GLsizei n, const GLuint *buffers); +extern void (* const& glGenBuffers) (GLsizei n, GLuint *buffers); +extern GLboolean (* const& glIsBuffer) (GLuint buffer); +extern void (* const& glBufferData) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +extern void (* const& glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +extern void (* const& glGetBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, void *data); +extern void * (* const& glMapBuffer) (GLenum target, GLenum access); +extern GLboolean (* const& glUnmapBuffer) (GLenum target); +extern void (* const& glGetBufferParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetBufferPointerv) (GLenum target, GLenum pname, void **params); +#endif + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +enum +{ + GL_BLEND_EQUATION_RGB = 0x8009, + GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622, + GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623, + GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624, + GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625, + GL_CURRENT_VERTEX_ATTRIB = 0x8626, + GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642, + GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645, + GL_STENCIL_BACK_FUNC = 0x8800, + GL_STENCIL_BACK_FAIL = 0x8801, + GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802, + GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803, + GL_MAX_DRAW_BUFFERS = 0x8824, + GL_DRAW_BUFFER0 = 0x8825, + GL_DRAW_BUFFER1 = 0x8826, + GL_DRAW_BUFFER2 = 0x8827, + GL_DRAW_BUFFER3 = 0x8828, + GL_DRAW_BUFFER4 = 0x8829, + GL_DRAW_BUFFER5 = 0x882A, + GL_DRAW_BUFFER6 = 0x882B, + GL_DRAW_BUFFER7 = 0x882C, + GL_DRAW_BUFFER8 = 0x882D, + GL_DRAW_BUFFER9 = 0x882E, + GL_DRAW_BUFFER10 = 0x882F, + GL_DRAW_BUFFER11 = 0x8830, + GL_DRAW_BUFFER12 = 0x8831, + GL_DRAW_BUFFER13 = 0x8832, + GL_DRAW_BUFFER14 = 0x8833, + GL_DRAW_BUFFER15 = 0x8834, + GL_BLEND_EQUATION_ALPHA = 0x883D, + GL_MAX_VERTEX_ATTRIBS = 0x8869, + GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A, + GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872, + GL_FRAGMENT_SHADER = 0x8B30, + GL_VERTEX_SHADER = 0x8B31, + GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49, + GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A, + GL_MAX_VARYING_FLOATS = 0x8B4B, + GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C, + GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D, + GL_SHADER_TYPE = 0x8B4F, + GL_FLOAT_VEC2 = 0x8B50, + GL_FLOAT_VEC3 = 0x8B51, + GL_FLOAT_VEC4 = 0x8B52, + GL_INT_VEC2 = 0x8B53, + GL_INT_VEC3 = 0x8B54, + GL_INT_VEC4 = 0x8B55, + GL_BOOL = 0x8B56, + GL_BOOL_VEC2 = 0x8B57, + GL_BOOL_VEC3 = 0x8B58, + GL_BOOL_VEC4 = 0x8B59, + GL_FLOAT_MAT2 = 0x8B5A, + GL_FLOAT_MAT3 = 0x8B5B, + GL_FLOAT_MAT4 = 0x8B5C, + GL_SAMPLER_1D = 0x8B5D, + GL_SAMPLER_2D = 0x8B5E, + GL_SAMPLER_3D = 0x8B5F, + GL_SAMPLER_CUBE = 0x8B60, + GL_SAMPLER_1D_SHADOW = 0x8B61, + GL_SAMPLER_2D_SHADOW = 0x8B62, + GL_DELETE_STATUS = 0x8B80, + GL_COMPILE_STATUS = 0x8B81, + GL_LINK_STATUS = 0x8B82, + GL_VALIDATE_STATUS = 0x8B83, + GL_INFO_LOG_LENGTH = 0x8B84, + GL_ATTACHED_SHADERS = 0x8B85, + GL_ACTIVE_UNIFORMS = 0x8B86, + GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, + GL_SHADER_SOURCE_LENGTH = 0x8B88, + GL_ACTIVE_ATTRIBUTES = 0x8B89, + GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, + GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B, + GL_SHADING_LANGUAGE_VERSION = 0x8B8C, + GL_CURRENT_PROGRAM = 0x8B8D, + GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0, + GL_LOWER_LEFT = 0x8CA1, + GL_UPPER_LEFT = 0x8CA2, + GL_STENCIL_BACK_REF = 0x8CA3, + GL_STENCIL_BACK_VALUE_MASK = 0x8CA4, + GL_STENCIL_BACK_WRITEMASK = 0x8CA5, + GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643, + GL_POINT_SPRITE = 0x8861, + GL_COORD_REPLACE = 0x8862, + GL_MAX_TEXTURE_COORDS = 0x8871, +}; +extern void (* const& glBlendEquationSeparate) (GLenum modeRGB, GLenum modeAlpha); +extern void (* const& glDrawBuffers) (GLsizei n, const GLenum *bufs); +extern void (* const& glStencilOpSeparate) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +extern void (* const& glStencilFuncSeparate) (GLenum face, GLenum func, GLint ref, GLuint mask); +extern void (* const& glStencilMaskSeparate) (GLenum face, GLuint mask); +extern void (* const& glAttachShader) (GLuint program, GLuint shader); +extern void (* const& glBindAttribLocation) (GLuint program, GLuint index, const GLchar *name); +extern void (* const& glCompileShader) (GLuint shader); +extern GLuint (* const& glCreateProgram) (); +extern GLuint (* const& glCreateShader) (GLenum type); +extern void (* const& glDeleteProgram) (GLuint program); +extern void (* const& glDeleteShader) (GLuint shader); +extern void (* const& glDetachShader) (GLuint program, GLuint shader); +extern void (* const& glDisableVertexAttribArray) (GLuint index); +extern void (* const& glEnableVertexAttribArray) (GLuint index); +extern void (* const& glGetActiveAttrib) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern void (* const& glGetActiveUniform) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern void (* const& glGetAttachedShaders) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +extern GLint (* const& glGetAttribLocation) (GLuint program, const GLchar *name); +extern void (* const& glGetProgramiv) (GLuint program, GLenum pname, GLint *params); +extern void (* const& glGetProgramInfoLog) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glGetShaderiv) (GLuint shader, GLenum pname, GLint *params); +extern void (* const& glGetShaderInfoLog) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glGetShaderSource) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +extern GLint (* const& glGetUniformLocation) (GLuint program, const GLchar *name); +extern void (* const& glGetUniformfv) (GLuint program, GLint location, GLfloat *params); +extern void (* const& glGetUniformiv) (GLuint program, GLint location, GLint *params); +extern void (* const& glGetVertexAttribdv) (GLuint index, GLenum pname, GLdouble *params); +extern void (* const& glGetVertexAttribfv) (GLuint index, GLenum pname, GLfloat *params); +extern void (* const& glGetVertexAttribiv) (GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribPointerv) (GLuint index, GLenum pname, void **pointer); +extern GLboolean (* const& glIsProgram) (GLuint program); +extern GLboolean (* const& glIsShader) (GLuint shader); +extern void (* const& glLinkProgram) (GLuint program); +extern void (* const& glShaderSource) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +extern void (* const& glUseProgram) (GLuint program); +extern void (* const& glUniform1f) (GLint location, GLfloat v0); +extern void (* const& glUniform2f) (GLint location, GLfloat v0, GLfloat v1); +extern void (* const& glUniform3f) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void (* const& glUniform4f) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void (* const& glUniform1i) (GLint location, GLint v0); +extern void (* const& glUniform2i) (GLint location, GLint v0, GLint v1); +extern void (* const& glUniform3i) (GLint location, GLint v0, GLint v1, GLint v2); +extern void (* const& glUniform4i) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void (* const& glUniform1fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform2fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform3fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform4fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform1iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform2iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform3iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform4iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniformMatrix2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glValidateProgram) (GLuint program); +extern void (* const& glVertexAttrib1d) (GLuint index, GLdouble x); +extern void (* const& glVertexAttrib1dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib1f) (GLuint index, GLfloat x); +extern void (* const& glVertexAttrib1fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib1s) (GLuint index, GLshort x); +extern void (* const& glVertexAttrib1sv) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib2d) (GLuint index, GLdouble x, GLdouble y); +extern void (* const& glVertexAttrib2dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib2f) (GLuint index, GLfloat x, GLfloat y); +extern void (* const& glVertexAttrib2fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib2s) (GLuint index, GLshort x, GLshort y); +extern void (* const& glVertexAttrib2sv) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib3d) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glVertexAttrib3dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib3f) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glVertexAttrib3fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib3s) (GLuint index, GLshort x, GLshort y, GLshort z); +extern void (* const& glVertexAttrib3sv) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4Nbv) (GLuint index, const GLbyte *v); +extern void (* const& glVertexAttrib4Niv) (GLuint index, const GLint *v); +extern void (* const& glVertexAttrib4Nsv) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4Nub) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void (* const& glVertexAttrib4Nubv) (GLuint index, const GLubyte *v); +extern void (* const& glVertexAttrib4Nuiv) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttrib4Nusv) (GLuint index, const GLushort *v); +extern void (* const& glVertexAttrib4bv) (GLuint index, const GLbyte *v); +extern void (* const& glVertexAttrib4d) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glVertexAttrib4dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib4f) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glVertexAttrib4fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib4iv) (GLuint index, const GLint *v); +extern void (* const& glVertexAttrib4s) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void (* const& glVertexAttrib4sv) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4ubv) (GLuint index, const GLubyte *v); +extern void (* const& glVertexAttrib4uiv) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttrib4usv) (GLuint index, const GLushort *v); +extern void (* const& glVertexAttribPointer) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +#endif + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +enum +{ + GL_PIXEL_PACK_BUFFER = 0x88EB, + GL_PIXEL_UNPACK_BUFFER = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF, + GL_FLOAT_MAT2x3 = 0x8B65, + GL_FLOAT_MAT2x4 = 0x8B66, + GL_FLOAT_MAT3x2 = 0x8B67, + GL_FLOAT_MAT3x4 = 0x8B68, + GL_FLOAT_MAT4x2 = 0x8B69, + GL_FLOAT_MAT4x3 = 0x8B6A, + GL_SRGB = 0x8C40, + GL_SRGB8 = 0x8C41, + GL_SRGB_ALPHA = 0x8C42, + GL_SRGB8_ALPHA8 = 0x8C43, + GL_COMPRESSED_SRGB = 0x8C48, + GL_COMPRESSED_SRGB_ALPHA = 0x8C49, + GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F, + GL_SLUMINANCE_ALPHA = 0x8C44, + GL_SLUMINANCE8_ALPHA8 = 0x8C45, + GL_SLUMINANCE = 0x8C46, + GL_SLUMINANCE8 = 0x8C47, + GL_COMPRESSED_SLUMINANCE = 0x8C4A, + GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B, +}; +extern void (* const& glUniformMatrix2x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix2x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +enum +{ + GL_COMPARE_REF_TO_TEXTURE = 0x884E, + GL_CLIP_DISTANCE0 = 0x3000, + GL_CLIP_DISTANCE1 = 0x3001, + GL_CLIP_DISTANCE2 = 0x3002, + GL_CLIP_DISTANCE3 = 0x3003, + GL_CLIP_DISTANCE4 = 0x3004, + GL_CLIP_DISTANCE5 = 0x3005, + GL_CLIP_DISTANCE6 = 0x3006, + GL_CLIP_DISTANCE7 = 0x3007, + GL_MAX_CLIP_DISTANCES = 0x0D32, + GL_MAJOR_VERSION = 0x821B, + GL_MINOR_VERSION = 0x821C, + GL_NUM_EXTENSIONS = 0x821D, + GL_CONTEXT_FLAGS = 0x821E, + GL_COMPRESSED_RED = 0x8225, + GL_COMPRESSED_RG = 0x8226, + GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001, + GL_RGBA32F = 0x8814, + GL_RGB32F = 0x8815, + GL_RGBA16F = 0x881A, + GL_RGB16F = 0x881B, + GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD, + GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF, + GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904, + GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905, + GL_CLAMP_READ_COLOR = 0x891C, + GL_FIXED_ONLY = 0x891D, + GL_MAX_VARYING_COMPONENTS = 0x8B4B, + GL_TEXTURE_1D_ARRAY = 0x8C18, + GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19, + GL_TEXTURE_2D_ARRAY = 0x8C1A, + GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B, + GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C, + GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D, + GL_R11F_G11F_B10F = 0x8C3A, + GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B, + GL_RGB9_E5 = 0x8C3D, + GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E, + GL_TEXTURE_SHARED_SIZE = 0x8C3F, + GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80, + GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85, + GL_PRIMITIVES_GENERATED = 0x8C87, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88, + GL_RASTERIZER_DISCARD = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B, + GL_INTERLEAVED_ATTRIBS = 0x8C8C, + GL_SEPARATE_ATTRIBS = 0x8C8D, + GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F, + GL_RGBA32UI = 0x8D70, + GL_RGB32UI = 0x8D71, + GL_RGBA16UI = 0x8D76, + GL_RGB16UI = 0x8D77, + GL_RGBA8UI = 0x8D7C, + GL_RGB8UI = 0x8D7D, + GL_RGBA32I = 0x8D82, + GL_RGB32I = 0x8D83, + GL_RGBA16I = 0x8D88, + GL_RGB16I = 0x8D89, + GL_RGBA8I = 0x8D8E, + GL_RGB8I = 0x8D8F, + GL_RED_INTEGER = 0x8D94, + GL_GREEN_INTEGER = 0x8D95, + GL_BLUE_INTEGER = 0x8D96, + GL_RGB_INTEGER = 0x8D98, + GL_RGBA_INTEGER = 0x8D99, + GL_BGR_INTEGER = 0x8D9A, + GL_BGRA_INTEGER = 0x8D9B, + GL_SAMPLER_1D_ARRAY = 0x8DC0, + GL_SAMPLER_2D_ARRAY = 0x8DC1, + GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3, + GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4, + GL_SAMPLER_CUBE_SHADOW = 0x8DC5, + GL_UNSIGNED_INT_VEC2 = 0x8DC6, + GL_UNSIGNED_INT_VEC3 = 0x8DC7, + GL_UNSIGNED_INT_VEC4 = 0x8DC8, + GL_INT_SAMPLER_1D = 0x8DC9, + GL_INT_SAMPLER_2D = 0x8DCA, + GL_INT_SAMPLER_3D = 0x8DCB, + GL_INT_SAMPLER_CUBE = 0x8DCC, + GL_INT_SAMPLER_1D_ARRAY = 0x8DCE, + GL_INT_SAMPLER_2D_ARRAY = 0x8DCF, + GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1, + GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2, + GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3, + GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4, + GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6, + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7, + GL_QUERY_WAIT = 0x8E13, + GL_QUERY_NO_WAIT = 0x8E14, + GL_QUERY_BY_REGION_WAIT = 0x8E15, + GL_QUERY_BY_REGION_NO_WAIT = 0x8E16, + GL_BUFFER_ACCESS_FLAGS = 0x911F, + GL_BUFFER_MAP_LENGTH = 0x9120, + GL_BUFFER_MAP_OFFSET = 0x9121, + GL_DEPTH_COMPONENT32F = 0x8CAC, + GL_DEPTH32F_STENCIL8 = 0x8CAD, + GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD, + GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506, + GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210, + GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211, + GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212, + GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213, + GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214, + GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215, + GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216, + GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217, + GL_FRAMEBUFFER_DEFAULT = 0x8218, + GL_FRAMEBUFFER_UNDEFINED = 0x8219, + GL_DEPTH_STENCIL_ATTACHMENT = 0x821A, + GL_MAX_RENDERBUFFER_SIZE = 0x84E8, + GL_DEPTH_STENCIL = 0x84F9, + GL_UNSIGNED_INT_24_8 = 0x84FA, + GL_DEPTH24_STENCIL8 = 0x88F0, + GL_TEXTURE_STENCIL_SIZE = 0x88F1, + GL_TEXTURE_RED_TYPE = 0x8C10, + GL_TEXTURE_GREEN_TYPE = 0x8C11, + GL_TEXTURE_BLUE_TYPE = 0x8C12, + GL_TEXTURE_ALPHA_TYPE = 0x8C13, + GL_TEXTURE_DEPTH_TYPE = 0x8C16, + GL_UNSIGNED_NORMALIZED = 0x8C17, + GL_FRAMEBUFFER_BINDING = 0x8CA6, + GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6, + GL_RENDERBUFFER_BINDING = 0x8CA7, + GL_READ_FRAMEBUFFER = 0x8CA8, + GL_DRAW_FRAMEBUFFER = 0x8CA9, + GL_READ_FRAMEBUFFER_BINDING = 0x8CAA, + GL_RENDERBUFFER_SAMPLES = 0x8CAB, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4, + GL_FRAMEBUFFER_COMPLETE = 0x8CD5, + GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6, + GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7, + GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB, + GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC, + GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD, + GL_MAX_COLOR_ATTACHMENTS = 0x8CDF, + GL_COLOR_ATTACHMENT0 = 0x8CE0, + GL_COLOR_ATTACHMENT1 = 0x8CE1, + GL_COLOR_ATTACHMENT2 = 0x8CE2, + GL_COLOR_ATTACHMENT3 = 0x8CE3, + GL_COLOR_ATTACHMENT4 = 0x8CE4, + GL_COLOR_ATTACHMENT5 = 0x8CE5, + GL_COLOR_ATTACHMENT6 = 0x8CE6, + GL_COLOR_ATTACHMENT7 = 0x8CE7, + GL_COLOR_ATTACHMENT8 = 0x8CE8, + GL_COLOR_ATTACHMENT9 = 0x8CE9, + GL_COLOR_ATTACHMENT10 = 0x8CEA, + GL_COLOR_ATTACHMENT11 = 0x8CEB, + GL_COLOR_ATTACHMENT12 = 0x8CEC, + GL_COLOR_ATTACHMENT13 = 0x8CED, + GL_COLOR_ATTACHMENT14 = 0x8CEE, + GL_COLOR_ATTACHMENT15 = 0x8CEF, + GL_COLOR_ATTACHMENT16 = 0x8CF0, + GL_COLOR_ATTACHMENT17 = 0x8CF1, + GL_COLOR_ATTACHMENT18 = 0x8CF2, + GL_COLOR_ATTACHMENT19 = 0x8CF3, + GL_COLOR_ATTACHMENT20 = 0x8CF4, + GL_COLOR_ATTACHMENT21 = 0x8CF5, + GL_COLOR_ATTACHMENT22 = 0x8CF6, + GL_COLOR_ATTACHMENT23 = 0x8CF7, + GL_COLOR_ATTACHMENT24 = 0x8CF8, + GL_COLOR_ATTACHMENT25 = 0x8CF9, + GL_COLOR_ATTACHMENT26 = 0x8CFA, + GL_COLOR_ATTACHMENT27 = 0x8CFB, + GL_COLOR_ATTACHMENT28 = 0x8CFC, + GL_COLOR_ATTACHMENT29 = 0x8CFD, + GL_COLOR_ATTACHMENT30 = 0x8CFE, + GL_COLOR_ATTACHMENT31 = 0x8CFF, + GL_DEPTH_ATTACHMENT = 0x8D00, + GL_STENCIL_ATTACHMENT = 0x8D20, + GL_FRAMEBUFFER = 0x8D40, + GL_RENDERBUFFER = 0x8D41, + GL_RENDERBUFFER_WIDTH = 0x8D42, + GL_RENDERBUFFER_HEIGHT = 0x8D43, + GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44, + GL_STENCIL_INDEX1 = 0x8D46, + GL_STENCIL_INDEX4 = 0x8D47, + GL_STENCIL_INDEX8 = 0x8D48, + GL_STENCIL_INDEX16 = 0x8D49, + GL_RENDERBUFFER_RED_SIZE = 0x8D50, + GL_RENDERBUFFER_GREEN_SIZE = 0x8D51, + GL_RENDERBUFFER_BLUE_SIZE = 0x8D52, + GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53, + GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54, + GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56, + GL_MAX_SAMPLES = 0x8D57, + GL_INDEX = 0x8222, + GL_TEXTURE_LUMINANCE_TYPE = 0x8C14, + GL_TEXTURE_INTENSITY_TYPE = 0x8C15, + GL_FRAMEBUFFER_SRGB = 0x8DB9, + GL_HALF_FLOAT = 0x140B, + GL_MAP_READ_BIT = 0x0001, + GL_MAP_WRITE_BIT = 0x0002, + GL_MAP_INVALIDATE_RANGE_BIT = 0x0004, + GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008, + GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010, + GL_MAP_UNSYNCHRONIZED_BIT = 0x0020, + GL_COMPRESSED_RED_RGTC1 = 0x8DBB, + GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC, + GL_COMPRESSED_RG_RGTC2 = 0x8DBD, + GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE, + GL_RG = 0x8227, + GL_RG_INTEGER = 0x8228, + GL_R8 = 0x8229, + GL_R16 = 0x822A, + GL_RG8 = 0x822B, + GL_RG16 = 0x822C, + GL_R16F = 0x822D, + GL_R32F = 0x822E, + GL_RG16F = 0x822F, + GL_RG32F = 0x8230, + GL_R8I = 0x8231, + GL_R8UI = 0x8232, + GL_R16I = 0x8233, + GL_R16UI = 0x8234, + GL_R32I = 0x8235, + GL_R32UI = 0x8236, + GL_RG8I = 0x8237, + GL_RG8UI = 0x8238, + GL_RG16I = 0x8239, + GL_RG16UI = 0x823A, + GL_RG32I = 0x823B, + GL_RG32UI = 0x823C, + GL_VERTEX_ARRAY_BINDING = 0x85B5, + GL_CLAMP_VERTEX_COLOR = 0x891A, + GL_CLAMP_FRAGMENT_COLOR = 0x891B, + GL_ALPHA_INTEGER = 0x8D97, +}; +extern void (* const& glColorMaski) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +extern void (* const& glGetBooleani_v) (GLenum target, GLuint index, GLboolean *data); +extern void (* const& glGetIntegeri_v) (GLenum target, GLuint index, GLint *data); +extern void (* const& glEnablei) (GLenum target, GLuint index); +extern void (* const& glDisablei) (GLenum target, GLuint index); +extern GLboolean (* const& glIsEnabledi) (GLenum target, GLuint index); +extern void (* const& glBeginTransformFeedback) (GLenum primitiveMode); +extern void (* const& glEndTransformFeedback) (); +extern void (* const& glBindBufferRange) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glBindBufferBase) (GLenum target, GLuint index, GLuint buffer); +extern void (* const& glTransformFeedbackVaryings) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +extern void (* const& glGetTransformFeedbackVarying) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +extern void (* const& glClampColor) (GLenum target, GLenum clamp); +extern void (* const& glBeginConditionalRender) (GLuint id, GLenum mode); +extern void (* const& glEndConditionalRender) (); +extern void (* const& glVertexAttribIPointer) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glGetVertexAttribIiv) (GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribIuiv) (GLuint index, GLenum pname, GLuint *params); +extern void (* const& glVertexAttribI1i) (GLuint index, GLint x); +extern void (* const& glVertexAttribI2i) (GLuint index, GLint x, GLint y); +extern void (* const& glVertexAttribI3i) (GLuint index, GLint x, GLint y, GLint z); +extern void (* const& glVertexAttribI4i) (GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void (* const& glVertexAttribI1ui) (GLuint index, GLuint x); +extern void (* const& glVertexAttribI2ui) (GLuint index, GLuint x, GLuint y); +extern void (* const& glVertexAttribI3ui) (GLuint index, GLuint x, GLuint y, GLuint z); +extern void (* const& glVertexAttribI4ui) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void (* const& glVertexAttribI1iv) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI2iv) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI3iv) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI4iv) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI1uiv) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI2uiv) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI3uiv) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI4uiv) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI4bv) (GLuint index, const GLbyte *v); +extern void (* const& glVertexAttribI4sv) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttribI4ubv) (GLuint index, const GLubyte *v); +extern void (* const& glVertexAttribI4usv) (GLuint index, const GLushort *v); +extern void (* const& glGetUniformuiv) (GLuint program, GLint location, GLuint *params); +extern void (* const& glBindFragDataLocation) (GLuint program, GLuint color, const GLchar *name); +extern GLint (* const& glGetFragDataLocation) (GLuint program, const GLchar *name); +extern void (* const& glUniform1ui) (GLint location, GLuint v0); +extern void (* const& glUniform2ui) (GLint location, GLuint v0, GLuint v1); +extern void (* const& glUniform3ui) (GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void (* const& glUniform4ui) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void (* const& glUniform1uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform2uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform3uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform4uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glTexParameterIiv) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexParameterIuiv) (GLenum target, GLenum pname, const GLuint *params); +extern void (* const& glGetTexParameterIiv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTexParameterIuiv) (GLenum target, GLenum pname, GLuint *params); +extern void (* const& glClearBufferiv) (GLenum buffer, GLint drawbuffer, const GLint *value); +extern void (* const& glClearBufferuiv) (GLenum buffer, GLint drawbuffer, const GLuint *value); +extern void (* const& glClearBufferfv) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +extern void (* const& glClearBufferfi) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +extern const GLubyte * (* const& glGetStringi) (GLenum name, GLuint index); +extern GLboolean (* const& glIsRenderbuffer) (GLuint renderbuffer); +extern void (* const& glBindRenderbuffer) (GLenum target, GLuint renderbuffer); +extern void (* const& glDeleteRenderbuffers) (GLsizei n, const GLuint *renderbuffers); +extern void (* const& glGenRenderbuffers) (GLsizei n, GLuint *renderbuffers); +extern void (* const& glRenderbufferStorage) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glGetRenderbufferParameteriv) (GLenum target, GLenum pname, GLint *params); +extern GLboolean (* const& glIsFramebuffer) (GLuint framebuffer); +extern void (* const& glBindFramebuffer) (GLenum target, GLuint framebuffer); +extern void (* const& glDeleteFramebuffers) (GLsizei n, const GLuint *framebuffers); +extern void (* const& glGenFramebuffers) (GLsizei n, GLuint *framebuffers); +extern GLenum (* const& glCheckFramebufferStatus) (GLenum target); +extern void (* const& glFramebufferTexture1D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void (* const& glFramebufferTexture2D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void (* const& glFramebufferTexture3D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void (* const& glFramebufferRenderbuffer) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void (* const& glGetFramebufferAttachmentParameteriv) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void (* const& glGenerateMipmap) (GLenum target); +extern void (* const& glBlitFramebuffer) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern void (* const& glRenderbufferStorageMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glFramebufferTextureLayer) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +extern void * (* const& glMapBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +extern void (* const& glFlushMappedBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length); +extern void (* const& glBindVertexArray) (GLuint array); +extern void (* const& glDeleteVertexArrays) (GLsizei n, const GLuint *arrays); +extern void (* const& glGenVertexArrays) (GLsizei n, GLuint *arrays); +extern GLboolean (* const& glIsVertexArray) (GLuint array); +#endif + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +enum +{ + GL_SAMPLER_2D_RECT = 0x8B63, + GL_SAMPLER_2D_RECT_SHADOW = 0x8B64, + GL_SAMPLER_BUFFER = 0x8DC2, + GL_INT_SAMPLER_2D_RECT = 0x8DCD, + GL_INT_SAMPLER_BUFFER = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5, + GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8, + GL_TEXTURE_BUFFER = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D, + GL_TEXTURE_RECTANGLE = 0x84F5, + GL_TEXTURE_BINDING_RECTANGLE = 0x84F6, + GL_PROXY_TEXTURE_RECTANGLE = 0x84F7, + GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8, + GL_R8_SNORM = 0x8F94, + GL_RG8_SNORM = 0x8F95, + GL_RGB8_SNORM = 0x8F96, + GL_RGBA8_SNORM = 0x8F97, + GL_R16_SNORM = 0x8F98, + GL_RG16_SNORM = 0x8F99, + GL_RGB16_SNORM = 0x8F9A, + GL_RGBA16_SNORM = 0x8F9B, + GL_SIGNED_NORMALIZED = 0x8F9C, + GL_PRIMITIVE_RESTART = 0x8F9D, + GL_PRIMITIVE_RESTART_INDEX = 0x8F9E, + GL_COPY_READ_BUFFER = 0x8F36, + GL_COPY_WRITE_BUFFER = 0x8F37, + GL_UNIFORM_BUFFER = 0x8A11, + GL_UNIFORM_BUFFER_BINDING = 0x8A28, + GL_UNIFORM_BUFFER_START = 0x8A29, + GL_UNIFORM_BUFFER_SIZE = 0x8A2A, + GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B, + GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C, + GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D, + GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E, + GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F, + GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30, + GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31, + GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32, + GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33, + GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34, + GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35, + GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36, + GL_UNIFORM_TYPE = 0x8A37, + GL_UNIFORM_SIZE = 0x8A38, + GL_UNIFORM_NAME_LENGTH = 0x8A39, + GL_UNIFORM_BLOCK_INDEX = 0x8A3A, + GL_UNIFORM_OFFSET = 0x8A3B, + GL_UNIFORM_ARRAY_STRIDE = 0x8A3C, + GL_UNIFORM_MATRIX_STRIDE = 0x8A3D, + GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E, + GL_UNIFORM_BLOCK_BINDING = 0x8A3F, + GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40, + GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43, + GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44, + GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45, + GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46, + GL_INVALID_INDEX = 0xFFFFFFFF, +}; +extern void (* const& glDrawArraysInstanced) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +extern void (* const& glDrawElementsInstanced) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +extern void (* const& glTexBuffer) (GLenum target, GLenum internalformat, GLuint buffer); +extern void (* const& glPrimitiveRestartIndex) (GLuint index); +extern void (* const& glCopyBufferSubData) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +extern void (* const& glGetUniformIndices) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +extern void (* const& glGetActiveUniformsiv) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +extern void (* const& glGetActiveUniformName) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +extern GLuint (* const& glGetUniformBlockIndex) (GLuint program, const GLchar *uniformBlockName); +extern void (* const& glGetActiveUniformBlockiv) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +extern void (* const& glGetActiveUniformBlockName) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +extern void (* const& glUniformBlockBinding) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +enum +{ + GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001, + GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002, + GL_LINES_ADJACENCY = 0x000A, + GL_LINE_STRIP_ADJACENCY = 0x000B, + GL_TRIANGLES_ADJACENCY = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY = 0x000D, + GL_PROGRAM_POINT_SIZE = 0x8642, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8, + GL_GEOMETRY_SHADER = 0x8DD9, + GL_GEOMETRY_VERTICES_OUT = 0x8916, + GL_GEOMETRY_INPUT_TYPE = 0x8917, + GL_GEOMETRY_OUTPUT_TYPE = 0x8918, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF, + GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1, + GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122, + GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123, + GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124, + GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125, + GL_CONTEXT_PROFILE_MASK = 0x9126, + GL_DEPTH_CLAMP = 0x864F, + GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C, + GL_FIRST_VERTEX_CONVENTION = 0x8E4D, + GL_LAST_VERTEX_CONVENTION = 0x8E4E, + GL_PROVOKING_VERTEX = 0x8E4F, + GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F, + GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111, + GL_OBJECT_TYPE = 0x9112, + GL_SYNC_CONDITION = 0x9113, + GL_SYNC_STATUS = 0x9114, + GL_SYNC_FLAGS = 0x9115, + GL_SYNC_FENCE = 0x9116, + GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117, + GL_UNSIGNALED = 0x9118, + GL_SIGNALED = 0x9119, + GL_ALREADY_SIGNALED = 0x911A, + GL_TIMEOUT_EXPIRED = 0x911B, + GL_CONDITION_SATISFIED = 0x911C, + GL_WAIT_FAILED = 0x911D, + GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF, + GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001, + GL_SAMPLE_POSITION = 0x8E50, + GL_SAMPLE_MASK = 0x8E51, + GL_SAMPLE_MASK_VALUE = 0x8E52, + GL_MAX_SAMPLE_MASK_WORDS = 0x8E59, + GL_TEXTURE_2D_MULTISAMPLE = 0x9100, + GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101, + GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102, + GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103, + GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104, + GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105, + GL_TEXTURE_SAMPLES = 0x9106, + GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107, + GL_SAMPLER_2D_MULTISAMPLE = 0x9108, + GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A, + GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B, + GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D, + GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E, + GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F, + GL_MAX_INTEGER_SAMPLES = 0x9110, +}; +extern void (* const& glDrawElementsBaseVertex) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawRangeElementsBaseVertex) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawElementsInstancedBaseVertex) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +extern void (* const& glMultiDrawElementsBaseVertex) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +extern void (* const& glProvokingVertex) (GLenum mode); +extern GLsync (* const& glFenceSync) (GLenum condition, GLbitfield flags); +extern GLboolean (* const& glIsSync) (GLsync sync); +extern void (* const& glDeleteSync) (GLsync sync); +extern GLenum (* const& glClientWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void (* const& glWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void (* const& glGetInteger64v) (GLenum pname, GLint64 *data); +extern void (* const& glGetSynciv) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +extern void (* const& glGetInteger64i_v) (GLenum target, GLuint index, GLint64 *data); +extern void (* const& glGetBufferParameteri64v) (GLenum target, GLenum pname, GLint64 *params); +extern void (* const& glFramebufferTexture) (GLenum target, GLenum attachment, GLuint texture, GLint level); +extern void (* const& glTexImage2DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +extern void (* const& glTexImage3DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +extern void (* const& glGetMultisamplefv) (GLenum pname, GLuint index, GLfloat *val); +extern void (* const& glSampleMaski) (GLuint maskNumber, GLbitfield mask); +#endif + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +enum +{ + GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE, + GL_SRC1_COLOR = 0x88F9, + GL_ONE_MINUS_SRC1_COLOR = 0x88FA, + GL_ONE_MINUS_SRC1_ALPHA = 0x88FB, + GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC, + GL_ANY_SAMPLES_PASSED = 0x8C2F, + GL_SAMPLER_BINDING = 0x8919, + GL_RGB10_A2UI = 0x906F, + GL_TEXTURE_SWIZZLE_R = 0x8E42, + GL_TEXTURE_SWIZZLE_G = 0x8E43, + GL_TEXTURE_SWIZZLE_B = 0x8E44, + GL_TEXTURE_SWIZZLE_A = 0x8E45, + GL_TEXTURE_SWIZZLE_RGBA = 0x8E46, + GL_TIME_ELAPSED = 0x88BF, + GL_TIMESTAMP = 0x8E28, + GL_INT_2_10_10_10_REV = 0x8D9F, +}; +extern void (* const& glBindFragDataLocationIndexed) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +extern GLint (* const& glGetFragDataIndex) (GLuint program, const GLchar *name); +extern void (* const& glGenSamplers) (GLsizei count, GLuint *samplers); +extern void (* const& glDeleteSamplers) (GLsizei count, const GLuint *samplers); +extern GLboolean (* const& glIsSampler) (GLuint sampler); +extern void (* const& glBindSampler) (GLuint unit, GLuint sampler); +extern void (* const& glSamplerParameteri) (GLuint sampler, GLenum pname, GLint param); +extern void (* const& glSamplerParameteriv) (GLuint sampler, GLenum pname, const GLint *param); +extern void (* const& glSamplerParameterf) (GLuint sampler, GLenum pname, GLfloat param); +extern void (* const& glSamplerParameterfv) (GLuint sampler, GLenum pname, const GLfloat *param); +extern void (* const& glSamplerParameterIiv) (GLuint sampler, GLenum pname, const GLint *param); +extern void (* const& glSamplerParameterIuiv) (GLuint sampler, GLenum pname, const GLuint *param); +extern void (* const& glGetSamplerParameteriv) (GLuint sampler, GLenum pname, GLint *params); +extern void (* const& glGetSamplerParameterIiv) (GLuint sampler, GLenum pname, GLint *params); +extern void (* const& glGetSamplerParameterfv) (GLuint sampler, GLenum pname, GLfloat *params); +extern void (* const& glGetSamplerParameterIuiv) (GLuint sampler, GLenum pname, GLuint *params); +extern void (* const& glQueryCounter) (GLuint id, GLenum target); +extern void (* const& glGetQueryObjecti64v) (GLuint id, GLenum pname, GLint64 *params); +extern void (* const& glGetQueryObjectui64v) (GLuint id, GLenum pname, GLuint64 *params); +extern void (* const& glVertexAttribDivisor) (GLuint index, GLuint divisor); +extern void (* const& glVertexAttribP1ui) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +extern void (* const& glVertexAttribP1uiv) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +extern void (* const& glVertexAttribP2ui) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +extern void (* const& glVertexAttribP2uiv) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +extern void (* const& glVertexAttribP3ui) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +extern void (* const& glVertexAttribP3uiv) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +extern void (* const& glVertexAttribP4ui) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +extern void (* const& glVertexAttribP4uiv) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +extern void (* const& glVertexP2ui) (GLenum type, GLuint value); +extern void (* const& glVertexP2uiv) (GLenum type, const GLuint *value); +extern void (* const& glVertexP3ui) (GLenum type, GLuint value); +extern void (* const& glVertexP3uiv) (GLenum type, const GLuint *value); +extern void (* const& glVertexP4ui) (GLenum type, GLuint value); +extern void (* const& glVertexP4uiv) (GLenum type, const GLuint *value); +extern void (* const& glTexCoordP1ui) (GLenum type, GLuint coords); +extern void (* const& glTexCoordP1uiv) (GLenum type, const GLuint *coords); +extern void (* const& glTexCoordP2ui) (GLenum type, GLuint coords); +extern void (* const& glTexCoordP2uiv) (GLenum type, const GLuint *coords); +extern void (* const& glTexCoordP3ui) (GLenum type, GLuint coords); +extern void (* const& glTexCoordP3uiv) (GLenum type, const GLuint *coords); +extern void (* const& glTexCoordP4ui) (GLenum type, GLuint coords); +extern void (* const& glTexCoordP4uiv) (GLenum type, const GLuint *coords); +extern void (* const& glMultiTexCoordP1ui) (GLenum texture, GLenum type, GLuint coords); +extern void (* const& glMultiTexCoordP1uiv) (GLenum texture, GLenum type, const GLuint *coords); +extern void (* const& glMultiTexCoordP2ui) (GLenum texture, GLenum type, GLuint coords); +extern void (* const& glMultiTexCoordP2uiv) (GLenum texture, GLenum type, const GLuint *coords); +extern void (* const& glMultiTexCoordP3ui) (GLenum texture, GLenum type, GLuint coords); +extern void (* const& glMultiTexCoordP3uiv) (GLenum texture, GLenum type, const GLuint *coords); +extern void (* const& glMultiTexCoordP4ui) (GLenum texture, GLenum type, GLuint coords); +extern void (* const& glMultiTexCoordP4uiv) (GLenum texture, GLenum type, const GLuint *coords); +extern void (* const& glNormalP3ui) (GLenum type, GLuint coords); +extern void (* const& glNormalP3uiv) (GLenum type, const GLuint *coords); +extern void (* const& glColorP3ui) (GLenum type, GLuint color); +extern void (* const& glColorP3uiv) (GLenum type, const GLuint *color); +extern void (* const& glColorP4ui) (GLenum type, GLuint color); +extern void (* const& glColorP4uiv) (GLenum type, const GLuint *color); +extern void (* const& glSecondaryColorP3ui) (GLenum type, GLuint color); +extern void (* const& glSecondaryColorP3uiv) (GLenum type, const GLuint *color); +#endif + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +enum +{ + GL_SAMPLE_SHADING = 0x8C36, + GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37, + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E, + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F, + GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009, + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A, + GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B, + GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C, + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D, + GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E, + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F, + GL_DRAW_INDIRECT_BUFFER = 0x8F3F, + GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43, + GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F, + GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A, + GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B, + GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C, + GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D, + GL_MAX_VERTEX_STREAMS = 0x8E71, + GL_DOUBLE_VEC2 = 0x8FFC, + GL_DOUBLE_VEC3 = 0x8FFD, + GL_DOUBLE_VEC4 = 0x8FFE, + GL_DOUBLE_MAT2 = 0x8F46, + GL_DOUBLE_MAT3 = 0x8F47, + GL_DOUBLE_MAT4 = 0x8F48, + GL_DOUBLE_MAT2x3 = 0x8F49, + GL_DOUBLE_MAT2x4 = 0x8F4A, + GL_DOUBLE_MAT3x2 = 0x8F4B, + GL_DOUBLE_MAT3x4 = 0x8F4C, + GL_DOUBLE_MAT4x2 = 0x8F4D, + GL_DOUBLE_MAT4x3 = 0x8F4E, + GL_ACTIVE_SUBROUTINES = 0x8DE5, + GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6, + GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47, + GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48, + GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49, + GL_MAX_SUBROUTINES = 0x8DE7, + GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8, + GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A, + GL_COMPATIBLE_SUBROUTINES = 0x8E4B, + GL_PATCHES = 0x000E, + GL_PATCH_VERTICES = 0x8E72, + GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73, + GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74, + GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75, + GL_TESS_GEN_MODE = 0x8E76, + GL_TESS_GEN_SPACING = 0x8E77, + GL_TESS_GEN_VERTEX_ORDER = 0x8E78, + GL_TESS_GEN_POINT_MODE = 0x8E79, + GL_ISOLINES = 0x8E7A, + GL_FRACTIONAL_ODD = 0x8E7B, + GL_FRACTIONAL_EVEN = 0x8E7C, + GL_MAX_PATCH_VERTICES = 0x8E7D, + GL_MAX_TESS_GEN_LEVEL = 0x8E7E, + GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F, + GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80, + GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81, + GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82, + GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83, + GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84, + GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85, + GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86, + GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89, + GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A, + GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C, + GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D, + GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E, + GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F, + GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0, + GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1, + GL_TESS_EVALUATION_SHADER = 0x8E87, + GL_TESS_CONTROL_SHADER = 0x8E88, + GL_TRANSFORM_FEEDBACK = 0x8E22, + GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23, + GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24, + GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25, + GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70, +}; +extern void (* const& glMinSampleShading) (GLfloat value); +extern void (* const& glBlendEquationi) (GLuint buf, GLenum mode); +extern void (* const& glBlendEquationSeparatei) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +extern void (* const& glBlendFunci) (GLuint buf, GLenum src, GLenum dst); +extern void (* const& glBlendFuncSeparatei) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +extern void (* const& glDrawArraysIndirect) (GLenum mode, const void *indirect); +extern void (* const& glDrawElementsIndirect) (GLenum mode, GLenum type, const void *indirect); +extern void (* const& glUniform1d) (GLint location, GLdouble x); +extern void (* const& glUniform2d) (GLint location, GLdouble x, GLdouble y); +extern void (* const& glUniform3d) (GLint location, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glUniform4d) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glUniform1dv) (GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glUniform2dv) (GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glUniform3dv) (GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glUniform4dv) (GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glUniformMatrix2dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix3dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix4dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix2x3dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix2x4dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix3x2dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix3x4dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix4x2dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glUniformMatrix4x3dv) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glGetUniformdv) (GLuint program, GLint location, GLdouble *params); +extern GLint (* const& glGetSubroutineUniformLocation) (GLuint program, GLenum shadertype, const GLchar *name); +extern GLuint (* const& glGetSubroutineIndex) (GLuint program, GLenum shadertype, const GLchar *name); +extern void (* const& glGetActiveSubroutineUniformiv) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +extern void (* const& glGetActiveSubroutineUniformName) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +extern void (* const& glGetActiveSubroutineName) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +extern void (* const& glUniformSubroutinesuiv) (GLenum shadertype, GLsizei count, const GLuint *indices); +extern void (* const& glGetUniformSubroutineuiv) (GLenum shadertype, GLint location, GLuint *params); +extern void (* const& glGetProgramStageiv) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +extern void (* const& glPatchParameteri) (GLenum pname, GLint value); +extern void (* const& glPatchParameterfv) (GLenum pname, const GLfloat *values); +extern void (* const& glBindTransformFeedback) (GLenum target, GLuint id); +extern void (* const& glDeleteTransformFeedbacks) (GLsizei n, const GLuint *ids); +extern void (* const& glGenTransformFeedbacks) (GLsizei n, GLuint *ids); +extern GLboolean (* const& glIsTransformFeedback) (GLuint id); +extern void (* const& glPauseTransformFeedback) (); +extern void (* const& glResumeTransformFeedback) (); +extern void (* const& glDrawTransformFeedback) (GLenum mode, GLuint id); +extern void (* const& glDrawTransformFeedbackStream) (GLenum mode, GLuint id, GLuint stream); +extern void (* const& glBeginQueryIndexed) (GLenum target, GLuint index, GLuint id); +extern void (* const& glEndQueryIndexed) (GLenum target, GLuint index); +extern void (* const& glGetQueryIndexediv) (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +enum +{ + GL_FIXED = 0x140C, + GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A, + GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B, + GL_LOW_FLOAT = 0x8DF0, + GL_MEDIUM_FLOAT = 0x8DF1, + GL_HIGH_FLOAT = 0x8DF2, + GL_LOW_INT = 0x8DF3, + GL_MEDIUM_INT = 0x8DF4, + GL_HIGH_INT = 0x8DF5, + GL_SHADER_COMPILER = 0x8DFA, + GL_SHADER_BINARY_FORMATS = 0x8DF8, + GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9, + GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB, + GL_MAX_VARYING_VECTORS = 0x8DFC, + GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD, + GL_RGB565 = 0x8D62, + GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257, + GL_PROGRAM_BINARY_LENGTH = 0x8741, + GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE, + GL_PROGRAM_BINARY_FORMATS = 0x87FF, + GL_VERTEX_SHADER_BIT = 0x00000001, + GL_FRAGMENT_SHADER_BIT = 0x00000002, + GL_GEOMETRY_SHADER_BIT = 0x00000004, + GL_TESS_CONTROL_SHADER_BIT = 0x00000008, + GL_TESS_EVALUATION_SHADER_BIT = 0x00000010, + GL_ALL_SHADER_BITS = 0xFFFFFFFF, + GL_PROGRAM_SEPARABLE = 0x8258, + GL_ACTIVE_PROGRAM = 0x8259, + GL_PROGRAM_PIPELINE_BINDING = 0x825A, + GL_MAX_VIEWPORTS = 0x825B, + GL_VIEWPORT_SUBPIXEL_BITS = 0x825C, + GL_VIEWPORT_BOUNDS_RANGE = 0x825D, + GL_LAYER_PROVOKING_VERTEX = 0x825E, + GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F, + GL_UNDEFINED_VERTEX = 0x8260, +}; +extern void (* const& glReleaseShaderCompiler) (); +extern void (* const& glShaderBinary) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +extern void (* const& glGetShaderPrecisionFormat) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +extern void (* const& glDepthRangef) (GLfloat n, GLfloat f); +extern void (* const& glClearDepthf) (GLfloat d); +extern void (* const& glGetProgramBinary) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +extern void (* const& glProgramBinary) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +extern void (* const& glProgramParameteri) (GLuint program, GLenum pname, GLint value); +extern void (* const& glUseProgramStages) (GLuint pipeline, GLbitfield stages, GLuint program); +extern void (* const& glActiveShaderProgram) (GLuint pipeline, GLuint program); +extern GLuint (* const& glCreateShaderProgramv) (GLenum type, GLsizei count, const GLchar *const*strings); +extern void (* const& glBindProgramPipeline) (GLuint pipeline); +extern void (* const& glDeleteProgramPipelines) (GLsizei n, const GLuint *pipelines); +extern void (* const& glGenProgramPipelines) (GLsizei n, GLuint *pipelines); +extern GLboolean (* const& glIsProgramPipeline) (GLuint pipeline); +extern void (* const& glGetProgramPipelineiv) (GLuint pipeline, GLenum pname, GLint *params); +extern void (* const& glProgramUniform1i) (GLuint program, GLint location, GLint v0); +extern void (* const& glProgramUniform1iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform1f) (GLuint program, GLint location, GLfloat v0); +extern void (* const& glProgramUniform1fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform1d) (GLuint program, GLint location, GLdouble v0); +extern void (* const& glProgramUniform1dv) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniform1ui) (GLuint program, GLint location, GLuint v0); +extern void (* const& glProgramUniform1uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform2i) (GLuint program, GLint location, GLint v0, GLint v1); +extern void (* const& glProgramUniform2iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform2f) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +extern void (* const& glProgramUniform2fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform2d) (GLuint program, GLint location, GLdouble v0, GLdouble v1); +extern void (* const& glProgramUniform2dv) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniform2ui) (GLuint program, GLint location, GLuint v0, GLuint v1); +extern void (* const& glProgramUniform2uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform3i) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +extern void (* const& glProgramUniform3iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform3f) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void (* const& glProgramUniform3fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform3d) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +extern void (* const& glProgramUniform3dv) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniform3ui) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void (* const& glProgramUniform3uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform4i) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void (* const& glProgramUniform4iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform4f) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void (* const& glProgramUniform4fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform4d) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +extern void (* const& glProgramUniform4dv) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniform4ui) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void (* const& glProgramUniform4uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniformMatrix2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix3dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix4dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix2x3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2x4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2x3dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix3x2dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix2x4dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix4x2dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix3x4dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix4x3dv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glValidateProgramPipeline) (GLuint pipeline); +extern void (* const& glGetProgramPipelineInfoLog) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glVertexAttribL1d) (GLuint index, GLdouble x); +extern void (* const& glVertexAttribL2d) (GLuint index, GLdouble x, GLdouble y); +extern void (* const& glVertexAttribL3d) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glVertexAttribL4d) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glVertexAttribL1dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribL2dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribL3dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribL4dv) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribLPointer) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glGetVertexAttribLdv) (GLuint index, GLenum pname, GLdouble *params); +extern void (* const& glViewportArrayv) (GLuint first, GLsizei count, const GLfloat *v); +extern void (* const& glViewportIndexedf) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +extern void (* const& glViewportIndexedfv) (GLuint index, const GLfloat *v); +extern void (* const& glScissorArrayv) (GLuint first, GLsizei count, const GLint *v); +extern void (* const& glScissorIndexed) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +extern void (* const& glScissorIndexedv) (GLuint index, const GLint *v); +extern void (* const& glDepthRangeArrayv) (GLuint first, GLsizei count, const GLdouble *v); +extern void (* const& glDepthRangeIndexed) (GLuint index, GLdouble n, GLdouble f); +extern void (* const& glGetFloati_v) (GLenum target, GLuint index, GLfloat *data); +extern void (* const& glGetDoublei_v) (GLenum target, GLuint index, GLdouble *data); +#endif + +#ifndef GL_VERSION_4_2 +#define GL_VERSION_4_2 1 +enum +{ + GL_COPY_READ_BUFFER_BINDING = 0x8F36, + GL_COPY_WRITE_BUFFER_BINDING = 0x8F37, + GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24, + GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23, + GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127, + GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128, + GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129, + GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A, + GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B, + GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C, + GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D, + GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E, + GL_NUM_SAMPLE_COUNTS = 0x9380, + GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC, + GL_ATOMIC_COUNTER_BUFFER = 0x92C0, + GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1, + GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2, + GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3, + GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4, + GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5, + GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB, + GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE, + GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF, + GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0, + GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1, + GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4, + GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5, + GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6, + GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7, + GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8, + GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC, + GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9, + GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA, + GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB, + GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001, + GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002, + GL_UNIFORM_BARRIER_BIT = 0x00000004, + GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008, + GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020, + GL_COMMAND_BARRIER_BIT = 0x00000040, + GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080, + GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100, + GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200, + GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400, + GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800, + GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000, + GL_ALL_BARRIER_BITS = 0xFFFFFFFF, + GL_MAX_IMAGE_UNITS = 0x8F38, + GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39, + GL_IMAGE_BINDING_NAME = 0x8F3A, + GL_IMAGE_BINDING_LEVEL = 0x8F3B, + GL_IMAGE_BINDING_LAYERED = 0x8F3C, + GL_IMAGE_BINDING_LAYER = 0x8F3D, + GL_IMAGE_BINDING_ACCESS = 0x8F3E, + GL_IMAGE_1D = 0x904C, + GL_IMAGE_2D = 0x904D, + GL_IMAGE_3D = 0x904E, + GL_IMAGE_2D_RECT = 0x904F, + GL_IMAGE_CUBE = 0x9050, + GL_IMAGE_BUFFER = 0x9051, + GL_IMAGE_1D_ARRAY = 0x9052, + GL_IMAGE_2D_ARRAY = 0x9053, + GL_IMAGE_CUBE_MAP_ARRAY = 0x9054, + GL_IMAGE_2D_MULTISAMPLE = 0x9055, + GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056, + GL_INT_IMAGE_1D = 0x9057, + GL_INT_IMAGE_2D = 0x9058, + GL_INT_IMAGE_3D = 0x9059, + GL_INT_IMAGE_2D_RECT = 0x905A, + GL_INT_IMAGE_CUBE = 0x905B, + GL_INT_IMAGE_BUFFER = 0x905C, + GL_INT_IMAGE_1D_ARRAY = 0x905D, + GL_INT_IMAGE_2D_ARRAY = 0x905E, + GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F, + GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060, + GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061, + GL_UNSIGNED_INT_IMAGE_1D = 0x9062, + GL_UNSIGNED_INT_IMAGE_2D = 0x9063, + GL_UNSIGNED_INT_IMAGE_3D = 0x9064, + GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065, + GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066, + GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067, + GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068, + GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069, + GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A, + GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B, + GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C, + GL_MAX_IMAGE_SAMPLES = 0x906D, + GL_IMAGE_BINDING_FORMAT = 0x906E, + GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7, + GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8, + GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9, + GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA, + GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB, + GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC, + GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD, + GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE, + GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF, + GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C, + GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D, + GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E, + GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F, + GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F, +}; +extern void (* const& glDrawArraysInstancedBaseInstance) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +extern void (* const& glDrawElementsInstancedBaseInstance) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +extern void (* const& glDrawElementsInstancedBaseVertexBaseInstance) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +extern void (* const& glGetInternalformativ) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); +extern void (* const& glGetActiveAtomicCounterBufferiv) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); +extern void (* const& glBindImageTexture) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +extern void (* const& glMemoryBarrier) (GLbitfield barriers); +extern void (* const& glTexStorage1D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +extern void (* const& glTexStorage2D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glTexStorage3D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +extern void (* const& glDrawTransformFeedbackInstanced) (GLenum mode, GLuint id, GLsizei instancecount); +extern void (* const& glDrawTransformFeedbackStreamInstanced) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); +#endif + +#ifndef GL_VERSION_4_3 +#define GL_VERSION_4_3 1 +enum +{ + GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9, + GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E, + GL_COMPRESSED_RGB8_ETC2 = 0x9274, + GL_COMPRESSED_SRGB8_ETC2 = 0x9275, + GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276, + GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277, + GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278, + GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279, + GL_COMPRESSED_R11_EAC = 0x9270, + GL_COMPRESSED_SIGNED_R11_EAC = 0x9271, + GL_COMPRESSED_RG11_EAC = 0x9272, + GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273, + GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69, + GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A, + GL_MAX_ELEMENT_INDEX = 0x8D6B, + GL_COMPUTE_SHADER = 0x91B9, + GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB, + GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC, + GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD, + GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262, + GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263, + GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264, + GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265, + GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266, + GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB, + GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE, + GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF, + GL_COMPUTE_WORK_GROUP_SIZE = 0x8267, + GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED, + GL_DISPATCH_INDIRECT_BUFFER = 0x90EE, + GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF, + GL_COMPUTE_SHADER_BIT = 0x00000020, + GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242, + GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243, + GL_DEBUG_CALLBACK_FUNCTION = 0x8244, + GL_DEBUG_CALLBACK_USER_PARAM = 0x8245, + GL_DEBUG_SOURCE_API = 0x8246, + GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247, + GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248, + GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249, + GL_DEBUG_SOURCE_APPLICATION = 0x824A, + GL_DEBUG_SOURCE_OTHER = 0x824B, + GL_DEBUG_TYPE_ERROR = 0x824C, + GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D, + GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E, + GL_DEBUG_TYPE_PORTABILITY = 0x824F, + GL_DEBUG_TYPE_PERFORMANCE = 0x8250, + GL_DEBUG_TYPE_OTHER = 0x8251, + GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143, + GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144, + GL_DEBUG_LOGGED_MESSAGES = 0x9145, + GL_DEBUG_SEVERITY_HIGH = 0x9146, + GL_DEBUG_SEVERITY_MEDIUM = 0x9147, + GL_DEBUG_SEVERITY_LOW = 0x9148, + GL_DEBUG_TYPE_MARKER = 0x8268, + GL_DEBUG_TYPE_PUSH_GROUP = 0x8269, + GL_DEBUG_TYPE_POP_GROUP = 0x826A, + GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B, + GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C, + GL_DEBUG_GROUP_STACK_DEPTH = 0x826D, + GL_BUFFER = 0x82E0, + GL_SHADER = 0x82E1, + GL_PROGRAM = 0x82E2, + GL_QUERY = 0x82E3, + GL_PROGRAM_PIPELINE = 0x82E4, + GL_SAMPLER = 0x82E6, + GL_MAX_LABEL_LENGTH = 0x82E8, + GL_DEBUG_OUTPUT = 0x92E0, + GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002, + GL_MAX_UNIFORM_LOCATIONS = 0x826E, + GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310, + GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311, + GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312, + GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313, + GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314, + GL_MAX_FRAMEBUFFER_WIDTH = 0x9315, + GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316, + GL_MAX_FRAMEBUFFER_LAYERS = 0x9317, + GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318, + GL_INTERNALFORMAT_SUPPORTED = 0x826F, + GL_INTERNALFORMAT_PREFERRED = 0x8270, + GL_INTERNALFORMAT_RED_SIZE = 0x8271, + GL_INTERNALFORMAT_GREEN_SIZE = 0x8272, + GL_INTERNALFORMAT_BLUE_SIZE = 0x8273, + GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274, + GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275, + GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276, + GL_INTERNALFORMAT_SHARED_SIZE = 0x8277, + GL_INTERNALFORMAT_RED_TYPE = 0x8278, + GL_INTERNALFORMAT_GREEN_TYPE = 0x8279, + GL_INTERNALFORMAT_BLUE_TYPE = 0x827A, + GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B, + GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C, + GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D, + GL_MAX_WIDTH = 0x827E, + GL_MAX_HEIGHT = 0x827F, + GL_MAX_DEPTH = 0x8280, + GL_MAX_LAYERS = 0x8281, + GL_MAX_COMBINED_DIMENSIONS = 0x8282, + GL_COLOR_COMPONENTS = 0x8283, + GL_DEPTH_COMPONENTS = 0x8284, + GL_STENCIL_COMPONENTS = 0x8285, + GL_COLOR_RENDERABLE = 0x8286, + GL_DEPTH_RENDERABLE = 0x8287, + GL_STENCIL_RENDERABLE = 0x8288, + GL_FRAMEBUFFER_RENDERABLE = 0x8289, + GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A, + GL_FRAMEBUFFER_BLEND = 0x828B, + GL_READ_PIXELS = 0x828C, + GL_READ_PIXELS_FORMAT = 0x828D, + GL_READ_PIXELS_TYPE = 0x828E, + GL_TEXTURE_IMAGE_FORMAT = 0x828F, + GL_TEXTURE_IMAGE_TYPE = 0x8290, + GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291, + GL_GET_TEXTURE_IMAGE_TYPE = 0x8292, + GL_MIPMAP = 0x8293, + GL_MANUAL_GENERATE_MIPMAP = 0x8294, + GL_AUTO_GENERATE_MIPMAP = 0x8295, + GL_COLOR_ENCODING = 0x8296, + GL_SRGB_READ = 0x8297, + GL_SRGB_WRITE = 0x8298, + GL_FILTER = 0x829A, + GL_VERTEX_TEXTURE = 0x829B, + GL_TESS_CONTROL_TEXTURE = 0x829C, + GL_TESS_EVALUATION_TEXTURE = 0x829D, + GL_GEOMETRY_TEXTURE = 0x829E, + GL_FRAGMENT_TEXTURE = 0x829F, + GL_COMPUTE_TEXTURE = 0x82A0, + GL_TEXTURE_SHADOW = 0x82A1, + GL_TEXTURE_GATHER = 0x82A2, + GL_TEXTURE_GATHER_SHADOW = 0x82A3, + GL_SHADER_IMAGE_LOAD = 0x82A4, + GL_SHADER_IMAGE_STORE = 0x82A5, + GL_SHADER_IMAGE_ATOMIC = 0x82A6, + GL_IMAGE_TEXEL_SIZE = 0x82A7, + GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8, + GL_IMAGE_PIXEL_FORMAT = 0x82A9, + GL_IMAGE_PIXEL_TYPE = 0x82AA, + GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC, + GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD, + GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE, + GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF, + GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1, + GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2, + GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3, + GL_CLEAR_BUFFER = 0x82B4, + GL_TEXTURE_VIEW = 0x82B5, + GL_VIEW_COMPATIBILITY_CLASS = 0x82B6, + GL_FULL_SUPPORT = 0x82B7, + GL_CAVEAT_SUPPORT = 0x82B8, + GL_IMAGE_CLASS_4_X_32 = 0x82B9, + GL_IMAGE_CLASS_2_X_32 = 0x82BA, + GL_IMAGE_CLASS_1_X_32 = 0x82BB, + GL_IMAGE_CLASS_4_X_16 = 0x82BC, + GL_IMAGE_CLASS_2_X_16 = 0x82BD, + GL_IMAGE_CLASS_1_X_16 = 0x82BE, + GL_IMAGE_CLASS_4_X_8 = 0x82BF, + GL_IMAGE_CLASS_2_X_8 = 0x82C0, + GL_IMAGE_CLASS_1_X_8 = 0x82C1, + GL_IMAGE_CLASS_11_11_10 = 0x82C2, + GL_IMAGE_CLASS_10_10_10_2 = 0x82C3, + GL_VIEW_CLASS_128_BITS = 0x82C4, + GL_VIEW_CLASS_96_BITS = 0x82C5, + GL_VIEW_CLASS_64_BITS = 0x82C6, + GL_VIEW_CLASS_48_BITS = 0x82C7, + GL_VIEW_CLASS_32_BITS = 0x82C8, + GL_VIEW_CLASS_24_BITS = 0x82C9, + GL_VIEW_CLASS_16_BITS = 0x82CA, + GL_VIEW_CLASS_8_BITS = 0x82CB, + GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC, + GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD, + GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE, + GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF, + GL_VIEW_CLASS_RGTC1_RED = 0x82D0, + GL_VIEW_CLASS_RGTC2_RG = 0x82D1, + GL_VIEW_CLASS_BPTC_UNORM = 0x82D2, + GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3, + GL_UNIFORM = 0x92E1, + GL_UNIFORM_BLOCK = 0x92E2, + GL_PROGRAM_INPUT = 0x92E3, + GL_PROGRAM_OUTPUT = 0x92E4, + GL_BUFFER_VARIABLE = 0x92E5, + GL_SHADER_STORAGE_BLOCK = 0x92E6, + GL_VERTEX_SUBROUTINE = 0x92E8, + GL_TESS_CONTROL_SUBROUTINE = 0x92E9, + GL_TESS_EVALUATION_SUBROUTINE = 0x92EA, + GL_GEOMETRY_SUBROUTINE = 0x92EB, + GL_FRAGMENT_SUBROUTINE = 0x92EC, + GL_COMPUTE_SUBROUTINE = 0x92ED, + GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE, + GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF, + GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0, + GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1, + GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2, + GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3, + GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4, + GL_ACTIVE_RESOURCES = 0x92F5, + GL_MAX_NAME_LENGTH = 0x92F6, + GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7, + GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8, + GL_NAME_LENGTH = 0x92F9, + GL_TYPE = 0x92FA, + GL_ARRAY_SIZE = 0x92FB, + GL_OFFSET = 0x92FC, + GL_BLOCK_INDEX = 0x92FD, + GL_ARRAY_STRIDE = 0x92FE, + GL_MATRIX_STRIDE = 0x92FF, + GL_IS_ROW_MAJOR = 0x9300, + GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301, + GL_BUFFER_BINDING = 0x9302, + GL_BUFFER_DATA_SIZE = 0x9303, + GL_NUM_ACTIVE_VARIABLES = 0x9304, + GL_ACTIVE_VARIABLES = 0x9305, + GL_REFERENCED_BY_VERTEX_SHADER = 0x9306, + GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307, + GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308, + GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309, + GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A, + GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B, + GL_TOP_LEVEL_ARRAY_SIZE = 0x930C, + GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D, + GL_LOCATION = 0x930E, + GL_LOCATION_INDEX = 0x930F, + GL_IS_PER_PATCH = 0x92E7, + GL_SHADER_STORAGE_BUFFER = 0x90D2, + GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3, + GL_SHADER_STORAGE_BUFFER_START = 0x90D4, + GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5, + GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6, + GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7, + GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8, + GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9, + GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA, + GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB, + GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC, + GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD, + GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE, + GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF, + GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000, + GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39, + GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA, + GL_TEXTURE_BUFFER_OFFSET = 0x919D, + GL_TEXTURE_BUFFER_SIZE = 0x919E, + GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F, + GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB, + GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC, + GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD, + GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE, + GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF, + GL_VERTEX_ATTRIB_BINDING = 0x82D4, + GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5, + GL_VERTEX_BINDING_DIVISOR = 0x82D6, + GL_VERTEX_BINDING_OFFSET = 0x82D7, + GL_VERTEX_BINDING_STRIDE = 0x82D8, + GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9, + GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA, + GL_VERTEX_BINDING_BUFFER = 0x8F4F, + GL_DISPLAY_LIST = 0x82E7, +}; +extern void (* const& glClearBufferData) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); +extern void (* const& glClearBufferSubData) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +extern void (* const& glDispatchCompute) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +extern void (* const& glDispatchComputeIndirect) (GLintptr indirect); +extern void (* const& glCopyImageSubData) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +extern void (* const& glFramebufferParameteri) (GLenum target, GLenum pname, GLint param); +extern void (* const& glGetFramebufferParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetInternalformati64v) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); +extern void (* const& glInvalidateTexSubImage) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +extern void (* const& glInvalidateTexImage) (GLuint texture, GLint level); +extern void (* const& glInvalidateBufferSubData) (GLuint buffer, GLintptr offset, GLsizeiptr length); +extern void (* const& glInvalidateBufferData) (GLuint buffer); +extern void (* const& glInvalidateFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +extern void (* const& glInvalidateSubFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glMultiDrawArraysIndirect) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +extern void (* const& glMultiDrawElementsIndirect) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +extern void (* const& glGetProgramInterfaceiv) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); +extern GLuint (* const& glGetProgramResourceIndex) (GLuint program, GLenum programInterface, const GLchar *name); +extern void (* const& glGetProgramResourceName) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +extern void (* const& glGetProgramResourceiv) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); +extern GLint (* const& glGetProgramResourceLocation) (GLuint program, GLenum programInterface, const GLchar *name); +extern GLint (* const& glGetProgramResourceLocationIndex) (GLuint program, GLenum programInterface, const GLchar *name); +extern void (* const& glShaderStorageBlockBinding) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +extern void (* const& glTexBufferRange) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glTexStorage2DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +extern void (* const& glTexStorage3DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +extern void (* const& glTextureView) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +extern void (* const& glBindVertexBuffer) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +extern void (* const& glVertexAttribFormat) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +extern void (* const& glVertexAttribIFormat) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +extern void (* const& glVertexAttribLFormat) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +extern void (* const& glVertexAttribBinding) (GLuint attribindex, GLuint bindingindex); +extern void (* const& glVertexBindingDivisor) (GLuint bindingindex, GLuint divisor); +extern void (* const& glDebugMessageControl) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +extern void (* const& glDebugMessageInsert) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +extern void (* const& glDebugMessageCallback) (GLDEBUGPROC callback, const void *userParam); +extern GLuint (* const& glGetDebugMessageLog) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +extern void (* const& glPushDebugGroup) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +extern void (* const& glPopDebugGroup) (); +extern void (* const& glObjectLabel) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectLabel) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +extern void (* const& glObjectPtrLabel) (const void *ptr, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectPtrLabel) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +#ifndef GL_VERSION_4_4 +#define GL_VERSION_4_4 1 +enum +{ + GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5, + GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221, + GL_TEXTURE_BUFFER_BINDING = 0x8C2A, + GL_MAP_PERSISTENT_BIT = 0x0040, + GL_MAP_COHERENT_BIT = 0x0080, + GL_DYNAMIC_STORAGE_BIT = 0x0100, + GL_CLIENT_STORAGE_BIT = 0x0200, + GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000, + GL_BUFFER_IMMUTABLE_STORAGE = 0x821F, + GL_BUFFER_STORAGE_FLAGS = 0x8220, + GL_CLEAR_TEXTURE = 0x9365, + GL_LOCATION_COMPONENT = 0x934A, + GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B, + GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C, + GL_QUERY_BUFFER = 0x9192, + GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000, + GL_QUERY_BUFFER_BINDING = 0x9193, + GL_QUERY_RESULT_NO_WAIT = 0x9194, + GL_MIRROR_CLAMP_TO_EDGE = 0x8743, +}; +extern void (* const& glBufferStorage) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +extern void (* const& glClearTexImage) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +extern void (* const& glClearTexSubImage) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); +extern void (* const& glBindBuffersBase) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); +extern void (* const& glBindBuffersRange) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +extern void (* const& glBindTextures) (GLuint first, GLsizei count, const GLuint *textures); +extern void (* const& glBindSamplers) (GLuint first, GLsizei count, const GLuint *samplers); +extern void (* const& glBindImageTextures) (GLuint first, GLsizei count, const GLuint *textures); +extern void (* const& glBindVertexBuffers) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +#endif + +#ifndef GL_VERSION_4_5 +#define GL_VERSION_4_5 1 +enum +{ + GL_CONTEXT_LOST = 0x0507, + GL_NEGATIVE_ONE_TO_ONE = 0x935E, + GL_ZERO_TO_ONE = 0x935F, + GL_CLIP_ORIGIN = 0x935C, + GL_CLIP_DEPTH_MODE = 0x935D, + GL_QUERY_WAIT_INVERTED = 0x8E17, + GL_QUERY_NO_WAIT_INVERTED = 0x8E18, + GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19, + GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A, + GL_MAX_CULL_DISTANCES = 0x82F9, + GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA, + GL_TEXTURE_TARGET = 0x1006, + GL_QUERY_TARGET = 0x82EA, + GL_GUILTY_CONTEXT_RESET = 0x8253, + GL_INNOCENT_CONTEXT_RESET = 0x8254, + GL_UNKNOWN_CONTEXT_RESET = 0x8255, + GL_RESET_NOTIFICATION_STRATEGY = 0x8256, + GL_LOSE_CONTEXT_ON_RESET = 0x8252, + GL_NO_RESET_NOTIFICATION = 0x8261, + GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004, + GL_COLOR_TABLE = 0x80D0, + GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1, + GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2, + GL_PROXY_COLOR_TABLE = 0x80D3, + GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4, + GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5, + GL_CONVOLUTION_1D = 0x8010, + GL_CONVOLUTION_2D = 0x8011, + GL_SEPARABLE_2D = 0x8012, + GL_HISTOGRAM = 0x8024, + GL_PROXY_HISTOGRAM = 0x8025, + GL_MINMAX = 0x802E, + GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB, + GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC, +}; +extern void (* const& glClipControl) (GLenum origin, GLenum depth); +extern void (* const& glCreateTransformFeedbacks) (GLsizei n, GLuint *ids); +extern void (* const& glTransformFeedbackBufferBase) (GLuint xfb, GLuint index, GLuint buffer); +extern void (* const& glTransformFeedbackBufferRange) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glGetTransformFeedbackiv) (GLuint xfb, GLenum pname, GLint *param); +extern void (* const& glGetTransformFeedbacki_v) (GLuint xfb, GLenum pname, GLuint index, GLint *param); +extern void (* const& glGetTransformFeedbacki64_v) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); +extern void (* const& glCreateBuffers) (GLsizei n, GLuint *buffers); +extern void (* const& glNamedBufferStorage) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +extern void (* const& glNamedBufferData) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +extern void (* const& glNamedBufferSubData) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +extern void (* const& glCopyNamedBufferSubData) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +extern void (* const& glClearNamedBufferData) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +extern void (* const& glClearNamedBufferSubData) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +extern void * (* const& glMapNamedBuffer) (GLuint buffer, GLenum access); +extern void * (* const& glMapNamedBufferRange) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +extern GLboolean (* const& glUnmapNamedBuffer) (GLuint buffer); +extern void (* const& glFlushMappedNamedBufferRange) (GLuint buffer, GLintptr offset, GLsizeiptr length); +extern void (* const& glGetNamedBufferParameteriv) (GLuint buffer, GLenum pname, GLint *params); +extern void (* const& glGetNamedBufferParameteri64v) (GLuint buffer, GLenum pname, GLint64 *params); +extern void (* const& glGetNamedBufferPointerv) (GLuint buffer, GLenum pname, void **params); +extern void (* const& glGetNamedBufferSubData) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +extern void (* const& glCreateFramebuffers) (GLsizei n, GLuint *framebuffers); +extern void (* const& glNamedFramebufferRenderbuffer) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void (* const& glNamedFramebufferParameteri) (GLuint framebuffer, GLenum pname, GLint param); +extern void (* const& glNamedFramebufferTexture) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +extern void (* const& glNamedFramebufferTextureLayer) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +extern void (* const& glNamedFramebufferDrawBuffer) (GLuint framebuffer, GLenum buf); +extern void (* const& glNamedFramebufferDrawBuffers) (GLuint framebuffer, GLsizei n, const GLenum *bufs); +extern void (* const& glNamedFramebufferReadBuffer) (GLuint framebuffer, GLenum src); +extern void (* const& glInvalidateNamedFramebufferData) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); +extern void (* const& glInvalidateNamedFramebufferSubData) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glClearNamedFramebufferiv) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); +extern void (* const& glClearNamedFramebufferuiv) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); +extern void (* const& glClearNamedFramebufferfv) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); +extern void (* const& glClearNamedFramebufferfi) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +extern void (* const& glBlitNamedFramebuffer) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern GLenum (* const& glCheckNamedFramebufferStatus) (GLuint framebuffer, GLenum target); +extern void (* const& glGetNamedFramebufferParameteriv) (GLuint framebuffer, GLenum pname, GLint *param); +extern void (* const& glGetNamedFramebufferAttachmentParameteriv) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +extern void (* const& glCreateRenderbuffers) (GLsizei n, GLuint *renderbuffers); +extern void (* const& glNamedRenderbufferStorage) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glNamedRenderbufferStorageMultisample) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glGetNamedRenderbufferParameteriv) (GLuint renderbuffer, GLenum pname, GLint *params); +extern void (* const& glCreateTextures) (GLenum target, GLsizei n, GLuint *textures); +extern void (* const& glTextureBuffer) (GLuint texture, GLenum internalformat, GLuint buffer); +extern void (* const& glTextureBufferRange) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glTextureStorage1D) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); +extern void (* const& glTextureStorage2D) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glTextureStorage3D) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +extern void (* const& glTextureStorage2DMultisample) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +extern void (* const& glTextureStorage3DMultisample) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +extern void (* const& glTextureSubImage1D) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTextureSubImage2D) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTextureSubImage3D) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCompressedTextureSubImage1D) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTextureSubImage2D) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTextureSubImage3D) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCopyTextureSubImage1D) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void (* const& glCopyTextureSubImage2D) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glCopyTextureSubImage3D) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glTextureParameterf) (GLuint texture, GLenum pname, GLfloat param); +extern void (* const& glTextureParameterfv) (GLuint texture, GLenum pname, const GLfloat *param); +extern void (* const& glTextureParameteri) (GLuint texture, GLenum pname, GLint param); +extern void (* const& glTextureParameterIiv) (GLuint texture, GLenum pname, const GLint *params); +extern void (* const& glTextureParameterIuiv) (GLuint texture, GLenum pname, const GLuint *params); +extern void (* const& glTextureParameteriv) (GLuint texture, GLenum pname, const GLint *param); +extern void (* const& glGenerateTextureMipmap) (GLuint texture); +extern void (* const& glBindTextureUnit) (GLuint unit, GLuint texture); +extern void (* const& glGetTextureImage) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +extern void (* const& glGetCompressedTextureImage) (GLuint texture, GLint level, GLsizei bufSize, void *pixels); +extern void (* const& glGetTextureLevelParameterfv) (GLuint texture, GLint level, GLenum pname, GLfloat *params); +extern void (* const& glGetTextureLevelParameteriv) (GLuint texture, GLint level, GLenum pname, GLint *params); +extern void (* const& glGetTextureParameterfv) (GLuint texture, GLenum pname, GLfloat *params); +extern void (* const& glGetTextureParameterIiv) (GLuint texture, GLenum pname, GLint *params); +extern void (* const& glGetTextureParameterIuiv) (GLuint texture, GLenum pname, GLuint *params); +extern void (* const& glGetTextureParameteriv) (GLuint texture, GLenum pname, GLint *params); +extern void (* const& glCreateVertexArrays) (GLsizei n, GLuint *arrays); +extern void (* const& glDisableVertexArrayAttrib) (GLuint vaobj, GLuint index); +extern void (* const& glEnableVertexArrayAttrib) (GLuint vaobj, GLuint index); +extern void (* const& glVertexArrayElementBuffer) (GLuint vaobj, GLuint buffer); +extern void (* const& glVertexArrayVertexBuffer) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +extern void (* const& glVertexArrayVertexBuffers) (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +extern void (* const& glVertexArrayAttribBinding) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +extern void (* const& glVertexArrayAttribFormat) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +extern void (* const& glVertexArrayAttribIFormat) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +extern void (* const& glVertexArrayAttribLFormat) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +extern void (* const& glVertexArrayBindingDivisor) (GLuint vaobj, GLuint bindingindex, GLuint divisor); +extern void (* const& glGetVertexArrayiv) (GLuint vaobj, GLenum pname, GLint *param); +extern void (* const& glGetVertexArrayIndexediv) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +extern void (* const& glGetVertexArrayIndexed64iv) (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); +extern void (* const& glCreateSamplers) (GLsizei n, GLuint *samplers); +extern void (* const& glCreateProgramPipelines) (GLsizei n, GLuint *pipelines); +extern void (* const& glCreateQueries) (GLenum target, GLsizei n, GLuint *ids); +extern void (* const& glGetQueryBufferObjecti64v) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +extern void (* const& glGetQueryBufferObjectiv) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +extern void (* const& glGetQueryBufferObjectui64v) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +extern void (* const& glGetQueryBufferObjectuiv) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +extern void (* const& glMemoryBarrierByRegion) (GLbitfield barriers); +extern void (* const& glGetTextureSubImage) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +extern void (* const& glGetCompressedTextureSubImage) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); +extern GLenum (* const& glGetGraphicsResetStatus) (); +extern void (* const& glGetnCompressedTexImage) (GLenum target, GLint lod, GLsizei bufSize, void *pixels); +extern void (* const& glGetnTexImage) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +extern void (* const& glGetnUniformdv) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +extern void (* const& glGetnUniformfv) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +extern void (* const& glGetnUniformiv) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +extern void (* const& glGetnUniformuiv) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +extern void (* const& glReadnPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +extern void (* const& glGetnMapdv) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +extern void (* const& glGetnMapfv) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +extern void (* const& glGetnMapiv) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +extern void (* const& glGetnPixelMapfv) (GLenum map, GLsizei bufSize, GLfloat *values); +extern void (* const& glGetnPixelMapuiv) (GLenum map, GLsizei bufSize, GLuint *values); +extern void (* const& glGetnPixelMapusv) (GLenum map, GLsizei bufSize, GLushort *values); +extern void (* const& glGetnPolygonStipple) (GLsizei bufSize, GLubyte *pattern); +extern void (* const& glGetnColorTable) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +extern void (* const& glGetnConvolutionFilter) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +extern void (* const& glGetnSeparableFilter) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +extern void (* const& glGetnHistogram) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +extern void (* const& glGetnMinmax) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +extern void (* const& glTextureBarrier) (); +#endif + +#ifndef GL_VERSION_4_6 +#define GL_VERSION_4_6 1 +enum +{ + GL_SHADER_BINARY_FORMAT_SPIR_V = 0x9551, + GL_SPIR_V_BINARY = 0x9552, + GL_PARAMETER_BUFFER = 0x80EE, + GL_PARAMETER_BUFFER_BINDING = 0x80EF, + GL_CONTEXT_FLAG_NO_ERROR_BIT = 0x00000008, + GL_VERTICES_SUBMITTED = 0x82EE, + GL_PRIMITIVES_SUBMITTED = 0x82EF, + GL_VERTEX_SHADER_INVOCATIONS = 0x82F0, + GL_TESS_CONTROL_SHADER_PATCHES = 0x82F1, + GL_TESS_EVALUATION_SHADER_INVOCATIONS = 0x82F2, + GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED = 0x82F3, + GL_FRAGMENT_SHADER_INVOCATIONS = 0x82F4, + GL_COMPUTE_SHADER_INVOCATIONS = 0x82F5, + GL_CLIPPING_INPUT_PRIMITIVES = 0x82F6, + GL_CLIPPING_OUTPUT_PRIMITIVES = 0x82F7, + GL_POLYGON_OFFSET_CLAMP = 0x8E1B, + GL_SPIR_V_EXTENSIONS = 0x9553, + GL_NUM_SPIR_V_EXTENSIONS = 0x9554, + GL_TEXTURE_MAX_ANISOTROPY = 0x84FE, + GL_MAX_TEXTURE_MAX_ANISOTROPY = 0x84FF, + GL_TRANSFORM_FEEDBACK_OVERFLOW = 0x82EC, + GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW = 0x82ED, +}; +extern void (* const& glSpecializeShader) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); +extern void (* const& glMultiDrawArraysIndirectCount) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +extern void (* const& glMultiDrawElementsIndirectCount) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +extern void (* const& glPolygonOffsetClamp) (GLfloat factor, GLfloat units, GLfloat clamp); +#endif + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 +enum +{ + GL_MULTISAMPLE_3DFX = 0x86B2, + GL_SAMPLE_BUFFERS_3DFX = 0x86B3, + GL_SAMPLES_3DFX = 0x86B4, + GL_MULTISAMPLE_BIT_3DFX = 0x20000000, +}; +#endif + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 +extern void (* const& glTbufferMask3DFX) (GLuint mask); +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 +enum +{ + GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0, + GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1, +}; +#endif + +#ifndef GL_AMD_blend_minmax_factor +#define GL_AMD_blend_minmax_factor 1 +enum +{ + GL_FACTOR_MIN_AMD = 0x901C, + GL_FACTOR_MAX_AMD = 0x901D, +}; +#endif + +#ifndef GL_AMD_conservative_depth +#define GL_AMD_conservative_depth 1 +#endif + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 +enum +{ + GL_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143, + GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144, + GL_DEBUG_LOGGED_MESSAGES_AMD = 0x9145, + GL_DEBUG_SEVERITY_HIGH_AMD = 0x9146, + GL_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147, + GL_DEBUG_SEVERITY_LOW_AMD = 0x9148, + GL_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149, + GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A, + GL_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B, + GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C, + GL_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D, + GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E, + GL_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F, + GL_DEBUG_CATEGORY_OTHER_AMD = 0x9150, +}; +extern void (* const& glDebugMessageEnableAMD) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +extern void (* const& glDebugMessageInsertAMD) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); +extern void (* const& glDebugMessageCallbackAMD) (GLDEBUGPROCAMD callback, void *userParam); +extern GLuint (* const& glGetDebugMessageLogAMD) (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); +#endif + +#ifndef GL_AMD_depth_clamp_separate +#define GL_AMD_depth_clamp_separate 1 +enum +{ + GL_DEPTH_CLAMP_NEAR_AMD = 0x901E, + GL_DEPTH_CLAMP_FAR_AMD = 0x901F, +}; +#endif + +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 +extern void (* const& glBlendFuncIndexedAMD) (GLuint buf, GLenum src, GLenum dst); +extern void (* const& glBlendFuncSeparateIndexedAMD) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +extern void (* const& glBlendEquationIndexedAMD) (GLuint buf, GLenum mode); +extern void (* const& glBlendEquationSeparateIndexedAMD) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +#endif + +#ifndef GL_AMD_framebuffer_multisample_advanced +#define GL_AMD_framebuffer_multisample_advanced 1 +enum +{ + GL_RENDERBUFFER_STORAGE_SAMPLES_AMD = 0x91B2, + GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD = 0x91B3, + GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD = 0x91B4, + GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD = 0x91B5, + GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B6, + GL_SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B7, +}; +extern void (* const& glRenderbufferStorageMultisampleAdvancedAMD) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glNamedRenderbufferStorageMultisampleAdvancedAMD) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_AMD_framebuffer_sample_positions +#define GL_AMD_framebuffer_sample_positions 1 +enum +{ + GL_SUBSAMPLE_DISTANCE_AMD = 0x883F, + GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD = 0x91AE, + GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD = 0x91AF, + GL_ALL_PIXELS_AMD = 0xFFFFFFFF, +}; +extern void (* const& glFramebufferSamplePositionsfvAMD) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values); +extern void (* const& glNamedFramebufferSamplePositionsfvAMD) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values); +extern void (* const& glGetFramebufferParameterfvAMD) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); +extern void (* const& glGetNamedFramebufferParameterfvAMD) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); +#endif + +#ifndef GL_AMD_gcn_shader +#define GL_AMD_gcn_shader 1 +#endif + +#ifndef GL_AMD_gpu_shader_half_float +#define GL_AMD_gpu_shader_half_float 1 +enum +{ + GL_FLOAT16_NV = 0x8FF8, + GL_FLOAT16_VEC2_NV = 0x8FF9, + GL_FLOAT16_VEC3_NV = 0x8FFA, + GL_FLOAT16_VEC4_NV = 0x8FFB, + GL_FLOAT16_MAT2_AMD = 0x91C5, + GL_FLOAT16_MAT3_AMD = 0x91C6, + GL_FLOAT16_MAT4_AMD = 0x91C7, + GL_FLOAT16_MAT2x3_AMD = 0x91C8, + GL_FLOAT16_MAT2x4_AMD = 0x91C9, + GL_FLOAT16_MAT3x2_AMD = 0x91CA, + GL_FLOAT16_MAT3x4_AMD = 0x91CB, + GL_FLOAT16_MAT4x2_AMD = 0x91CC, + GL_FLOAT16_MAT4x3_AMD = 0x91CD, +}; +#endif + +#ifndef GL_AMD_gpu_shader_int16 +#define GL_AMD_gpu_shader_int16 1 +#endif + +#ifndef GL_AMD_gpu_shader_int64 +#define GL_AMD_gpu_shader_int64 1 +enum +{ + GL_INT64_NV = 0x140E, + GL_UNSIGNED_INT64_NV = 0x140F, + GL_INT8_NV = 0x8FE0, + GL_INT8_VEC2_NV = 0x8FE1, + GL_INT8_VEC3_NV = 0x8FE2, + GL_INT8_VEC4_NV = 0x8FE3, + GL_INT16_NV = 0x8FE4, + GL_INT16_VEC2_NV = 0x8FE5, + GL_INT16_VEC3_NV = 0x8FE6, + GL_INT16_VEC4_NV = 0x8FE7, + GL_INT64_VEC2_NV = 0x8FE9, + GL_INT64_VEC3_NV = 0x8FEA, + GL_INT64_VEC4_NV = 0x8FEB, + GL_UNSIGNED_INT8_NV = 0x8FEC, + GL_UNSIGNED_INT8_VEC2_NV = 0x8FED, + GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE, + GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF, + GL_UNSIGNED_INT16_NV = 0x8FF0, + GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1, + GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2, + GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3, + GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5, + GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6, + GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7, +}; +extern void (* const& glUniform1i64NV) (GLint location, GLint64EXT x); +extern void (* const& glUniform2i64NV) (GLint location, GLint64EXT x, GLint64EXT y); +extern void (* const& glUniform3i64NV) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +extern void (* const& glUniform4i64NV) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +extern void (* const& glUniform1i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform2i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform3i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform4i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform1ui64NV) (GLint location, GLuint64EXT x); +extern void (* const& glUniform2ui64NV) (GLint location, GLuint64EXT x, GLuint64EXT y); +extern void (* const& glUniform3ui64NV) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +extern void (* const& glUniform4ui64NV) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +extern void (* const& glUniform1ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glUniform2ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glUniform3ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glUniform4ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glGetUniformi64vNV) (GLuint program, GLint location, GLint64EXT *params); +extern void (* const& glGetUniformui64vNV) (GLuint program, GLint location, GLuint64EXT *params); +extern void (* const& glProgramUniform1i64NV) (GLuint program, GLint location, GLint64EXT x); +extern void (* const& glProgramUniform2i64NV) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +extern void (* const& glProgramUniform3i64NV) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +extern void (* const& glProgramUniform4i64NV) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +extern void (* const& glProgramUniform1i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform2i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform3i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform4i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform1ui64NV) (GLuint program, GLint location, GLuint64EXT x); +extern void (* const& glProgramUniform2ui64NV) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +extern void (* const& glProgramUniform3ui64NV) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +extern void (* const& glProgramUniform4ui64NV) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +extern void (* const& glProgramUniform1ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glProgramUniform2ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glProgramUniform3ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glProgramUniform4ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif + +#ifndef GL_AMD_interleaved_elements +#define GL_AMD_interleaved_elements 1 +enum +{ + GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4, + GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5, +}; +extern void (* const& glVertexAttribParameteriAMD) (GLuint index, GLenum pname, GLint param); +#endif + +#ifndef GL_AMD_multi_draw_indirect +#define GL_AMD_multi_draw_indirect 1 +extern void (* const& glMultiDrawArraysIndirectAMD) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); +extern void (* const& glMultiDrawElementsIndirectAMD) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); +#endif + +#ifndef GL_AMD_name_gen_delete +#define GL_AMD_name_gen_delete 1 +enum +{ + GL_DATA_BUFFER_AMD = 0x9151, + GL_PERFORMANCE_MONITOR_AMD = 0x9152, + GL_QUERY_OBJECT_AMD = 0x9153, + GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154, + GL_SAMPLER_OBJECT_AMD = 0x9155, +}; +extern void (* const& glGenNamesAMD) (GLenum identifier, GLuint num, GLuint *names); +extern void (* const& glDeleteNamesAMD) (GLenum identifier, GLuint num, const GLuint *names); +extern GLboolean (* const& glIsNameAMD) (GLenum identifier, GLuint name); +#endif + +#ifndef GL_AMD_occlusion_query_event +#define GL_AMD_occlusion_query_event 1 +enum +{ + GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F, + GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001, + GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002, + GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004, + GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008, + GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF, +}; +extern void (* const& glQueryObjectParameteruiAMD) (GLenum target, GLuint id, GLenum pname, GLuint param); +#endif + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +enum +{ + GL_COUNTER_TYPE_AMD = 0x8BC0, + GL_COUNTER_RANGE_AMD = 0x8BC1, + GL_UNSIGNED_INT64_AMD = 0x8BC2, + GL_PERCENTAGE_AMD = 0x8BC3, + GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4, + GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5, + GL_PERFMON_RESULT_AMD = 0x8BC6, +}; +extern void (* const& glGetPerfMonitorGroupsAMD) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +extern void (* const& glGetPerfMonitorCountersAMD) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +extern void (* const& glGetPerfMonitorGroupStringAMD) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +extern void (* const& glGetPerfMonitorCounterStringAMD) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +extern void (* const& glGetPerfMonitorCounterInfoAMD) (GLuint group, GLuint counter, GLenum pname, void *data); +extern void (* const& glGenPerfMonitorsAMD) (GLsizei n, GLuint *monitors); +extern void (* const& glDeletePerfMonitorsAMD) (GLsizei n, GLuint *monitors); +extern void (* const& glSelectPerfMonitorCountersAMD) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +extern void (* const& glBeginPerfMonitorAMD) (GLuint monitor); +extern void (* const& glEndPerfMonitorAMD) (GLuint monitor); +extern void (* const& glGetPerfMonitorCounterDataAMD) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif + +#ifndef GL_AMD_pinned_memory +#define GL_AMD_pinned_memory 1 +enum +{ + GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160, +}; +#endif + +#ifndef GL_AMD_query_buffer_object +#define GL_AMD_query_buffer_object 1 +enum +{ + GL_QUERY_BUFFER_AMD = 0x9192, + GL_QUERY_BUFFER_BINDING_AMD = 0x9193, + GL_QUERY_RESULT_NO_WAIT_AMD = 0x9194, +}; +#endif + +#ifndef GL_AMD_sample_positions +#define GL_AMD_sample_positions 1 +extern void (* const& glSetMultisamplefvAMD) (GLenum pname, GLuint index, const GLfloat *val); +#endif + +#ifndef GL_AMD_seamless_cubemap_per_texture +#define GL_AMD_seamless_cubemap_per_texture 1 +#endif + +#ifndef GL_AMD_shader_atomic_counter_ops +#define GL_AMD_shader_atomic_counter_ops 1 +#endif + +#ifndef GL_AMD_shader_ballot +#define GL_AMD_shader_ballot 1 +#endif + +#ifndef GL_AMD_shader_gpu_shader_half_float_fetch +#define GL_AMD_shader_gpu_shader_half_float_fetch 1 +#endif + +#ifndef GL_AMD_shader_image_load_store_lod +#define GL_AMD_shader_image_load_store_lod 1 +#endif + +#ifndef GL_AMD_shader_stencil_export +#define GL_AMD_shader_stencil_export 1 +#endif + +#ifndef GL_AMD_shader_trinary_minmax +#define GL_AMD_shader_trinary_minmax 1 +#endif + +#ifndef GL_AMD_shader_explicit_vertex_parameter +#define GL_AMD_shader_explicit_vertex_parameter 1 +#endif + +#ifndef GL_AMD_sparse_texture +#define GL_AMD_sparse_texture 1 +enum +{ + GL_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195, + GL_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196, + GL_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197, + GL_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198, + GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199, + GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A, + GL_MIN_SPARSE_LEVEL_AMD = 0x919B, + GL_MIN_LOD_WARNING_AMD = 0x919C, + GL_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001, +}; +extern void (* const& glTexStorageSparseAMD) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +extern void (* const& glTextureStorageSparseAMD) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +#endif + +#ifndef GL_AMD_stencil_operation_extended +#define GL_AMD_stencil_operation_extended 1 +enum +{ + GL_SET_AMD = 0x874A, + GL_REPLACE_VALUE_AMD = 0x874B, + GL_STENCIL_OP_VALUE_AMD = 0x874C, + GL_STENCIL_BACK_OP_VALUE_AMD = 0x874D, +}; +extern void (* const& glStencilOpValueAMD) (GLenum face, GLuint value); +#endif + +#ifndef GL_AMD_texture_gather_bias_lod +#define GL_AMD_texture_gather_bias_lod 1 +#endif + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 +#endif + +#ifndef GL_AMD_transform_feedback3_lines_triangles +#define GL_AMD_transform_feedback3_lines_triangles 1 +#endif + +#ifndef GL_AMD_transform_feedback4 +#define GL_AMD_transform_feedback4 1 +enum +{ + GL_STREAM_RASTERIZATION_AMD = 0x91A0, +}; +#endif + +#ifndef GL_AMD_vertex_shader_layer +#define GL_AMD_vertex_shader_layer 1 +#endif + +#ifndef GL_AMD_vertex_shader_tessellator +#define GL_AMD_vertex_shader_tessellator 1 +enum +{ + GL_SAMPLER_BUFFER_AMD = 0x9001, + GL_INT_SAMPLER_BUFFER_AMD = 0x9002, + GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003, + GL_TESSELLATION_MODE_AMD = 0x9004, + GL_TESSELLATION_FACTOR_AMD = 0x9005, + GL_DISCRETE_AMD = 0x9006, + GL_CONTINUOUS_AMD = 0x9007, +}; +extern void (* const& glTessellationFactorAMD) (GLfloat factor); +extern void (* const& glTessellationModeAMD) (GLenum mode); +#endif + +#ifndef GL_AMD_vertex_shader_viewport_index +#define GL_AMD_vertex_shader_viewport_index 1 +#endif + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 +enum +{ + GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14, +}; +#endif + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +enum +{ + GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2, +}; +#endif + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 +enum +{ + GL_ELEMENT_ARRAY_APPLE = 0x8A0C, + GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D, + GL_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E, +}; +extern void (* const& glElementPointerAPPLE) (GLenum type, const void *pointer); +extern void (* const& glDrawElementArrayAPPLE) (GLenum mode, GLint first, GLsizei count); +extern void (* const& glDrawRangeElementArrayAPPLE) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +extern void (* const& glMultiDrawElementArrayAPPLE) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void (* const& glMultiDrawRangeElementArrayAPPLE) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 +enum +{ + GL_DRAW_PIXELS_APPLE = 0x8A0A, + GL_FENCE_APPLE = 0x8A0B, +}; +extern void (* const& glGenFencesAPPLE) (GLsizei n, GLuint *fences); +extern void (* const& glDeleteFencesAPPLE) (GLsizei n, const GLuint *fences); +extern void (* const& glSetFenceAPPLE) (GLuint fence); +extern GLboolean (* const& glIsFenceAPPLE) (GLuint fence); +extern GLboolean (* const& glTestFenceAPPLE) (GLuint fence); +extern void (* const& glFinishFenceAPPLE) (GLuint fence); +extern GLboolean (* const& glTestObjectAPPLE) (GLenum object, GLuint name); +extern void (* const& glFinishObjectAPPLE) (GLenum object, GLint name); +#endif + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 +enum +{ + GL_HALF_APPLE = 0x140B, + GL_RGBA_FLOAT32_APPLE = 0x8814, + GL_RGB_FLOAT32_APPLE = 0x8815, + GL_ALPHA_FLOAT32_APPLE = 0x8816, + GL_INTENSITY_FLOAT32_APPLE = 0x8817, + GL_LUMINANCE_FLOAT32_APPLE = 0x8818, + GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819, + GL_RGBA_FLOAT16_APPLE = 0x881A, + GL_RGB_FLOAT16_APPLE = 0x881B, + GL_ALPHA_FLOAT16_APPLE = 0x881C, + GL_INTENSITY_FLOAT16_APPLE = 0x881D, + GL_LUMINANCE_FLOAT16_APPLE = 0x881E, + GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F, + GL_COLOR_FLOAT_APPLE = 0x8A0F, +}; +#endif + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 +enum +{ + GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12, + GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13, +}; +extern void (* const& glBufferParameteriAPPLE) (GLenum target, GLenum pname, GLint param); +extern void (* const& glFlushMappedBufferRangeAPPLE) (GLenum target, GLintptr offset, GLsizeiptr size); +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +enum +{ + GL_BUFFER_OBJECT_APPLE = 0x85B3, + GL_RELEASED_APPLE = 0x8A19, + GL_VOLATILE_APPLE = 0x8A1A, + GL_RETAINED_APPLE = 0x8A1B, + GL_UNDEFINED_APPLE = 0x8A1C, + GL_PURGEABLE_APPLE = 0x8A1D, +}; +extern GLenum (* const& glObjectPurgeableAPPLE) (GLenum objectType, GLuint name, GLenum option); +extern GLenum (* const& glObjectUnpurgeableAPPLE) (GLenum objectType, GLuint name, GLenum option); +extern void (* const& glGetObjectParameterivAPPLE) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +enum +{ + GL_RGB_422_APPLE = 0x8A1F, + GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA, + GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB, + GL_RGB_RAW_422_APPLE = 0x8A51, +}; +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +enum +{ + GL_PACK_ROW_BYTES_APPLE = 0x8A15, + GL_UNPACK_ROW_BYTES_APPLE = 0x8A16, +}; +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 +enum +{ + GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0, +}; +#endif + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +enum +{ + GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7, + GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8, + GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC, + GL_STORAGE_PRIVATE_APPLE = 0x85BD, + GL_STORAGE_CACHED_APPLE = 0x85BE, + GL_STORAGE_SHARED_APPLE = 0x85BF, +}; +extern void (* const& glTextureRangeAPPLE) (GLenum target, GLsizei length, const void *pointer); +extern void (* const& glGetTexParameterPointervAPPLE) (GLenum target, GLenum pname, void **params); +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 +enum +{ + GL_TRANSFORM_HINT_APPLE = 0x85B1, +}; +#endif + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 +enum +{ + GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5, +}; +extern void (* const& glBindVertexArrayAPPLE) (GLuint array); +extern void (* const& glDeleteVertexArraysAPPLE) (GLsizei n, const GLuint *arrays); +extern void (* const& glGenVertexArraysAPPLE) (GLsizei n, GLuint *arrays); +extern GLboolean (* const& glIsVertexArrayAPPLE) (GLuint array); +#endif + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 +enum +{ + GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D, + GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E, + GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F, + GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521, + GL_STORAGE_CLIENT_APPLE = 0x85B4, +}; +extern void (* const& glVertexArrayRangeAPPLE) (GLsizei length, void *pointer); +extern void (* const& glFlushVertexArrayRangeAPPLE) (GLsizei length, void *pointer); +extern void (* const& glVertexArrayParameteriAPPLE) (GLenum pname, GLint param); +#endif + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 +enum +{ + GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00, + GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01, + GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02, + GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03, + GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04, + GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05, + GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06, + GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07, + GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08, + GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09, +}; +extern void (* const& glEnableVertexAttribAPPLE) (GLuint index, GLenum pname); +extern void (* const& glDisableVertexAttribAPPLE) (GLuint index, GLenum pname); +extern GLboolean (* const& glIsVertexAttribEnabledAPPLE) (GLuint index, GLenum pname); +extern void (* const& glMapVertexAttrib1dAPPLE) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void (* const& glMapVertexAttrib1fAPPLE) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void (* const& glMapVertexAttrib2dAPPLE) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void (* const& glMapVertexAttrib2fAPPLE) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 +enum +{ + GL_YCBCR_422_APPLE = 0x85B9, +}; +#endif + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 +#endif + +#ifndef GL_ARB_ES3_1_compatibility +#define GL_ARB_ES3_1_compatibility 1 +#endif + +#ifndef GL_ARB_ES3_2_compatibility +#define GL_ARB_ES3_2_compatibility 1 +enum +{ + GL_PRIMITIVE_BOUNDING_BOX_ARB = 0x92BE, + GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB = 0x9381, + GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB = 0x9382, +}; +extern void (* const& glPrimitiveBoundingBoxARB) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#endif + +#ifndef GL_ARB_ES3_compatibility +#define GL_ARB_ES3_compatibility 1 +#endif + +#ifndef GL_ARB_arrays_of_arrays +#define GL_ARB_arrays_of_arrays 1 +#endif + +#ifndef GL_ARB_base_instance +#define GL_ARB_base_instance 1 +#endif + +#ifndef GL_ARB_bindless_texture +#define GL_ARB_bindless_texture 1 +enum +{ + GL_UNSIGNED_INT64_ARB = 0x140F, +}; +extern GLuint64 (* const& glGetTextureHandleARB) (GLuint texture); +extern GLuint64 (* const& glGetTextureSamplerHandleARB) (GLuint texture, GLuint sampler); +extern void (* const& glMakeTextureHandleResidentARB) (GLuint64 handle); +extern void (* const& glMakeTextureHandleNonResidentARB) (GLuint64 handle); +extern GLuint64 (* const& glGetImageHandleARB) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +extern void (* const& glMakeImageHandleResidentARB) (GLuint64 handle, GLenum access); +extern void (* const& glMakeImageHandleNonResidentARB) (GLuint64 handle); +extern void (* const& glUniformHandleui64ARB) (GLint location, GLuint64 value); +extern void (* const& glUniformHandleui64vARB) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glProgramUniformHandleui64ARB) (GLuint program, GLint location, GLuint64 value); +extern void (* const& glProgramUniformHandleui64vARB) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +extern GLboolean (* const& glIsTextureHandleResidentARB) (GLuint64 handle); +extern GLboolean (* const& glIsImageHandleResidentARB) (GLuint64 handle); +extern void (* const& glVertexAttribL1ui64ARB) (GLuint index, GLuint64EXT x); +extern void (* const& glVertexAttribL1ui64vARB) (GLuint index, const GLuint64EXT *v); +extern void (* const& glGetVertexAttribLui64vARB) (GLuint index, GLenum pname, GLuint64EXT *params); +#endif + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 +#endif + +#ifndef GL_ARB_buffer_storage +#define GL_ARB_buffer_storage 1 +#endif + +#ifndef GL_ARB_cl_event +#define GL_ARB_cl_event 1 +enum +{ + GL_SYNC_CL_EVENT_ARB = 0x8240, + GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241, +}; +extern GLsync (* const& glCreateSyncFromCLeventARB) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +#endif + +#ifndef GL_ARB_clear_buffer_object +#define GL_ARB_clear_buffer_object 1 +#endif + +#ifndef GL_ARB_clear_texture +#define GL_ARB_clear_texture 1 +#endif + +#ifndef GL_ARB_clip_control +#define GL_ARB_clip_control 1 +#endif + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 +enum +{ + GL_RGBA_FLOAT_MODE_ARB = 0x8820, + GL_CLAMP_VERTEX_COLOR_ARB = 0x891A, + GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B, + GL_CLAMP_READ_COLOR_ARB = 0x891C, + GL_FIXED_ONLY_ARB = 0x891D, +}; +extern void (* const& glClampColorARB) (GLenum target, GLenum clamp); +#endif + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 +#endif + +#ifndef GL_ARB_compressed_texture_pixel_storage +#define GL_ARB_compressed_texture_pixel_storage 1 +#endif + +#ifndef GL_ARB_compute_shader +#define GL_ARB_compute_shader 1 +#endif + +#ifndef GL_ARB_compute_variable_group_size +#define GL_ARB_compute_variable_group_size 1 +enum +{ + GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344, + GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB, + GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345, + GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF, +}; +extern void (* const& glDispatchComputeGroupSizeARB) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); +#endif + +#ifndef GL_ARB_conditional_render_inverted +#define GL_ARB_conditional_render_inverted 1 +#endif + +#ifndef GL_ARB_conservative_depth +#define GL_ARB_conservative_depth 1 +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 +#endif + +#ifndef GL_ARB_copy_image +#define GL_ARB_copy_image 1 +#endif + +#ifndef GL_ARB_cull_distance +#define GL_ARB_cull_distance 1 +#endif + +#ifndef GL_ARB_debug_output +#define GL_ARB_debug_output 1 +enum +{ + GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242, + GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243, + GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244, + GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245, + GL_DEBUG_SOURCE_API_ARB = 0x8246, + GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247, + GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248, + GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249, + GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A, + GL_DEBUG_SOURCE_OTHER_ARB = 0x824B, + GL_DEBUG_TYPE_ERROR_ARB = 0x824C, + GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D, + GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E, + GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F, + GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250, + GL_DEBUG_TYPE_OTHER_ARB = 0x8251, + GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143, + GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144, + GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145, + GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146, + GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147, + GL_DEBUG_SEVERITY_LOW_ARB = 0x9148, +}; +extern void (* const& glDebugMessageControlARB) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +extern void (* const& glDebugMessageInsertARB) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +extern void (* const& glDebugMessageCallbackARB) (GLDEBUGPROCARB callback, const void *userParam); +extern GLuint (* const& glGetDebugMessageLogARB) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 +enum +{ + GL_DEPTH_COMPONENT16_ARB = 0x81A5, + GL_DEPTH_COMPONENT24_ARB = 0x81A6, + GL_DEPTH_COMPONENT32_ARB = 0x81A7, + GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A, + GL_DEPTH_TEXTURE_MODE_ARB = 0x884B, +}; +#endif + +#ifndef GL_ARB_derivative_control +#define GL_ARB_derivative_control 1 +#endif + +#ifndef GL_ARB_direct_state_access +#define GL_ARB_direct_state_access 1 +#endif + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 +enum +{ + GL_MAX_DRAW_BUFFERS_ARB = 0x8824, + GL_DRAW_BUFFER0_ARB = 0x8825, + GL_DRAW_BUFFER1_ARB = 0x8826, + GL_DRAW_BUFFER2_ARB = 0x8827, + GL_DRAW_BUFFER3_ARB = 0x8828, + GL_DRAW_BUFFER4_ARB = 0x8829, + GL_DRAW_BUFFER5_ARB = 0x882A, + GL_DRAW_BUFFER6_ARB = 0x882B, + GL_DRAW_BUFFER7_ARB = 0x882C, + GL_DRAW_BUFFER8_ARB = 0x882D, + GL_DRAW_BUFFER9_ARB = 0x882E, + GL_DRAW_BUFFER10_ARB = 0x882F, + GL_DRAW_BUFFER11_ARB = 0x8830, + GL_DRAW_BUFFER12_ARB = 0x8831, + GL_DRAW_BUFFER13_ARB = 0x8832, + GL_DRAW_BUFFER14_ARB = 0x8833, + GL_DRAW_BUFFER15_ARB = 0x8834, +}; +extern void (* const& glDrawBuffersARB) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 +extern void (* const& glBlendEquationiARB) (GLuint buf, GLenum mode); +extern void (* const& glBlendEquationSeparateiARB) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +extern void (* const& glBlendFunciARB) (GLuint buf, GLenum src, GLenum dst); +extern void (* const& glBlendFuncSeparateiARB) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +#endif + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 +#endif + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 +extern void (* const& glDrawArraysInstancedARB) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +extern void (* const& glDrawElementsInstancedARB) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif + +#ifndef GL_ARB_enhanced_layouts +#define GL_ARB_enhanced_layouts 1 +#endif + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 +#endif + +#ifndef GL_ARB_explicit_uniform_location +#define GL_ARB_explicit_uniform_location 1 +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 +#endif + +#ifndef GL_ARB_fragment_layer_viewport +#define GL_ARB_fragment_layer_viewport 1 +#endif + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 +enum +{ + GL_FRAGMENT_PROGRAM_ARB = 0x8804, + GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875, + GL_PROGRAM_LENGTH_ARB = 0x8627, + GL_PROGRAM_FORMAT_ARB = 0x8876, + GL_PROGRAM_BINDING_ARB = 0x8677, + GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0, + GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1, + GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2, + GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3, + GL_PROGRAM_TEMPORARIES_ARB = 0x88A4, + GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5, + GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6, + GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7, + GL_PROGRAM_PARAMETERS_ARB = 0x88A8, + GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9, + GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA, + GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB, + GL_PROGRAM_ATTRIBS_ARB = 0x88AC, + GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD, + GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE, + GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF, + GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4, + GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5, + GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6, + GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805, + GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806, + GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807, + GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808, + GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809, + GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A, + GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B, + GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C, + GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D, + GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E, + GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F, + GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810, + GL_PROGRAM_STRING_ARB = 0x8628, + GL_PROGRAM_ERROR_POSITION_ARB = 0x864B, + GL_CURRENT_MATRIX_ARB = 0x8641, + GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7, + GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640, + GL_MAX_PROGRAM_MATRICES_ARB = 0x862F, + GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E, + GL_MAX_TEXTURE_COORDS_ARB = 0x8871, + GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872, + GL_PROGRAM_ERROR_STRING_ARB = 0x8874, + GL_MATRIX0_ARB = 0x88C0, + GL_MATRIX1_ARB = 0x88C1, + GL_MATRIX2_ARB = 0x88C2, + GL_MATRIX3_ARB = 0x88C3, + GL_MATRIX4_ARB = 0x88C4, + GL_MATRIX5_ARB = 0x88C5, + GL_MATRIX6_ARB = 0x88C6, + GL_MATRIX7_ARB = 0x88C7, + GL_MATRIX8_ARB = 0x88C8, + GL_MATRIX9_ARB = 0x88C9, + GL_MATRIX10_ARB = 0x88CA, + GL_MATRIX11_ARB = 0x88CB, + GL_MATRIX12_ARB = 0x88CC, + GL_MATRIX13_ARB = 0x88CD, + GL_MATRIX14_ARB = 0x88CE, + GL_MATRIX15_ARB = 0x88CF, + GL_MATRIX16_ARB = 0x88D0, + GL_MATRIX17_ARB = 0x88D1, + GL_MATRIX18_ARB = 0x88D2, + GL_MATRIX19_ARB = 0x88D3, + GL_MATRIX20_ARB = 0x88D4, + GL_MATRIX21_ARB = 0x88D5, + GL_MATRIX22_ARB = 0x88D6, + GL_MATRIX23_ARB = 0x88D7, + GL_MATRIX24_ARB = 0x88D8, + GL_MATRIX25_ARB = 0x88D9, + GL_MATRIX26_ARB = 0x88DA, + GL_MATRIX27_ARB = 0x88DB, + GL_MATRIX28_ARB = 0x88DC, + GL_MATRIX29_ARB = 0x88DD, + GL_MATRIX30_ARB = 0x88DE, + GL_MATRIX31_ARB = 0x88DF, +}; +extern void (* const& glProgramStringARB) (GLenum target, GLenum format, GLsizei len, const void *string); +extern void (* const& glBindProgramARB) (GLenum target, GLuint program); +extern void (* const& glDeleteProgramsARB) (GLsizei n, const GLuint *programs); +extern void (* const& glGenProgramsARB) (GLsizei n, GLuint *programs); +extern void (* const& glProgramEnvParameter4dARB) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glProgramEnvParameter4dvARB) (GLenum target, GLuint index, const GLdouble *params); +extern void (* const& glProgramEnvParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glProgramEnvParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params); +extern void (* const& glProgramLocalParameter4dARB) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glProgramLocalParameter4dvARB) (GLenum target, GLuint index, const GLdouble *params); +extern void (* const& glProgramLocalParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glProgramLocalParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params); +extern void (* const& glGetProgramEnvParameterdvARB) (GLenum target, GLuint index, GLdouble *params); +extern void (* const& glGetProgramEnvParameterfvARB) (GLenum target, GLuint index, GLfloat *params); +extern void (* const& glGetProgramLocalParameterdvARB) (GLenum target, GLuint index, GLdouble *params); +extern void (* const& glGetProgramLocalParameterfvARB) (GLenum target, GLuint index, GLfloat *params); +extern void (* const& glGetProgramivARB) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetProgramStringARB) (GLenum target, GLenum pname, void *string); +extern GLboolean (* const& glIsProgramARB) (GLuint program); +#endif + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 +#endif + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 +enum +{ + GL_FRAGMENT_SHADER_ARB = 0x8B30, + GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49, + GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B, +}; +#endif + +#ifndef GL_ARB_fragment_shader_interlock +#define GL_ARB_fragment_shader_interlock 1 +#endif + +#ifndef GL_ARB_framebuffer_no_attachments +#define GL_ARB_framebuffer_no_attachments 1 +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 +enum +{ + GL_LINES_ADJACENCY_ARB = 0x000A, + GL_LINE_STRIP_ADJACENCY_ARB = 0x000B, + GL_TRIANGLES_ADJACENCY_ARB = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D, + GL_PROGRAM_POINT_SIZE_ARB = 0x8642, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9, + GL_GEOMETRY_SHADER_ARB = 0x8DD9, + GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA, + GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB, + GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC, + GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD, + GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF, + GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1, +}; +extern void (* const& glProgramParameteriARB) (GLuint program, GLenum pname, GLint value); +extern void (* const& glFramebufferTextureARB) (GLenum target, GLenum attachment, GLuint texture, GLint level); +extern void (* const& glFramebufferTextureLayerARB) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +extern void (* const& glFramebufferTextureFaceARB) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 +#endif + +#ifndef GL_ARB_get_texture_sub_image +#define GL_ARB_get_texture_sub_image 1 +#endif + +#ifndef GL_ARB_gl_spirv +#define GL_ARB_gl_spirv 1 +enum +{ + GL_SHADER_BINARY_FORMAT_SPIR_V_ARB = 0x9551, + GL_SPIR_V_BINARY_ARB = 0x9552, +}; +extern void (* const& glSpecializeShaderARB) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); +#endif + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 +#endif + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 +#endif + +#ifndef GL_ARB_gpu_shader_int64 +#define GL_ARB_gpu_shader_int64 1 +enum +{ + GL_INT64_ARB = 0x140E, + GL_INT64_VEC2_ARB = 0x8FE9, + GL_INT64_VEC3_ARB = 0x8FEA, + GL_INT64_VEC4_ARB = 0x8FEB, + GL_UNSIGNED_INT64_VEC2_ARB = 0x8FF5, + GL_UNSIGNED_INT64_VEC3_ARB = 0x8FF6, + GL_UNSIGNED_INT64_VEC4_ARB = 0x8FF7, +}; +extern void (* const& glUniform1i64ARB) (GLint location, GLint64 x); +extern void (* const& glUniform2i64ARB) (GLint location, GLint64 x, GLint64 y); +extern void (* const& glUniform3i64ARB) (GLint location, GLint64 x, GLint64 y, GLint64 z); +extern void (* const& glUniform4i64ARB) (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +extern void (* const& glUniform1i64vARB) (GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glUniform2i64vARB) (GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glUniform3i64vARB) (GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glUniform4i64vARB) (GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glUniform1ui64ARB) (GLint location, GLuint64 x); +extern void (* const& glUniform2ui64ARB) (GLint location, GLuint64 x, GLuint64 y); +extern void (* const& glUniform3ui64ARB) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +extern void (* const& glUniform4ui64ARB) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +extern void (* const& glUniform1ui64vARB) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glUniform2ui64vARB) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glUniform3ui64vARB) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glUniform4ui64vARB) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glGetUniformi64vARB) (GLuint program, GLint location, GLint64 *params); +extern void (* const& glGetUniformui64vARB) (GLuint program, GLint location, GLuint64 *params); +extern void (* const& glGetnUniformi64vARB) (GLuint program, GLint location, GLsizei bufSize, GLint64 *params); +extern void (* const& glGetnUniformui64vARB) (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); +extern void (* const& glProgramUniform1i64ARB) (GLuint program, GLint location, GLint64 x); +extern void (* const& glProgramUniform2i64ARB) (GLuint program, GLint location, GLint64 x, GLint64 y); +extern void (* const& glProgramUniform3i64ARB) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); +extern void (* const& glProgramUniform4i64ARB) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +extern void (* const& glProgramUniform1i64vARB) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glProgramUniform2i64vARB) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glProgramUniform3i64vARB) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glProgramUniform4i64vARB) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +extern void (* const& glProgramUniform1ui64ARB) (GLuint program, GLint location, GLuint64 x); +extern void (* const& glProgramUniform2ui64ARB) (GLuint program, GLint location, GLuint64 x, GLuint64 y); +extern void (* const& glProgramUniform3ui64ARB) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +extern void (* const& glProgramUniform4ui64ARB) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +extern void (* const& glProgramUniform1ui64vARB) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glProgramUniform2ui64vARB) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glProgramUniform3ui64vARB) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glProgramUniform4ui64vARB) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +#endif + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 +enum +{ + GL_HALF_FLOAT_ARB = 0x140B, +}; +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif + +#ifndef GL_ARB_imaging +#define GL_ARB_imaging 1 +enum +{ + GL_CONVOLUTION_BORDER_MODE = 0x8013, + GL_CONVOLUTION_FILTER_SCALE = 0x8014, + GL_CONVOLUTION_FILTER_BIAS = 0x8015, + GL_REDUCE = 0x8016, + GL_CONVOLUTION_FORMAT = 0x8017, + GL_CONVOLUTION_WIDTH = 0x8018, + GL_CONVOLUTION_HEIGHT = 0x8019, + GL_MAX_CONVOLUTION_WIDTH = 0x801A, + GL_MAX_CONVOLUTION_HEIGHT = 0x801B, + GL_POST_CONVOLUTION_RED_SCALE = 0x801C, + GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D, + GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E, + GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F, + GL_POST_CONVOLUTION_RED_BIAS = 0x8020, + GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021, + GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022, + GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023, + GL_HISTOGRAM_WIDTH = 0x8026, + GL_HISTOGRAM_FORMAT = 0x8027, + GL_HISTOGRAM_RED_SIZE = 0x8028, + GL_HISTOGRAM_GREEN_SIZE = 0x8029, + GL_HISTOGRAM_BLUE_SIZE = 0x802A, + GL_HISTOGRAM_ALPHA_SIZE = 0x802B, + GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C, + GL_HISTOGRAM_SINK = 0x802D, + GL_MINMAX_FORMAT = 0x802F, + GL_MINMAX_SINK = 0x8030, + GL_TABLE_TOO_LARGE = 0x8031, + GL_COLOR_MATRIX = 0x80B1, + GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2, + GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3, + GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4, + GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5, + GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6, + GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7, + GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8, + GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9, + GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA, + GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB, + GL_COLOR_TABLE_SCALE = 0x80D6, + GL_COLOR_TABLE_BIAS = 0x80D7, + GL_COLOR_TABLE_FORMAT = 0x80D8, + GL_COLOR_TABLE_WIDTH = 0x80D9, + GL_COLOR_TABLE_RED_SIZE = 0x80DA, + GL_COLOR_TABLE_GREEN_SIZE = 0x80DB, + GL_COLOR_TABLE_BLUE_SIZE = 0x80DC, + GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD, + GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE, + GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF, + GL_CONSTANT_BORDER = 0x8151, + GL_REPLICATE_BORDER = 0x8153, + GL_CONVOLUTION_BORDER_COLOR = 0x8154, +}; +extern void (* const& glColorTable) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +extern void (* const& glColorTableParameterfv) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glColorTableParameteriv) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glCopyColorTable) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void (* const& glGetColorTable) (GLenum target, GLenum format, GLenum type, void *table); +extern void (* const& glGetColorTableParameterfv) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetColorTableParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glColorSubTable) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +extern void (* const& glCopyColorSubTable) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +extern void (* const& glConvolutionFilter1D) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +extern void (* const& glConvolutionFilter2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +extern void (* const& glConvolutionParameterf) (GLenum target, GLenum pname, GLfloat params); +extern void (* const& glConvolutionParameterfv) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glConvolutionParameteri) (GLenum target, GLenum pname, GLint params); +extern void (* const& glConvolutionParameteriv) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glCopyConvolutionFilter1D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void (* const& glCopyConvolutionFilter2D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glGetConvolutionFilter) (GLenum target, GLenum format, GLenum type, void *image); +extern void (* const& glGetConvolutionParameterfv) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetConvolutionParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetSeparableFilter) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +extern void (* const& glSeparableFilter2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +extern void (* const& glGetHistogram) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +extern void (* const& glGetHistogramParameterfv) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetHistogramParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetMinmax) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +extern void (* const& glGetMinmaxParameterfv) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetMinmaxParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glHistogram) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +extern void (* const& glMinmax) (GLenum target, GLenum internalformat, GLboolean sink); +extern void (* const& glResetHistogram) (GLenum target); +extern void (* const& glResetMinmax) (GLenum target); +#endif + +#ifndef GL_ARB_indirect_parameters +#define GL_ARB_indirect_parameters 1 +enum +{ + GL_PARAMETER_BUFFER_ARB = 0x80EE, + GL_PARAMETER_BUFFER_BINDING_ARB = 0x80EF, +}; +extern void (* const& glMultiDrawArraysIndirectCountARB) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +extern void (* const& glMultiDrawElementsIndirectCountARB) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +enum +{ + GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE, +}; +extern void (* const& glVertexAttribDivisorARB) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 +#endif + +#ifndef GL_ARB_internalformat_query2 +#define GL_ARB_internalformat_query2 1 +enum +{ + GL_SRGB_DECODE_ARB = 0x8299, + GL_VIEW_CLASS_EAC_R11 = 0x9383, + GL_VIEW_CLASS_EAC_RG11 = 0x9384, + GL_VIEW_CLASS_ETC2_RGB = 0x9385, + GL_VIEW_CLASS_ETC2_RGBA = 0x9386, + GL_VIEW_CLASS_ETC2_EAC_RGBA = 0x9387, + GL_VIEW_CLASS_ASTC_4x4_RGBA = 0x9388, + GL_VIEW_CLASS_ASTC_5x4_RGBA = 0x9389, + GL_VIEW_CLASS_ASTC_5x5_RGBA = 0x938A, + GL_VIEW_CLASS_ASTC_6x5_RGBA = 0x938B, + GL_VIEW_CLASS_ASTC_6x6_RGBA = 0x938C, + GL_VIEW_CLASS_ASTC_8x5_RGBA = 0x938D, + GL_VIEW_CLASS_ASTC_8x6_RGBA = 0x938E, + GL_VIEW_CLASS_ASTC_8x8_RGBA = 0x938F, + GL_VIEW_CLASS_ASTC_10x5_RGBA = 0x9390, + GL_VIEW_CLASS_ASTC_10x6_RGBA = 0x9391, + GL_VIEW_CLASS_ASTC_10x8_RGBA = 0x9392, + GL_VIEW_CLASS_ASTC_10x10_RGBA = 0x9393, + GL_VIEW_CLASS_ASTC_12x10_RGBA = 0x9394, + GL_VIEW_CLASS_ASTC_12x12_RGBA = 0x9395, +}; +#endif + +#ifndef GL_ARB_invalidate_subdata +#define GL_ARB_invalidate_subdata 1 +#endif + +#ifndef GL_ARB_map_buffer_alignment +#define GL_ARB_map_buffer_alignment 1 +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 +enum +{ + GL_MATRIX_PALETTE_ARB = 0x8840, + GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841, + GL_MAX_PALETTE_MATRICES_ARB = 0x8842, + GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843, + GL_MATRIX_INDEX_ARRAY_ARB = 0x8844, + GL_CURRENT_MATRIX_INDEX_ARB = 0x8845, + GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846, + GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847, + GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848, + GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849, +}; +extern void (* const& glCurrentPaletteMatrixARB) (GLint index); +extern void (* const& glMatrixIndexubvARB) (GLint size, const GLubyte *indices); +extern void (* const& glMatrixIndexusvARB) (GLint size, const GLushort *indices); +extern void (* const& glMatrixIndexuivARB) (GLint size, const GLuint *indices); +extern void (* const& glMatrixIndexPointerARB) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif + +#ifndef GL_ARB_multi_bind +#define GL_ARB_multi_bind 1 +#endif + +#ifndef GL_ARB_multi_draw_indirect +#define GL_ARB_multi_draw_indirect 1 +#endif + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +enum +{ + GL_MULTISAMPLE_ARB = 0x809D, + GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F, + GL_SAMPLE_COVERAGE_ARB = 0x80A0, + GL_SAMPLE_BUFFERS_ARB = 0x80A8, + GL_SAMPLES_ARB = 0x80A9, + GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA, + GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB, + GL_MULTISAMPLE_BIT_ARB = 0x20000000, +}; +extern void (* const& glSampleCoverageARB) (GLfloat value, GLboolean invert); +#endif + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 +enum +{ + GL_TEXTURE0_ARB = 0x84C0, + GL_TEXTURE1_ARB = 0x84C1, + GL_TEXTURE2_ARB = 0x84C2, + GL_TEXTURE3_ARB = 0x84C3, + GL_TEXTURE4_ARB = 0x84C4, + GL_TEXTURE5_ARB = 0x84C5, + GL_TEXTURE6_ARB = 0x84C6, + GL_TEXTURE7_ARB = 0x84C7, + GL_TEXTURE8_ARB = 0x84C8, + GL_TEXTURE9_ARB = 0x84C9, + GL_TEXTURE10_ARB = 0x84CA, + GL_TEXTURE11_ARB = 0x84CB, + GL_TEXTURE12_ARB = 0x84CC, + GL_TEXTURE13_ARB = 0x84CD, + GL_TEXTURE14_ARB = 0x84CE, + GL_TEXTURE15_ARB = 0x84CF, + GL_TEXTURE16_ARB = 0x84D0, + GL_TEXTURE17_ARB = 0x84D1, + GL_TEXTURE18_ARB = 0x84D2, + GL_TEXTURE19_ARB = 0x84D3, + GL_TEXTURE20_ARB = 0x84D4, + GL_TEXTURE21_ARB = 0x84D5, + GL_TEXTURE22_ARB = 0x84D6, + GL_TEXTURE23_ARB = 0x84D7, + GL_TEXTURE24_ARB = 0x84D8, + GL_TEXTURE25_ARB = 0x84D9, + GL_TEXTURE26_ARB = 0x84DA, + GL_TEXTURE27_ARB = 0x84DB, + GL_TEXTURE28_ARB = 0x84DC, + GL_TEXTURE29_ARB = 0x84DD, + GL_TEXTURE30_ARB = 0x84DE, + GL_TEXTURE31_ARB = 0x84DF, + GL_ACTIVE_TEXTURE_ARB = 0x84E0, + GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1, + GL_MAX_TEXTURE_UNITS_ARB = 0x84E2, +}; +extern void (* const& glActiveTextureARB) (GLenum texture); +extern void (* const& glClientActiveTextureARB) (GLenum texture); +extern void (* const& glMultiTexCoord1dARB) (GLenum target, GLdouble s); +extern void (* const& glMultiTexCoord1dvARB) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord1fARB) (GLenum target, GLfloat s); +extern void (* const& glMultiTexCoord1fvARB) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord1iARB) (GLenum target, GLint s); +extern void (* const& glMultiTexCoord1ivARB) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord1sARB) (GLenum target, GLshort s); +extern void (* const& glMultiTexCoord1svARB) (GLenum target, const GLshort *v); +extern void (* const& glMultiTexCoord2dARB) (GLenum target, GLdouble s, GLdouble t); +extern void (* const& glMultiTexCoord2dvARB) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord2fARB) (GLenum target, GLfloat s, GLfloat t); +extern void (* const& glMultiTexCoord2fvARB) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord2iARB) (GLenum target, GLint s, GLint t); +extern void (* const& glMultiTexCoord2ivARB) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord2sARB) (GLenum target, GLshort s, GLshort t); +extern void (* const& glMultiTexCoord2svARB) (GLenum target, const GLshort *v); +extern void (* const& glMultiTexCoord3dARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void (* const& glMultiTexCoord3dvARB) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord3fARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void (* const& glMultiTexCoord3fvARB) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord3iARB) (GLenum target, GLint s, GLint t, GLint r); +extern void (* const& glMultiTexCoord3ivARB) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord3sARB) (GLenum target, GLshort s, GLshort t, GLshort r); +extern void (* const& glMultiTexCoord3svARB) (GLenum target, const GLshort *v); +extern void (* const& glMultiTexCoord4dARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void (* const& glMultiTexCoord4dvARB) (GLenum target, const GLdouble *v); +extern void (* const& glMultiTexCoord4fARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void (* const& glMultiTexCoord4fvARB) (GLenum target, const GLfloat *v); +extern void (* const& glMultiTexCoord4iARB) (GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void (* const& glMultiTexCoord4ivARB) (GLenum target, const GLint *v); +extern void (* const& glMultiTexCoord4sARB) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void (* const& glMultiTexCoord4svARB) (GLenum target, const GLshort *v); +#endif + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 +enum +{ + GL_QUERY_COUNTER_BITS_ARB = 0x8864, + GL_CURRENT_QUERY_ARB = 0x8865, + GL_QUERY_RESULT_ARB = 0x8866, + GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867, + GL_SAMPLES_PASSED_ARB = 0x8914, +}; +extern void (* const& glGenQueriesARB) (GLsizei n, GLuint *ids); +extern void (* const& glDeleteQueriesARB) (GLsizei n, const GLuint *ids); +extern GLboolean (* const& glIsQueryARB) (GLuint id); +extern void (* const& glBeginQueryARB) (GLenum target, GLuint id); +extern void (* const& glEndQueryARB) (GLenum target); +extern void (* const& glGetQueryivARB) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetQueryObjectivARB) (GLuint id, GLenum pname, GLint *params); +extern void (* const& glGetQueryObjectuivARB) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 +#endif + +#ifndef GL_ARB_parallel_shader_compile +#define GL_ARB_parallel_shader_compile 1 +enum +{ + GL_MAX_SHADER_COMPILER_THREADS_ARB = 0x91B0, + GL_COMPLETION_STATUS_ARB = 0x91B1, +}; +extern void (* const& glMaxShaderCompilerThreadsARB) (GLuint count); +#endif + +#ifndef GL_ARB_pipeline_statistics_query +#define GL_ARB_pipeline_statistics_query 1 +enum +{ + GL_VERTICES_SUBMITTED_ARB = 0x82EE, + GL_PRIMITIVES_SUBMITTED_ARB = 0x82EF, + GL_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0, + GL_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1, + GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2, + GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3, + GL_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4, + GL_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5, + GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6, + GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7, +}; +#endif + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 +enum +{ + GL_PIXEL_PACK_BUFFER_ARB = 0x88EB, + GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF, +}; +#endif + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 +enum +{ + GL_POINT_SIZE_MIN_ARB = 0x8126, + GL_POINT_SIZE_MAX_ARB = 0x8127, + GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128, + GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129, +}; +extern void (* const& glPointParameterfARB) (GLenum pname, GLfloat param); +extern void (* const& glPointParameterfvARB) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 +enum +{ + GL_POINT_SPRITE_ARB = 0x8861, + GL_COORD_REPLACE_ARB = 0x8862, +}; +#endif + +#ifndef GL_ARB_polygon_offset_clamp +#define GL_ARB_polygon_offset_clamp 1 +#endif + +#ifndef GL_ARB_post_depth_coverage +#define GL_ARB_post_depth_coverage 1 +#endif + +#ifndef GL_ARB_program_interface_query +#define GL_ARB_program_interface_query 1 +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 +#endif + +#ifndef GL_ARB_query_buffer_object +#define GL_ARB_query_buffer_object 1 +#endif + +#ifndef GL_ARB_robust_buffer_access_behavior +#define GL_ARB_robust_buffer_access_behavior 1 +#endif + +#ifndef GL_ARB_robustness +#define GL_ARB_robustness 1 +enum +{ + GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004, + GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252, + GL_GUILTY_CONTEXT_RESET_ARB = 0x8253, + GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254, + GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255, + GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256, + GL_NO_RESET_NOTIFICATION_ARB = 0x8261, +}; +extern GLenum (* const& glGetGraphicsResetStatusARB) (); +extern void (* const& glGetnTexImageARB) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); +extern void (* const& glReadnPixelsARB) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +extern void (* const& glGetnCompressedTexImageARB) (GLenum target, GLint lod, GLsizei bufSize, void *img); +extern void (* const& glGetnUniformfvARB) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +extern void (* const& glGetnUniformivARB) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +extern void (* const& glGetnUniformuivARB) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +extern void (* const& glGetnUniformdvARB) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +extern void (* const& glGetnMapdvARB) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +extern void (* const& glGetnMapfvARB) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +extern void (* const& glGetnMapivARB) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +extern void (* const& glGetnPixelMapfvARB) (GLenum map, GLsizei bufSize, GLfloat *values); +extern void (* const& glGetnPixelMapuivARB) (GLenum map, GLsizei bufSize, GLuint *values); +extern void (* const& glGetnPixelMapusvARB) (GLenum map, GLsizei bufSize, GLushort *values); +extern void (* const& glGetnPolygonStippleARB) (GLsizei bufSize, GLubyte *pattern); +extern void (* const& glGetnColorTableARB) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +extern void (* const& glGetnConvolutionFilterARB) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +extern void (* const& glGetnSeparableFilterARB) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +extern void (* const& glGetnHistogramARB) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +extern void (* const& glGetnMinmaxARB) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +#endif + +#ifndef GL_ARB_robustness_isolation +#define GL_ARB_robustness_isolation 1 +#endif + +#ifndef GL_ARB_sample_locations +#define GL_ARB_sample_locations 1 +enum +{ + GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB = 0x933D, + GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB = 0x933E, + GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB = 0x933F, + GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB = 0x9340, + GL_SAMPLE_LOCATION_ARB = 0x8E50, + GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB = 0x9341, + GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB = 0x9342, + GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB = 0x9343, +}; +extern void (* const& glFramebufferSampleLocationsfvARB) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +extern void (* const& glNamedFramebufferSampleLocationsfvARB) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +extern void (* const& glEvaluateDepthValuesARB) (); +#endif + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 +enum +{ + GL_SAMPLE_SHADING_ARB = 0x8C36, + GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37, +}; +extern void (* const& glMinSampleShadingARB) (GLfloat value); +#endif + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 +#endif + +#ifndef GL_ARB_seamless_cubemap_per_texture +#define GL_ARB_seamless_cubemap_per_texture 1 +#endif + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 +#endif + +#ifndef GL_ARB_shader_atomic_counter_ops +#define GL_ARB_shader_atomic_counter_ops 1 +#endif + +#ifndef GL_ARB_shader_atomic_counters +#define GL_ARB_shader_atomic_counters 1 +#endif + +#ifndef GL_ARB_shader_ballot +#define GL_ARB_shader_ballot 1 +#endif + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 +#endif + +#ifndef GL_ARB_shader_clock +#define GL_ARB_shader_clock 1 +#endif + +#ifndef GL_ARB_shader_draw_parameters +#define GL_ARB_shader_draw_parameters 1 +#endif + +#ifndef GL_ARB_shader_group_vote +#define GL_ARB_shader_group_vote 1 +#endif + +#ifndef GL_ARB_shader_image_load_store +#define GL_ARB_shader_image_load_store 1 +#endif + +#ifndef GL_ARB_shader_image_size +#define GL_ARB_shader_image_size 1 +#endif + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 +enum +{ + GL_PROGRAM_OBJECT_ARB = 0x8B40, + GL_SHADER_OBJECT_ARB = 0x8B48, + GL_OBJECT_TYPE_ARB = 0x8B4E, + GL_OBJECT_SUBTYPE_ARB = 0x8B4F, + GL_FLOAT_VEC2_ARB = 0x8B50, + GL_FLOAT_VEC3_ARB = 0x8B51, + GL_FLOAT_VEC4_ARB = 0x8B52, + GL_INT_VEC2_ARB = 0x8B53, + GL_INT_VEC3_ARB = 0x8B54, + GL_INT_VEC4_ARB = 0x8B55, + GL_BOOL_ARB = 0x8B56, + GL_BOOL_VEC2_ARB = 0x8B57, + GL_BOOL_VEC3_ARB = 0x8B58, + GL_BOOL_VEC4_ARB = 0x8B59, + GL_FLOAT_MAT2_ARB = 0x8B5A, + GL_FLOAT_MAT3_ARB = 0x8B5B, + GL_FLOAT_MAT4_ARB = 0x8B5C, + GL_SAMPLER_1D_ARB = 0x8B5D, + GL_SAMPLER_2D_ARB = 0x8B5E, + GL_SAMPLER_3D_ARB = 0x8B5F, + GL_SAMPLER_CUBE_ARB = 0x8B60, + GL_SAMPLER_1D_SHADOW_ARB = 0x8B61, + GL_SAMPLER_2D_SHADOW_ARB = 0x8B62, + GL_SAMPLER_2D_RECT_ARB = 0x8B63, + GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64, + GL_OBJECT_DELETE_STATUS_ARB = 0x8B80, + GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81, + GL_OBJECT_LINK_STATUS_ARB = 0x8B82, + GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83, + GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84, + GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85, + GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86, + GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87, + GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88, +}; +extern void (* const& glDeleteObjectARB) (GLhandleARB obj); +extern GLhandleARB (* const& glGetHandleARB) (GLenum pname); +extern void (* const& glDetachObjectARB) (GLhandleARB containerObj, GLhandleARB attachedObj); +extern GLhandleARB (* const& glCreateShaderObjectARB) (GLenum shaderType); +extern void (* const& glShaderSourceARB) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); +extern void (* const& glCompileShaderARB) (GLhandleARB shaderObj); +extern GLhandleARB (* const& glCreateProgramObjectARB) (); +extern void (* const& glAttachObjectARB) (GLhandleARB containerObj, GLhandleARB obj); +extern void (* const& glLinkProgramARB) (GLhandleARB programObj); +extern void (* const& glUseProgramObjectARB) (GLhandleARB programObj); +extern void (* const& glValidateProgramARB) (GLhandleARB programObj); +extern void (* const& glUniform1fARB) (GLint location, GLfloat v0); +extern void (* const& glUniform2fARB) (GLint location, GLfloat v0, GLfloat v1); +extern void (* const& glUniform3fARB) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void (* const& glUniform4fARB) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void (* const& glUniform1iARB) (GLint location, GLint v0); +extern void (* const& glUniform2iARB) (GLint location, GLint v0, GLint v1); +extern void (* const& glUniform3iARB) (GLint location, GLint v0, GLint v1, GLint v2); +extern void (* const& glUniform4iARB) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void (* const& glUniform1fvARB) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform2fvARB) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform3fvARB) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform4fvARB) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform1ivARB) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform2ivARB) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform3ivARB) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform4ivARB) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniformMatrix2fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glGetObjectParameterfvARB) (GLhandleARB obj, GLenum pname, GLfloat *params); +extern void (* const& glGetObjectParameterivARB) (GLhandleARB obj, GLenum pname, GLint *params); +extern void (* const& glGetInfoLogARB) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +extern void (* const& glGetAttachedObjectsARB) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +extern GLint (* const& glGetUniformLocationARB) (GLhandleARB programObj, const GLcharARB *name); +extern void (* const& glGetActiveUniformARB) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern void (* const& glGetUniformfvARB) (GLhandleARB programObj, GLint location, GLfloat *params); +extern void (* const& glGetUniformivARB) (GLhandleARB programObj, GLint location, GLint *params); +extern void (* const& glGetShaderSourceARB) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 +#endif + +#ifndef GL_ARB_shader_stencil_export +#define GL_ARB_shader_stencil_export 1 +#endif + +#ifndef GL_ARB_shader_storage_buffer_object +#define GL_ARB_shader_storage_buffer_object 1 +#endif + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 +#endif + +#ifndef GL_ARB_shader_texture_image_samples +#define GL_ARB_shader_texture_image_samples 1 +#endif + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 +#endif + +#ifndef GL_ARB_shader_viewport_layer_array +#define GL_ARB_shader_viewport_layer_array 1 +#endif + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 +enum +{ + GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C, +}; +#endif + +#ifndef GL_ARB_shading_language_420pack +#define GL_ARB_shading_language_420pack 1 +#endif + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 +enum +{ + GL_SHADER_INCLUDE_ARB = 0x8DAE, + GL_NAMED_STRING_LENGTH_ARB = 0x8DE9, + GL_NAMED_STRING_TYPE_ARB = 0x8DEA, +}; +extern void (* const& glNamedStringARB) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +extern void (* const& glDeleteNamedStringARB) (GLint namelen, const GLchar *name); +extern void (* const& glCompileShaderIncludeARB) (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); +extern GLboolean (* const& glIsNamedStringARB) (GLint namelen, const GLchar *name); +extern void (* const& glGetNamedStringARB) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +extern void (* const& glGetNamedStringivARB) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif + +#ifndef GL_ARB_shading_language_packing +#define GL_ARB_shading_language_packing 1 +#endif + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 +enum +{ + GL_TEXTURE_COMPARE_MODE_ARB = 0x884C, + GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D, + GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E, +}; +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 +enum +{ + GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF, +}; +#endif + +#ifndef GL_ARB_sparse_buffer +#define GL_ARB_sparse_buffer 1 +enum +{ + GL_SPARSE_STORAGE_BIT_ARB = 0x0400, + GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8, +}; +extern void (* const& glBufferPageCommitmentARB) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); +extern void (* const& glNamedBufferPageCommitmentEXT) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); +extern void (* const& glNamedBufferPageCommitmentARB) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); +#endif + +#ifndef GL_ARB_sparse_texture +#define GL_ARB_sparse_texture 1 +enum +{ + GL_TEXTURE_SPARSE_ARB = 0x91A6, + GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7, + GL_NUM_SPARSE_LEVELS_ARB = 0x91AA, + GL_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8, + GL_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195, + GL_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196, + GL_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197, + GL_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198, + GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199, + GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A, + GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9, +}; +extern void (* const& glTexPageCommitmentARB) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +#endif + +#ifndef GL_ARB_sparse_texture2 +#define GL_ARB_sparse_texture2 1 +#endif + +#ifndef GL_ARB_sparse_texture_clamp +#define GL_ARB_sparse_texture_clamp 1 +#endif + +#ifndef GL_ARB_spirv_extensions +#define GL_ARB_spirv_extensions 1 +#endif + +#ifndef GL_ARB_stencil_texturing +#define GL_ARB_stencil_texturing 1 +#endif + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 +#endif + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 +#endif + +#ifndef GL_ARB_texture_barrier +#define GL_ARB_texture_barrier 1 +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 +enum +{ + GL_CLAMP_TO_BORDER_ARB = 0x812D, +}; +#endif + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 +enum +{ + GL_TEXTURE_BUFFER_ARB = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D, + GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E, +}; +extern void (* const& glTexBufferARB) (GLenum target, GLenum internalformat, GLuint buffer); +#endif + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 +#endif + +#ifndef GL_ARB_texture_buffer_range +#define GL_ARB_texture_buffer_range 1 +#endif + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 +enum +{ + GL_COMPRESSED_ALPHA_ARB = 0x84E9, + GL_COMPRESSED_LUMINANCE_ARB = 0x84EA, + GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB, + GL_COMPRESSED_INTENSITY_ARB = 0x84EC, + GL_COMPRESSED_RGB_ARB = 0x84ED, + GL_COMPRESSED_RGBA_ARB = 0x84EE, + GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF, + GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0, + GL_TEXTURE_COMPRESSED_ARB = 0x86A1, + GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2, + GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3, +}; +extern void (* const& glCompressedTexImage3DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexImage2DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexImage1DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage3DARB) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage2DARB) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage1DARB) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glGetCompressedTexImageARB) (GLenum target, GLint level, void *img); +#endif + +#ifndef GL_ARB_texture_compression_bptc +#define GL_ARB_texture_compression_bptc 1 +enum +{ + GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C, + GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D, + GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E, + GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F, +}; +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 +enum +{ + GL_NORMAL_MAP_ARB = 0x8511, + GL_REFLECTION_MAP_ARB = 0x8512, + GL_TEXTURE_CUBE_MAP_ARB = 0x8513, + GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514, + GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A, + GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B, + GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C, +}; +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +enum +{ + GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009, + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A, + GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B, + GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C, + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D, + GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E, + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F, +}; +#endif + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 +enum +{ + GL_COMBINE_ARB = 0x8570, + GL_COMBINE_RGB_ARB = 0x8571, + GL_COMBINE_ALPHA_ARB = 0x8572, + GL_SOURCE0_RGB_ARB = 0x8580, + GL_SOURCE1_RGB_ARB = 0x8581, + GL_SOURCE2_RGB_ARB = 0x8582, + GL_SOURCE0_ALPHA_ARB = 0x8588, + GL_SOURCE1_ALPHA_ARB = 0x8589, + GL_SOURCE2_ALPHA_ARB = 0x858A, + GL_OPERAND0_RGB_ARB = 0x8590, + GL_OPERAND1_RGB_ARB = 0x8591, + GL_OPERAND2_RGB_ARB = 0x8592, + GL_OPERAND0_ALPHA_ARB = 0x8598, + GL_OPERAND1_ALPHA_ARB = 0x8599, + GL_OPERAND2_ALPHA_ARB = 0x859A, + GL_RGB_SCALE_ARB = 0x8573, + GL_ADD_SIGNED_ARB = 0x8574, + GL_INTERPOLATE_ARB = 0x8575, + GL_SUBTRACT_ARB = 0x84E7, + GL_CONSTANT_ARB = 0x8576, + GL_PRIMARY_COLOR_ARB = 0x8577, + GL_PREVIOUS_ARB = 0x8578, +}; +#endif + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 +enum +{ + GL_DOT3_RGB_ARB = 0x86AE, + GL_DOT3_RGBA_ARB = 0x86AF, +}; +#endif + +#ifndef GL_ARB_texture_filter_anisotropic +#define GL_ARB_texture_filter_anisotropic 1 +#endif + +#ifndef GL_ARB_texture_filter_minmax +#define GL_ARB_texture_filter_minmax 1 +enum +{ + GL_TEXTURE_REDUCTION_MODE_ARB = 0x9366, + GL_WEIGHTED_AVERAGE_ARB = 0x9367, +}; +#endif + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 +enum +{ + GL_TEXTURE_RED_TYPE_ARB = 0x8C10, + GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11, + GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12, + GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13, + GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14, + GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15, + GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16, + GL_UNSIGNED_NORMALIZED_ARB = 0x8C17, + GL_RGBA32F_ARB = 0x8814, + GL_RGB32F_ARB = 0x8815, + GL_ALPHA32F_ARB = 0x8816, + GL_INTENSITY32F_ARB = 0x8817, + GL_LUMINANCE32F_ARB = 0x8818, + GL_LUMINANCE_ALPHA32F_ARB = 0x8819, + GL_RGBA16F_ARB = 0x881A, + GL_RGB16F_ARB = 0x881B, + GL_ALPHA16F_ARB = 0x881C, + GL_INTENSITY16F_ARB = 0x881D, + GL_LUMINANCE16F_ARB = 0x881E, + GL_LUMINANCE_ALPHA16F_ARB = 0x881F, +}; +#endif + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 +enum +{ + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E, + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F, + GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F, +}; +#endif + +#ifndef GL_ARB_texture_mirror_clamp_to_edge +#define GL_ARB_texture_mirror_clamp_to_edge 1 +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 +enum +{ + GL_MIRRORED_REPEAT_ARB = 0x8370, +}; +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 +#endif + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 +#endif + +#ifndef GL_ARB_texture_query_levels +#define GL_ARB_texture_query_levels 1 +#endif + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 +#endif + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 +enum +{ + GL_TEXTURE_RECTANGLE_ARB = 0x84F5, + GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6, + GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7, + GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8, +}; +#endif + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 +#endif + +#ifndef GL_ARB_texture_stencil8 +#define GL_ARB_texture_stencil8 1 +#endif + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 +#endif + +#ifndef GL_ARB_texture_storage_multisample +#define GL_ARB_texture_storage_multisample 1 +#endif + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 +#endif + +#ifndef GL_ARB_texture_view +#define GL_ARB_texture_view 1 +#endif + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 +#endif + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 +#endif + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 +#endif + +#ifndef GL_ARB_transform_feedback_instanced +#define GL_ARB_transform_feedback_instanced 1 +#endif + +#ifndef GL_ARB_transform_feedback_overflow_query +#define GL_ARB_transform_feedback_overflow_query 1 +enum +{ + GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC, + GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED, +}; +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 +enum +{ + GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3, + GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4, + GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5, + GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6, +}; +extern void (* const& glLoadTransposeMatrixfARB) (const GLfloat *m); +extern void (* const& glLoadTransposeMatrixdARB) (const GLdouble *m); +extern void (* const& glMultTransposeMatrixfARB) (const GLfloat *m); +extern void (* const& glMultTransposeMatrixdARB) (const GLdouble *m); +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 +#endif + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#endif + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 +#endif + +#ifndef GL_ARB_vertex_attrib_binding +#define GL_ARB_vertex_attrib_binding 1 +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 +enum +{ + GL_MAX_VERTEX_UNITS_ARB = 0x86A4, + GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5, + GL_WEIGHT_SUM_UNITY_ARB = 0x86A6, + GL_VERTEX_BLEND_ARB = 0x86A7, + GL_CURRENT_WEIGHT_ARB = 0x86A8, + GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9, + GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA, + GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB, + GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC, + GL_WEIGHT_ARRAY_ARB = 0x86AD, + GL_MODELVIEW0_ARB = 0x1700, + GL_MODELVIEW1_ARB = 0x850A, + GL_MODELVIEW2_ARB = 0x8722, + GL_MODELVIEW3_ARB = 0x8723, + GL_MODELVIEW4_ARB = 0x8724, + GL_MODELVIEW5_ARB = 0x8725, + GL_MODELVIEW6_ARB = 0x8726, + GL_MODELVIEW7_ARB = 0x8727, + GL_MODELVIEW8_ARB = 0x8728, + GL_MODELVIEW9_ARB = 0x8729, + GL_MODELVIEW10_ARB = 0x872A, + GL_MODELVIEW11_ARB = 0x872B, + GL_MODELVIEW12_ARB = 0x872C, + GL_MODELVIEW13_ARB = 0x872D, + GL_MODELVIEW14_ARB = 0x872E, + GL_MODELVIEW15_ARB = 0x872F, + GL_MODELVIEW16_ARB = 0x8730, + GL_MODELVIEW17_ARB = 0x8731, + GL_MODELVIEW18_ARB = 0x8732, + GL_MODELVIEW19_ARB = 0x8733, + GL_MODELVIEW20_ARB = 0x8734, + GL_MODELVIEW21_ARB = 0x8735, + GL_MODELVIEW22_ARB = 0x8736, + GL_MODELVIEW23_ARB = 0x8737, + GL_MODELVIEW24_ARB = 0x8738, + GL_MODELVIEW25_ARB = 0x8739, + GL_MODELVIEW26_ARB = 0x873A, + GL_MODELVIEW27_ARB = 0x873B, + GL_MODELVIEW28_ARB = 0x873C, + GL_MODELVIEW29_ARB = 0x873D, + GL_MODELVIEW30_ARB = 0x873E, + GL_MODELVIEW31_ARB = 0x873F, +}; +extern void (* const& glWeightbvARB) (GLint size, const GLbyte *weights); +extern void (* const& glWeightsvARB) (GLint size, const GLshort *weights); +extern void (* const& glWeightivARB) (GLint size, const GLint *weights); +extern void (* const& glWeightfvARB) (GLint size, const GLfloat *weights); +extern void (* const& glWeightdvARB) (GLint size, const GLdouble *weights); +extern void (* const& glWeightubvARB) (GLint size, const GLubyte *weights); +extern void (* const& glWeightusvARB) (GLint size, const GLushort *weights); +extern void (* const& glWeightuivARB) (GLint size, const GLuint *weights); +extern void (* const& glWeightPointerARB) (GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glVertexBlendARB) (GLint count); +#endif + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 +enum +{ + GL_BUFFER_SIZE_ARB = 0x8764, + GL_BUFFER_USAGE_ARB = 0x8765, + GL_ARRAY_BUFFER_ARB = 0x8892, + GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893, + GL_ARRAY_BUFFER_BINDING_ARB = 0x8894, + GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895, + GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896, + GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897, + GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898, + GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899, + GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A, + GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B, + GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C, + GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D, + GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E, + GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F, + GL_READ_ONLY_ARB = 0x88B8, + GL_WRITE_ONLY_ARB = 0x88B9, + GL_READ_WRITE_ARB = 0x88BA, + GL_BUFFER_ACCESS_ARB = 0x88BB, + GL_BUFFER_MAPPED_ARB = 0x88BC, + GL_BUFFER_MAP_POINTER_ARB = 0x88BD, + GL_STREAM_DRAW_ARB = 0x88E0, + GL_STREAM_READ_ARB = 0x88E1, + GL_STREAM_COPY_ARB = 0x88E2, + GL_STATIC_DRAW_ARB = 0x88E4, + GL_STATIC_READ_ARB = 0x88E5, + GL_STATIC_COPY_ARB = 0x88E6, + GL_DYNAMIC_DRAW_ARB = 0x88E8, + GL_DYNAMIC_READ_ARB = 0x88E9, + GL_DYNAMIC_COPY_ARB = 0x88EA, +}; +extern void (* const& glBindBufferARB) (GLenum target, GLuint buffer); +extern void (* const& glDeleteBuffersARB) (GLsizei n, const GLuint *buffers); +extern void (* const& glGenBuffersARB) (GLsizei n, GLuint *buffers); +extern GLboolean (* const& glIsBufferARB) (GLuint buffer); +extern void (* const& glBufferDataARB) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); +extern void (* const& glBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); +extern void (* const& glGetBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); +extern void * (* const& glMapBufferARB) (GLenum target, GLenum access); +extern GLboolean (* const& glUnmapBufferARB) (GLenum target); +extern void (* const& glGetBufferParameterivARB) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetBufferPointervARB) (GLenum target, GLenum pname, void **params); +#endif + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 +enum +{ + GL_COLOR_SUM_ARB = 0x8458, + GL_VERTEX_PROGRAM_ARB = 0x8620, + GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622, + GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623, + GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624, + GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625, + GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626, + GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642, + GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643, + GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645, + GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869, + GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A, + GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0, + GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1, + GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2, + GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3, +}; +extern void (* const& glVertexAttrib1dARB) (GLuint index, GLdouble x); +extern void (* const& glVertexAttrib1dvARB) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib1fARB) (GLuint index, GLfloat x); +extern void (* const& glVertexAttrib1fvARB) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib1sARB) (GLuint index, GLshort x); +extern void (* const& glVertexAttrib1svARB) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib2dARB) (GLuint index, GLdouble x, GLdouble y); +extern void (* const& glVertexAttrib2dvARB) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib2fARB) (GLuint index, GLfloat x, GLfloat y); +extern void (* const& glVertexAttrib2fvARB) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib2sARB) (GLuint index, GLshort x, GLshort y); +extern void (* const& glVertexAttrib2svARB) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib3dARB) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glVertexAttrib3dvARB) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib3fARB) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glVertexAttrib3fvARB) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib3sARB) (GLuint index, GLshort x, GLshort y, GLshort z); +extern void (* const& glVertexAttrib3svARB) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4NbvARB) (GLuint index, const GLbyte *v); +extern void (* const& glVertexAttrib4NivARB) (GLuint index, const GLint *v); +extern void (* const& glVertexAttrib4NsvARB) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4NubARB) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void (* const& glVertexAttrib4NubvARB) (GLuint index, const GLubyte *v); +extern void (* const& glVertexAttrib4NuivARB) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttrib4NusvARB) (GLuint index, const GLushort *v); +extern void (* const& glVertexAttrib4bvARB) (GLuint index, const GLbyte *v); +extern void (* const& glVertexAttrib4dARB) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glVertexAttrib4dvARB) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib4fARB) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glVertexAttrib4fvARB) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib4ivARB) (GLuint index, const GLint *v); +extern void (* const& glVertexAttrib4sARB) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void (* const& glVertexAttrib4svARB) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4ubvARB) (GLuint index, const GLubyte *v); +extern void (* const& glVertexAttrib4uivARB) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttrib4usvARB) (GLuint index, const GLushort *v); +extern void (* const& glVertexAttribPointerARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +extern void (* const& glEnableVertexAttribArrayARB) (GLuint index); +extern void (* const& glDisableVertexAttribArrayARB) (GLuint index); +extern void (* const& glGetVertexAttribdvARB) (GLuint index, GLenum pname, GLdouble *params); +extern void (* const& glGetVertexAttribfvARB) (GLuint index, GLenum pname, GLfloat *params); +extern void (* const& glGetVertexAttribivARB) (GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribPointervARB) (GLuint index, GLenum pname, void **pointer); +#endif + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 +enum +{ + GL_VERTEX_SHADER_ARB = 0x8B31, + GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A, + GL_MAX_VARYING_FLOATS_ARB = 0x8B4B, + GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C, + GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D, + GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89, + GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A, +}; +extern void (* const& glBindAttribLocationARB) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +extern void (* const& glGetActiveAttribARB) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern GLint (* const& glGetAttribLocationARB) (GLhandleARB programObj, const GLcharARB *name); +#endif + +#ifndef GL_ARB_vertex_type_10f_11f_11f_rev +#define GL_ARB_vertex_type_10f_11f_11f_rev 1 +#endif + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 +#endif + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 +extern void (* const& glDepthRangeArraydvNV) (GLuint first, GLsizei count, const GLdouble *v); +extern void (* const& glDepthRangeIndexeddNV) (GLuint index, GLdouble n, GLdouble f); +#endif + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 +extern void (* const& glWindowPos2dARB) (GLdouble x, GLdouble y); +extern void (* const& glWindowPos2dvARB) (const GLdouble *v); +extern void (* const& glWindowPos2fARB) (GLfloat x, GLfloat y); +extern void (* const& glWindowPos2fvARB) (const GLfloat *v); +extern void (* const& glWindowPos2iARB) (GLint x, GLint y); +extern void (* const& glWindowPos2ivARB) (const GLint *v); +extern void (* const& glWindowPos2sARB) (GLshort x, GLshort y); +extern void (* const& glWindowPos2svARB) (const GLshort *v); +extern void (* const& glWindowPos3dARB) (GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glWindowPos3dvARB) (const GLdouble *v); +extern void (* const& glWindowPos3fARB) (GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glWindowPos3fvARB) (const GLfloat *v); +extern void (* const& glWindowPos3iARB) (GLint x, GLint y, GLint z); +extern void (* const& glWindowPos3ivARB) (const GLint *v); +extern void (* const& glWindowPos3sARB) (GLshort x, GLshort y, GLshort z); +extern void (* const& glWindowPos3svARB) (const GLshort *v); +#endif + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 +enum +{ + GL_MAX_DRAW_BUFFERS_ATI = 0x8824, + GL_DRAW_BUFFER0_ATI = 0x8825, + GL_DRAW_BUFFER1_ATI = 0x8826, + GL_DRAW_BUFFER2_ATI = 0x8827, + GL_DRAW_BUFFER3_ATI = 0x8828, + GL_DRAW_BUFFER4_ATI = 0x8829, + GL_DRAW_BUFFER5_ATI = 0x882A, + GL_DRAW_BUFFER6_ATI = 0x882B, + GL_DRAW_BUFFER7_ATI = 0x882C, + GL_DRAW_BUFFER8_ATI = 0x882D, + GL_DRAW_BUFFER9_ATI = 0x882E, + GL_DRAW_BUFFER10_ATI = 0x882F, + GL_DRAW_BUFFER11_ATI = 0x8830, + GL_DRAW_BUFFER12_ATI = 0x8831, + GL_DRAW_BUFFER13_ATI = 0x8832, + GL_DRAW_BUFFER14_ATI = 0x8833, + GL_DRAW_BUFFER15_ATI = 0x8834, +}; +extern void (* const& glDrawBuffersATI) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 +enum +{ + GL_ELEMENT_ARRAY_ATI = 0x8768, + GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769, + GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A, +}; +extern void (* const& glElementPointerATI) (GLenum type, const void *pointer); +extern void (* const& glDrawElementArrayATI) (GLenum mode, GLsizei count); +extern void (* const& glDrawRangeElementArrayATI) (GLenum mode, GLuint start, GLuint end, GLsizei count); +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 +enum +{ + GL_BUMP_ROT_MATRIX_ATI = 0x8775, + GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776, + GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777, + GL_BUMP_TEX_UNITS_ATI = 0x8778, + GL_DUDV_ATI = 0x8779, + GL_DU8DV8_ATI = 0x877A, + GL_BUMP_ENVMAP_ATI = 0x877B, + GL_BUMP_TARGET_ATI = 0x877C, +}; +extern void (* const& glTexBumpParameterivATI) (GLenum pname, const GLint *param); +extern void (* const& glTexBumpParameterfvATI) (GLenum pname, const GLfloat *param); +extern void (* const& glGetTexBumpParameterivATI) (GLenum pname, GLint *param); +extern void (* const& glGetTexBumpParameterfvATI) (GLenum pname, GLfloat *param); +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 +enum +{ + GL_FRAGMENT_SHADER_ATI = 0x8920, + GL_REG_0_ATI = 0x8921, + GL_REG_1_ATI = 0x8922, + GL_REG_2_ATI = 0x8923, + GL_REG_3_ATI = 0x8924, + GL_REG_4_ATI = 0x8925, + GL_REG_5_ATI = 0x8926, + GL_REG_6_ATI = 0x8927, + GL_REG_7_ATI = 0x8928, + GL_REG_8_ATI = 0x8929, + GL_REG_9_ATI = 0x892A, + GL_REG_10_ATI = 0x892B, + GL_REG_11_ATI = 0x892C, + GL_REG_12_ATI = 0x892D, + GL_REG_13_ATI = 0x892E, + GL_REG_14_ATI = 0x892F, + GL_REG_15_ATI = 0x8930, + GL_REG_16_ATI = 0x8931, + GL_REG_17_ATI = 0x8932, + GL_REG_18_ATI = 0x8933, + GL_REG_19_ATI = 0x8934, + GL_REG_20_ATI = 0x8935, + GL_REG_21_ATI = 0x8936, + GL_REG_22_ATI = 0x8937, + GL_REG_23_ATI = 0x8938, + GL_REG_24_ATI = 0x8939, + GL_REG_25_ATI = 0x893A, + GL_REG_26_ATI = 0x893B, + GL_REG_27_ATI = 0x893C, + GL_REG_28_ATI = 0x893D, + GL_REG_29_ATI = 0x893E, + GL_REG_30_ATI = 0x893F, + GL_REG_31_ATI = 0x8940, + GL_CON_0_ATI = 0x8941, + GL_CON_1_ATI = 0x8942, + GL_CON_2_ATI = 0x8943, + GL_CON_3_ATI = 0x8944, + GL_CON_4_ATI = 0x8945, + GL_CON_5_ATI = 0x8946, + GL_CON_6_ATI = 0x8947, + GL_CON_7_ATI = 0x8948, + GL_CON_8_ATI = 0x8949, + GL_CON_9_ATI = 0x894A, + GL_CON_10_ATI = 0x894B, + GL_CON_11_ATI = 0x894C, + GL_CON_12_ATI = 0x894D, + GL_CON_13_ATI = 0x894E, + GL_CON_14_ATI = 0x894F, + GL_CON_15_ATI = 0x8950, + GL_CON_16_ATI = 0x8951, + GL_CON_17_ATI = 0x8952, + GL_CON_18_ATI = 0x8953, + GL_CON_19_ATI = 0x8954, + GL_CON_20_ATI = 0x8955, + GL_CON_21_ATI = 0x8956, + GL_CON_22_ATI = 0x8957, + GL_CON_23_ATI = 0x8958, + GL_CON_24_ATI = 0x8959, + GL_CON_25_ATI = 0x895A, + GL_CON_26_ATI = 0x895B, + GL_CON_27_ATI = 0x895C, + GL_CON_28_ATI = 0x895D, + GL_CON_29_ATI = 0x895E, + GL_CON_30_ATI = 0x895F, + GL_CON_31_ATI = 0x8960, + GL_MOV_ATI = 0x8961, + GL_ADD_ATI = 0x8963, + GL_MUL_ATI = 0x8964, + GL_SUB_ATI = 0x8965, + GL_DOT3_ATI = 0x8966, + GL_DOT4_ATI = 0x8967, + GL_MAD_ATI = 0x8968, + GL_LERP_ATI = 0x8969, + GL_CND_ATI = 0x896A, + GL_CND0_ATI = 0x896B, + GL_DOT2_ADD_ATI = 0x896C, + GL_SECONDARY_INTERPOLATOR_ATI = 0x896D, + GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E, + GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F, + GL_NUM_PASSES_ATI = 0x8970, + GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971, + GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972, + GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973, + GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974, + GL_COLOR_ALPHA_PAIRING_ATI = 0x8975, + GL_SWIZZLE_STR_ATI = 0x8976, + GL_SWIZZLE_STQ_ATI = 0x8977, + GL_SWIZZLE_STR_DR_ATI = 0x8978, + GL_SWIZZLE_STQ_DQ_ATI = 0x8979, + GL_SWIZZLE_STRQ_ATI = 0x897A, + GL_SWIZZLE_STRQ_DQ_ATI = 0x897B, + GL_RED_BIT_ATI = 0x00000001, + GL_GREEN_BIT_ATI = 0x00000002, + GL_BLUE_BIT_ATI = 0x00000004, + GL_2X_BIT_ATI = 0x00000001, + GL_4X_BIT_ATI = 0x00000002, + GL_8X_BIT_ATI = 0x00000004, + GL_HALF_BIT_ATI = 0x00000008, + GL_QUARTER_BIT_ATI = 0x00000010, + GL_EIGHTH_BIT_ATI = 0x00000020, + GL_SATURATE_BIT_ATI = 0x00000040, + GL_COMP_BIT_ATI = 0x00000002, + GL_NEGATE_BIT_ATI = 0x00000004, + GL_BIAS_BIT_ATI = 0x00000008, +}; +extern GLuint (* const& glGenFragmentShadersATI) (GLuint range); +extern void (* const& glBindFragmentShaderATI) (GLuint id); +extern void (* const& glDeleteFragmentShaderATI) (GLuint id); +extern void (* const& glBeginFragmentShaderATI) (); +extern void (* const& glEndFragmentShaderATI) (); +extern void (* const& glPassTexCoordATI) (GLuint dst, GLuint coord, GLenum swizzle); +extern void (* const& glSampleMapATI) (GLuint dst, GLuint interp, GLenum swizzle); +extern void (* const& glColorFragmentOp1ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +extern void (* const& glColorFragmentOp2ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +extern void (* const& glColorFragmentOp3ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +extern void (* const& glAlphaFragmentOp1ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +extern void (* const& glAlphaFragmentOp2ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +extern void (* const& glAlphaFragmentOp3ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +extern void (* const& glSetFragmentShaderConstantATI) (GLuint dst, const GLfloat *value); +#endif + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 +extern void * (* const& glMapObjectBufferATI) (GLuint buffer); +extern void (* const& glUnmapObjectBufferATI) (GLuint buffer); +#endif + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 +enum +{ + GL_VBO_FREE_MEMORY_ATI = 0x87FB, + GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC, + GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD, +}; +#endif + +#ifndef GL_ATI_pixel_format_float +#define GL_ATI_pixel_format_float 1 +enum +{ + GL_RGBA_FLOAT_MODE_ATI = 0x8820, + GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835, +}; +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 +enum +{ + GL_PN_TRIANGLES_ATI = 0x87F0, + GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1, + GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2, + GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3, + GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4, + GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5, + GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6, + GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7, + GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8, +}; +extern void (* const& glPNTrianglesiATI) (GLenum pname, GLint param); +extern void (* const& glPNTrianglesfATI) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 +enum +{ + GL_STENCIL_BACK_FUNC_ATI = 0x8800, + GL_STENCIL_BACK_FAIL_ATI = 0x8801, + GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802, + GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803, +}; +extern void (* const& glStencilOpSeparateATI) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +extern void (* const& glStencilFuncSeparateATI) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 +enum +{ + GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200, +}; +#endif + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 +enum +{ + GL_MODULATE_ADD_ATI = 0x8744, + GL_MODULATE_SIGNED_ADD_ATI = 0x8745, + GL_MODULATE_SUBTRACT_ATI = 0x8746, +}; +#endif + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 +enum +{ + GL_RGBA_FLOAT32_ATI = 0x8814, + GL_RGB_FLOAT32_ATI = 0x8815, + GL_ALPHA_FLOAT32_ATI = 0x8816, + GL_INTENSITY_FLOAT32_ATI = 0x8817, + GL_LUMINANCE_FLOAT32_ATI = 0x8818, + GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819, + GL_RGBA_FLOAT16_ATI = 0x881A, + GL_RGB_FLOAT16_ATI = 0x881B, + GL_ALPHA_FLOAT16_ATI = 0x881C, + GL_INTENSITY_FLOAT16_ATI = 0x881D, + GL_LUMINANCE_FLOAT16_ATI = 0x881E, + GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F, +}; +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +enum +{ + GL_MIRROR_CLAMP_ATI = 0x8742, + GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743, +}; +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 +enum +{ + GL_STATIC_ATI = 0x8760, + GL_DYNAMIC_ATI = 0x8761, + GL_PRESERVE_ATI = 0x8762, + GL_DISCARD_ATI = 0x8763, + GL_OBJECT_BUFFER_SIZE_ATI = 0x8764, + GL_OBJECT_BUFFER_USAGE_ATI = 0x8765, + GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766, + GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767, +}; +extern GLuint (* const& glNewObjectBufferATI) (GLsizei size, const void *pointer, GLenum usage); +extern GLboolean (* const& glIsObjectBufferATI) (GLuint buffer); +extern void (* const& glUpdateObjectBufferATI) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); +extern void (* const& glGetObjectBufferfvATI) (GLuint buffer, GLenum pname, GLfloat *params); +extern void (* const& glGetObjectBufferivATI) (GLuint buffer, GLenum pname, GLint *params); +extern void (* const& glFreeObjectBufferATI) (GLuint buffer); +extern void (* const& glArrayObjectATI) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +extern void (* const& glGetArrayObjectfvATI) (GLenum array, GLenum pname, GLfloat *params); +extern void (* const& glGetArrayObjectivATI) (GLenum array, GLenum pname, GLint *params); +extern void (* const& glVariantArrayObjectATI) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +extern void (* const& glGetVariantArrayObjectfvATI) (GLuint id, GLenum pname, GLfloat *params); +extern void (* const& glGetVariantArrayObjectivATI) (GLuint id, GLenum pname, GLint *params); +#endif + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 +extern void (* const& glVertexAttribArrayObjectATI) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +extern void (* const& glGetVertexAttribArrayObjectfvATI) (GLuint index, GLenum pname, GLfloat *params); +extern void (* const& glGetVertexAttribArrayObjectivATI) (GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 +enum +{ + GL_MAX_VERTEX_STREAMS_ATI = 0x876B, + GL_VERTEX_STREAM0_ATI = 0x876C, + GL_VERTEX_STREAM1_ATI = 0x876D, + GL_VERTEX_STREAM2_ATI = 0x876E, + GL_VERTEX_STREAM3_ATI = 0x876F, + GL_VERTEX_STREAM4_ATI = 0x8770, + GL_VERTEX_STREAM5_ATI = 0x8771, + GL_VERTEX_STREAM6_ATI = 0x8772, + GL_VERTEX_STREAM7_ATI = 0x8773, + GL_VERTEX_SOURCE_ATI = 0x8774, +}; +extern void (* const& glVertexStream1sATI) (GLenum stream, GLshort x); +extern void (* const& glVertexStream1svATI) (GLenum stream, const GLshort *coords); +extern void (* const& glVertexStream1iATI) (GLenum stream, GLint x); +extern void (* const& glVertexStream1ivATI) (GLenum stream, const GLint *coords); +extern void (* const& glVertexStream1fATI) (GLenum stream, GLfloat x); +extern void (* const& glVertexStream1fvATI) (GLenum stream, const GLfloat *coords); +extern void (* const& glVertexStream1dATI) (GLenum stream, GLdouble x); +extern void (* const& glVertexStream1dvATI) (GLenum stream, const GLdouble *coords); +extern void (* const& glVertexStream2sATI) (GLenum stream, GLshort x, GLshort y); +extern void (* const& glVertexStream2svATI) (GLenum stream, const GLshort *coords); +extern void (* const& glVertexStream2iATI) (GLenum stream, GLint x, GLint y); +extern void (* const& glVertexStream2ivATI) (GLenum stream, const GLint *coords); +extern void (* const& glVertexStream2fATI) (GLenum stream, GLfloat x, GLfloat y); +extern void (* const& glVertexStream2fvATI) (GLenum stream, const GLfloat *coords); +extern void (* const& glVertexStream2dATI) (GLenum stream, GLdouble x, GLdouble y); +extern void (* const& glVertexStream2dvATI) (GLenum stream, const GLdouble *coords); +extern void (* const& glVertexStream3sATI) (GLenum stream, GLshort x, GLshort y, GLshort z); +extern void (* const& glVertexStream3svATI) (GLenum stream, const GLshort *coords); +extern void (* const& glVertexStream3iATI) (GLenum stream, GLint x, GLint y, GLint z); +extern void (* const& glVertexStream3ivATI) (GLenum stream, const GLint *coords); +extern void (* const& glVertexStream3fATI) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glVertexStream3fvATI) (GLenum stream, const GLfloat *coords); +extern void (* const& glVertexStream3dATI) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glVertexStream3dvATI) (GLenum stream, const GLdouble *coords); +extern void (* const& glVertexStream4sATI) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +extern void (* const& glVertexStream4svATI) (GLenum stream, const GLshort *coords); +extern void (* const& glVertexStream4iATI) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +extern void (* const& glVertexStream4ivATI) (GLenum stream, const GLint *coords); +extern void (* const& glVertexStream4fATI) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glVertexStream4fvATI) (GLenum stream, const GLfloat *coords); +extern void (* const& glVertexStream4dATI) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glVertexStream4dvATI) (GLenum stream, const GLdouble *coords); +extern void (* const& glNormalStream3bATI) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +extern void (* const& glNormalStream3bvATI) (GLenum stream, const GLbyte *coords); +extern void (* const& glNormalStream3sATI) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +extern void (* const& glNormalStream3svATI) (GLenum stream, const GLshort *coords); +extern void (* const& glNormalStream3iATI) (GLenum stream, GLint nx, GLint ny, GLint nz); +extern void (* const& glNormalStream3ivATI) (GLenum stream, const GLint *coords); +extern void (* const& glNormalStream3fATI) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +extern void (* const& glNormalStream3fvATI) (GLenum stream, const GLfloat *coords); +extern void (* const& glNormalStream3dATI) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +extern void (* const& glNormalStream3dvATI) (GLenum stream, const GLdouble *coords); +extern void (* const& glClientActiveVertexStreamATI) (GLenum stream); +extern void (* const& glVertexBlendEnviATI) (GLenum pname, GLint param); +extern void (* const& glVertexBlendEnvfATI) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 +enum +{ + GL_422_EXT = 0x80CC, + GL_422_REV_EXT = 0x80CD, + GL_422_AVERAGE_EXT = 0x80CE, + GL_422_REV_AVERAGE_EXT = 0x80CF, +}; +#endif + +#ifndef GL_EXT_EGL_image_storage +#define GL_EXT_EGL_image_storage 1 +extern void (* const& glEGLImageTargetTexStorageEXT) (GLenum target, GLeglImageOES image, const GLint* attrib_list); +extern void (* const& glEGLImageTargetTextureStorageEXT) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); +#endif + +#ifndef GL_EXT_EGL_sync +#define GL_EXT_EGL_sync 1 +#endif + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 +enum +{ + GL_ABGR_EXT = 0x8000, +}; +#endif + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 +enum +{ + GL_BGR_EXT = 0x80E0, + GL_BGRA_EXT = 0x80E1, +}; +#endif + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 +enum +{ + GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2, + GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3, + GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4, + GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED, + GL_UNIFORM_BUFFER_EXT = 0x8DEE, + GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF, +}; +extern void (* const& glUniformBufferEXT) (GLuint program, GLint location, GLuint buffer); +extern GLint (* const& glGetUniformBufferSizeEXT) (GLuint program, GLint location); +extern GLintptr (* const& glGetUniformOffsetEXT) (GLuint program, GLint location); +#endif + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 +enum +{ + GL_CONSTANT_COLOR_EXT = 0x8001, + GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002, + GL_CONSTANT_ALPHA_EXT = 0x8003, + GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004, + GL_BLEND_COLOR_EXT = 0x8005, +}; +extern void (* const& glBlendColorEXT) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +#endif + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 +enum +{ + GL_BLEND_EQUATION_RGB_EXT = 0x8009, + GL_BLEND_EQUATION_ALPHA_EXT = 0x883D, +}; +extern void (* const& glBlendEquationSeparateEXT) (GLenum modeRGB, GLenum modeAlpha); +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 +enum +{ + GL_BLEND_DST_RGB_EXT = 0x80C8, + GL_BLEND_SRC_RGB_EXT = 0x80C9, + GL_BLEND_DST_ALPHA_EXT = 0x80CA, + GL_BLEND_SRC_ALPHA_EXT = 0x80CB, +}; +extern void (* const& glBlendFuncSeparateEXT) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +enum +{ + GL_MIN_EXT = 0x8007, + GL_MAX_EXT = 0x8008, + GL_FUNC_ADD_EXT = 0x8006, + GL_BLEND_EQUATION_EXT = 0x8009, +}; +extern void (* const& glBlendEquationEXT) (GLenum mode); +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 +enum +{ + GL_FUNC_SUBTRACT_EXT = 0x800A, + GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B, +}; +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 +enum +{ + GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0, +}; +#endif + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 +enum +{ + GL_CMYK_EXT = 0x800C, + GL_CMYKA_EXT = 0x800D, + GL_PACK_CMYK_HINT_EXT = 0x800E, + GL_UNPACK_CMYK_HINT_EXT = 0x800F, +}; +#endif + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 +extern void (* const& glColorSubTableEXT) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +extern void (* const& glCopyColorSubTableEXT) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 +enum +{ + GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8, + GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9, +}; +extern void (* const& glLockArraysEXT) (GLint first, GLsizei count); +extern void (* const& glUnlockArraysEXT) (); +#endif + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 +enum +{ + GL_CONVOLUTION_1D_EXT = 0x8010, + GL_CONVOLUTION_2D_EXT = 0x8011, + GL_SEPARABLE_2D_EXT = 0x8012, + GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013, + GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014, + GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015, + GL_REDUCE_EXT = 0x8016, + GL_CONVOLUTION_FORMAT_EXT = 0x8017, + GL_CONVOLUTION_WIDTH_EXT = 0x8018, + GL_CONVOLUTION_HEIGHT_EXT = 0x8019, + GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A, + GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B, + GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C, + GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D, + GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E, + GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F, + GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020, + GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021, + GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022, + GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023, +}; +extern void (* const& glConvolutionFilter1DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +extern void (* const& glConvolutionFilter2DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +extern void (* const& glConvolutionParameterfEXT) (GLenum target, GLenum pname, GLfloat params); +extern void (* const& glConvolutionParameterfvEXT) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glConvolutionParameteriEXT) (GLenum target, GLenum pname, GLint params); +extern void (* const& glConvolutionParameterivEXT) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glCopyConvolutionFilter1DEXT) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void (* const& glCopyConvolutionFilter2DEXT) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glGetConvolutionFilterEXT) (GLenum target, GLenum format, GLenum type, void *image); +extern void (* const& glGetConvolutionParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetConvolutionParameterivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetSeparableFilterEXT) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +extern void (* const& glSeparableFilter2DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 +enum +{ + GL_TANGENT_ARRAY_EXT = 0x8439, + GL_BINORMAL_ARRAY_EXT = 0x843A, + GL_CURRENT_TANGENT_EXT = 0x843B, + GL_CURRENT_BINORMAL_EXT = 0x843C, + GL_TANGENT_ARRAY_TYPE_EXT = 0x843E, + GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F, + GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440, + GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441, + GL_TANGENT_ARRAY_POINTER_EXT = 0x8442, + GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443, + GL_MAP1_TANGENT_EXT = 0x8444, + GL_MAP2_TANGENT_EXT = 0x8445, + GL_MAP1_BINORMAL_EXT = 0x8446, + GL_MAP2_BINORMAL_EXT = 0x8447, +}; +extern void (* const& glTangent3bEXT) (GLbyte tx, GLbyte ty, GLbyte tz); +extern void (* const& glTangent3bvEXT) (const GLbyte *v); +extern void (* const& glTangent3dEXT) (GLdouble tx, GLdouble ty, GLdouble tz); +extern void (* const& glTangent3dvEXT) (const GLdouble *v); +extern void (* const& glTangent3fEXT) (GLfloat tx, GLfloat ty, GLfloat tz); +extern void (* const& glTangent3fvEXT) (const GLfloat *v); +extern void (* const& glTangent3iEXT) (GLint tx, GLint ty, GLint tz); +extern void (* const& glTangent3ivEXT) (const GLint *v); +extern void (* const& glTangent3sEXT) (GLshort tx, GLshort ty, GLshort tz); +extern void (* const& glTangent3svEXT) (const GLshort *v); +extern void (* const& glBinormal3bEXT) (GLbyte bx, GLbyte by, GLbyte bz); +extern void (* const& glBinormal3bvEXT) (const GLbyte *v); +extern void (* const& glBinormal3dEXT) (GLdouble bx, GLdouble by, GLdouble bz); +extern void (* const& glBinormal3dvEXT) (const GLdouble *v); +extern void (* const& glBinormal3fEXT) (GLfloat bx, GLfloat by, GLfloat bz); +extern void (* const& glBinormal3fvEXT) (const GLfloat *v); +extern void (* const& glBinormal3iEXT) (GLint bx, GLint by, GLint bz); +extern void (* const& glBinormal3ivEXT) (const GLint *v); +extern void (* const& glBinormal3sEXT) (GLshort bx, GLshort by, GLshort bz); +extern void (* const& glBinormal3svEXT) (const GLshort *v); +extern void (* const& glTangentPointerEXT) (GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glBinormalPointerEXT) (GLenum type, GLsizei stride, const void *pointer); +#endif + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 +extern void (* const& glCopyTexImage1DEXT) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +extern void (* const& glCopyTexImage2DEXT) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void (* const& glCopyTexSubImage1DEXT) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void (* const& glCopyTexSubImage2DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glCopyTexSubImage3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 +enum +{ + GL_CULL_VERTEX_EXT = 0x81AA, + GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB, + GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC, +}; +extern void (* const& glCullParameterdvEXT) (GLenum pname, GLdouble *params); +extern void (* const& glCullParameterfvEXT) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +enum +{ + GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F, + GL_PROGRAM_OBJECT_EXT = 0x8B40, + GL_SHADER_OBJECT_EXT = 0x8B48, + GL_BUFFER_OBJECT_EXT = 0x9151, + GL_QUERY_OBJECT_EXT = 0x9153, + GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154, +}; +extern void (* const& glLabelObjectEXT) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectLabelEXT) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +extern void (* const& glInsertEventMarkerEXT) (GLsizei length, const GLchar *marker); +extern void (* const& glPushGroupMarkerEXT) (GLsizei length, const GLchar *marker); +extern void (* const& glPopGroupMarkerEXT) (); +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +enum +{ + GL_DEPTH_BOUNDS_TEST_EXT = 0x8890, + GL_DEPTH_BOUNDS_EXT = 0x8891, +}; +extern void (* const& glDepthBoundsEXT) (GLclampd zmin, GLclampd zmax); +#endif + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 +enum +{ + GL_PROGRAM_MATRIX_EXT = 0x8E2D, + GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E, + GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F, +}; +extern void (* const& glMatrixLoadfEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixLoaddEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glMatrixMultfEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixMultdEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glMatrixLoadIdentityEXT) (GLenum mode); +extern void (* const& glMatrixRotatefEXT) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glMatrixRotatedEXT) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glMatrixScalefEXT) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glMatrixScaledEXT) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glMatrixTranslatefEXT) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glMatrixTranslatedEXT) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glMatrixFrustumEXT) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void (* const& glMatrixOrthoEXT) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void (* const& glMatrixPopEXT) (GLenum mode); +extern void (* const& glMatrixPushEXT) (GLenum mode); +extern void (* const& glClientAttribDefaultEXT) (GLbitfield mask); +extern void (* const& glPushClientAttribDefaultEXT) (GLbitfield mask); +extern void (* const& glTextureParameterfEXT) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +extern void (* const& glTextureParameterfvEXT) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glTextureParameteriEXT) (GLuint texture, GLenum target, GLenum pname, GLint param); +extern void (* const& glTextureParameterivEXT) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTextureImage1DEXT) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTextureImage2DEXT) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTextureSubImage1DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTextureSubImage2DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCopyTextureImage1DEXT) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +extern void (* const& glCopyTextureImage2DEXT) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void (* const& glCopyTextureSubImage1DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void (* const& glCopyTextureSubImage2DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glGetTextureImageEXT) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +extern void (* const& glGetTextureParameterfvEXT) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetTextureParameterivEXT) (GLuint texture, GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTextureLevelParameterfvEXT) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); +extern void (* const& glGetTextureLevelParameterivEXT) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); +extern void (* const& glTextureImage3DEXT) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTextureSubImage3DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCopyTextureSubImage3DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glBindMultiTextureEXT) (GLenum texunit, GLenum target, GLuint texture); +extern void (* const& glMultiTexCoordPointerEXT) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glMultiTexEnvfEXT) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +extern void (* const& glMultiTexEnvfvEXT) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glMultiTexEnviEXT) (GLenum texunit, GLenum target, GLenum pname, GLint param); +extern void (* const& glMultiTexEnvivEXT) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +extern void (* const& glMultiTexGendEXT) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +extern void (* const& glMultiTexGendvEXT) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); +extern void (* const& glMultiTexGenfEXT) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +extern void (* const& glMultiTexGenfvEXT) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); +extern void (* const& glMultiTexGeniEXT) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +extern void (* const& glMultiTexGenivEXT) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); +extern void (* const& glGetMultiTexEnvfvEXT) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetMultiTexEnvivEXT) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetMultiTexGendvEXT) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); +extern void (* const& glGetMultiTexGenfvEXT) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); +extern void (* const& glGetMultiTexGenivEXT) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); +extern void (* const& glMultiTexParameteriEXT) (GLenum texunit, GLenum target, GLenum pname, GLint param); +extern void (* const& glMultiTexParameterivEXT) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +extern void (* const& glMultiTexParameterfEXT) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +extern void (* const& glMultiTexParameterfvEXT) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glMultiTexImage1DEXT) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glMultiTexImage2DEXT) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glMultiTexSubImage1DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +extern void (* const& glMultiTexSubImage2DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCopyMultiTexImage1DEXT) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +extern void (* const& glCopyMultiTexImage2DEXT) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void (* const& glCopyMultiTexSubImage1DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void (* const& glCopyMultiTexSubImage2DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glGetMultiTexImageEXT) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +extern void (* const& glGetMultiTexParameterfvEXT) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetMultiTexParameterivEXT) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetMultiTexLevelParameterfvEXT) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); +extern void (* const& glGetMultiTexLevelParameterivEXT) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); +extern void (* const& glMultiTexImage3DEXT) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glMultiTexSubImage3DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCopyMultiTexSubImage3DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glEnableClientStateIndexedEXT) (GLenum array, GLuint index); +extern void (* const& glDisableClientStateIndexedEXT) (GLenum array, GLuint index); +extern void (* const& glGetFloatIndexedvEXT) (GLenum target, GLuint index, GLfloat *data); +extern void (* const& glGetDoubleIndexedvEXT) (GLenum target, GLuint index, GLdouble *data); +extern void (* const& glGetPointerIndexedvEXT) (GLenum target, GLuint index, void **data); +extern void (* const& glEnableIndexedEXT) (GLenum target, GLuint index); +extern void (* const& glDisableIndexedEXT) (GLenum target, GLuint index); +extern GLboolean (* const& glIsEnabledIndexedEXT) (GLenum target, GLuint index); +extern void (* const& glGetIntegerIndexedvEXT) (GLenum target, GLuint index, GLint *data); +extern void (* const& glGetBooleanIndexedvEXT) (GLenum target, GLuint index, GLboolean *data); +extern void (* const& glCompressedTextureImage3DEXT) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedTextureImage2DEXT) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedTextureImage1DEXT) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedTextureSubImage3DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedTextureSubImage2DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedTextureSubImage1DEXT) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +extern void (* const& glGetCompressedTextureImageEXT) (GLuint texture, GLenum target, GLint lod, void *img); +extern void (* const& glCompressedMultiTexImage3DEXT) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedMultiTexImage2DEXT) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedMultiTexImage1DEXT) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedMultiTexSubImage3DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedMultiTexSubImage2DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +extern void (* const& glCompressedMultiTexSubImage1DEXT) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +extern void (* const& glGetCompressedMultiTexImageEXT) (GLenum texunit, GLenum target, GLint lod, void *img); +extern void (* const& glMatrixLoadTransposefEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixLoadTransposedEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glMatrixMultTransposefEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixMultTransposedEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glNamedBufferDataEXT) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +extern void (* const& glNamedBufferSubDataEXT) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +extern void * (* const& glMapNamedBufferEXT) (GLuint buffer, GLenum access); +extern GLboolean (* const& glUnmapNamedBufferEXT) (GLuint buffer); +extern void (* const& glGetNamedBufferParameterivEXT) (GLuint buffer, GLenum pname, GLint *params); +extern void (* const& glGetNamedBufferPointervEXT) (GLuint buffer, GLenum pname, void **params); +extern void (* const& glGetNamedBufferSubDataEXT) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +extern void (* const& glProgramUniform1fEXT) (GLuint program, GLint location, GLfloat v0); +extern void (* const& glProgramUniform2fEXT) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +extern void (* const& glProgramUniform3fEXT) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void (* const& glProgramUniform4fEXT) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void (* const& glProgramUniform1iEXT) (GLuint program, GLint location, GLint v0); +extern void (* const& glProgramUniform2iEXT) (GLuint program, GLint location, GLint v0, GLint v1); +extern void (* const& glProgramUniform3iEXT) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +extern void (* const& glProgramUniform4iEXT) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void (* const& glProgramUniform1fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform2fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform3fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform4fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform1ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform2ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform3ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform4ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniformMatrix2fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2x3fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x2fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2x4fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x2fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x4fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x3fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glTextureBufferEXT) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +extern void (* const& glMultiTexBufferEXT) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +extern void (* const& glTextureParameterIivEXT) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTextureParameterIuivEXT) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); +extern void (* const& glGetTextureParameterIivEXT) (GLuint texture, GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTextureParameterIuivEXT) (GLuint texture, GLenum target, GLenum pname, GLuint *params); +extern void (* const& glMultiTexParameterIivEXT) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +extern void (* const& glMultiTexParameterIuivEXT) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); +extern void (* const& glGetMultiTexParameterIivEXT) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetMultiTexParameterIuivEXT) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); +extern void (* const& glProgramUniform1uiEXT) (GLuint program, GLint location, GLuint v0); +extern void (* const& glProgramUniform2uiEXT) (GLuint program, GLint location, GLuint v0, GLuint v1); +extern void (* const& glProgramUniform3uiEXT) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void (* const& glProgramUniform4uiEXT) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void (* const& glProgramUniform1uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform2uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform3uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform4uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glNamedProgramLocalParameters4fvEXT) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); +extern void (* const& glNamedProgramLocalParameterI4iEXT) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void (* const& glNamedProgramLocalParameterI4ivEXT) (GLuint program, GLenum target, GLuint index, const GLint *params); +extern void (* const& glNamedProgramLocalParametersI4ivEXT) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); +extern void (* const& glNamedProgramLocalParameterI4uiEXT) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void (* const& glNamedProgramLocalParameterI4uivEXT) (GLuint program, GLenum target, GLuint index, const GLuint *params); +extern void (* const& glNamedProgramLocalParametersI4uivEXT) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); +extern void (* const& glGetNamedProgramLocalParameterIivEXT) (GLuint program, GLenum target, GLuint index, GLint *params); +extern void (* const& glGetNamedProgramLocalParameterIuivEXT) (GLuint program, GLenum target, GLuint index, GLuint *params); +extern void (* const& glEnableClientStateiEXT) (GLenum array, GLuint index); +extern void (* const& glDisableClientStateiEXT) (GLenum array, GLuint index); +extern void (* const& glGetFloati_vEXT) (GLenum pname, GLuint index, GLfloat *params); +extern void (* const& glGetDoublei_vEXT) (GLenum pname, GLuint index, GLdouble *params); +extern void (* const& glGetPointeri_vEXT) (GLenum pname, GLuint index, void **params); +extern void (* const& glNamedProgramStringEXT) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); +extern void (* const& glNamedProgramLocalParameter4dEXT) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glNamedProgramLocalParameter4dvEXT) (GLuint program, GLenum target, GLuint index, const GLdouble *params); +extern void (* const& glNamedProgramLocalParameter4fEXT) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glNamedProgramLocalParameter4fvEXT) (GLuint program, GLenum target, GLuint index, const GLfloat *params); +extern void (* const& glGetNamedProgramLocalParameterdvEXT) (GLuint program, GLenum target, GLuint index, GLdouble *params); +extern void (* const& glGetNamedProgramLocalParameterfvEXT) (GLuint program, GLenum target, GLuint index, GLfloat *params); +extern void (* const& glGetNamedProgramivEXT) (GLuint program, GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetNamedProgramStringEXT) (GLuint program, GLenum target, GLenum pname, void *string); +extern void (* const& glNamedRenderbufferStorageEXT) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glGetNamedRenderbufferParameterivEXT) (GLuint renderbuffer, GLenum pname, GLint *params); +extern void (* const& glNamedRenderbufferStorageMultisampleEXT) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glNamedRenderbufferStorageMultisampleCoverageEXT) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +extern GLenum (* const& glCheckNamedFramebufferStatusEXT) (GLuint framebuffer, GLenum target); +extern void (* const& glNamedFramebufferTexture1DEXT) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void (* const& glNamedFramebufferTexture2DEXT) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void (* const& glNamedFramebufferTexture3DEXT) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void (* const& glNamedFramebufferRenderbufferEXT) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void (* const& glGetNamedFramebufferAttachmentParameterivEXT) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +extern void (* const& glGenerateTextureMipmapEXT) (GLuint texture, GLenum target); +extern void (* const& glGenerateMultiTexMipmapEXT) (GLenum texunit, GLenum target); +extern void (* const& glFramebufferDrawBufferEXT) (GLuint framebuffer, GLenum mode); +extern void (* const& glFramebufferDrawBuffersEXT) (GLuint framebuffer, GLsizei n, const GLenum *bufs); +extern void (* const& glFramebufferReadBufferEXT) (GLuint framebuffer, GLenum mode); +extern void (* const& glGetFramebufferParameterivEXT) (GLuint framebuffer, GLenum pname, GLint *params); +extern void (* const& glNamedCopyBufferSubDataEXT) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +extern void (* const& glNamedFramebufferTextureEXT) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +extern void (* const& glNamedFramebufferTextureLayerEXT) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +extern void (* const& glNamedFramebufferTextureFaceEXT) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +extern void (* const& glTextureRenderbufferEXT) (GLuint texture, GLenum target, GLuint renderbuffer); +extern void (* const& glMultiTexRenderbufferEXT) (GLenum texunit, GLenum target, GLuint renderbuffer); +extern void (* const& glVertexArrayVertexOffsetEXT) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayColorOffsetEXT) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayEdgeFlagOffsetEXT) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayIndexOffsetEXT) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayNormalOffsetEXT) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayTexCoordOffsetEXT) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayMultiTexCoordOffsetEXT) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayFogCoordOffsetEXT) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArraySecondaryColorOffsetEXT) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayVertexAttribOffsetEXT) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +extern void (* const& glVertexArrayVertexAttribIOffsetEXT) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glEnableVertexArrayEXT) (GLuint vaobj, GLenum array); +extern void (* const& glDisableVertexArrayEXT) (GLuint vaobj, GLenum array); +extern void (* const& glEnableVertexArrayAttribEXT) (GLuint vaobj, GLuint index); +extern void (* const& glDisableVertexArrayAttribEXT) (GLuint vaobj, GLuint index); +extern void (* const& glGetVertexArrayIntegervEXT) (GLuint vaobj, GLenum pname, GLint *param); +extern void (* const& glGetVertexArrayPointervEXT) (GLuint vaobj, GLenum pname, void **param); +extern void (* const& glGetVertexArrayIntegeri_vEXT) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +extern void (* const& glGetVertexArrayPointeri_vEXT) (GLuint vaobj, GLuint index, GLenum pname, void **param); +extern void * (* const& glMapNamedBufferRangeEXT) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +extern void (* const& glFlushMappedNamedBufferRangeEXT) (GLuint buffer, GLintptr offset, GLsizeiptr length); +extern void (* const& glNamedBufferStorageEXT) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +extern void (* const& glClearNamedBufferDataEXT) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +extern void (* const& glClearNamedBufferSubDataEXT) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +extern void (* const& glNamedFramebufferParameteriEXT) (GLuint framebuffer, GLenum pname, GLint param); +extern void (* const& glGetNamedFramebufferParameterivEXT) (GLuint framebuffer, GLenum pname, GLint *params); +extern void (* const& glProgramUniform1dEXT) (GLuint program, GLint location, GLdouble x); +extern void (* const& glProgramUniform2dEXT) (GLuint program, GLint location, GLdouble x, GLdouble y); +extern void (* const& glProgramUniform3dEXT) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glProgramUniform4dEXT) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glProgramUniform1dvEXT) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniform2dvEXT) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniform3dvEXT) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniform4dvEXT) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +extern void (* const& glProgramUniformMatrix2dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix3dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix4dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix2x3dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix2x4dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix3x2dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix3x4dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix4x2dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glProgramUniformMatrix4x3dvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +extern void (* const& glTextureBufferRangeEXT) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glTextureStorage1DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +extern void (* const& glTextureStorage2DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glTextureStorage3DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +extern void (* const& glTextureStorage2DMultisampleEXT) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +extern void (* const& glTextureStorage3DMultisampleEXT) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +extern void (* const& glVertexArrayBindVertexBufferEXT) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +extern void (* const& glVertexArrayVertexAttribFormatEXT) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +extern void (* const& glVertexArrayVertexAttribIFormatEXT) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +extern void (* const& glVertexArrayVertexAttribLFormatEXT) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +extern void (* const& glVertexArrayVertexAttribBindingEXT) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +extern void (* const& glVertexArrayVertexBindingDivisorEXT) (GLuint vaobj, GLuint bindingindex, GLuint divisor); +extern void (* const& glVertexArrayVertexAttribLOffsetEXT) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +extern void (* const& glTexturePageCommitmentEXT) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +extern void (* const& glVertexArrayVertexAttribDivisorEXT) (GLuint vaobj, GLuint index, GLuint divisor); +#endif + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 +extern void (* const& glColorMaskIndexedEXT) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +#endif + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +extern void (* const& glDrawArraysInstancedEXT) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +extern void (* const& glDrawElementsInstancedEXT) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 +enum +{ + GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8, + GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9, +}; +extern void (* const& glDrawRangeElementsEXT) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +#endif + +#ifndef GL_EXT_external_buffer +#define GL_EXT_external_buffer 1 +extern void (* const& glBufferStorageExternalEXT) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +extern void (* const& glNamedBufferStorageExternalEXT) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +#endif + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 +enum +{ + GL_FOG_COORDINATE_SOURCE_EXT = 0x8450, + GL_FOG_COORDINATE_EXT = 0x8451, + GL_FRAGMENT_DEPTH_EXT = 0x8452, + GL_CURRENT_FOG_COORDINATE_EXT = 0x8453, + GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454, + GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455, + GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456, + GL_FOG_COORDINATE_ARRAY_EXT = 0x8457, +}; +extern void (* const& glFogCoordfEXT) (GLfloat coord); +extern void (* const& glFogCoordfvEXT) (const GLfloat *coord); +extern void (* const& glFogCoorddEXT) (GLdouble coord); +extern void (* const& glFogCoorddvEXT) (const GLdouble *coord); +extern void (* const& glFogCoordPointerEXT) (GLenum type, GLsizei stride, const void *pointer); +#endif + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 +enum +{ + GL_READ_FRAMEBUFFER_EXT = 0x8CA8, + GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9, + GL_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6, + GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA, +}; +extern void (* const& glBlitFramebufferEXT) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 +enum +{ + GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56, + GL_MAX_SAMPLES_EXT = 0x8D57, +}; +extern void (* const& glRenderbufferStorageMultisampleEXT) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +enum +{ + GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA, + GL_SCALED_RESOLVE_NICEST_EXT = 0x90BB, +}; +#endif + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 +enum +{ + GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506, + GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8, + GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6, + GL_RENDERBUFFER_BINDING_EXT = 0x8CA7, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4, + GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5, + GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6, + GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7, + GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9, + GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA, + GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB, + GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC, + GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD, + GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF, + GL_COLOR_ATTACHMENT0_EXT = 0x8CE0, + GL_COLOR_ATTACHMENT1_EXT = 0x8CE1, + GL_COLOR_ATTACHMENT2_EXT = 0x8CE2, + GL_COLOR_ATTACHMENT3_EXT = 0x8CE3, + GL_COLOR_ATTACHMENT4_EXT = 0x8CE4, + GL_COLOR_ATTACHMENT5_EXT = 0x8CE5, + GL_COLOR_ATTACHMENT6_EXT = 0x8CE6, + GL_COLOR_ATTACHMENT7_EXT = 0x8CE7, + GL_COLOR_ATTACHMENT8_EXT = 0x8CE8, + GL_COLOR_ATTACHMENT9_EXT = 0x8CE9, + GL_COLOR_ATTACHMENT10_EXT = 0x8CEA, + GL_COLOR_ATTACHMENT11_EXT = 0x8CEB, + GL_COLOR_ATTACHMENT12_EXT = 0x8CEC, + GL_COLOR_ATTACHMENT13_EXT = 0x8CED, + GL_COLOR_ATTACHMENT14_EXT = 0x8CEE, + GL_COLOR_ATTACHMENT15_EXT = 0x8CEF, + GL_DEPTH_ATTACHMENT_EXT = 0x8D00, + GL_STENCIL_ATTACHMENT_EXT = 0x8D20, + GL_FRAMEBUFFER_EXT = 0x8D40, + GL_RENDERBUFFER_EXT = 0x8D41, + GL_RENDERBUFFER_WIDTH_EXT = 0x8D42, + GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43, + GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44, + GL_STENCIL_INDEX1_EXT = 0x8D46, + GL_STENCIL_INDEX4_EXT = 0x8D47, + GL_STENCIL_INDEX8_EXT = 0x8D48, + GL_STENCIL_INDEX16_EXT = 0x8D49, + GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50, + GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51, + GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52, + GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53, + GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54, + GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55, +}; +extern GLboolean (* const& glIsRenderbufferEXT) (GLuint renderbuffer); +extern void (* const& glBindRenderbufferEXT) (GLenum target, GLuint renderbuffer); +extern void (* const& glDeleteRenderbuffersEXT) (GLsizei n, const GLuint *renderbuffers); +extern void (* const& glGenRenderbuffersEXT) (GLsizei n, GLuint *renderbuffers); +extern void (* const& glRenderbufferStorageEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glGetRenderbufferParameterivEXT) (GLenum target, GLenum pname, GLint *params); +extern GLboolean (* const& glIsFramebufferEXT) (GLuint framebuffer); +extern void (* const& glBindFramebufferEXT) (GLenum target, GLuint framebuffer); +extern void (* const& glDeleteFramebuffersEXT) (GLsizei n, const GLuint *framebuffers); +extern void (* const& glGenFramebuffersEXT) (GLsizei n, GLuint *framebuffers); +extern GLenum (* const& glCheckFramebufferStatusEXT) (GLenum target); +extern void (* const& glFramebufferTexture1DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void (* const& glFramebufferTexture2DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void (* const& glFramebufferTexture3DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void (* const& glFramebufferRenderbufferEXT) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void (* const& glGetFramebufferAttachmentParameterivEXT) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void (* const& glGenerateMipmapEXT) (GLenum target); +#endif + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 +enum +{ + GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9, + GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA, +}; +#endif + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 +enum +{ + GL_GEOMETRY_SHADER_EXT = 0x8DD9, + GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA, + GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB, + GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29, + GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD, + GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE, + GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF, + GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1, + GL_LINES_ADJACENCY_EXT = 0x000A, + GL_LINE_STRIP_ADJACENCY_EXT = 0x000B, + GL_TRIANGLES_ADJACENCY_EXT = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4, + GL_PROGRAM_POINT_SIZE_EXT = 0x8642, +}; +extern void (* const& glProgramParameteriEXT) (GLuint program, GLenum pname, GLint value); +#endif + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 +extern void (* const& glProgramEnvParameters4fvEXT) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +extern void (* const& glProgramLocalParameters4fvEXT) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 +enum +{ + GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0, + GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1, + GL_SAMPLER_BUFFER_EXT = 0x8DC2, + GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3, + GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4, + GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5, + GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6, + GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7, + GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8, + GL_INT_SAMPLER_1D_EXT = 0x8DC9, + GL_INT_SAMPLER_2D_EXT = 0x8DCA, + GL_INT_SAMPLER_3D_EXT = 0x8DCB, + GL_INT_SAMPLER_CUBE_EXT = 0x8DCC, + GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD, + GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE, + GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF, + GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1, + GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2, + GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3, + GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4, + GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5, + GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6, + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7, + GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8, + GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904, + GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905, + GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD, +}; +extern void (* const& glGetUniformuivEXT) (GLuint program, GLint location, GLuint *params); +extern void (* const& glBindFragDataLocationEXT) (GLuint program, GLuint color, const GLchar *name); +extern GLint (* const& glGetFragDataLocationEXT) (GLuint program, const GLchar *name); +extern void (* const& glUniform1uiEXT) (GLint location, GLuint v0); +extern void (* const& glUniform2uiEXT) (GLint location, GLuint v0, GLuint v1); +extern void (* const& glUniform3uiEXT) (GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void (* const& glUniform4uiEXT) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void (* const& glUniform1uivEXT) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform2uivEXT) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform3uivEXT) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform4uivEXT) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glVertexAttribI1iEXT) (GLuint index, GLint x); +extern void (* const& glVertexAttribI2iEXT) (GLuint index, GLint x, GLint y); +extern void (* const& glVertexAttribI3iEXT) (GLuint index, GLint x, GLint y, GLint z); +extern void (* const& glVertexAttribI4iEXT) (GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void (* const& glVertexAttribI1uiEXT) (GLuint index, GLuint x); +extern void (* const& glVertexAttribI2uiEXT) (GLuint index, GLuint x, GLuint y); +extern void (* const& glVertexAttribI3uiEXT) (GLuint index, GLuint x, GLuint y, GLuint z); +extern void (* const& glVertexAttribI4uiEXT) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void (* const& glVertexAttribI1ivEXT) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI2ivEXT) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI3ivEXT) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI4ivEXT) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI1uivEXT) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI2uivEXT) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI3uivEXT) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI4uivEXT) (GLuint index, const GLuint *v); +extern void (* const& glVertexAttribI4bvEXT) (GLuint index, const GLbyte *v); +extern void (* const& glVertexAttribI4svEXT) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttribI4ubvEXT) (GLuint index, const GLubyte *v); +extern void (* const& glVertexAttribI4usvEXT) (GLuint index, const GLushort *v); +extern void (* const& glVertexAttribIPointerEXT) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glGetVertexAttribIivEXT) (GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribIuivEXT) (GLuint index, GLenum pname, GLuint *params); +#endif + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 +enum +{ + GL_HISTOGRAM_EXT = 0x8024, + GL_PROXY_HISTOGRAM_EXT = 0x8025, + GL_HISTOGRAM_WIDTH_EXT = 0x8026, + GL_HISTOGRAM_FORMAT_EXT = 0x8027, + GL_HISTOGRAM_RED_SIZE_EXT = 0x8028, + GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029, + GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A, + GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B, + GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C, + GL_HISTOGRAM_SINK_EXT = 0x802D, + GL_MINMAX_EXT = 0x802E, + GL_MINMAX_FORMAT_EXT = 0x802F, + GL_MINMAX_SINK_EXT = 0x8030, + GL_TABLE_TOO_LARGE_EXT = 0x8031, +}; +extern void (* const& glGetHistogramEXT) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +extern void (* const& glGetHistogramParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetHistogramParameterivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetMinmaxEXT) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +extern void (* const& glGetMinmaxParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetMinmaxParameterivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glHistogramEXT) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +extern void (* const& glMinmaxEXT) (GLenum target, GLenum internalformat, GLboolean sink); +extern void (* const& glResetHistogramEXT) (GLenum target); +extern void (* const& glResetMinmaxEXT) (GLenum target); +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 +enum +{ + GL_IUI_V2F_EXT = 0x81AD, + GL_IUI_V3F_EXT = 0x81AE, + GL_IUI_N3F_V2F_EXT = 0x81AF, + GL_IUI_N3F_V3F_EXT = 0x81B0, + GL_T2F_IUI_V2F_EXT = 0x81B1, + GL_T2F_IUI_V3F_EXT = 0x81B2, + GL_T2F_IUI_N3F_V2F_EXT = 0x81B3, + GL_T2F_IUI_N3F_V3F_EXT = 0x81B4, +}; +#endif + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 +enum +{ + GL_INDEX_TEST_EXT = 0x81B5, + GL_INDEX_TEST_FUNC_EXT = 0x81B6, + GL_INDEX_TEST_REF_EXT = 0x81B7, +}; +extern void (* const& glIndexFuncEXT) (GLenum func, GLclampf ref); +#endif + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 +enum +{ + GL_INDEX_MATERIAL_EXT = 0x81B8, + GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9, + GL_INDEX_MATERIAL_FACE_EXT = 0x81BA, +}; +extern void (* const& glIndexMaterialEXT) (GLenum face, GLenum mode); +#endif + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 +#endif + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 +enum +{ + GL_FRAGMENT_MATERIAL_EXT = 0x8349, + GL_FRAGMENT_NORMAL_EXT = 0x834A, + GL_FRAGMENT_COLOR_EXT = 0x834C, + GL_ATTENUATION_EXT = 0x834D, + GL_SHADOW_ATTENUATION_EXT = 0x834E, + GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F, + GL_TEXTURE_LIGHT_EXT = 0x8350, + GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351, + GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352, +}; +extern void (* const& glApplyTextureEXT) (GLenum mode); +extern void (* const& glTextureLightEXT) (GLenum pname); +extern void (* const& glTextureMaterialEXT) (GLenum face, GLenum mode); +#endif + +#ifndef GL_EXT_memory_object +#define GL_EXT_memory_object 1 +enum +{ + GL_TEXTURE_TILING_EXT = 0x9580, + GL_DEDICATED_MEMORY_OBJECT_EXT = 0x9581, + GL_PROTECTED_MEMORY_OBJECT_EXT = 0x959B, + GL_NUM_TILING_TYPES_EXT = 0x9582, + GL_TILING_TYPES_EXT = 0x9583, + GL_OPTIMAL_TILING_EXT = 0x9584, + GL_LINEAR_TILING_EXT = 0x9585, + GL_NUM_DEVICE_UUIDS_EXT = 0x9596, + GL_DEVICE_UUID_EXT = 0x9597, + GL_DRIVER_UUID_EXT = 0x9598, + GL_UUID_SIZE_EXT = 16, +}; +extern void (* const& glGetUnsignedBytevEXT) (GLenum pname, GLubyte *data); +extern void (* const& glGetUnsignedBytei_vEXT) (GLenum target, GLuint index, GLubyte *data); +extern void (* const& glDeleteMemoryObjectsEXT) (GLsizei n, const GLuint *memoryObjects); +extern GLboolean (* const& glIsMemoryObjectEXT) (GLuint memoryObject); +extern void (* const& glCreateMemoryObjectsEXT) (GLsizei n, GLuint *memoryObjects); +extern void (* const& glMemoryObjectParameterivEXT) (GLuint memoryObject, GLenum pname, const GLint *params); +extern void (* const& glGetMemoryObjectParameterivEXT) (GLuint memoryObject, GLenum pname, GLint *params); +extern void (* const& glTexStorageMem2DEXT) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem2DMultisampleEXT) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem3DEXT) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem3DMultisampleEXT) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glBufferStorageMemEXT) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem2DEXT) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem2DMultisampleEXT) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem3DEXT) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem3DMultisampleEXT) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glNamedBufferStorageMemEXT) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem1DEXT) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem1DEXT) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +#endif + +#ifndef GL_EXT_memory_object_fd +#define GL_EXT_memory_object_fd 1 +enum +{ + GL_HANDLE_TYPE_OPAQUE_FD_EXT = 0x9586, +}; +extern void (* const& glImportMemoryFdEXT) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); +#endif + +#ifndef GL_EXT_memory_object_win32 +#define GL_EXT_memory_object_win32 1 +enum +{ + GL_HANDLE_TYPE_OPAQUE_WIN32_EXT = 0x9587, + GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT = 0x9588, + GL_DEVICE_LUID_EXT = 0x9599, + GL_DEVICE_NODE_MASK_EXT = 0x959A, + GL_LUID_SIZE_EXT = 8, + GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT = 0x9589, + GL_HANDLE_TYPE_D3D12_RESOURCE_EXT = 0x958A, + GL_HANDLE_TYPE_D3D11_IMAGE_EXT = 0x958B, + GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT = 0x958C, +}; +extern void (* const& glImportMemoryWin32HandleEXT) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +extern void (* const& glImportMemoryWin32NameEXT) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); +#endif + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +extern void (* const& glMultiDrawArraysEXT) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void (* const& glMultiDrawElementsEXT) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 +enum +{ + GL_MULTISAMPLE_EXT = 0x809D, + GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F, + GL_SAMPLE_MASK_EXT = 0x80A0, + GL_1PASS_EXT = 0x80A1, + GL_2PASS_0_EXT = 0x80A2, + GL_2PASS_1_EXT = 0x80A3, + GL_4PASS_0_EXT = 0x80A4, + GL_4PASS_1_EXT = 0x80A5, + GL_4PASS_2_EXT = 0x80A6, + GL_4PASS_3_EXT = 0x80A7, + GL_SAMPLE_BUFFERS_EXT = 0x80A8, + GL_SAMPLES_EXT = 0x80A9, + GL_SAMPLE_MASK_VALUE_EXT = 0x80AA, + GL_SAMPLE_MASK_INVERT_EXT = 0x80AB, + GL_SAMPLE_PATTERN_EXT = 0x80AC, + GL_MULTISAMPLE_BIT_EXT = 0x20000000, +}; +extern void (* const& glSampleMaskEXT) (GLclampf value, GLboolean invert); +extern void (* const& glSamplePatternEXT) (GLenum pattern); +#endif + +#ifndef GL_EXT_multiview_tessellation_geometry_shader +#define GL_EXT_multiview_tessellation_geometry_shader 1 +#endif + +#ifndef GL_EXT_multiview_texture_multisample +#define GL_EXT_multiview_texture_multisample 1 +#endif + +#ifndef GL_EXT_multiview_timer_query +#define GL_EXT_multiview_timer_query 1 +#endif + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 +enum +{ + GL_DEPTH_STENCIL_EXT = 0x84F9, + GL_UNSIGNED_INT_24_8_EXT = 0x84FA, + GL_DEPTH24_STENCIL8_EXT = 0x88F0, + GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1, +}; +#endif + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 +enum +{ + GL_R11F_G11F_B10F_EXT = 0x8C3A, + GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B, + GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C, +}; +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 +enum +{ + GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032, + GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033, + GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034, + GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035, + GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036, +}; +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 +enum +{ + GL_COLOR_INDEX1_EXT = 0x80E2, + GL_COLOR_INDEX2_EXT = 0x80E3, + GL_COLOR_INDEX4_EXT = 0x80E4, + GL_COLOR_INDEX8_EXT = 0x80E5, + GL_COLOR_INDEX12_EXT = 0x80E6, + GL_COLOR_INDEX16_EXT = 0x80E7, + GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED, +}; +extern void (* const& glColorTableEXT) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); +extern void (* const& glGetColorTableEXT) (GLenum target, GLenum format, GLenum type, void *data); +extern void (* const& glGetColorTableParameterivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetColorTableParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 +enum +{ + GL_PIXEL_PACK_BUFFER_EXT = 0x88EB, + GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF, +}; +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 +enum +{ + GL_PIXEL_TRANSFORM_2D_EXT = 0x8330, + GL_PIXEL_MAG_FILTER_EXT = 0x8331, + GL_PIXEL_MIN_FILTER_EXT = 0x8332, + GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333, + GL_CUBIC_EXT = 0x8334, + GL_AVERAGE_EXT = 0x8335, + GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336, + GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337, + GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338, +}; +extern void (* const& glPixelTransformParameteriEXT) (GLenum target, GLenum pname, GLint param); +extern void (* const& glPixelTransformParameterfEXT) (GLenum target, GLenum pname, GLfloat param); +extern void (* const& glPixelTransformParameterivEXT) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glPixelTransformParameterfvEXT) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glGetPixelTransformParameterivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetPixelTransformParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 +#endif + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 +enum +{ + GL_POINT_SIZE_MIN_EXT = 0x8126, + GL_POINT_SIZE_MAX_EXT = 0x8127, + GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128, + GL_DISTANCE_ATTENUATION_EXT = 0x8129, +}; +extern void (* const& glPointParameterfEXT) (GLenum pname, GLfloat param); +extern void (* const& glPointParameterfvEXT) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 +enum +{ + GL_POLYGON_OFFSET_EXT = 0x8037, + GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038, + GL_POLYGON_OFFSET_BIAS_EXT = 0x8039, +}; +extern void (* const& glPolygonOffsetEXT) (GLfloat factor, GLfloat bias); +#endif + +#ifndef GL_EXT_polygon_offset_clamp +#define GL_EXT_polygon_offset_clamp 1 +enum +{ + GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B, +}; +extern void (* const& glPolygonOffsetClampEXT) (GLfloat factor, GLfloat units, GLfloat clamp); +#endif + +#ifndef GL_EXT_post_depth_coverage +#define GL_EXT_post_depth_coverage 1 +#endif + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 +enum +{ + GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C, + GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D, + GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E, + GL_PROVOKING_VERTEX_EXT = 0x8E4F, +}; +extern void (* const& glProvokingVertexEXT) (GLenum mode); +#endif + +#ifndef GL_EXT_raster_multisample +#define GL_EXT_raster_multisample 1 +enum +{ + GL_RASTER_MULTISAMPLE_EXT = 0x9327, + GL_RASTER_SAMPLES_EXT = 0x9328, + GL_MAX_RASTER_SAMPLES_EXT = 0x9329, + GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A, + GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B, + GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C, +}; +extern void (* const& glRasterSamplesEXT) (GLuint samples, GLboolean fixedsamplelocations); +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 +enum +{ + GL_RESCALE_NORMAL_EXT = 0x803A, +}; +#endif + +#ifndef GL_EXT_semaphore +#define GL_EXT_semaphore 1 +enum +{ + GL_LAYOUT_GENERAL_EXT = 0x958D, + GL_LAYOUT_COLOR_ATTACHMENT_EXT = 0x958E, + GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT = 0x958F, + GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT = 0x9590, + GL_LAYOUT_SHADER_READ_ONLY_EXT = 0x9591, + GL_LAYOUT_TRANSFER_SRC_EXT = 0x9592, + GL_LAYOUT_TRANSFER_DST_EXT = 0x9593, + GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT = 0x9530, + GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT = 0x9531, +}; +extern void (* const& glGenSemaphoresEXT) (GLsizei n, GLuint *semaphores); +extern void (* const& glDeleteSemaphoresEXT) (GLsizei n, const GLuint *semaphores); +extern GLboolean (* const& glIsSemaphoreEXT) (GLuint semaphore); +extern void (* const& glSemaphoreParameterui64vEXT) (GLuint semaphore, GLenum pname, const GLuint64 *params); +extern void (* const& glGetSemaphoreParameterui64vEXT) (GLuint semaphore, GLenum pname, GLuint64 *params); +extern void (* const& glWaitSemaphoreEXT) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); +extern void (* const& glSignalSemaphoreEXT) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +#endif + +#ifndef GL_EXT_semaphore_fd +#define GL_EXT_semaphore_fd 1 +extern void (* const& glImportSemaphoreFdEXT) (GLuint semaphore, GLenum handleType, GLint fd); +#endif + +#ifndef GL_EXT_semaphore_win32 +#define GL_EXT_semaphore_win32 1 +enum +{ + GL_HANDLE_TYPE_D3D12_FENCE_EXT = 0x9594, + GL_D3D12_FENCE_VALUE_EXT = 0x9595, +}; +extern void (* const& glImportSemaphoreWin32HandleEXT) (GLuint semaphore, GLenum handleType, void *handle); +extern void (* const& glImportSemaphoreWin32NameEXT) (GLuint semaphore, GLenum handleType, const void *name); +#endif + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 +enum +{ + GL_COLOR_SUM_EXT = 0x8458, + GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459, + GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A, + GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B, + GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C, + GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D, + GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E, +}; +extern void (* const& glSecondaryColor3bEXT) (GLbyte red, GLbyte green, GLbyte blue); +extern void (* const& glSecondaryColor3bvEXT) (const GLbyte *v); +extern void (* const& glSecondaryColor3dEXT) (GLdouble red, GLdouble green, GLdouble blue); +extern void (* const& glSecondaryColor3dvEXT) (const GLdouble *v); +extern void (* const& glSecondaryColor3fEXT) (GLfloat red, GLfloat green, GLfloat blue); +extern void (* const& glSecondaryColor3fvEXT) (const GLfloat *v); +extern void (* const& glSecondaryColor3iEXT) (GLint red, GLint green, GLint blue); +extern void (* const& glSecondaryColor3ivEXT) (const GLint *v); +extern void (* const& glSecondaryColor3sEXT) (GLshort red, GLshort green, GLshort blue); +extern void (* const& glSecondaryColor3svEXT) (const GLshort *v); +extern void (* const& glSecondaryColor3ubEXT) (GLubyte red, GLubyte green, GLubyte blue); +extern void (* const& glSecondaryColor3ubvEXT) (const GLubyte *v); +extern void (* const& glSecondaryColor3uiEXT) (GLuint red, GLuint green, GLuint blue); +extern void (* const& glSecondaryColor3uivEXT) (const GLuint *v); +extern void (* const& glSecondaryColor3usEXT) (GLushort red, GLushort green, GLushort blue); +extern void (* const& glSecondaryColor3usvEXT) (const GLushort *v); +extern void (* const& glSecondaryColorPointerEXT) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 +enum +{ + GL_ACTIVE_PROGRAM_EXT = 0x8B8D, + GL_VERTEX_SHADER_BIT_EXT = 0x00000001, + GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002, + GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF, + GL_PROGRAM_SEPARABLE_EXT = 0x8258, + GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A, +}; +extern void (* const& glUseShaderProgramEXT) (GLenum type, GLuint program); +extern void (* const& glActiveProgramEXT) (GLuint program); +extern GLuint (* const& glCreateShaderProgramEXT) (GLenum type, const GLchar *string); +extern void (* const& glActiveShaderProgramEXT) (GLuint pipeline, GLuint program); +extern void (* const& glBindProgramPipelineEXT) (GLuint pipeline); +extern GLuint (* const& glCreateShaderProgramvEXT) (GLenum type, GLsizei count, const GLchar **strings); +extern void (* const& glDeleteProgramPipelinesEXT) (GLsizei n, const GLuint *pipelines); +extern void (* const& glGenProgramPipelinesEXT) (GLsizei n, GLuint *pipelines); +extern void (* const& glGetProgramPipelineInfoLogEXT) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glGetProgramPipelineivEXT) (GLuint pipeline, GLenum pname, GLint *params); +extern GLboolean (* const& glIsProgramPipelineEXT) (GLuint pipeline); +extern void (* const& glUseProgramStagesEXT) (GLuint pipeline, GLbitfield stages, GLuint program); +extern void (* const& glValidateProgramPipelineEXT) (GLuint pipeline); +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 +enum +{ + GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8, + GL_SINGLE_COLOR_EXT = 0x81F9, + GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA, +}; +#endif + +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 +enum +{ + GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52, +}; +#endif + +#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent +#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 +extern void (* const& glFramebufferFetchBarrierEXT) (); +#endif + +#ifndef GL_EXT_shader_image_load_formatted +#define GL_EXT_shader_image_load_formatted 1 +#endif + +#ifndef GL_EXT_shader_image_load_store +#define GL_EXT_shader_image_load_store 1 +enum +{ + GL_MAX_IMAGE_UNITS_EXT = 0x8F38, + GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39, + GL_IMAGE_BINDING_NAME_EXT = 0x8F3A, + GL_IMAGE_BINDING_LEVEL_EXT = 0x8F3B, + GL_IMAGE_BINDING_LAYERED_EXT = 0x8F3C, + GL_IMAGE_BINDING_LAYER_EXT = 0x8F3D, + GL_IMAGE_BINDING_ACCESS_EXT = 0x8F3E, + GL_IMAGE_1D_EXT = 0x904C, + GL_IMAGE_2D_EXT = 0x904D, + GL_IMAGE_3D_EXT = 0x904E, + GL_IMAGE_2D_RECT_EXT = 0x904F, + GL_IMAGE_CUBE_EXT = 0x9050, + GL_IMAGE_BUFFER_EXT = 0x9051, + GL_IMAGE_1D_ARRAY_EXT = 0x9052, + GL_IMAGE_2D_ARRAY_EXT = 0x9053, + GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054, + GL_IMAGE_2D_MULTISAMPLE_EXT = 0x9055, + GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056, + GL_INT_IMAGE_1D_EXT = 0x9057, + GL_INT_IMAGE_2D_EXT = 0x9058, + GL_INT_IMAGE_3D_EXT = 0x9059, + GL_INT_IMAGE_2D_RECT_EXT = 0x905A, + GL_INT_IMAGE_CUBE_EXT = 0x905B, + GL_INT_IMAGE_BUFFER_EXT = 0x905C, + GL_INT_IMAGE_1D_ARRAY_EXT = 0x905D, + GL_INT_IMAGE_2D_ARRAY_EXT = 0x905E, + GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F, + GL_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060, + GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061, + GL_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062, + GL_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063, + GL_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064, + GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065, + GL_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066, + GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067, + GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068, + GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069, + GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A, + GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B, + GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C, + GL_MAX_IMAGE_SAMPLES_EXT = 0x906D, + GL_IMAGE_BINDING_FORMAT_EXT = 0x906E, + GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001, + GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002, + GL_UNIFORM_BARRIER_BIT_EXT = 0x00000004, + GL_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008, + GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020, + GL_COMMAND_BARRIER_BIT_EXT = 0x00000040, + GL_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080, + GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100, + GL_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200, + GL_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400, + GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800, + GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000, + GL_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF, +}; +extern void (* const& glBindImageTextureEXT) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +extern void (* const& glMemoryBarrierEXT) (GLbitfield barriers); +#endif + +#ifndef GL_EXT_shader_integer_mix +#define GL_EXT_shader_integer_mix 1 +#endif + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 +enum +{ + GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB, +}; +#endif + +#ifndef GL_EXT_sparse_texture2 +#define GL_EXT_sparse_texture2 1 +#endif + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 +enum +{ + GL_STENCIL_TAG_BITS_EXT = 0x88F2, + GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3, +}; +extern void (* const& glStencilClearTagEXT) (GLsizei stencilTagBits, GLuint stencilClearTag); +#endif + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 +enum +{ + GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910, + GL_ACTIVE_STENCIL_FACE_EXT = 0x8911, +}; +extern void (* const& glActiveStencilFaceEXT) (GLenum face); +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 +enum +{ + GL_INCR_WRAP_EXT = 0x8507, + GL_DECR_WRAP_EXT = 0x8508, +}; +#endif + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 +extern void (* const& glTexSubImage1DEXT) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexSubImage2DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +#endif + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 +enum +{ + GL_ALPHA4_EXT = 0x803B, + GL_ALPHA8_EXT = 0x803C, + GL_ALPHA12_EXT = 0x803D, + GL_ALPHA16_EXT = 0x803E, + GL_LUMINANCE4_EXT = 0x803F, + GL_LUMINANCE8_EXT = 0x8040, + GL_LUMINANCE12_EXT = 0x8041, + GL_LUMINANCE16_EXT = 0x8042, + GL_LUMINANCE4_ALPHA4_EXT = 0x8043, + GL_LUMINANCE6_ALPHA2_EXT = 0x8044, + GL_LUMINANCE8_ALPHA8_EXT = 0x8045, + GL_LUMINANCE12_ALPHA4_EXT = 0x8046, + GL_LUMINANCE12_ALPHA12_EXT = 0x8047, + GL_LUMINANCE16_ALPHA16_EXT = 0x8048, + GL_INTENSITY_EXT = 0x8049, + GL_INTENSITY4_EXT = 0x804A, + GL_INTENSITY8_EXT = 0x804B, + GL_INTENSITY12_EXT = 0x804C, + GL_INTENSITY16_EXT = 0x804D, + GL_RGB2_EXT = 0x804E, + GL_RGB4_EXT = 0x804F, + GL_RGB5_EXT = 0x8050, + GL_RGB8_EXT = 0x8051, + GL_RGB10_EXT = 0x8052, + GL_RGB12_EXT = 0x8053, + GL_RGB16_EXT = 0x8054, + GL_RGBA2_EXT = 0x8055, + GL_RGBA4_EXT = 0x8056, + GL_RGB5_A1_EXT = 0x8057, + GL_RGBA8_EXT = 0x8058, + GL_RGB10_A2_EXT = 0x8059, + GL_RGBA12_EXT = 0x805A, + GL_RGBA16_EXT = 0x805B, + GL_TEXTURE_RED_SIZE_EXT = 0x805C, + GL_TEXTURE_GREEN_SIZE_EXT = 0x805D, + GL_TEXTURE_BLUE_SIZE_EXT = 0x805E, + GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F, + GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060, + GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061, + GL_REPLACE_EXT = 0x8062, + GL_PROXY_TEXTURE_1D_EXT = 0x8063, + GL_PROXY_TEXTURE_2D_EXT = 0x8064, + GL_TEXTURE_TOO_LARGE_EXT = 0x8065, +}; +#endif + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 +enum +{ + GL_PACK_SKIP_IMAGES_EXT = 0x806B, + GL_PACK_IMAGE_HEIGHT_EXT = 0x806C, + GL_UNPACK_SKIP_IMAGES_EXT = 0x806D, + GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E, + GL_TEXTURE_3D_EXT = 0x806F, + GL_PROXY_TEXTURE_3D_EXT = 0x8070, + GL_TEXTURE_DEPTH_EXT = 0x8071, + GL_TEXTURE_WRAP_R_EXT = 0x8072, + GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073, +}; +extern void (* const& glTexImage3DEXT) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexSubImage3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +#endif + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 +enum +{ + GL_TEXTURE_1D_ARRAY_EXT = 0x8C18, + GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19, + GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A, + GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B, + GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C, + GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D, + GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF, + GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E, +}; +extern void (* const& glFramebufferTextureLayerEXT) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 +enum +{ + GL_TEXTURE_BUFFER_EXT = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D, + GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E, +}; +extern void (* const& glTexBufferEXT) (GLenum target, GLenum internalformat, GLuint buffer); +#endif + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 +enum +{ + GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70, + GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71, + GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72, + GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73, +}; +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +enum +{ + GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB, + GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC, + GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD, + GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE, +}; +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +enum +{ + GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0, + GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1, + GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2, + GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3, +}; +#endif + +#ifndef GL_EXT_texture_cube_map +#define GL_EXT_texture_cube_map 1 +enum +{ + GL_NORMAL_MAP_EXT = 0x8511, + GL_REFLECTION_MAP_EXT = 0x8512, + GL_TEXTURE_CUBE_MAP_EXT = 0x8513, + GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514, + GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A, + GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B, + GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C, +}; +#endif + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 +enum +{ + GL_COMBINE_EXT = 0x8570, + GL_COMBINE_RGB_EXT = 0x8571, + GL_COMBINE_ALPHA_EXT = 0x8572, + GL_RGB_SCALE_EXT = 0x8573, + GL_ADD_SIGNED_EXT = 0x8574, + GL_INTERPOLATE_EXT = 0x8575, + GL_CONSTANT_EXT = 0x8576, + GL_PRIMARY_COLOR_EXT = 0x8577, + GL_PREVIOUS_EXT = 0x8578, + GL_SOURCE0_RGB_EXT = 0x8580, + GL_SOURCE1_RGB_EXT = 0x8581, + GL_SOURCE2_RGB_EXT = 0x8582, + GL_SOURCE0_ALPHA_EXT = 0x8588, + GL_SOURCE1_ALPHA_EXT = 0x8589, + GL_SOURCE2_ALPHA_EXT = 0x858A, + GL_OPERAND0_RGB_EXT = 0x8590, + GL_OPERAND1_RGB_EXT = 0x8591, + GL_OPERAND2_RGB_EXT = 0x8592, + GL_OPERAND0_ALPHA_EXT = 0x8598, + GL_OPERAND1_ALPHA_EXT = 0x8599, + GL_OPERAND2_ALPHA_EXT = 0x859A, +}; +#endif + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 +enum +{ + GL_DOT3_RGB_EXT = 0x8740, + GL_DOT3_RGBA_EXT = 0x8741, +}; +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +enum +{ + GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE, + GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF, +}; +#endif + +#ifndef GL_EXT_texture_filter_minmax +#define GL_EXT_texture_filter_minmax 1 +enum +{ + GL_TEXTURE_REDUCTION_MODE_EXT = 0x9366, + GL_WEIGHTED_AVERAGE_EXT = 0x9367, +}; +#endif + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 +enum +{ + GL_RGBA32UI_EXT = 0x8D70, + GL_RGB32UI_EXT = 0x8D71, + GL_ALPHA32UI_EXT = 0x8D72, + GL_INTENSITY32UI_EXT = 0x8D73, + GL_LUMINANCE32UI_EXT = 0x8D74, + GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75, + GL_RGBA16UI_EXT = 0x8D76, + GL_RGB16UI_EXT = 0x8D77, + GL_ALPHA16UI_EXT = 0x8D78, + GL_INTENSITY16UI_EXT = 0x8D79, + GL_LUMINANCE16UI_EXT = 0x8D7A, + GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B, + GL_RGBA8UI_EXT = 0x8D7C, + GL_RGB8UI_EXT = 0x8D7D, + GL_ALPHA8UI_EXT = 0x8D7E, + GL_INTENSITY8UI_EXT = 0x8D7F, + GL_LUMINANCE8UI_EXT = 0x8D80, + GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81, + GL_RGBA32I_EXT = 0x8D82, + GL_RGB32I_EXT = 0x8D83, + GL_ALPHA32I_EXT = 0x8D84, + GL_INTENSITY32I_EXT = 0x8D85, + GL_LUMINANCE32I_EXT = 0x8D86, + GL_LUMINANCE_ALPHA32I_EXT = 0x8D87, + GL_RGBA16I_EXT = 0x8D88, + GL_RGB16I_EXT = 0x8D89, + GL_ALPHA16I_EXT = 0x8D8A, + GL_INTENSITY16I_EXT = 0x8D8B, + GL_LUMINANCE16I_EXT = 0x8D8C, + GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D, + GL_RGBA8I_EXT = 0x8D8E, + GL_RGB8I_EXT = 0x8D8F, + GL_ALPHA8I_EXT = 0x8D90, + GL_INTENSITY8I_EXT = 0x8D91, + GL_LUMINANCE8I_EXT = 0x8D92, + GL_LUMINANCE_ALPHA8I_EXT = 0x8D93, + GL_RED_INTEGER_EXT = 0x8D94, + GL_GREEN_INTEGER_EXT = 0x8D95, + GL_BLUE_INTEGER_EXT = 0x8D96, + GL_ALPHA_INTEGER_EXT = 0x8D97, + GL_RGB_INTEGER_EXT = 0x8D98, + GL_RGBA_INTEGER_EXT = 0x8D99, + GL_BGR_INTEGER_EXT = 0x8D9A, + GL_BGRA_INTEGER_EXT = 0x8D9B, + GL_LUMINANCE_INTEGER_EXT = 0x8D9C, + GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D, + GL_RGBA_INTEGER_MODE_EXT = 0x8D9E, +}; +extern void (* const& glTexParameterIivEXT) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexParameterIuivEXT) (GLenum target, GLenum pname, const GLuint *params); +extern void (* const& glGetTexParameterIivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTexParameterIuivEXT) (GLenum target, GLenum pname, GLuint *params); +extern void (* const& glClearColorIiEXT) (GLint red, GLint green, GLint blue, GLint alpha); +extern void (* const& glClearColorIuiEXT) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 +enum +{ + GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD, + GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500, + GL_TEXTURE_LOD_BIAS_EXT = 0x8501, +}; +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +enum +{ + GL_MIRROR_CLAMP_EXT = 0x8742, + GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743, + GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912, +}; +#endif + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 +enum +{ + GL_TEXTURE_PRIORITY_EXT = 0x8066, + GL_TEXTURE_RESIDENT_EXT = 0x8067, + GL_TEXTURE_1D_BINDING_EXT = 0x8068, + GL_TEXTURE_2D_BINDING_EXT = 0x8069, + GL_TEXTURE_3D_BINDING_EXT = 0x806A, +}; +extern GLboolean (* const& glAreTexturesResidentEXT) (GLsizei n, const GLuint *textures, GLboolean *residences); +extern void (* const& glBindTextureEXT) (GLenum target, GLuint texture); +extern void (* const& glDeleteTexturesEXT) (GLsizei n, const GLuint *textures); +extern void (* const& glGenTexturesEXT) (GLsizei n, GLuint *textures); +extern GLboolean (* const& glIsTextureEXT) (GLuint texture); +extern void (* const& glPrioritizeTexturesEXT) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 +enum +{ + GL_PERTURB_EXT = 0x85AE, + GL_TEXTURE_NORMAL_EXT = 0x85AF, +}; +extern void (* const& glTextureNormalEXT) (GLenum mode); +#endif + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 +enum +{ + GL_SRGB_EXT = 0x8C40, + GL_SRGB8_EXT = 0x8C41, + GL_SRGB_ALPHA_EXT = 0x8C42, + GL_SRGB8_ALPHA8_EXT = 0x8C43, + GL_SLUMINANCE_ALPHA_EXT = 0x8C44, + GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45, + GL_SLUMINANCE_EXT = 0x8C46, + GL_SLUMINANCE8_EXT = 0x8C47, + GL_COMPRESSED_SRGB_EXT = 0x8C48, + GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49, + GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A, + GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B, + GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F, +}; +#endif + +#ifndef GL_EXT_texture_sRGB_R8 +#define GL_EXT_texture_sRGB_R8 1 +enum +{ + GL_SR8_EXT = 0x8FBD, +}; +#endif + +#ifndef GL_EXT_texture_sRGB_RG8 +#define GL_EXT_texture_sRGB_RG8 1 +enum +{ + GL_SRG8_EXT = 0x8FBE, +}; +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +enum +{ + GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48, + GL_DECODE_EXT = 0x8A49, + GL_SKIP_DECODE_EXT = 0x8A4A, +}; +#endif + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 +enum +{ + GL_RGB9_E5_EXT = 0x8C3D, + GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E, + GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F, +}; +#endif + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 +enum +{ + GL_ALPHA_SNORM = 0x9010, + GL_LUMINANCE_SNORM = 0x9011, + GL_LUMINANCE_ALPHA_SNORM = 0x9012, + GL_INTENSITY_SNORM = 0x9013, + GL_ALPHA8_SNORM = 0x9014, + GL_LUMINANCE8_SNORM = 0x9015, + GL_LUMINANCE8_ALPHA8_SNORM = 0x9016, + GL_INTENSITY8_SNORM = 0x9017, + GL_ALPHA16_SNORM = 0x9018, + GL_LUMINANCE16_SNORM = 0x9019, + GL_LUMINANCE16_ALPHA16_SNORM = 0x901A, + GL_INTENSITY16_SNORM = 0x901B, + GL_RED_SNORM = 0x8F90, + GL_RG_SNORM = 0x8F91, + GL_RGB_SNORM = 0x8F92, + GL_RGBA_SNORM = 0x8F93, +}; +#endif + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 +enum +{ + GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42, + GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43, + GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44, + GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45, + GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46, +}; +#endif + +#ifndef GL_NV_timeline_semaphore +#define GL_NV_timeline_semaphore 1 +enum +{ + GL_TIMELINE_SEMAPHORE_VALUE_NV = 0x9595, + GL_SEMAPHORE_TYPE_NV = 0x95B3, + GL_SEMAPHORE_TYPE_BINARY_NV = 0x95B4, + GL_SEMAPHORE_TYPE_TIMELINE_NV = 0x95B5, + GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV = 0x95B6, +}; +extern void (* const& glCreateSemaphoresNV) (GLsizei n, GLuint *semaphores); +extern void (* const& glSemaphoreParameterivNV) (GLuint semaphore, GLenum pname, const GLint *params); +extern void (* const& glGetSemaphoreParameterivNV) (GLuint semaphore, GLenum pname, GLint *params); +#endif + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 +enum +{ + GL_TIME_ELAPSED_EXT = 0x88BF, +}; +extern void (* const& glGetQueryObjecti64vEXT) (GLuint id, GLenum pname, GLint64 *params); +extern void (* const& glGetQueryObjectui64vEXT) (GLuint id, GLenum pname, GLuint64 *params); +#endif + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 +enum +{ + GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F, + GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C, + GL_SEPARATE_ATTRIBS_EXT = 0x8C8D, + GL_PRIMITIVES_GENERATED_EXT = 0x8C87, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88, + GL_RASTERIZER_DISCARD_EXT = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80, + GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F, + GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76, +}; +extern void (* const& glBeginTransformFeedbackEXT) (GLenum primitiveMode); +extern void (* const& glEndTransformFeedbackEXT) (); +extern void (* const& glBindBufferRangeEXT) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glBindBufferOffsetEXT) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +extern void (* const& glBindBufferBaseEXT) (GLenum target, GLuint index, GLuint buffer); +extern void (* const& glTransformFeedbackVaryingsEXT) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +extern void (* const& glGetTransformFeedbackVaryingEXT) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#endif + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 +enum +{ + GL_VERTEX_ARRAY_EXT = 0x8074, + GL_NORMAL_ARRAY_EXT = 0x8075, + GL_COLOR_ARRAY_EXT = 0x8076, + GL_INDEX_ARRAY_EXT = 0x8077, + GL_TEXTURE_COORD_ARRAY_EXT = 0x8078, + GL_EDGE_FLAG_ARRAY_EXT = 0x8079, + GL_VERTEX_ARRAY_SIZE_EXT = 0x807A, + GL_VERTEX_ARRAY_TYPE_EXT = 0x807B, + GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C, + GL_VERTEX_ARRAY_COUNT_EXT = 0x807D, + GL_NORMAL_ARRAY_TYPE_EXT = 0x807E, + GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F, + GL_NORMAL_ARRAY_COUNT_EXT = 0x8080, + GL_COLOR_ARRAY_SIZE_EXT = 0x8081, + GL_COLOR_ARRAY_TYPE_EXT = 0x8082, + GL_COLOR_ARRAY_STRIDE_EXT = 0x8083, + GL_COLOR_ARRAY_COUNT_EXT = 0x8084, + GL_INDEX_ARRAY_TYPE_EXT = 0x8085, + GL_INDEX_ARRAY_STRIDE_EXT = 0x8086, + GL_INDEX_ARRAY_COUNT_EXT = 0x8087, + GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088, + GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089, + GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A, + GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B, + GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C, + GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D, + GL_VERTEX_ARRAY_POINTER_EXT = 0x808E, + GL_NORMAL_ARRAY_POINTER_EXT = 0x808F, + GL_COLOR_ARRAY_POINTER_EXT = 0x8090, + GL_INDEX_ARRAY_POINTER_EXT = 0x8091, + GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092, + GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093, +}; +extern void (* const& glArrayElementEXT) (GLint i); +extern void (* const& glColorPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +extern void (* const& glDrawArraysEXT) (GLenum mode, GLint first, GLsizei count); +extern void (* const& glEdgeFlagPointerEXT) (GLsizei stride, GLsizei count, const GLboolean *pointer); +extern void (* const& glGetPointervEXT) (GLenum pname, void **params); +extern void (* const& glIndexPointerEXT) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +extern void (* const& glNormalPointerEXT) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +extern void (* const& glTexCoordPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +extern void (* const& glVertexPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +#endif + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 +#endif + +#ifndef GL_EXT_vertex_attrib_64bit +#define GL_EXT_vertex_attrib_64bit 1 +enum +{ + GL_DOUBLE_VEC2_EXT = 0x8FFC, + GL_DOUBLE_VEC3_EXT = 0x8FFD, + GL_DOUBLE_VEC4_EXT = 0x8FFE, + GL_DOUBLE_MAT2_EXT = 0x8F46, + GL_DOUBLE_MAT3_EXT = 0x8F47, + GL_DOUBLE_MAT4_EXT = 0x8F48, + GL_DOUBLE_MAT2x3_EXT = 0x8F49, + GL_DOUBLE_MAT2x4_EXT = 0x8F4A, + GL_DOUBLE_MAT3x2_EXT = 0x8F4B, + GL_DOUBLE_MAT3x4_EXT = 0x8F4C, + GL_DOUBLE_MAT4x2_EXT = 0x8F4D, + GL_DOUBLE_MAT4x3_EXT = 0x8F4E, +}; +extern void (* const& glVertexAttribL1dEXT) (GLuint index, GLdouble x); +extern void (* const& glVertexAttribL2dEXT) (GLuint index, GLdouble x, GLdouble y); +extern void (* const& glVertexAttribL3dEXT) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glVertexAttribL4dEXT) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glVertexAttribL1dvEXT) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribL2dvEXT) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribL3dvEXT) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribL4dvEXT) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttribLPointerEXT) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glGetVertexAttribLdvEXT) (GLuint index, GLenum pname, GLdouble *params); +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 +enum +{ + GL_VERTEX_SHADER_EXT = 0x8780, + GL_VERTEX_SHADER_BINDING_EXT = 0x8781, + GL_OP_INDEX_EXT = 0x8782, + GL_OP_NEGATE_EXT = 0x8783, + GL_OP_DOT3_EXT = 0x8784, + GL_OP_DOT4_EXT = 0x8785, + GL_OP_MUL_EXT = 0x8786, + GL_OP_ADD_EXT = 0x8787, + GL_OP_MADD_EXT = 0x8788, + GL_OP_FRAC_EXT = 0x8789, + GL_OP_MAX_EXT = 0x878A, + GL_OP_MIN_EXT = 0x878B, + GL_OP_SET_GE_EXT = 0x878C, + GL_OP_SET_LT_EXT = 0x878D, + GL_OP_CLAMP_EXT = 0x878E, + GL_OP_FLOOR_EXT = 0x878F, + GL_OP_ROUND_EXT = 0x8790, + GL_OP_EXP_BASE_2_EXT = 0x8791, + GL_OP_LOG_BASE_2_EXT = 0x8792, + GL_OP_POWER_EXT = 0x8793, + GL_OP_RECIP_EXT = 0x8794, + GL_OP_RECIP_SQRT_EXT = 0x8795, + GL_OP_SUB_EXT = 0x8796, + GL_OP_CROSS_PRODUCT_EXT = 0x8797, + GL_OP_MULTIPLY_MATRIX_EXT = 0x8798, + GL_OP_MOV_EXT = 0x8799, + GL_OUTPUT_VERTEX_EXT = 0x879A, + GL_OUTPUT_COLOR0_EXT = 0x879B, + GL_OUTPUT_COLOR1_EXT = 0x879C, + GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D, + GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E, + GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F, + GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0, + GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1, + GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2, + GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3, + GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4, + GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5, + GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6, + GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7, + GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8, + GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9, + GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA, + GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB, + GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC, + GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD, + GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE, + GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF, + GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0, + GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1, + GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2, + GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3, + GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4, + GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5, + GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6, + GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7, + GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8, + GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9, + GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA, + GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB, + GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC, + GL_OUTPUT_FOG_EXT = 0x87BD, + GL_SCALAR_EXT = 0x87BE, + GL_VECTOR_EXT = 0x87BF, + GL_MATRIX_EXT = 0x87C0, + GL_VARIANT_EXT = 0x87C1, + GL_INVARIANT_EXT = 0x87C2, + GL_LOCAL_CONSTANT_EXT = 0x87C3, + GL_LOCAL_EXT = 0x87C4, + GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5, + GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6, + GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7, + GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8, + GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9, + GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA, + GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB, + GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC, + GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD, + GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE, + GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF, + GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0, + GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1, + GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2, + GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3, + GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4, + GL_X_EXT = 0x87D5, + GL_Y_EXT = 0x87D6, + GL_Z_EXT = 0x87D7, + GL_W_EXT = 0x87D8, + GL_NEGATIVE_X_EXT = 0x87D9, + GL_NEGATIVE_Y_EXT = 0x87DA, + GL_NEGATIVE_Z_EXT = 0x87DB, + GL_NEGATIVE_W_EXT = 0x87DC, + GL_ZERO_EXT = 0x87DD, + GL_ONE_EXT = 0x87DE, + GL_NEGATIVE_ONE_EXT = 0x87DF, + GL_NORMALIZED_RANGE_EXT = 0x87E0, + GL_FULL_RANGE_EXT = 0x87E1, + GL_CURRENT_VERTEX_EXT = 0x87E2, + GL_MVP_MATRIX_EXT = 0x87E3, + GL_VARIANT_VALUE_EXT = 0x87E4, + GL_VARIANT_DATATYPE_EXT = 0x87E5, + GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6, + GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7, + GL_VARIANT_ARRAY_EXT = 0x87E8, + GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9, + GL_INVARIANT_VALUE_EXT = 0x87EA, + GL_INVARIANT_DATATYPE_EXT = 0x87EB, + GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC, + GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED, +}; +extern void (* const& glBeginVertexShaderEXT) (); +extern void (* const& glEndVertexShaderEXT) (); +extern void (* const& glBindVertexShaderEXT) (GLuint id); +extern GLuint (* const& glGenVertexShadersEXT) (GLuint range); +extern void (* const& glDeleteVertexShaderEXT) (GLuint id); +extern void (* const& glShaderOp1EXT) (GLenum op, GLuint res, GLuint arg1); +extern void (* const& glShaderOp2EXT) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +extern void (* const& glShaderOp3EXT) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +extern void (* const& glSwizzleEXT) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +extern void (* const& glWriteMaskEXT) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +extern void (* const& glInsertComponentEXT) (GLuint res, GLuint src, GLuint num); +extern void (* const& glExtractComponentEXT) (GLuint res, GLuint src, GLuint num); +extern GLuint (* const& glGenSymbolsEXT) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +extern void (* const& glSetInvariantEXT) (GLuint id, GLenum type, const void *addr); +extern void (* const& glSetLocalConstantEXT) (GLuint id, GLenum type, const void *addr); +extern void (* const& glVariantbvEXT) (GLuint id, const GLbyte *addr); +extern void (* const& glVariantsvEXT) (GLuint id, const GLshort *addr); +extern void (* const& glVariantivEXT) (GLuint id, const GLint *addr); +extern void (* const& glVariantfvEXT) (GLuint id, const GLfloat *addr); +extern void (* const& glVariantdvEXT) (GLuint id, const GLdouble *addr); +extern void (* const& glVariantubvEXT) (GLuint id, const GLubyte *addr); +extern void (* const& glVariantusvEXT) (GLuint id, const GLushort *addr); +extern void (* const& glVariantuivEXT) (GLuint id, const GLuint *addr); +extern void (* const& glVariantPointerEXT) (GLuint id, GLenum type, GLuint stride, const void *addr); +extern void (* const& glEnableVariantClientStateEXT) (GLuint id); +extern void (* const& glDisableVariantClientStateEXT) (GLuint id); +extern GLuint (* const& glBindLightParameterEXT) (GLenum light, GLenum value); +extern GLuint (* const& glBindMaterialParameterEXT) (GLenum face, GLenum value); +extern GLuint (* const& glBindTexGenParameterEXT) (GLenum unit, GLenum coord, GLenum value); +extern GLuint (* const& glBindTextureUnitParameterEXT) (GLenum unit, GLenum value); +extern GLuint (* const& glBindParameterEXT) (GLenum value); +extern GLboolean (* const& glIsVariantEnabledEXT) (GLuint id, GLenum cap); +extern void (* const& glGetVariantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data); +extern void (* const& glGetVariantIntegervEXT) (GLuint id, GLenum value, GLint *data); +extern void (* const& glGetVariantFloatvEXT) (GLuint id, GLenum value, GLfloat *data); +extern void (* const& glGetVariantPointervEXT) (GLuint id, GLenum value, void **data); +extern void (* const& glGetInvariantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data); +extern void (* const& glGetInvariantIntegervEXT) (GLuint id, GLenum value, GLint *data); +extern void (* const& glGetInvariantFloatvEXT) (GLuint id, GLenum value, GLfloat *data); +extern void (* const& glGetLocalConstantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data); +extern void (* const& glGetLocalConstantIntegervEXT) (GLuint id, GLenum value, GLint *data); +extern void (* const& glGetLocalConstantFloatvEXT) (GLuint id, GLenum value, GLfloat *data); +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 +enum +{ + GL_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3, + GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502, + GL_MODELVIEW0_MATRIX_EXT = 0x0BA6, + GL_MODELVIEW1_MATRIX_EXT = 0x8506, + GL_VERTEX_WEIGHTING_EXT = 0x8509, + GL_MODELVIEW0_EXT = 0x1700, + GL_MODELVIEW1_EXT = 0x850A, + GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B, + GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C, + GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D, + GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E, + GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F, + GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510, +}; +extern void (* const& glVertexWeightfEXT) (GLfloat weight); +extern void (* const& glVertexWeightfvEXT) (const GLfloat *weight); +extern void (* const& glVertexWeightPointerEXT) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif + +#ifndef GL_EXT_win32_keyed_mutex +#define GL_EXT_win32_keyed_mutex 1 +extern GLboolean (* const& glAcquireKeyedMutexWin32EXT) (GLuint memory, GLuint64 key, GLuint timeout); +extern GLboolean (* const& glReleaseKeyedMutexWin32EXT) (GLuint memory, GLuint64 key); +#endif + +#ifndef GL_EXT_window_rectangles +#define GL_EXT_window_rectangles 1 +enum +{ + GL_INCLUSIVE_EXT = 0x8F10, + GL_EXCLUSIVE_EXT = 0x8F11, + GL_WINDOW_RECTANGLE_EXT = 0x8F12, + GL_WINDOW_RECTANGLE_MODE_EXT = 0x8F13, + GL_MAX_WINDOW_RECTANGLES_EXT = 0x8F14, + GL_NUM_WINDOW_RECTANGLES_EXT = 0x8F15, +}; +extern void (* const& glWindowRectanglesEXT) (GLenum mode, GLsizei count, const GLint *box); +#endif + +#ifndef GL_EXT_x11_sync_object +#define GL_EXT_x11_sync_object 1 +enum +{ + GL_SYNC_X11_FENCE_EXT = 0x90E1, +}; +extern GLsync (* const& glImportSyncEXT) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +#endif + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 +extern void (* const& glFrameTerminatorGREMEDY) (); +#endif + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 +extern void (* const& glStringMarkerGREMEDY) (GLsizei len, const void *string); +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 +enum +{ + GL_IGNORE_BORDER_HP = 0x8150, + GL_CONSTANT_BORDER_HP = 0x8151, + GL_REPLICATE_BORDER_HP = 0x8153, + GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154, +}; +#endif + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 +enum +{ + GL_IMAGE_SCALE_X_HP = 0x8155, + GL_IMAGE_SCALE_Y_HP = 0x8156, + GL_IMAGE_TRANSLATE_X_HP = 0x8157, + GL_IMAGE_TRANSLATE_Y_HP = 0x8158, + GL_IMAGE_ROTATE_ANGLE_HP = 0x8159, + GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A, + GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B, + GL_IMAGE_MAG_FILTER_HP = 0x815C, + GL_IMAGE_MIN_FILTER_HP = 0x815D, + GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E, + GL_CUBIC_HP = 0x815F, + GL_AVERAGE_HP = 0x8160, + GL_IMAGE_TRANSFORM_2D_HP = 0x8161, + GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162, + GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163, +}; +extern void (* const& glImageTransformParameteriHP) (GLenum target, GLenum pname, GLint param); +extern void (* const& glImageTransformParameterfHP) (GLenum target, GLenum pname, GLfloat param); +extern void (* const& glImageTransformParameterivHP) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glImageTransformParameterfvHP) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glGetImageTransformParameterivHP) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetImageTransformParameterfvHP) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 +enum +{ + GL_OCCLUSION_TEST_HP = 0x8165, + GL_OCCLUSION_TEST_RESULT_HP = 0x8166, +}; +#endif + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 +enum +{ + GL_TEXTURE_LIGHTING_MODE_HP = 0x8167, + GL_TEXTURE_POST_SPECULAR_HP = 0x8168, + GL_TEXTURE_PRE_SPECULAR_HP = 0x8169, +}; +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 +enum +{ + GL_CULL_VERTEX_IBM = 103050, +}; +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 +extern void (* const& glMultiModeDrawArraysIBM) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +extern void (* const& glMultiModeDrawElementsIBM) (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 +enum +{ + GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262, +}; +#endif + +#ifndef GL_IBM_static_data +#define GL_IBM_static_data 1 +enum +{ + GL_ALL_STATIC_DATA_IBM = 103060, + GL_STATIC_VERTEX_ARRAY_IBM = 103061, +}; +extern void (* const& glFlushStaticDataIBM) (GLenum target); +#endif + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_IBM_texture_mirrored_repeat 1 +enum +{ + GL_MIRRORED_REPEAT_IBM = 0x8370, +}; +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 +enum +{ + GL_VERTEX_ARRAY_LIST_IBM = 103070, + GL_NORMAL_ARRAY_LIST_IBM = 103071, + GL_COLOR_ARRAY_LIST_IBM = 103072, + GL_INDEX_ARRAY_LIST_IBM = 103073, + GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074, + GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075, + GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076, + GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077, + GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080, + GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081, + GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082, + GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083, + GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084, + GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085, + GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086, + GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087, +}; +extern void (* const& glColorPointerListIBM) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +extern void (* const& glSecondaryColorPointerListIBM) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +extern void (* const& glEdgeFlagPointerListIBM) (GLint stride, const GLboolean **pointer, GLint ptrstride); +extern void (* const& glFogCoordPointerListIBM) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +extern void (* const& glIndexPointerListIBM) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +extern void (* const& glNormalPointerListIBM) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +extern void (* const& glTexCoordPointerListIBM) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +extern void (* const& glVertexPointerListIBM) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +#endif + +#ifndef GL_INGR_blend_func_separate +#define GL_INGR_blend_func_separate 1 +extern void (* const& glBlendFuncSeparateINGR) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 +enum +{ + GL_RED_MIN_CLAMP_INGR = 0x8560, + GL_GREEN_MIN_CLAMP_INGR = 0x8561, + GL_BLUE_MIN_CLAMP_INGR = 0x8562, + GL_ALPHA_MIN_CLAMP_INGR = 0x8563, + GL_RED_MAX_CLAMP_INGR = 0x8564, + GL_GREEN_MAX_CLAMP_INGR = 0x8565, + GL_BLUE_MAX_CLAMP_INGR = 0x8566, + GL_ALPHA_MAX_CLAMP_INGR = 0x8567, +}; +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 +enum +{ + GL_INTERLACE_READ_INGR = 0x8568, +}; +#endif + +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 +enum +{ + GL_CONSERVATIVE_RASTERIZATION_INTEL = 0x83FE, +}; +#endif + +#ifndef GL_INTEL_fragment_shader_ordering +#define GL_INTEL_fragment_shader_ordering 1 +#endif + +#ifndef GL_INTEL_framebuffer_CMAA +#define GL_INTEL_framebuffer_CMAA 1 +extern void (* const& glApplyFramebufferAttachmentCMAAINTEL) (); +#endif + +#ifndef GL_INTEL_map_texture +#define GL_INTEL_map_texture 1 +enum +{ + GL_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF, + GL_LAYOUT_DEFAULT_INTEL = 0, + GL_LAYOUT_LINEAR_INTEL = 1, + GL_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2, +}; +extern void (* const& glSyncTextureINTEL) (GLuint texture); +extern void (* const& glUnmapTexture2DINTEL) (GLuint texture, GLint level); +extern void * (* const& glMapTexture2DINTEL) (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); +#endif + +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 +enum +{ + GL_BLACKHOLE_RENDER_INTEL = 0x83FC, +}; +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 +enum +{ + GL_PARALLEL_ARRAYS_INTEL = 0x83F4, + GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5, + GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6, + GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7, + GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8, +}; +extern void (* const& glVertexPointervINTEL) (GLint size, GLenum type, const void **pointer); +extern void (* const& glNormalPointervINTEL) (GLenum type, const void **pointer); +extern void (* const& glColorPointervINTEL) (GLint size, GLenum type, const void **pointer); +extern void (* const& glTexCoordPointervINTEL) (GLint size, GLenum type, const void **pointer); +#endif + +#ifndef GL_INTEL_performance_query +#define GL_INTEL_performance_query 1 +enum +{ + GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000, + GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001, + GL_PERFQUERY_WAIT_INTEL = 0x83FB, + GL_PERFQUERY_FLUSH_INTEL = 0x83FA, + GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9, + GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0, + GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1, + GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2, + GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3, + GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4, + GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5, + GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8, + GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9, + GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA, + GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB, + GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC, + GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD, + GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE, + GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF, + GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500, +}; +extern void (* const& glBeginPerfQueryINTEL) (GLuint queryHandle); +extern void (* const& glCreatePerfQueryINTEL) (GLuint queryId, GLuint *queryHandle); +extern void (* const& glDeletePerfQueryINTEL) (GLuint queryHandle); +extern void (* const& glEndPerfQueryINTEL) (GLuint queryHandle); +extern void (* const& glGetFirstPerfQueryIdINTEL) (GLuint *queryId); +extern void (* const& glGetNextPerfQueryIdINTEL) (GLuint queryId, GLuint *nextQueryId); +extern void (* const& glGetPerfCounterInfoINTEL) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +extern void (* const& glGetPerfQueryDataINTEL) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); +extern void (* const& glGetPerfQueryIdByNameINTEL) (GLchar *queryName, GLuint *queryId); +extern void (* const& glGetPerfQueryInfoINTEL) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#endif + +#ifndef GL_KHR_blend_equation_advanced +#define GL_KHR_blend_equation_advanced 1 +enum +{ + GL_MULTIPLY_KHR = 0x9294, + GL_SCREEN_KHR = 0x9295, + GL_OVERLAY_KHR = 0x9296, + GL_DARKEN_KHR = 0x9297, + GL_LIGHTEN_KHR = 0x9298, + GL_COLORDODGE_KHR = 0x9299, + GL_COLORBURN_KHR = 0x929A, + GL_HARDLIGHT_KHR = 0x929B, + GL_SOFTLIGHT_KHR = 0x929C, + GL_DIFFERENCE_KHR = 0x929E, + GL_EXCLUSION_KHR = 0x92A0, + GL_HSL_HUE_KHR = 0x92AD, + GL_HSL_SATURATION_KHR = 0x92AE, + GL_HSL_COLOR_KHR = 0x92AF, + GL_HSL_LUMINOSITY_KHR = 0x92B0, +}; +extern void (* const& glBlendBarrierKHR) (); +#endif + +#ifndef GL_KHR_blend_equation_advanced_coherent +#define GL_KHR_blend_equation_advanced_coherent 1 +enum +{ + GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285, +}; +#endif + +#ifndef GL_KHR_context_flush_control +#define GL_KHR_context_flush_control 1 +enum +{ + GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB, + GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC, +}; +#endif + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 +enum +{ + GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242, + GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243, + GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244, + GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245, + GL_DEBUG_SOURCE_API_KHR = 0x8246, + GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247, + GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248, + GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249, + GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A, + GL_DEBUG_SOURCE_OTHER_KHR = 0x824B, + GL_DEBUG_TYPE_ERROR_KHR = 0x824C, + GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D, + GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E, + GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F, + GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250, + GL_DEBUG_TYPE_OTHER_KHR = 0x8251, + GL_DEBUG_TYPE_MARKER_KHR = 0x8268, + GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269, + GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A, + GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B, + GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C, + GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D, + GL_BUFFER_KHR = 0x82E0, + GL_SHADER_KHR = 0x82E1, + GL_PROGRAM_KHR = 0x82E2, + GL_VERTEX_ARRAY_KHR = 0x8074, + GL_QUERY_KHR = 0x82E3, + GL_PROGRAM_PIPELINE_KHR = 0x82E4, + GL_SAMPLER_KHR = 0x82E6, + GL_MAX_LABEL_LENGTH_KHR = 0x82E8, + GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143, + GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144, + GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145, + GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146, + GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147, + GL_DEBUG_SEVERITY_LOW_KHR = 0x9148, + GL_DEBUG_OUTPUT_KHR = 0x92E0, + GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002, + GL_STACK_OVERFLOW_KHR = 0x0503, + GL_STACK_UNDERFLOW_KHR = 0x0504, +}; +extern void (* const& glDebugMessageControlKHR) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +extern void (* const& glDebugMessageInsertKHR) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +extern void (* const& glDebugMessageCallbackKHR) (GLDEBUGPROCKHR callback, const void *userParam); +extern GLuint (* const& glGetDebugMessageLogKHR) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +extern void (* const& glPushDebugGroupKHR) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +extern void (* const& glPopDebugGroupKHR) (); +extern void (* const& glObjectLabelKHR) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectLabelKHR) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +extern void (* const& glObjectPtrLabelKHR) (const void *ptr, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectPtrLabelKHR) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +extern void (* const& glGetPointervKHR) (GLenum pname, void **params); +#endif + +#ifndef GL_KHR_no_error +#define GL_KHR_no_error 1 +enum +{ + GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008, +}; +#endif + +#ifndef GL_KHR_robust_buffer_access_behavior +#define GL_KHR_robust_buffer_access_behavior 1 +#endif + +#ifndef GL_KHR_robustness +#define GL_KHR_robustness 1 +enum +{ + GL_CONTEXT_ROBUST_ACCESS = 0x90F3, + GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3, + GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252, + GL_GUILTY_CONTEXT_RESET_KHR = 0x8253, + GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254, + GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255, + GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256, + GL_NO_RESET_NOTIFICATION_KHR = 0x8261, + GL_CONTEXT_LOST_KHR = 0x0507, +}; +extern GLenum (* const& glGetGraphicsResetStatusKHR) (); +extern void (* const& glReadnPixelsKHR) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +extern void (* const& glGetnUniformfvKHR) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +extern void (* const& glGetnUniformivKHR) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +extern void (* const& glGetnUniformuivKHR) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +#endif + +#ifndef GL_KHR_shader_subgroup +#define GL_KHR_shader_subgroup 1 +enum +{ + GL_SUBGROUP_SIZE_KHR = 0x9532, + GL_SUBGROUP_SUPPORTED_STAGES_KHR = 0x9533, + GL_SUBGROUP_SUPPORTED_FEATURES_KHR = 0x9534, + GL_SUBGROUP_QUAD_ALL_STAGES_KHR = 0x9535, + GL_SUBGROUP_FEATURE_BASIC_BIT_KHR = 0x00000001, + GL_SUBGROUP_FEATURE_VOTE_BIT_KHR = 0x00000002, + GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR = 0x00000004, + GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR = 0x00000008, + GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR = 0x00000010, + GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR = 0x00000020, + GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR = 0x00000040, + GL_SUBGROUP_FEATURE_QUAD_BIT_KHR = 0x00000080, +}; +#endif + +#ifndef GL_KHR_texture_compression_astc_hdr +#define GL_KHR_texture_compression_astc_hdr 1 +enum +{ + GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0, + GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1, + GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2, + GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3, + GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4, + GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5, + GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6, + GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7, + GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8, + GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9, + GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA, + GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB, + GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC, + GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD, +}; +#endif + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 +#endif + +#ifndef GL_KHR_texture_compression_astc_sliced_3d +#define GL_KHR_texture_compression_astc_sliced_3d 1 +#endif + +#ifndef GL_KHR_parallel_shader_compile +#define GL_KHR_parallel_shader_compile 1 +enum +{ + GL_MAX_SHADER_COMPILER_THREADS_KHR = 0x91B0, + GL_COMPLETION_STATUS_KHR = 0x91B1, +}; +extern void (* const& glMaxShaderCompilerThreadsKHR) (GLuint count); +#endif + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 +enum +{ + GL_TEXTURE_1D_STACK_MESAX = 0x8759, + GL_TEXTURE_2D_STACK_MESAX = 0x875A, + GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B, + GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C, + GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D, + GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E, +}; +#endif + +#ifndef GL_MESA_framebuffer_flip_x +#define GL_MESA_framebuffer_flip_x 1 +enum +{ + GL_FRAMEBUFFER_FLIP_X_MESA = 0x8BBC, +}; +#endif + +#ifndef GL_MESA_framebuffer_flip_y +#define GL_MESA_framebuffer_flip_y 1 +enum +{ + GL_FRAMEBUFFER_FLIP_Y_MESA = 0x8BBB, +}; +extern void (* const& glFramebufferParameteriMESA) (GLenum target, GLenum pname, GLint param); +extern void (* const& glGetFramebufferParameterivMESA) (GLenum target, GLenum pname, GLint *params); +#endif + +#ifndef GL_MESA_framebuffer_swap_xy +#define GL_MESA_framebuffer_swap_xy 1 +enum +{ + GL_FRAMEBUFFER_SWAP_XY_MESA = 0x8BBD, +}; +#endif + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 +enum +{ + GL_PACK_INVERT_MESA = 0x8758, +}; +#endif + +#ifndef GL_MESA_program_binary_formats +#define GL_MESA_program_binary_formats 1 +enum +{ + GL_PROGRAM_BINARY_FORMAT_MESA = 0x875F, +}; +#endif + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 +extern void (* const& glResizeBuffersMESA) (); +#endif + +#ifndef GL_MESA_shader_integer_functions +#define GL_MESA_shader_integer_functions 1 +#endif + +#ifndef GL_MESA_tile_raster_order +#define GL_MESA_tile_raster_order 1 +enum +{ + GL_TILE_RASTER_ORDER_FIXED_MESA = 0x8BB8, + GL_TILE_RASTER_ORDER_INCREASING_X_MESA = 0x8BB9, + GL_TILE_RASTER_ORDER_INCREASING_Y_MESA = 0x8BBA, +}; +#endif + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 +extern void (* const& glWindowPos2dMESA) (GLdouble x, GLdouble y); +extern void (* const& glWindowPos2dvMESA) (const GLdouble *v); +extern void (* const& glWindowPos2fMESA) (GLfloat x, GLfloat y); +extern void (* const& glWindowPos2fvMESA) (const GLfloat *v); +extern void (* const& glWindowPos2iMESA) (GLint x, GLint y); +extern void (* const& glWindowPos2ivMESA) (const GLint *v); +extern void (* const& glWindowPos2sMESA) (GLshort x, GLshort y); +extern void (* const& glWindowPos2svMESA) (const GLshort *v); +extern void (* const& glWindowPos3dMESA) (GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glWindowPos3dvMESA) (const GLdouble *v); +extern void (* const& glWindowPos3fMESA) (GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glWindowPos3fvMESA) (const GLfloat *v); +extern void (* const& glWindowPos3iMESA) (GLint x, GLint y, GLint z); +extern void (* const& glWindowPos3ivMESA) (const GLint *v); +extern void (* const& glWindowPos3sMESA) (GLshort x, GLshort y, GLshort z); +extern void (* const& glWindowPos3svMESA) (const GLshort *v); +extern void (* const& glWindowPos4dMESA) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glWindowPos4dvMESA) (const GLdouble *v); +extern void (* const& glWindowPos4fMESA) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glWindowPos4fvMESA) (const GLfloat *v); +extern void (* const& glWindowPos4iMESA) (GLint x, GLint y, GLint z, GLint w); +extern void (* const& glWindowPos4ivMESA) (const GLint *v); +extern void (* const& glWindowPos4sMESA) (GLshort x, GLshort y, GLshort z, GLshort w); +extern void (* const& glWindowPos4svMESA) (const GLshort *v); +#endif + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 +enum +{ + GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA, + GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB, + GL_YCBCR_MESA = 0x8757, +}; +#endif + +#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers +#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 +#endif + +#ifndef GL_NVX_conditional_render +#define GL_NVX_conditional_render 1 +extern void (* const& glBeginConditionalRenderNVX) (GLuint id); +extern void (* const& glEndConditionalRenderNVX) (); +#endif + +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info 1 +enum +{ + GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047, + GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048, + GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049, + GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A, + GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B, +}; +#endif + +#ifndef GL_NVX_linked_gpu_multicast +#define GL_NVX_linked_gpu_multicast 1 +enum +{ + GL_LGPU_SEPARATE_STORAGE_BIT_NVX = 0x0800, + GL_MAX_LGPU_GPUS_NVX = 0x92BA, +}; +extern void (* const& glLGPUNamedBufferSubDataNVX) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +extern void (* const& glLGPUCopyImageSubDataNVX) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +extern void (* const& glLGPUInterlockNVX) (); +#endif + +#ifndef GL_NV_alpha_to_coverage_dither_control +#define GL_NV_alpha_to_coverage_dither_control 1 +enum +{ + GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV = 0x934D, + GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV = 0x934E, + GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV = 0x934F, + GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV = 0x92BF, +}; +extern void (* const& glAlphaToCoverageDitherControlNV) (GLenum mode); +#endif + +#ifndef GL_NV_bindless_multi_draw_indirect +#define GL_NV_bindless_multi_draw_indirect 1 +extern void (* const& glMultiDrawArraysIndirectBindlessNV) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +extern void (* const& glMultiDrawElementsIndirectBindlessNV) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +#endif + +#ifndef GL_NV_bindless_multi_draw_indirect_count +#define GL_NV_bindless_multi_draw_indirect_count 1 +extern void (* const& glMultiDrawArraysIndirectBindlessCountNV) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); +extern void (* const& glMultiDrawElementsIndirectBindlessCountNV) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); +#endif + +#ifndef GL_NV_bindless_texture +#define GL_NV_bindless_texture 1 +extern GLuint64 (* const& glGetTextureHandleNV) (GLuint texture); +extern GLuint64 (* const& glGetTextureSamplerHandleNV) (GLuint texture, GLuint sampler); +extern void (* const& glMakeTextureHandleResidentNV) (GLuint64 handle); +extern void (* const& glMakeTextureHandleNonResidentNV) (GLuint64 handle); +extern GLuint64 (* const& glGetImageHandleNV) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +extern void (* const& glMakeImageHandleResidentNV) (GLuint64 handle, GLenum access); +extern void (* const& glMakeImageHandleNonResidentNV) (GLuint64 handle); +extern void (* const& glUniformHandleui64NV) (GLint location, GLuint64 value); +extern void (* const& glUniformHandleui64vNV) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glProgramUniformHandleui64NV) (GLuint program, GLint location, GLuint64 value); +extern void (* const& glProgramUniformHandleui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +extern GLboolean (* const& glIsTextureHandleResidentNV) (GLuint64 handle); +extern GLboolean (* const& glIsImageHandleResidentNV) (GLuint64 handle); +#endif + +#ifndef GL_NV_blend_equation_advanced +#define GL_NV_blend_equation_advanced 1 +enum +{ + GL_BLEND_OVERLAP_NV = 0x9281, + GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280, + GL_BLUE_NV = 0x1905, + GL_COLORBURN_NV = 0x929A, + GL_COLORDODGE_NV = 0x9299, + GL_CONJOINT_NV = 0x9284, + GL_CONTRAST_NV = 0x92A1, + GL_DARKEN_NV = 0x9297, + GL_DIFFERENCE_NV = 0x929E, + GL_DISJOINT_NV = 0x9283, + GL_DST_ATOP_NV = 0x928F, + GL_DST_IN_NV = 0x928B, + GL_DST_NV = 0x9287, + GL_DST_OUT_NV = 0x928D, + GL_DST_OVER_NV = 0x9289, + GL_EXCLUSION_NV = 0x92A0, + GL_GREEN_NV = 0x1904, + GL_HARDLIGHT_NV = 0x929B, + GL_HARDMIX_NV = 0x92A9, + GL_HSL_COLOR_NV = 0x92AF, + GL_HSL_HUE_NV = 0x92AD, + GL_HSL_LUMINOSITY_NV = 0x92B0, + GL_HSL_SATURATION_NV = 0x92AE, + GL_INVERT_OVG_NV = 0x92B4, + GL_INVERT_RGB_NV = 0x92A3, + GL_LIGHTEN_NV = 0x9298, + GL_LINEARBURN_NV = 0x92A5, + GL_LINEARDODGE_NV = 0x92A4, + GL_LINEARLIGHT_NV = 0x92A7, + GL_MINUS_CLAMPED_NV = 0x92B3, + GL_MINUS_NV = 0x929F, + GL_MULTIPLY_NV = 0x9294, + GL_OVERLAY_NV = 0x9296, + GL_PINLIGHT_NV = 0x92A8, + GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2, + GL_PLUS_CLAMPED_NV = 0x92B1, + GL_PLUS_DARKER_NV = 0x9292, + GL_PLUS_NV = 0x9291, + GL_RED_NV = 0x1903, + GL_SCREEN_NV = 0x9295, + GL_SOFTLIGHT_NV = 0x929C, + GL_SRC_ATOP_NV = 0x928E, + GL_SRC_IN_NV = 0x928A, + GL_SRC_NV = 0x9286, + GL_SRC_OUT_NV = 0x928C, + GL_SRC_OVER_NV = 0x9288, + GL_UNCORRELATED_NV = 0x9282, + GL_VIVIDLIGHT_NV = 0x92A6, + GL_XOR_NV = 0x1506, +}; +extern void (* const& glBlendParameteriNV) (GLenum pname, GLint value); +extern void (* const& glBlendBarrierNV) (); +#endif + +#ifndef GL_NV_blend_equation_advanced_coherent +#define GL_NV_blend_equation_advanced_coherent 1 +enum +{ + GL_BLEND_ADVANCED_COHERENT_NV = 0x9285, +}; +#endif + +#ifndef GL_NV_blend_minmax_factor +#define GL_NV_blend_minmax_factor 1 +#endif + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 +#endif + +#ifndef GL_NV_clip_space_w_scaling +#define GL_NV_clip_space_w_scaling 1 +enum +{ + GL_VIEWPORT_POSITION_W_SCALE_NV = 0x937C, + GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV = 0x937D, + GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV = 0x937E, +}; +extern void (* const& glViewportPositionWScaleNV) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); +#endif + +#ifndef GL_NV_command_list +#define GL_NV_command_list 1 +enum +{ + GL_TERMINATE_SEQUENCE_COMMAND_NV = 0x0000, + GL_NOP_COMMAND_NV = 0x0001, + GL_DRAW_ELEMENTS_COMMAND_NV = 0x0002, + GL_DRAW_ARRAYS_COMMAND_NV = 0x0003, + GL_DRAW_ELEMENTS_STRIP_COMMAND_NV = 0x0004, + GL_DRAW_ARRAYS_STRIP_COMMAND_NV = 0x0005, + GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV = 0x0006, + GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV = 0x0007, + GL_ELEMENT_ADDRESS_COMMAND_NV = 0x0008, + GL_ATTRIBUTE_ADDRESS_COMMAND_NV = 0x0009, + GL_UNIFORM_ADDRESS_COMMAND_NV = 0x000A, + GL_BLEND_COLOR_COMMAND_NV = 0x000B, + GL_STENCIL_REF_COMMAND_NV = 0x000C, + GL_LINE_WIDTH_COMMAND_NV = 0x000D, + GL_POLYGON_OFFSET_COMMAND_NV = 0x000E, + GL_ALPHA_REF_COMMAND_NV = 0x000F, + GL_VIEWPORT_COMMAND_NV = 0x0010, + GL_SCISSOR_COMMAND_NV = 0x0011, + GL_FRONT_FACE_COMMAND_NV = 0x0012, +}; +extern void (* const& glCreateStatesNV) (GLsizei n, GLuint *states); +extern void (* const& glDeleteStatesNV) (GLsizei n, const GLuint *states); +extern GLboolean (* const& glIsStateNV) (GLuint state); +extern void (* const& glStateCaptureNV) (GLuint state, GLenum mode); +extern GLuint (* const& glGetCommandHeaderNV) (GLenum tokenID, GLuint size); +extern GLushort (* const& glGetStageIndexNV) (GLenum shadertype); +extern void (* const& glDrawCommandsNV) (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count); +extern void (* const& glDrawCommandsAddressNV) (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count); +extern void (* const& glDrawCommandsStatesNV) (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +extern void (* const& glDrawCommandsStatesAddressNV) (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +extern void (* const& glCreateCommandListsNV) (GLsizei n, GLuint *lists); +extern void (* const& glDeleteCommandListsNV) (GLsizei n, const GLuint *lists); +extern GLboolean (* const& glIsCommandListNV) (GLuint list); +extern void (* const& glListDrawCommandsStatesClientNV) (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +extern void (* const& glCommandListSegmentsNV) (GLuint list, GLuint segments); +extern void (* const& glCompileCommandListNV) (GLuint list); +extern void (* const& glCallCommandListNV) (GLuint list); +#endif + +#ifndef GL_NV_compute_program5 +#define GL_NV_compute_program5 1 +enum +{ + GL_COMPUTE_PROGRAM_NV = 0x90FB, + GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC, +}; +#endif + +#ifndef GL_NV_compute_shader_derivatives +#define GL_NV_compute_shader_derivatives 1 +#endif + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +enum +{ + GL_QUERY_WAIT_NV = 0x8E13, + GL_QUERY_NO_WAIT_NV = 0x8E14, + GL_QUERY_BY_REGION_WAIT_NV = 0x8E15, + GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16, +}; +extern void (* const& glBeginConditionalRenderNV) (GLuint id, GLenum mode); +extern void (* const& glEndConditionalRenderNV) (); +#endif + +#ifndef GL_NV_conservative_raster +#define GL_NV_conservative_raster 1 +enum +{ + GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346, + GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347, + GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348, + GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349, +}; +extern void (* const& glSubpixelPrecisionBiasNV) (GLuint xbits, GLuint ybits); +#endif + +#ifndef GL_NV_conservative_raster_dilate +#define GL_NV_conservative_raster_dilate 1 +enum +{ + GL_CONSERVATIVE_RASTER_DILATE_NV = 0x9379, + GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV = 0x937A, + GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV = 0x937B, +}; +extern void (* const& glConservativeRasterParameterfNV) (GLenum pname, GLfloat value); +#endif + +#ifndef GL_NV_conservative_raster_pre_snap +#define GL_NV_conservative_raster_pre_snap 1 +enum +{ + GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV = 0x9550, +}; +#endif + +#ifndef GL_NV_conservative_raster_pre_snap_triangles +#define GL_NV_conservative_raster_pre_snap_triangles 1 +enum +{ + GL_CONSERVATIVE_RASTER_MODE_NV = 0x954D, + GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV = 0x954E, + GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV = 0x954F, +}; +extern void (* const& glConservativeRasterParameteriNV) (GLenum pname, GLint param); +#endif + +#ifndef GL_NV_conservative_raster_underestimation +#define GL_NV_conservative_raster_underestimation 1 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 +enum +{ + GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E, + GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F, +}; +#endif + +#ifndef GL_NV_copy_image +#define GL_NV_copy_image 1 +extern void (* const& glCopyImageSubDataNV) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#endif + +#ifndef GL_NV_deep_texture3D +#define GL_NV_deep_texture3D 1 +enum +{ + GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0, + GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1, +}; +#endif + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 +enum +{ + GL_DEPTH_COMPONENT32F_NV = 0x8DAB, + GL_DEPTH32F_STENCIL8_NV = 0x8DAC, + GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD, + GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF, +}; +extern void (* const& glDepthRangedNV) (GLdouble zNear, GLdouble zFar); +extern void (* const& glClearDepthdNV) (GLdouble depth); +extern void (* const& glDepthBoundsdNV) (GLdouble zmin, GLdouble zmax); +#endif + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 +enum +{ + GL_DEPTH_CLAMP_NV = 0x864F, +}; +#endif + +#ifndef GL_NV_draw_texture +#define GL_NV_draw_texture 1 +extern void (* const& glDrawTextureNV) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +#endif + +#ifndef GL_NV_draw_vulkan_image +#define GL_NV_draw_vulkan_image 1 +extern void (* const& glDrawVkImageNV) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +extern GLVULKANPROCNV (* const& glGetVkProcAddrNV) (const GLchar *name); +extern void (* const& glWaitVkSemaphoreNV) (GLuint64 vkSemaphore); +extern void (* const& glSignalVkSemaphoreNV) (GLuint64 vkSemaphore); +extern void (* const& glSignalVkFenceNV) (GLuint64 vkFence); +#endif + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 +enum +{ + GL_EVAL_2D_NV = 0x86C0, + GL_EVAL_TRIANGULAR_2D_NV = 0x86C1, + GL_MAP_TESSELLATION_NV = 0x86C2, + GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3, + GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4, + GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5, + GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6, + GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7, + GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8, + GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9, + GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA, + GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB, + GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC, + GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD, + GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE, + GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF, + GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0, + GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1, + GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2, + GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3, + GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4, + GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5, + GL_MAX_MAP_TESSELLATION_NV = 0x86D6, + GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7, +}; +extern void (* const& glMapControlPointsNV) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); +extern void (* const& glMapParameterivNV) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glMapParameterfvNV) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glGetMapControlPointsNV) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); +extern void (* const& glGetMapParameterivNV) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetMapParameterfvNV) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetMapAttribParameterivNV) (GLenum target, GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetMapAttribParameterfvNV) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +extern void (* const& glEvalMapsNV) (GLenum target, GLenum mode); +#endif + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 +enum +{ + GL_SAMPLE_POSITION_NV = 0x8E50, + GL_SAMPLE_MASK_NV = 0x8E51, + GL_SAMPLE_MASK_VALUE_NV = 0x8E52, + GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53, + GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54, + GL_TEXTURE_RENDERBUFFER_NV = 0x8E55, + GL_SAMPLER_RENDERBUFFER_NV = 0x8E56, + GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57, + GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58, + GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59, +}; +extern void (* const& glGetMultisamplefvNV) (GLenum pname, GLuint index, GLfloat *val); +extern void (* const& glSampleMaskIndexedNV) (GLuint index, GLbitfield mask); +extern void (* const& glTexRenderbufferNV) (GLenum target, GLuint renderbuffer); +#endif + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +enum +{ + GL_ALL_COMPLETED_NV = 0x84F2, + GL_FENCE_STATUS_NV = 0x84F3, + GL_FENCE_CONDITION_NV = 0x84F4, +}; +extern void (* const& glDeleteFencesNV) (GLsizei n, const GLuint *fences); +extern void (* const& glGenFencesNV) (GLsizei n, GLuint *fences); +extern GLboolean (* const& glIsFenceNV) (GLuint fence); +extern GLboolean (* const& glTestFenceNV) (GLuint fence); +extern void (* const& glGetFenceivNV) (GLuint fence, GLenum pname, GLint *params); +extern void (* const& glFinishFenceNV) (GLuint fence); +extern void (* const& glSetFenceNV) (GLuint fence, GLenum condition); +#endif + +#ifndef GL_NV_fill_rectangle +#define GL_NV_fill_rectangle 1 +enum +{ + GL_FILL_RECTANGLE_NV = 0x933C, +}; +#endif + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 +enum +{ + GL_FLOAT_R_NV = 0x8880, + GL_FLOAT_RG_NV = 0x8881, + GL_FLOAT_RGB_NV = 0x8882, + GL_FLOAT_RGBA_NV = 0x8883, + GL_FLOAT_R16_NV = 0x8884, + GL_FLOAT_R32_NV = 0x8885, + GL_FLOAT_RG16_NV = 0x8886, + GL_FLOAT_RG32_NV = 0x8887, + GL_FLOAT_RGB16_NV = 0x8888, + GL_FLOAT_RGB32_NV = 0x8889, + GL_FLOAT_RGBA16_NV = 0x888A, + GL_FLOAT_RGBA32_NV = 0x888B, + GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C, + GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D, + GL_FLOAT_RGBA_MODE_NV = 0x888E, +}; +#endif + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 +enum +{ + GL_FOG_DISTANCE_MODE_NV = 0x855A, + GL_EYE_RADIAL_NV = 0x855B, + GL_EYE_PLANE_ABSOLUTE_NV = 0x855C, +}; +#endif + +#ifndef GL_NV_fragment_coverage_to_color +#define GL_NV_fragment_coverage_to_color 1 +enum +{ + GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD, + GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE, +}; +extern void (* const& glFragmentCoverageColorNV) (GLuint color); +#endif + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 +enum +{ + GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868, + GL_FRAGMENT_PROGRAM_NV = 0x8870, + GL_MAX_TEXTURE_COORDS_NV = 0x8871, + GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872, + GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873, + GL_PROGRAM_ERROR_STRING_NV = 0x8874, +}; +extern void (* const& glProgramNamedParameter4fNV) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glProgramNamedParameter4fvNV) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +extern void (* const& glProgramNamedParameter4dNV) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glProgramNamedParameter4dvNV) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +extern void (* const& glGetProgramNamedParameterfvNV) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +extern void (* const& glGetProgramNamedParameterdvNV) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#endif + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 +enum +{ + GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4, + GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5, + GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6, + GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7, + GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8, +}; +#endif + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 +#endif + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 +#endif + +#ifndef GL_NV_fragment_shader_barycentric +#define GL_NV_fragment_shader_barycentric 1 +#endif + +#ifndef GL_NV_fragment_shader_interlock +#define GL_NV_fragment_shader_interlock 1 +#endif + +#ifndef GL_NV_framebuffer_mixed_samples +#define GL_NV_framebuffer_mixed_samples 1 +enum +{ + GL_COVERAGE_MODULATION_TABLE_NV = 0x9331, + GL_COLOR_SAMPLES_NV = 0x8E20, + GL_DEPTH_SAMPLES_NV = 0x932D, + GL_STENCIL_SAMPLES_NV = 0x932E, + GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F, + GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330, + GL_COVERAGE_MODULATION_NV = 0x9332, + GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333, +}; +extern void (* const& glCoverageModulationTableNV) (GLsizei n, const GLfloat *v); +extern void (* const& glGetCoverageModulationTableNV) (GLsizei bufSize, GLfloat *v); +extern void (* const& glCoverageModulationNV) (GLenum components); +#endif + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 +enum +{ + GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB, + GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10, + GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11, + GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12, +}; +extern void (* const& glRenderbufferStorageMultisampleCoverageNV) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 +enum +{ + GL_GEOMETRY_PROGRAM_NV = 0x8C26, + GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27, + GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28, +}; +extern void (* const& glProgramVertexLimitNV) (GLenum target, GLint limit); +extern void (* const& glFramebufferTextureEXT) (GLenum target, GLenum attachment, GLuint texture, GLint level); +extern void (* const& glFramebufferTextureFaceEXT) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 +#endif + +#ifndef GL_NV_geometry_shader_passthrough +#define GL_NV_geometry_shader_passthrough 1 +#endif + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 +enum +{ + GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904, + GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905, + GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906, + GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907, + GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908, + GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909, + GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5, + GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6, +}; +extern void (* const& glProgramLocalParameterI4iNV) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void (* const& glProgramLocalParameterI4ivNV) (GLenum target, GLuint index, const GLint *params); +extern void (* const& glProgramLocalParametersI4ivNV) (GLenum target, GLuint index, GLsizei count, const GLint *params); +extern void (* const& glProgramLocalParameterI4uiNV) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void (* const& glProgramLocalParameterI4uivNV) (GLenum target, GLuint index, const GLuint *params); +extern void (* const& glProgramLocalParametersI4uivNV) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +extern void (* const& glProgramEnvParameterI4iNV) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void (* const& glProgramEnvParameterI4ivNV) (GLenum target, GLuint index, const GLint *params); +extern void (* const& glProgramEnvParametersI4ivNV) (GLenum target, GLuint index, GLsizei count, const GLint *params); +extern void (* const& glProgramEnvParameterI4uiNV) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void (* const& glProgramEnvParameterI4uivNV) (GLenum target, GLuint index, const GLuint *params); +extern void (* const& glProgramEnvParametersI4uivNV) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +extern void (* const& glGetProgramLocalParameterIivNV) (GLenum target, GLuint index, GLint *params); +extern void (* const& glGetProgramLocalParameterIuivNV) (GLenum target, GLuint index, GLuint *params); +extern void (* const& glGetProgramEnvParameterIivNV) (GLenum target, GLuint index, GLint *params); +extern void (* const& glGetProgramEnvParameterIuivNV) (GLenum target, GLuint index, GLuint *params); +#endif + +#ifndef GL_NV_gpu_program5 +#define GL_NV_gpu_program5 1 +enum +{ + GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A, + GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B, + GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C, + GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D, + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E, + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F, + GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44, + GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45, +}; +extern void (* const& glProgramSubroutineParametersuivNV) (GLenum target, GLsizei count, const GLuint *params); +extern void (* const& glGetProgramSubroutineParameteruivNV) (GLenum target, GLuint index, GLuint *param); +#endif + +#ifndef GL_NV_gpu_program5_mem_extended +#define GL_NV_gpu_program5_mem_extended 1 +#endif + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 +#endif + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 +enum +{ + GL_HALF_FLOAT_NV = 0x140B, +}; +extern void (* const& glVertex2hNV) (GLhalfNV x, GLhalfNV y); +extern void (* const& glVertex2hvNV) (const GLhalfNV *v); +extern void (* const& glVertex3hNV) (GLhalfNV x, GLhalfNV y, GLhalfNV z); +extern void (* const& glVertex3hvNV) (const GLhalfNV *v); +extern void (* const& glVertex4hNV) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +extern void (* const& glVertex4hvNV) (const GLhalfNV *v); +extern void (* const& glNormal3hNV) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +extern void (* const& glNormal3hvNV) (const GLhalfNV *v); +extern void (* const& glColor3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +extern void (* const& glColor3hvNV) (const GLhalfNV *v); +extern void (* const& glColor4hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +extern void (* const& glColor4hvNV) (const GLhalfNV *v); +extern void (* const& glTexCoord1hNV) (GLhalfNV s); +extern void (* const& glTexCoord1hvNV) (const GLhalfNV *v); +extern void (* const& glTexCoord2hNV) (GLhalfNV s, GLhalfNV t); +extern void (* const& glTexCoord2hvNV) (const GLhalfNV *v); +extern void (* const& glTexCoord3hNV) (GLhalfNV s, GLhalfNV t, GLhalfNV r); +extern void (* const& glTexCoord3hvNV) (const GLhalfNV *v); +extern void (* const& glTexCoord4hNV) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +extern void (* const& glTexCoord4hvNV) (const GLhalfNV *v); +extern void (* const& glMultiTexCoord1hNV) (GLenum target, GLhalfNV s); +extern void (* const& glMultiTexCoord1hvNV) (GLenum target, const GLhalfNV *v); +extern void (* const& glMultiTexCoord2hNV) (GLenum target, GLhalfNV s, GLhalfNV t); +extern void (* const& glMultiTexCoord2hvNV) (GLenum target, const GLhalfNV *v); +extern void (* const& glMultiTexCoord3hNV) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +extern void (* const& glMultiTexCoord3hvNV) (GLenum target, const GLhalfNV *v); +extern void (* const& glMultiTexCoord4hNV) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +extern void (* const& glMultiTexCoord4hvNV) (GLenum target, const GLhalfNV *v); +extern void (* const& glFogCoordhNV) (GLhalfNV fog); +extern void (* const& glFogCoordhvNV) (const GLhalfNV *fog); +extern void (* const& glSecondaryColor3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +extern void (* const& glSecondaryColor3hvNV) (const GLhalfNV *v); +extern void (* const& glVertexWeighthNV) (GLhalfNV weight); +extern void (* const& glVertexWeighthvNV) (const GLhalfNV *weight); +extern void (* const& glVertexAttrib1hNV) (GLuint index, GLhalfNV x); +extern void (* const& glVertexAttrib1hvNV) (GLuint index, const GLhalfNV *v); +extern void (* const& glVertexAttrib2hNV) (GLuint index, GLhalfNV x, GLhalfNV y); +extern void (* const& glVertexAttrib2hvNV) (GLuint index, const GLhalfNV *v); +extern void (* const& glVertexAttrib3hNV) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +extern void (* const& glVertexAttrib3hvNV) (GLuint index, const GLhalfNV *v); +extern void (* const& glVertexAttrib4hNV) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +extern void (* const& glVertexAttrib4hvNV) (GLuint index, const GLhalfNV *v); +extern void (* const& glVertexAttribs1hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); +extern void (* const& glVertexAttribs2hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); +extern void (* const& glVertexAttribs3hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); +extern void (* const& glVertexAttribs4hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); +#endif + +#ifndef GL_NV_internalformat_sample_query +#define GL_NV_internalformat_sample_query 1 +enum +{ + GL_MULTISAMPLES_NV = 0x9371, + GL_SUPERSAMPLE_SCALE_X_NV = 0x9372, + GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373, + GL_CONFORMANT_NV = 0x9374, +}; +extern void (* const& glGetInternalformatSampleivNV) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 +enum +{ + GL_MAX_SHININESS_NV = 0x8504, + GL_MAX_SPOT_EXPONENT_NV = 0x8505, +}; +#endif + +#ifndef GL_NV_gpu_multicast +#define GL_NV_gpu_multicast 1 +enum +{ + GL_PER_GPU_STORAGE_BIT_NV = 0x0800, + GL_MULTICAST_GPUS_NV = 0x92BA, + GL_RENDER_GPU_MASK_NV = 0x9558, + GL_PER_GPU_STORAGE_NV = 0x9548, + GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9549, +}; +extern void (* const& glRenderGpuMaskNV) (GLbitfield mask); +extern void (* const& glMulticastBufferSubDataNV) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +extern void (* const& glMulticastCopyBufferSubDataNV) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +extern void (* const& glMulticastCopyImageSubDataNV) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +extern void (* const& glMulticastBlitFramebufferNV) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern void (* const& glMulticastFramebufferSampleLocationsfvNV) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +extern void (* const& glMulticastBarrierNV) (); +extern void (* const& glMulticastWaitSyncNV) (GLuint signalGpu, GLbitfield waitGpuMask); +extern void (* const& glMulticastGetQueryObjectivNV) (GLuint gpu, GLuint id, GLenum pname, GLint *params); +extern void (* const& glMulticastGetQueryObjectuivNV) (GLuint gpu, GLuint id, GLenum pname, GLuint *params); +extern void (* const& glMulticastGetQueryObjecti64vNV) (GLuint gpu, GLuint id, GLenum pname, GLint64 *params); +extern void (* const& glMulticastGetQueryObjectui64vNV) (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params); +#endif + +#ifndef GL_NVX_gpu_multicast2 +#define GL_NVX_gpu_multicast2 1 +enum +{ + GL_UPLOAD_GPU_MASK_NVX = 0x954A, +}; +extern void (* const& glUploadGpuMaskNVX) (GLbitfield mask); +extern void (* const& glMulticastViewportArrayvNVX) (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v); +extern void (* const& glMulticastViewportPositionWScaleNVX) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); +extern void (* const& glMulticastScissorArrayvNVX) (GLuint gpu, GLuint first, GLsizei count, const GLint *v); +extern GLuint (* const& glAsyncCopyBufferSubDataNVX) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +extern GLuint (* const& glAsyncCopyImageSubDataNVX) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +#endif + +#ifndef GL_NVX_progress_fence +#define GL_NVX_progress_fence 1 +extern GLuint (* const& glCreateProgressFenceNVX) (); +extern void (* const& glSignalSemaphoreui64NVX) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +extern void (* const& glWaitSemaphoreui64NVX) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +extern void (* const& glClientWaitSemaphoreui64NVX) (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +#endif + +#ifndef GL_NV_memory_attachment +#define GL_NV_memory_attachment 1 +enum +{ + GL_ATTACHED_MEMORY_OBJECT_NV = 0x95A4, + GL_ATTACHED_MEMORY_OFFSET_NV = 0x95A5, + GL_MEMORY_ATTACHABLE_ALIGNMENT_NV = 0x95A6, + GL_MEMORY_ATTACHABLE_SIZE_NV = 0x95A7, + GL_MEMORY_ATTACHABLE_NV = 0x95A8, + GL_DETACHED_MEMORY_INCARNATION_NV = 0x95A9, + GL_DETACHED_TEXTURES_NV = 0x95AA, + GL_DETACHED_BUFFERS_NV = 0x95AB, + GL_MAX_DETACHED_TEXTURES_NV = 0x95AC, + GL_MAX_DETACHED_BUFFERS_NV = 0x95AD, +}; +extern void (* const& glGetMemoryObjectDetachedResourcesuivNV) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); +extern void (* const& glResetMemoryObjectParameterNV) (GLuint memory, GLenum pname); +extern void (* const& glTexAttachMemoryNV) (GLenum target, GLuint memory, GLuint64 offset); +extern void (* const& glBufferAttachMemoryNV) (GLenum target, GLuint memory, GLuint64 offset); +extern void (* const& glTextureAttachMemoryNV) (GLuint texture, GLuint memory, GLuint64 offset); +extern void (* const& glNamedBufferAttachMemoryNV) (GLuint buffer, GLuint memory, GLuint64 offset); +#endif + +#ifndef GL_NV_memory_object_sparse +#define GL_NV_memory_object_sparse 1 +extern void (* const& glBufferPageCommitmentMemNV) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +extern void (* const& glTexPageCommitmentMemNV) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +extern void (* const& glNamedBufferPageCommitmentMemNV) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +extern void (* const& glTexturePageCommitmentMemNV) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +#endif + +#ifndef GL_NV_mesh_shader +#define GL_NV_mesh_shader 1 +enum +{ + GL_MESH_SHADER_NV = 0x9559, + GL_TASK_SHADER_NV = 0x955A, + GL_MAX_MESH_UNIFORM_BLOCKS_NV = 0x8E60, + GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV = 0x8E61, + GL_MAX_MESH_IMAGE_UNIFORMS_NV = 0x8E62, + GL_MAX_MESH_UNIFORM_COMPONENTS_NV = 0x8E63, + GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV = 0x8E64, + GL_MAX_MESH_ATOMIC_COUNTERS_NV = 0x8E65, + GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV = 0x8E66, + GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV = 0x8E67, + GL_MAX_TASK_UNIFORM_BLOCKS_NV = 0x8E68, + GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV = 0x8E69, + GL_MAX_TASK_IMAGE_UNIFORMS_NV = 0x8E6A, + GL_MAX_TASK_UNIFORM_COMPONENTS_NV = 0x8E6B, + GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV = 0x8E6C, + GL_MAX_TASK_ATOMIC_COUNTERS_NV = 0x8E6D, + GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV = 0x8E6E, + GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV = 0x8E6F, + GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV = 0x95A2, + GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV = 0x95A3, + GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV = 0x9536, + GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV = 0x9537, + GL_MAX_MESH_OUTPUT_VERTICES_NV = 0x9538, + GL_MAX_MESH_OUTPUT_PRIMITIVES_NV = 0x9539, + GL_MAX_TASK_OUTPUT_COUNT_NV = 0x953A, + GL_MAX_DRAW_MESH_TASKS_COUNT_NV = 0x953D, + GL_MAX_MESH_VIEWS_NV = 0x9557, + GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV = 0x92DF, + GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV = 0x9543, + GL_MAX_MESH_WORK_GROUP_SIZE_NV = 0x953B, + GL_MAX_TASK_WORK_GROUP_SIZE_NV = 0x953C, + GL_MESH_WORK_GROUP_SIZE_NV = 0x953E, + GL_TASK_WORK_GROUP_SIZE_NV = 0x953F, + GL_MESH_VERTICES_OUT_NV = 0x9579, + GL_MESH_PRIMITIVES_OUT_NV = 0x957A, + GL_MESH_OUTPUT_TYPE_NV = 0x957B, + GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV = 0x959C, + GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV = 0x959D, + GL_REFERENCED_BY_MESH_SHADER_NV = 0x95A0, + GL_REFERENCED_BY_TASK_SHADER_NV = 0x95A1, + GL_MESH_SHADER_BIT_NV = 0x00000040, + GL_TASK_SHADER_BIT_NV = 0x00000080, + GL_MESH_SUBROUTINE_NV = 0x957C, + GL_TASK_SUBROUTINE_NV = 0x957D, + GL_MESH_SUBROUTINE_UNIFORM_NV = 0x957E, + GL_TASK_SUBROUTINE_UNIFORM_NV = 0x957F, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV = 0x959E, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV = 0x959F, +}; +extern void (* const& glDrawMeshTasksNV) (GLuint first, GLuint count); +extern void (* const& glDrawMeshTasksIndirectNV) (GLintptr indirect); +extern void (* const& glMultiDrawMeshTasksIndirectNV) (GLintptr indirect, GLsizei drawcount, GLsizei stride); +extern void (* const& glMultiDrawMeshTasksIndirectCountNV) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#endif + +#ifndef GL_NV_multisample_coverage +#define GL_NV_multisample_coverage 1 +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 +enum +{ + GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534, +}; +#endif + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 +enum +{ + GL_PIXEL_COUNTER_BITS_NV = 0x8864, + GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865, + GL_PIXEL_COUNT_NV = 0x8866, + GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867, +}; +extern void (* const& glGenOcclusionQueriesNV) (GLsizei n, GLuint *ids); +extern void (* const& glDeleteOcclusionQueriesNV) (GLsizei n, const GLuint *ids); +extern GLboolean (* const& glIsOcclusionQueryNV) (GLuint id); +extern void (* const& glBeginOcclusionQueryNV) (GLuint id); +extern void (* const& glEndOcclusionQueryNV) (); +extern void (* const& glGetOcclusionQueryivNV) (GLuint id, GLenum pname, GLint *params); +extern void (* const& glGetOcclusionQueryuivNV) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 +enum +{ + GL_DEPTH_STENCIL_NV = 0x84F9, + GL_UNSIGNED_INT_24_8_NV = 0x84FA, +}; +#endif + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 +enum +{ + GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0, + GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1, + GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2, + GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3, + GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4, +}; +extern void (* const& glProgramBufferParametersfvNV) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); +extern void (* const& glProgramBufferParametersIivNV) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); +extern void (* const& glProgramBufferParametersIuivNV) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); +#endif + +#ifndef GL_NV_parameter_buffer_object2 +#define GL_NV_parameter_buffer_object2 1 +#endif + +#ifndef GL_NV_path_rendering +#define GL_NV_path_rendering 1 +enum +{ + GL_PATH_FORMAT_SVG_NV = 0x9070, + GL_PATH_FORMAT_PS_NV = 0x9071, + GL_STANDARD_FONT_NAME_NV = 0x9072, + GL_SYSTEM_FONT_NAME_NV = 0x9073, + GL_FILE_NAME_NV = 0x9074, + GL_PATH_STROKE_WIDTH_NV = 0x9075, + GL_PATH_END_CAPS_NV = 0x9076, + GL_PATH_INITIAL_END_CAP_NV = 0x9077, + GL_PATH_TERMINAL_END_CAP_NV = 0x9078, + GL_PATH_JOIN_STYLE_NV = 0x9079, + GL_PATH_MITER_LIMIT_NV = 0x907A, + GL_PATH_DASH_CAPS_NV = 0x907B, + GL_PATH_INITIAL_DASH_CAP_NV = 0x907C, + GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D, + GL_PATH_DASH_OFFSET_NV = 0x907E, + GL_PATH_CLIENT_LENGTH_NV = 0x907F, + GL_PATH_FILL_MODE_NV = 0x9080, + GL_PATH_FILL_MASK_NV = 0x9081, + GL_PATH_FILL_COVER_MODE_NV = 0x9082, + GL_PATH_STROKE_COVER_MODE_NV = 0x9083, + GL_PATH_STROKE_MASK_NV = 0x9084, + GL_COUNT_UP_NV = 0x9088, + GL_COUNT_DOWN_NV = 0x9089, + GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A, + GL_CONVEX_HULL_NV = 0x908B, + GL_BOUNDING_BOX_NV = 0x908D, + GL_TRANSLATE_X_NV = 0x908E, + GL_TRANSLATE_Y_NV = 0x908F, + GL_TRANSLATE_2D_NV = 0x9090, + GL_TRANSLATE_3D_NV = 0x9091, + GL_AFFINE_2D_NV = 0x9092, + GL_AFFINE_3D_NV = 0x9094, + GL_TRANSPOSE_AFFINE_2D_NV = 0x9096, + GL_TRANSPOSE_AFFINE_3D_NV = 0x9098, + GL_UTF8_NV = 0x909A, + GL_UTF16_NV = 0x909B, + GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C, + GL_PATH_COMMAND_COUNT_NV = 0x909D, + GL_PATH_COORD_COUNT_NV = 0x909E, + GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F, + GL_PATH_COMPUTED_LENGTH_NV = 0x90A0, + GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1, + GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2, + GL_SQUARE_NV = 0x90A3, + GL_ROUND_NV = 0x90A4, + GL_TRIANGULAR_NV = 0x90A5, + GL_BEVEL_NV = 0x90A6, + GL_MITER_REVERT_NV = 0x90A7, + GL_MITER_TRUNCATE_NV = 0x90A8, + GL_SKIP_MISSING_GLYPH_NV = 0x90A9, + GL_USE_MISSING_GLYPH_NV = 0x90AA, + GL_PATH_ERROR_POSITION_NV = 0x90AB, + GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD, + GL_ADJACENT_PAIRS_NV = 0x90AE, + GL_FIRST_TO_REST_NV = 0x90AF, + GL_PATH_GEN_MODE_NV = 0x90B0, + GL_PATH_GEN_COEFF_NV = 0x90B1, + GL_PATH_GEN_COMPONENTS_NV = 0x90B3, + GL_PATH_STENCIL_FUNC_NV = 0x90B7, + GL_PATH_STENCIL_REF_NV = 0x90B8, + GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9, + GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD, + GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE, + GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF, + GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4, + GL_MOVE_TO_RESETS_NV = 0x90B5, + GL_MOVE_TO_CONTINUES_NV = 0x90B6, + GL_CLOSE_PATH_NV = 0x00, + GL_MOVE_TO_NV = 0x02, + GL_RELATIVE_MOVE_TO_NV = 0x03, + GL_LINE_TO_NV = 0x04, + GL_RELATIVE_LINE_TO_NV = 0x05, + GL_HORIZONTAL_LINE_TO_NV = 0x06, + GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07, + GL_VERTICAL_LINE_TO_NV = 0x08, + GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09, + GL_QUADRATIC_CURVE_TO_NV = 0x0A, + GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B, + GL_CUBIC_CURVE_TO_NV = 0x0C, + GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D, + GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E, + GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F, + GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10, + GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11, + GL_SMALL_CCW_ARC_TO_NV = 0x12, + GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13, + GL_SMALL_CW_ARC_TO_NV = 0x14, + GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15, + GL_LARGE_CCW_ARC_TO_NV = 0x16, + GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17, + GL_LARGE_CW_ARC_TO_NV = 0x18, + GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19, + GL_RESTART_PATH_NV = 0xF0, + GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2, + GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4, + GL_RECT_NV = 0xF6, + GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8, + GL_CIRCULAR_CW_ARC_TO_NV = 0xFA, + GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC, + GL_ARC_TO_NV = 0xFE, + GL_RELATIVE_ARC_TO_NV = 0xFF, + GL_BOLD_BIT_NV = 0x01, + GL_ITALIC_BIT_NV = 0x02, + GL_GLYPH_WIDTH_BIT_NV = 0x01, + GL_GLYPH_HEIGHT_BIT_NV = 0x02, + GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04, + GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08, + GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10, + GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20, + GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40, + GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80, + GL_GLYPH_HAS_KERNING_BIT_NV = 0x100, + GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000, + GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000, + GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000, + GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000, + GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000, + GL_FONT_ASCENDER_BIT_NV = 0x00200000, + GL_FONT_DESCENDER_BIT_NV = 0x00400000, + GL_FONT_HEIGHT_BIT_NV = 0x00800000, + GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000, + GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000, + GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000, + GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000, + GL_FONT_HAS_KERNING_BIT_NV = 0x10000000, + GL_ROUNDED_RECT_NV = 0xE8, + GL_RELATIVE_ROUNDED_RECT_NV = 0xE9, + GL_ROUNDED_RECT2_NV = 0xEA, + GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB, + GL_ROUNDED_RECT4_NV = 0xEC, + GL_RELATIVE_ROUNDED_RECT4_NV = 0xED, + GL_ROUNDED_RECT8_NV = 0xEE, + GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF, + GL_RELATIVE_RECT_NV = 0xF7, + GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368, + GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369, + GL_FONT_UNAVAILABLE_NV = 0x936A, + GL_FONT_UNINTELLIGIBLE_NV = 0x936B, + GL_CONIC_CURVE_TO_NV = 0x1A, + GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B, + GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000, + GL_STANDARD_FONT_FORMAT_NV = 0x936C, + GL_2_BYTES_NV = 0x1407, + GL_3_BYTES_NV = 0x1408, + GL_4_BYTES_NV = 0x1409, + GL_EYE_LINEAR_NV = 0x2400, + GL_OBJECT_LINEAR_NV = 0x2401, + GL_CONSTANT_NV = 0x8576, + GL_PATH_FOG_GEN_MODE_NV = 0x90AC, + GL_PRIMARY_COLOR_NV = 0x852C, + GL_SECONDARY_COLOR_NV = 0x852D, + GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2, + GL_PATH_PROJECTION_NV = 0x1701, + GL_PATH_MODELVIEW_NV = 0x1700, + GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3, + GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6, + GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36, + GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3, + GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4, + GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7, + GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38, + GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4, + GL_FRAGMENT_INPUT_NV = 0x936D, +}; +extern GLuint (* const& glGenPathsNV) (GLsizei range); +extern void (* const& glDeletePathsNV) (GLuint path, GLsizei range); +extern GLboolean (* const& glIsPathNV) (GLuint path); +extern void (* const& glPathCommandsNV) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathCoordsNV) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathSubCommandsNV) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathSubCoordsNV) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathStringNV) (GLuint path, GLenum format, GLsizei length, const void *pathString); +extern void (* const& glPathGlyphsNV) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern void (* const& glPathGlyphRangeNV) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern void (* const& glWeightPathsNV) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +extern void (* const& glCopyPathNV) (GLuint resultPath, GLuint srcPath); +extern void (* const& glInterpolatePathsNV) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +extern void (* const& glTransformPathNV) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glPathParameterivNV) (GLuint path, GLenum pname, const GLint *value); +extern void (* const& glPathParameteriNV) (GLuint path, GLenum pname, GLint value); +extern void (* const& glPathParameterfvNV) (GLuint path, GLenum pname, const GLfloat *value); +extern void (* const& glPathParameterfNV) (GLuint path, GLenum pname, GLfloat value); +extern void (* const& glPathDashArrayNV) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +extern void (* const& glPathStencilFuncNV) (GLenum func, GLint ref, GLuint mask); +extern void (* const& glPathStencilDepthOffsetNV) (GLfloat factor, GLfloat units); +extern void (* const& glStencilFillPathNV) (GLuint path, GLenum fillMode, GLuint mask); +extern void (* const& glStencilStrokePathNV) (GLuint path, GLint reference, GLuint mask); +extern void (* const& glStencilFillPathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glStencilStrokePathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glPathCoverDepthFuncNV) (GLenum func); +extern void (* const& glCoverFillPathNV) (GLuint path, GLenum coverMode); +extern void (* const& glCoverStrokePathNV) (GLuint path, GLenum coverMode); +extern void (* const& glCoverFillPathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glCoverStrokePathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glGetPathParameterivNV) (GLuint path, GLenum pname, GLint *value); +extern void (* const& glGetPathParameterfvNV) (GLuint path, GLenum pname, GLfloat *value); +extern void (* const& glGetPathCommandsNV) (GLuint path, GLubyte *commands); +extern void (* const& glGetPathCoordsNV) (GLuint path, GLfloat *coords); +extern void (* const& glGetPathDashArrayNV) (GLuint path, GLfloat *dashArray); +extern void (* const& glGetPathMetricsNV) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +extern void (* const& glGetPathMetricRangeNV) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +extern void (* const& glGetPathSpacingNV) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +extern GLboolean (* const& glIsPointInFillPathNV) (GLuint path, GLuint mask, GLfloat x, GLfloat y); +extern GLboolean (* const& glIsPointInStrokePathNV) (GLuint path, GLfloat x, GLfloat y); +extern GLfloat (* const& glGetPathLengthNV) (GLuint path, GLsizei startSegment, GLsizei numSegments); +extern GLboolean (* const& glPointAlongPathNV) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +extern void (* const& glMatrixLoad3x2fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixLoad3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixLoadTranspose3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixMult3x2fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixMult3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixMultTranspose3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glStencilThenCoverFillPathNV) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); +extern void (* const& glStencilThenCoverStrokePathNV) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); +extern void (* const& glStencilThenCoverFillPathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glStencilThenCoverStrokePathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern GLenum (* const& glPathGlyphIndexRangeNV) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); +extern GLenum (* const& glPathGlyphIndexArrayNV) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern GLenum (* const& glPathMemoryGlyphIndexArrayNV) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern void (* const& glProgramPathFragmentInputGenNV) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); +extern void (* const& glGetProgramResourcefvNV) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); +extern void (* const& glPathColorGenNV) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); +extern void (* const& glPathTexGenNV) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); +extern void (* const& glPathFogGenNV) (GLenum genMode); +extern void (* const& glGetPathColorGenivNV) (GLenum color, GLenum pname, GLint *value); +extern void (* const& glGetPathColorGenfvNV) (GLenum color, GLenum pname, GLfloat *value); +extern void (* const& glGetPathTexGenivNV) (GLenum texCoordSet, GLenum pname, GLint *value); +extern void (* const& glGetPathTexGenfvNV) (GLenum texCoordSet, GLenum pname, GLfloat *value); +#endif + +#ifndef GL_NV_path_rendering_shared_edge +#define GL_NV_path_rendering_shared_edge 1 +enum +{ + GL_SHARED_EDGE_NV = 0xC0, +}; +#endif + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 +enum +{ + GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878, + GL_READ_PIXEL_DATA_RANGE_NV = 0x8879, + GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A, + GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B, + GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C, + GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D, +}; +extern void (* const& glPixelDataRangeNV) (GLenum target, GLsizei length, const void *pointer); +extern void (* const& glFlushPixelDataRangeNV) (GLenum target); +#endif + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 +enum +{ + GL_POINT_SPRITE_NV = 0x8861, + GL_COORD_REPLACE_NV = 0x8862, + GL_POINT_SPRITE_R_MODE_NV = 0x8863, +}; +extern void (* const& glPointParameteriNV) (GLenum pname, GLint param); +extern void (* const& glPointParameterivNV) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 +enum +{ + GL_FRAME_NV = 0x8E26, + GL_FIELDS_NV = 0x8E27, + GL_CURRENT_TIME_NV = 0x8E28, + GL_NUM_FILL_STREAMS_NV = 0x8E29, + GL_PRESENT_TIME_NV = 0x8E2A, + GL_PRESENT_DURATION_NV = 0x8E2B, +}; +extern void (* const& glPresentFrameKeyedNV) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); +extern void (* const& glPresentFrameDualFillNV) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +extern void (* const& glGetVideoivNV) (GLuint video_slot, GLenum pname, GLint *params); +extern void (* const& glGetVideouivNV) (GLuint video_slot, GLenum pname, GLuint *params); +extern void (* const& glGetVideoi64vNV) (GLuint video_slot, GLenum pname, GLint64EXT *params); +extern void (* const& glGetVideoui64vNV) (GLuint video_slot, GLenum pname, GLuint64EXT *params); +#endif + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 +enum +{ + GL_PRIMITIVE_RESTART_NV = 0x8558, + GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559, +}; +extern void (* const& glPrimitiveRestartNV) (); +extern void (* const& glPrimitiveRestartIndexNV) (GLuint index); +#endif + +#ifndef GL_NV_primitive_shading_rate +#define GL_NV_primitive_shading_rate 1 +enum +{ + GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV = 0x95B1, + GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV = 0x95B2, +}; +#endif + +#ifndef GL_NV_query_resource +#define GL_NV_query_resource 1 +enum +{ + GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV = 0x9540, + GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV = 0x9542, + GL_QUERY_RESOURCE_SYS_RESERVED_NV = 0x9544, + GL_QUERY_RESOURCE_TEXTURE_NV = 0x9545, + GL_QUERY_RESOURCE_RENDERBUFFER_NV = 0x9546, + GL_QUERY_RESOURCE_BUFFEROBJECT_NV = 0x9547, +}; +extern GLint (* const& glQueryResourceNV) (GLenum queryType, GLint tagId, GLuint count, GLint *buffer); +#endif + +#ifndef GL_NV_query_resource_tag +#define GL_NV_query_resource_tag 1 +extern void (* const& glGenQueryResourceTagNV) (GLsizei n, GLint *tagIds); +extern void (* const& glDeleteQueryResourceTagNV) (GLsizei n, const GLint *tagIds); +extern void (* const& glQueryResourceTagNV) (GLint tagId, const GLchar *tagString); +#endif + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 +enum +{ + GL_REGISTER_COMBINERS_NV = 0x8522, + GL_VARIABLE_A_NV = 0x8523, + GL_VARIABLE_B_NV = 0x8524, + GL_VARIABLE_C_NV = 0x8525, + GL_VARIABLE_D_NV = 0x8526, + GL_VARIABLE_E_NV = 0x8527, + GL_VARIABLE_F_NV = 0x8528, + GL_VARIABLE_G_NV = 0x8529, + GL_CONSTANT_COLOR0_NV = 0x852A, + GL_CONSTANT_COLOR1_NV = 0x852B, + GL_SPARE0_NV = 0x852E, + GL_SPARE1_NV = 0x852F, + GL_DISCARD_NV = 0x8530, + GL_E_TIMES_F_NV = 0x8531, + GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532, + GL_UNSIGNED_IDENTITY_NV = 0x8536, + GL_UNSIGNED_INVERT_NV = 0x8537, + GL_EXPAND_NORMAL_NV = 0x8538, + GL_EXPAND_NEGATE_NV = 0x8539, + GL_HALF_BIAS_NORMAL_NV = 0x853A, + GL_HALF_BIAS_NEGATE_NV = 0x853B, + GL_SIGNED_IDENTITY_NV = 0x853C, + GL_SIGNED_NEGATE_NV = 0x853D, + GL_SCALE_BY_TWO_NV = 0x853E, + GL_SCALE_BY_FOUR_NV = 0x853F, + GL_SCALE_BY_ONE_HALF_NV = 0x8540, + GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541, + GL_COMBINER_INPUT_NV = 0x8542, + GL_COMBINER_MAPPING_NV = 0x8543, + GL_COMBINER_COMPONENT_USAGE_NV = 0x8544, + GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545, + GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546, + GL_COMBINER_MUX_SUM_NV = 0x8547, + GL_COMBINER_SCALE_NV = 0x8548, + GL_COMBINER_BIAS_NV = 0x8549, + GL_COMBINER_AB_OUTPUT_NV = 0x854A, + GL_COMBINER_CD_OUTPUT_NV = 0x854B, + GL_COMBINER_SUM_OUTPUT_NV = 0x854C, + GL_MAX_GENERAL_COMBINERS_NV = 0x854D, + GL_NUM_GENERAL_COMBINERS_NV = 0x854E, + GL_COLOR_SUM_CLAMP_NV = 0x854F, + GL_COMBINER0_NV = 0x8550, + GL_COMBINER1_NV = 0x8551, + GL_COMBINER2_NV = 0x8552, + GL_COMBINER3_NV = 0x8553, + GL_COMBINER4_NV = 0x8554, + GL_COMBINER5_NV = 0x8555, + GL_COMBINER6_NV = 0x8556, + GL_COMBINER7_NV = 0x8557, +}; +extern void (* const& glCombinerParameterfvNV) (GLenum pname, const GLfloat *params); +extern void (* const& glCombinerParameterfNV) (GLenum pname, GLfloat param); +extern void (* const& glCombinerParameterivNV) (GLenum pname, const GLint *params); +extern void (* const& glCombinerParameteriNV) (GLenum pname, GLint param); +extern void (* const& glCombinerInputNV) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +extern void (* const& glCombinerOutputNV) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +extern void (* const& glFinalCombinerInputNV) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +extern void (* const& glGetCombinerInputParameterfvNV) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +extern void (* const& glGetCombinerInputParameterivNV) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +extern void (* const& glGetCombinerOutputParameterfvNV) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +extern void (* const& glGetCombinerOutputParameterivNV) (GLenum stage, GLenum portion, GLenum pname, GLint *params); +extern void (* const& glGetFinalCombinerInputParameterfvNV) (GLenum variable, GLenum pname, GLfloat *params); +extern void (* const& glGetFinalCombinerInputParameterivNV) (GLenum variable, GLenum pname, GLint *params); +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 +enum +{ + GL_PER_STAGE_CONSTANTS_NV = 0x8535, +}; +extern void (* const& glCombinerStageParameterfvNV) (GLenum stage, GLenum pname, const GLfloat *params); +extern void (* const& glGetCombinerStageParameterfvNV) (GLenum stage, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_NV_representative_fragment_test +#define GL_NV_representative_fragment_test 1 +enum +{ + GL_REPRESENTATIVE_FRAGMENT_TEST_NV = 0x937F, +}; +#endif + +#ifndef GL_NV_robustness_video_memory_purge +#define GL_NV_robustness_video_memory_purge 1 +enum +{ + GL_PURGED_CONTEXT_RESET_NV = 0x92BB, +}; +#endif + +#ifndef GL_NV_sample_locations +#define GL_NV_sample_locations 1 +enum +{ + GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D, + GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E, + GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F, + GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340, + GL_SAMPLE_LOCATION_NV = 0x8E50, + GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341, + GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342, + GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343, +}; +extern void (* const& glFramebufferSampleLocationsfvNV) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +extern void (* const& glNamedFramebufferSampleLocationsfvNV) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +extern void (* const& glResolveDepthValuesNV) (); +#endif + +#ifndef GL_NV_sample_mask_override_coverage +#define GL_NV_sample_mask_override_coverage 1 +#endif + +#ifndef GL_NV_scissor_exclusive +#define GL_NV_scissor_exclusive 1 +enum +{ + GL_SCISSOR_TEST_EXCLUSIVE_NV = 0x9555, + GL_SCISSOR_BOX_EXCLUSIVE_NV = 0x9556, +}; +extern void (* const& glScissorExclusiveNV) (GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glScissorExclusiveArrayvNV) (GLuint first, GLsizei count, const GLint *v); +#endif + +#ifndef GL_NV_shader_atomic_counters +#define GL_NV_shader_atomic_counters 1 +#endif + +#ifndef GL_NV_shader_atomic_float +#define GL_NV_shader_atomic_float 1 +#endif + +#ifndef GL_NV_shader_atomic_float64 +#define GL_NV_shader_atomic_float64 1 +#endif + +#ifndef GL_NV_shader_atomic_fp16_vector +#define GL_NV_shader_atomic_fp16_vector 1 +#endif + +#ifndef GL_NV_shader_atomic_int64 +#define GL_NV_shader_atomic_int64 1 +#endif + +#ifndef GL_NV_shader_buffer_load +#define GL_NV_shader_buffer_load 1 +enum +{ + GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D, + GL_GPU_ADDRESS_NV = 0x8F34, + GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35, +}; +extern void (* const& glMakeBufferResidentNV) (GLenum target, GLenum access); +extern void (* const& glMakeBufferNonResidentNV) (GLenum target); +extern GLboolean (* const& glIsBufferResidentNV) (GLenum target); +extern void (* const& glMakeNamedBufferResidentNV) (GLuint buffer, GLenum access); +extern void (* const& glMakeNamedBufferNonResidentNV) (GLuint buffer); +extern GLboolean (* const& glIsNamedBufferResidentNV) (GLuint buffer); +extern void (* const& glGetBufferParameterui64vNV) (GLenum target, GLenum pname, GLuint64EXT *params); +extern void (* const& glGetNamedBufferParameterui64vNV) (GLuint buffer, GLenum pname, GLuint64EXT *params); +extern void (* const& glGetIntegerui64vNV) (GLenum value, GLuint64EXT *result); +extern void (* const& glUniformui64NV) (GLint location, GLuint64EXT value); +extern void (* const& glUniformui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glProgramUniformui64NV) (GLuint program, GLint location, GLuint64EXT value); +extern void (* const& glProgramUniformui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif + +#ifndef GL_NV_shader_buffer_store +#define GL_NV_shader_buffer_store 1 +enum +{ + GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010, +}; +#endif + +#ifndef GL_NV_shader_storage_buffer_object +#define GL_NV_shader_storage_buffer_object 1 +#endif + +#ifndef GL_NV_shader_subgroup_partitioned +#define GL_NV_shader_subgroup_partitioned 1 +enum +{ + GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, +}; +#endif + +#ifndef GL_NV_shader_texture_footprint +#define GL_NV_shader_texture_footprint 1 +#endif + +#ifndef GL_NV_shader_thread_group +#define GL_NV_shader_thread_group 1 +enum +{ + GL_WARP_SIZE_NV = 0x9339, + GL_WARPS_PER_SM_NV = 0x933A, + GL_SM_COUNT_NV = 0x933B, +}; +#endif + +#ifndef GL_NV_shader_thread_shuffle +#define GL_NV_shader_thread_shuffle 1 +#endif + +#ifndef GL_NV_shading_rate_image +#define GL_NV_shading_rate_image 1 +enum +{ + GL_SHADING_RATE_IMAGE_NV = 0x9563, + GL_SHADING_RATE_NO_INVOCATIONS_NV = 0x9564, + GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0x9565, + GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 0x9566, + GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 0x9567, + GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 0x9568, + GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 0x9569, + GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 0x956A, + GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 0x956B, + GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 0x956C, + GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 0x956D, + GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 0x956E, + GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 0x956F, + GL_SHADING_RATE_IMAGE_BINDING_NV = 0x955B, + GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV = 0x955C, + GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV = 0x955D, + GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV = 0x955E, + GL_MAX_COARSE_FRAGMENT_SAMPLES_NV = 0x955F, + GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV = 0x95AE, + GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV = 0x95AF, + GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV = 0x95B0, +}; +extern void (* const& glBindShadingRateImageNV) (GLuint texture); +extern void (* const& glGetShadingRateImagePaletteNV) (GLuint viewport, GLuint entry, GLenum *rate); +extern void (* const& glGetShadingRateSampleLocationivNV) (GLenum rate, GLuint samples, GLuint index, GLint *location); +extern void (* const& glShadingRateImageBarrierNV) (GLboolean synchronize); +extern void (* const& glShadingRateImagePaletteNV) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); +extern void (* const& glShadingRateSampleOrderNV) (GLenum order); +extern void (* const& glShadingRateSampleOrderCustomNV) (GLenum rate, GLuint samples, const GLint *locations); +#endif + +#ifndef GL_NV_stereo_view_rendering +#define GL_NV_stereo_view_rendering 1 +#endif + +#ifndef GL_NV_tessellation_program5 +#define GL_NV_tessellation_program5 1 +enum +{ + GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8, + GL_TESS_CONTROL_PROGRAM_NV = 0x891E, + GL_TESS_EVALUATION_PROGRAM_NV = 0x891F, + GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74, + GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75, +}; +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 +enum +{ + GL_EMBOSS_LIGHT_NV = 0x855D, + GL_EMBOSS_CONSTANT_NV = 0x855E, + GL_EMBOSS_MAP_NV = 0x855F, +}; +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 +enum +{ + GL_NORMAL_MAP_NV = 0x8511, + GL_REFLECTION_MAP_NV = 0x8512, +}; +#endif + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 +extern void (* const& glTextureBarrierNV) (); +#endif + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 +enum +{ + GL_COMBINE4_NV = 0x8503, + GL_SOURCE3_RGB_NV = 0x8583, + GL_SOURCE3_ALPHA_NV = 0x858B, + GL_OPERAND3_RGB_NV = 0x8593, + GL_OPERAND3_ALPHA_NV = 0x859B, +}; +#endif + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 +enum +{ + GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F, +}; +#endif + +#ifndef GL_NV_texture_multisample +#define GL_NV_texture_multisample 1 +enum +{ + GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045, + GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046, +}; +extern void (* const& glTexImage2DMultisampleCoverageNV) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +extern void (* const& glTexImage3DMultisampleCoverageNV) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +extern void (* const& glTextureImage2DMultisampleNV) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +extern void (* const& glTextureImage3DMultisampleNV) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +extern void (* const& glTextureImage2DMultisampleCoverageNV) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +extern void (* const& glTextureImage3DMultisampleCoverageNV) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 +enum +{ + GL_TEXTURE_RECTANGLE_NV = 0x84F5, + GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6, + GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7, + GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8, +}; +#endif + +#ifndef GL_NV_texture_rectangle_compressed +#define GL_NV_texture_rectangle_compressed 1 +#endif + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 +enum +{ + GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C, + GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D, + GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E, + GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9, + GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA, + GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB, + GL_DSDT_MAG_INTENSITY_NV = 0x86DC, + GL_SHADER_CONSISTENT_NV = 0x86DD, + GL_TEXTURE_SHADER_NV = 0x86DE, + GL_SHADER_OPERATION_NV = 0x86DF, + GL_CULL_MODES_NV = 0x86E0, + GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1, + GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2, + GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3, + GL_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1, + GL_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2, + GL_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3, + GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4, + GL_CONST_EYE_NV = 0x86E5, + GL_PASS_THROUGH_NV = 0x86E6, + GL_CULL_FRAGMENT_NV = 0x86E7, + GL_OFFSET_TEXTURE_2D_NV = 0x86E8, + GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9, + GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA, + GL_DOT_PRODUCT_NV = 0x86EC, + GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED, + GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE, + GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0, + GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1, + GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2, + GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3, + GL_HILO_NV = 0x86F4, + GL_DSDT_NV = 0x86F5, + GL_DSDT_MAG_NV = 0x86F6, + GL_DSDT_MAG_VIB_NV = 0x86F7, + GL_HILO16_NV = 0x86F8, + GL_SIGNED_HILO_NV = 0x86F9, + GL_SIGNED_HILO16_NV = 0x86FA, + GL_SIGNED_RGBA_NV = 0x86FB, + GL_SIGNED_RGBA8_NV = 0x86FC, + GL_SIGNED_RGB_NV = 0x86FE, + GL_SIGNED_RGB8_NV = 0x86FF, + GL_SIGNED_LUMINANCE_NV = 0x8701, + GL_SIGNED_LUMINANCE8_NV = 0x8702, + GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703, + GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704, + GL_SIGNED_ALPHA_NV = 0x8705, + GL_SIGNED_ALPHA8_NV = 0x8706, + GL_SIGNED_INTENSITY_NV = 0x8707, + GL_SIGNED_INTENSITY8_NV = 0x8708, + GL_DSDT8_NV = 0x8709, + GL_DSDT8_MAG8_NV = 0x870A, + GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B, + GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C, + GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D, + GL_HI_SCALE_NV = 0x870E, + GL_LO_SCALE_NV = 0x870F, + GL_DS_SCALE_NV = 0x8710, + GL_DT_SCALE_NV = 0x8711, + GL_MAGNITUDE_SCALE_NV = 0x8712, + GL_VIBRANCE_SCALE_NV = 0x8713, + GL_HI_BIAS_NV = 0x8714, + GL_LO_BIAS_NV = 0x8715, + GL_DS_BIAS_NV = 0x8716, + GL_DT_BIAS_NV = 0x8717, + GL_MAGNITUDE_BIAS_NV = 0x8718, + GL_VIBRANCE_BIAS_NV = 0x8719, + GL_TEXTURE_BORDER_VALUES_NV = 0x871A, + GL_TEXTURE_HI_SIZE_NV = 0x871B, + GL_TEXTURE_LO_SIZE_NV = 0x871C, + GL_TEXTURE_DS_SIZE_NV = 0x871D, + GL_TEXTURE_DT_SIZE_NV = 0x871E, + GL_TEXTURE_MAG_SIZE_NV = 0x871F, +}; +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 +enum +{ + GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF, +}; +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 +enum +{ + GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850, + GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851, + GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852, + GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853, + GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854, + GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855, + GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856, + GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857, + GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858, + GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859, + GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A, + GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B, + GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C, + GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D, + GL_HILO8_NV = 0x885E, + GL_SIGNED_HILO8_NV = 0x885F, + GL_FORCE_BLUE_TO_ONE_NV = 0x8860, +}; +#endif + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 +enum +{ + GL_BACK_PRIMARY_COLOR_NV = 0x8C77, + GL_BACK_SECONDARY_COLOR_NV = 0x8C78, + GL_TEXTURE_COORD_NV = 0x8C79, + GL_CLIP_DISTANCE_NV = 0x8C7A, + GL_VERTEX_ID_NV = 0x8C7B, + GL_PRIMITIVE_ID_NV = 0x8C7C, + GL_GENERIC_ATTRIB_NV = 0x8C7D, + GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80, + GL_ACTIVE_VARYINGS_NV = 0x8C81, + GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82, + GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85, + GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86, + GL_PRIMITIVES_GENERATED_NV = 0x8C87, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88, + GL_RASTERIZER_DISCARD_NV = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B, + GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C, + GL_SEPARATE_ATTRIBS_NV = 0x8C8D, + GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F, + GL_LAYER_NV = 0x8DAA, + GL_NEXT_BUFFER_NV = -2, + GL_SKIP_COMPONENTS4_NV = -3, + GL_SKIP_COMPONENTS3_NV = -4, + GL_SKIP_COMPONENTS2_NV = -5, + GL_SKIP_COMPONENTS1_NV = -6, +}; +extern void (* const& glBeginTransformFeedbackNV) (GLenum primitiveMode); +extern void (* const& glEndTransformFeedbackNV) (); +extern void (* const& glTransformFeedbackAttribsNV) (GLsizei count, const GLint *attribs, GLenum bufferMode); +extern void (* const& glBindBufferRangeNV) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glBindBufferOffsetNV) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +extern void (* const& glBindBufferBaseNV) (GLenum target, GLuint index, GLuint buffer); +extern void (* const& glTransformFeedbackVaryingsNV) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +extern void (* const& glActiveVaryingNV) (GLuint program, const GLchar *name); +extern GLint (* const& glGetVaryingLocationNV) (GLuint program, const GLchar *name); +extern void (* const& glGetActiveVaryingNV) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +extern void (* const& glGetTransformFeedbackVaryingNV) (GLuint program, GLuint index, GLint *location); +extern void (* const& glTransformFeedbackStreamAttribsNV) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); +#endif + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 +enum +{ + GL_TRANSFORM_FEEDBACK_NV = 0x8E22, + GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23, + GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24, + GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25, +}; +extern void (* const& glBindTransformFeedbackNV) (GLenum target, GLuint id); +extern void (* const& glDeleteTransformFeedbacksNV) (GLsizei n, const GLuint *ids); +extern void (* const& glGenTransformFeedbacksNV) (GLsizei n, GLuint *ids); +extern GLboolean (* const& glIsTransformFeedbackNV) (GLuint id); +extern void (* const& glPauseTransformFeedbackNV) (); +extern void (* const& glResumeTransformFeedbackNV) (); +extern void (* const& glDrawTransformFeedbackNV) (GLenum mode, GLuint id); +#endif + +#ifndef GL_NV_uniform_buffer_unified_memory +#define GL_NV_uniform_buffer_unified_memory 1 +enum +{ + GL_UNIFORM_BUFFER_UNIFIED_NV = 0x936E, + GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F, + GL_UNIFORM_BUFFER_LENGTH_NV = 0x9370, +}; +#endif + +#ifndef GL_NV_vdpau_interop +#define GL_NV_vdpau_interop 1 +enum +{ + GL_SURFACE_STATE_NV = 0x86EB, + GL_SURFACE_REGISTERED_NV = 0x86FD, + GL_SURFACE_MAPPED_NV = 0x8700, + GL_WRITE_DISCARD_NV = 0x88BE, +}; +extern void (* const& glVDPAUInitNV) (const void *vdpDevice, const void *getProcAddress); +extern void (* const& glVDPAUFiniNV) (); +extern GLvdpauSurfaceNV (* const& glVDPAURegisterVideoSurfaceNV) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +extern GLvdpauSurfaceNV (* const& glVDPAURegisterOutputSurfaceNV) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +extern GLboolean (* const& glVDPAUIsSurfaceNV) (GLvdpauSurfaceNV surface); +extern void (* const& glVDPAUUnregisterSurfaceNV) (GLvdpauSurfaceNV surface); +extern void (* const& glVDPAUGetSurfaceivNV) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +extern void (* const& glVDPAUSurfaceAccessNV) (GLvdpauSurfaceNV surface, GLenum access); +extern void (* const& glVDPAUMapSurfacesNV) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); +extern void (* const& glVDPAUUnmapSurfacesNV) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); +#endif + +#ifndef GL_NV_vdpau_interop2 +#define GL_NV_vdpau_interop2 1 +extern GLvdpauSurfaceNV (* const& glVDPAURegisterVideoSurfaceWithPictureStructureNV) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 +enum +{ + GL_VERTEX_ARRAY_RANGE_NV = 0x851D, + GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E, + GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F, + GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520, + GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521, +}; +extern void (* const& glFlushVertexArrayRangeNV) (); +extern void (* const& glVertexArrayRangeNV) (GLsizei length, const void *pointer); +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 +enum +{ + GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533, +}; +#endif + +#ifndef GL_NV_vertex_attrib_integer_64bit +#define GL_NV_vertex_attrib_integer_64bit 1 +extern void (* const& glVertexAttribL1i64NV) (GLuint index, GLint64EXT x); +extern void (* const& glVertexAttribL2i64NV) (GLuint index, GLint64EXT x, GLint64EXT y); +extern void (* const& glVertexAttribL3i64NV) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +extern void (* const& glVertexAttribL4i64NV) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +extern void (* const& glVertexAttribL1i64vNV) (GLuint index, const GLint64EXT *v); +extern void (* const& glVertexAttribL2i64vNV) (GLuint index, const GLint64EXT *v); +extern void (* const& glVertexAttribL3i64vNV) (GLuint index, const GLint64EXT *v); +extern void (* const& glVertexAttribL4i64vNV) (GLuint index, const GLint64EXT *v); +extern void (* const& glVertexAttribL1ui64NV) (GLuint index, GLuint64EXT x); +extern void (* const& glVertexAttribL2ui64NV) (GLuint index, GLuint64EXT x, GLuint64EXT y); +extern void (* const& glVertexAttribL3ui64NV) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +extern void (* const& glVertexAttribL4ui64NV) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +extern void (* const& glVertexAttribL1ui64vNV) (GLuint index, const GLuint64EXT *v); +extern void (* const& glVertexAttribL2ui64vNV) (GLuint index, const GLuint64EXT *v); +extern void (* const& glVertexAttribL3ui64vNV) (GLuint index, const GLuint64EXT *v); +extern void (* const& glVertexAttribL4ui64vNV) (GLuint index, const GLuint64EXT *v); +extern void (* const& glGetVertexAttribLi64vNV) (GLuint index, GLenum pname, GLint64EXT *params); +extern void (* const& glGetVertexAttribLui64vNV) (GLuint index, GLenum pname, GLuint64EXT *params); +extern void (* const& glVertexAttribLFormatNV) (GLuint index, GLint size, GLenum type, GLsizei stride); +#endif + +#ifndef GL_NV_vertex_buffer_unified_memory +#define GL_NV_vertex_buffer_unified_memory 1 +enum +{ + GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E, + GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F, + GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20, + GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21, + GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22, + GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23, + GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24, + GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25, + GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26, + GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27, + GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28, + GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29, + GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A, + GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B, + GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C, + GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D, + GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E, + GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F, + GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30, + GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31, + GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32, + GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33, + GL_DRAW_INDIRECT_UNIFIED_NV = 0x8F40, + GL_DRAW_INDIRECT_ADDRESS_NV = 0x8F41, + GL_DRAW_INDIRECT_LENGTH_NV = 0x8F42, +}; +extern void (* const& glBufferAddressRangeNV) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +extern void (* const& glVertexFormatNV) (GLint size, GLenum type, GLsizei stride); +extern void (* const& glNormalFormatNV) (GLenum type, GLsizei stride); +extern void (* const& glColorFormatNV) (GLint size, GLenum type, GLsizei stride); +extern void (* const& glIndexFormatNV) (GLenum type, GLsizei stride); +extern void (* const& glTexCoordFormatNV) (GLint size, GLenum type, GLsizei stride); +extern void (* const& glEdgeFlagFormatNV) (GLsizei stride); +extern void (* const& glSecondaryColorFormatNV) (GLint size, GLenum type, GLsizei stride); +extern void (* const& glFogCoordFormatNV) (GLenum type, GLsizei stride); +extern void (* const& glVertexAttribFormatNV) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +extern void (* const& glVertexAttribIFormatNV) (GLuint index, GLint size, GLenum type, GLsizei stride); +extern void (* const& glGetIntegerui64i_vNV) (GLenum value, GLuint index, GLuint64EXT *result); +#endif + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 +enum +{ + GL_VERTEX_PROGRAM_NV = 0x8620, + GL_VERTEX_STATE_PROGRAM_NV = 0x8621, + GL_ATTRIB_ARRAY_SIZE_NV = 0x8623, + GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624, + GL_ATTRIB_ARRAY_TYPE_NV = 0x8625, + GL_CURRENT_ATTRIB_NV = 0x8626, + GL_PROGRAM_LENGTH_NV = 0x8627, + GL_PROGRAM_STRING_NV = 0x8628, + GL_MODELVIEW_PROJECTION_NV = 0x8629, + GL_IDENTITY_NV = 0x862A, + GL_INVERSE_NV = 0x862B, + GL_TRANSPOSE_NV = 0x862C, + GL_INVERSE_TRANSPOSE_NV = 0x862D, + GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E, + GL_MAX_TRACK_MATRICES_NV = 0x862F, + GL_MATRIX0_NV = 0x8630, + GL_MATRIX1_NV = 0x8631, + GL_MATRIX2_NV = 0x8632, + GL_MATRIX3_NV = 0x8633, + GL_MATRIX4_NV = 0x8634, + GL_MATRIX5_NV = 0x8635, + GL_MATRIX6_NV = 0x8636, + GL_MATRIX7_NV = 0x8637, + GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640, + GL_CURRENT_MATRIX_NV = 0x8641, + GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642, + GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643, + GL_PROGRAM_PARAMETER_NV = 0x8644, + GL_ATTRIB_ARRAY_POINTER_NV = 0x8645, + GL_PROGRAM_TARGET_NV = 0x8646, + GL_PROGRAM_RESIDENT_NV = 0x8647, + GL_TRACK_MATRIX_NV = 0x8648, + GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649, + GL_VERTEX_PROGRAM_BINDING_NV = 0x864A, + GL_PROGRAM_ERROR_POSITION_NV = 0x864B, + GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650, + GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651, + GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652, + GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653, + GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654, + GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655, + GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656, + GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657, + GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658, + GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659, + GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A, + GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B, + GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C, + GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D, + GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E, + GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F, + GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660, + GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661, + GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662, + GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663, + GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664, + GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665, + GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666, + GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667, + GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668, + GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669, + GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A, + GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B, + GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C, + GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D, + GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E, + GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F, + GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670, + GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671, + GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672, + GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673, + GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674, + GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675, + GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676, + GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677, + GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678, + GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679, + GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A, + GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B, + GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C, + GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D, + GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E, + GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F, +}; +extern GLboolean (* const& glAreProgramsResidentNV) (GLsizei n, const GLuint *programs, GLboolean *residences); +extern void (* const& glBindProgramNV) (GLenum target, GLuint id); +extern void (* const& glDeleteProgramsNV) (GLsizei n, const GLuint *programs); +extern void (* const& glExecuteProgramNV) (GLenum target, GLuint id, const GLfloat *params); +extern void (* const& glGenProgramsNV) (GLsizei n, GLuint *programs); +extern void (* const& glGetProgramParameterdvNV) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +extern void (* const& glGetProgramParameterfvNV) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +extern void (* const& glGetProgramivNV) (GLuint id, GLenum pname, GLint *params); +extern void (* const& glGetProgramStringNV) (GLuint id, GLenum pname, GLubyte *program); +extern void (* const& glGetTrackMatrixivNV) (GLenum target, GLuint address, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribdvNV) (GLuint index, GLenum pname, GLdouble *params); +extern void (* const& glGetVertexAttribfvNV) (GLuint index, GLenum pname, GLfloat *params); +extern void (* const& glGetVertexAttribivNV) (GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribPointervNV) (GLuint index, GLenum pname, void **pointer); +extern GLboolean (* const& glIsProgramNV) (GLuint id); +extern void (* const& glLoadProgramNV) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +extern void (* const& glProgramParameter4dNV) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glProgramParameter4dvNV) (GLenum target, GLuint index, const GLdouble *v); +extern void (* const& glProgramParameter4fNV) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glProgramParameter4fvNV) (GLenum target, GLuint index, const GLfloat *v); +extern void (* const& glProgramParameters4dvNV) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); +extern void (* const& glProgramParameters4fvNV) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); +extern void (* const& glRequestResidentProgramsNV) (GLsizei n, const GLuint *programs); +extern void (* const& glTrackMatrixNV) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +extern void (* const& glVertexAttribPointerNV) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glVertexAttrib1dNV) (GLuint index, GLdouble x); +extern void (* const& glVertexAttrib1dvNV) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib1fNV) (GLuint index, GLfloat x); +extern void (* const& glVertexAttrib1fvNV) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib1sNV) (GLuint index, GLshort x); +extern void (* const& glVertexAttrib1svNV) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib2dNV) (GLuint index, GLdouble x, GLdouble y); +extern void (* const& glVertexAttrib2dvNV) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib2fNV) (GLuint index, GLfloat x, GLfloat y); +extern void (* const& glVertexAttrib2fvNV) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib2sNV) (GLuint index, GLshort x, GLshort y); +extern void (* const& glVertexAttrib2svNV) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib3dNV) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glVertexAttrib3dvNV) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib3fNV) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glVertexAttrib3fvNV) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib3sNV) (GLuint index, GLshort x, GLshort y, GLshort z); +extern void (* const& glVertexAttrib3svNV) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4dNV) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void (* const& glVertexAttrib4dvNV) (GLuint index, const GLdouble *v); +extern void (* const& glVertexAttrib4fNV) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glVertexAttrib4fvNV) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib4sNV) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void (* const& glVertexAttrib4svNV) (GLuint index, const GLshort *v); +extern void (* const& glVertexAttrib4ubNV) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void (* const& glVertexAttrib4ubvNV) (GLuint index, const GLubyte *v); +extern void (* const& glVertexAttribs1dvNV) (GLuint index, GLsizei count, const GLdouble *v); +extern void (* const& glVertexAttribs1fvNV) (GLuint index, GLsizei count, const GLfloat *v); +extern void (* const& glVertexAttribs1svNV) (GLuint index, GLsizei count, const GLshort *v); +extern void (* const& glVertexAttribs2dvNV) (GLuint index, GLsizei count, const GLdouble *v); +extern void (* const& glVertexAttribs2fvNV) (GLuint index, GLsizei count, const GLfloat *v); +extern void (* const& glVertexAttribs2svNV) (GLuint index, GLsizei count, const GLshort *v); +extern void (* const& glVertexAttribs3dvNV) (GLuint index, GLsizei count, const GLdouble *v); +extern void (* const& glVertexAttribs3fvNV) (GLuint index, GLsizei count, const GLfloat *v); +extern void (* const& glVertexAttribs3svNV) (GLuint index, GLsizei count, const GLshort *v); +extern void (* const& glVertexAttribs4dvNV) (GLuint index, GLsizei count, const GLdouble *v); +extern void (* const& glVertexAttribs4fvNV) (GLuint index, GLsizei count, const GLfloat *v); +extern void (* const& glVertexAttribs4svNV) (GLuint index, GLsizei count, const GLshort *v); +extern void (* const& glVertexAttribs4ubvNV) (GLuint index, GLsizei count, const GLubyte *v); +#endif + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 +#endif + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 +#endif + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 +#endif + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 +#endif + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 +enum +{ + GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD, +}; +#endif + +#ifndef GL_NV_video_capture +#define GL_NV_video_capture 1 +enum +{ + GL_VIDEO_BUFFER_NV = 0x9020, + GL_VIDEO_BUFFER_BINDING_NV = 0x9021, + GL_FIELD_UPPER_NV = 0x9022, + GL_FIELD_LOWER_NV = 0x9023, + GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024, + GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025, + GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026, + GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027, + GL_VIDEO_BUFFER_PITCH_NV = 0x9028, + GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029, + GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A, + GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B, + GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C, + GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D, + GL_PARTIAL_SUCCESS_NV = 0x902E, + GL_SUCCESS_NV = 0x902F, + GL_FAILURE_NV = 0x9030, + GL_YCBYCR8_422_NV = 0x9031, + GL_YCBAYCR8A_4224_NV = 0x9032, + GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033, + GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034, + GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035, + GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036, + GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037, + GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038, + GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039, + GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A, + GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B, + GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C, +}; +extern void (* const& glBeginVideoCaptureNV) (GLuint video_capture_slot); +extern void (* const& glBindVideoCaptureStreamBufferNV) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +extern void (* const& glBindVideoCaptureStreamTextureNV) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +extern void (* const& glEndVideoCaptureNV) (GLuint video_capture_slot); +extern void (* const& glGetVideoCaptureivNV) (GLuint video_capture_slot, GLenum pname, GLint *params); +extern void (* const& glGetVideoCaptureStreamivNV) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); +extern void (* const& glGetVideoCaptureStreamfvNV) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); +extern void (* const& glGetVideoCaptureStreamdvNV) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); +extern GLenum (* const& glVideoCaptureNV) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); +extern void (* const& glVideoCaptureStreamParameterivNV) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); +extern void (* const& glVideoCaptureStreamParameterfvNV) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); +extern void (* const& glVideoCaptureStreamParameterdvNV) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); +#endif + +#ifndef GL_NV_viewport_array2 +#define GL_NV_viewport_array2 1 +#endif + +#ifndef GL_NV_viewport_swizzle +#define GL_NV_viewport_swizzle 1 +enum +{ + GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV = 0x9350, + GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV = 0x9351, + GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV = 0x9352, + GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV = 0x9353, + GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV = 0x9354, + GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV = 0x9355, + GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV = 0x9356, + GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV = 0x9357, + GL_VIEWPORT_SWIZZLE_X_NV = 0x9358, + GL_VIEWPORT_SWIZZLE_Y_NV = 0x9359, + GL_VIEWPORT_SWIZZLE_Z_NV = 0x935A, + GL_VIEWPORT_SWIZZLE_W_NV = 0x935B, +}; +extern void (* const& glViewportSwizzleNV) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); +#endif + +#ifndef GL_OES_byte_coordinates +#define GL_OES_byte_coordinates 1 +extern void (* const& glMultiTexCoord1bOES) (GLenum texture, GLbyte s); +extern void (* const& glMultiTexCoord1bvOES) (GLenum texture, const GLbyte *coords); +extern void (* const& glMultiTexCoord2bOES) (GLenum texture, GLbyte s, GLbyte t); +extern void (* const& glMultiTexCoord2bvOES) (GLenum texture, const GLbyte *coords); +extern void (* const& glMultiTexCoord3bOES) (GLenum texture, GLbyte s, GLbyte t, GLbyte r); +extern void (* const& glMultiTexCoord3bvOES) (GLenum texture, const GLbyte *coords); +extern void (* const& glMultiTexCoord4bOES) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); +extern void (* const& glMultiTexCoord4bvOES) (GLenum texture, const GLbyte *coords); +extern void (* const& glTexCoord1bOES) (GLbyte s); +extern void (* const& glTexCoord1bvOES) (const GLbyte *coords); +extern void (* const& glTexCoord2bOES) (GLbyte s, GLbyte t); +extern void (* const& glTexCoord2bvOES) (const GLbyte *coords); +extern void (* const& glTexCoord3bOES) (GLbyte s, GLbyte t, GLbyte r); +extern void (* const& glTexCoord3bvOES) (const GLbyte *coords); +extern void (* const& glTexCoord4bOES) (GLbyte s, GLbyte t, GLbyte r, GLbyte q); +extern void (* const& glTexCoord4bvOES) (const GLbyte *coords); +extern void (* const& glVertex2bOES) (GLbyte x, GLbyte y); +extern void (* const& glVertex2bvOES) (const GLbyte *coords); +extern void (* const& glVertex3bOES) (GLbyte x, GLbyte y, GLbyte z); +extern void (* const& glVertex3bvOES) (const GLbyte *coords); +extern void (* const& glVertex4bOES) (GLbyte x, GLbyte y, GLbyte z, GLbyte w); +extern void (* const& glVertex4bvOES) (const GLbyte *coords); +#endif + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 +enum +{ + GL_PALETTE4_RGB8_OES = 0x8B90, + GL_PALETTE4_RGBA8_OES = 0x8B91, + GL_PALETTE4_R5_G6_B5_OES = 0x8B92, + GL_PALETTE4_RGBA4_OES = 0x8B93, + GL_PALETTE4_RGB5_A1_OES = 0x8B94, + GL_PALETTE8_RGB8_OES = 0x8B95, + GL_PALETTE8_RGBA8_OES = 0x8B96, + GL_PALETTE8_R5_G6_B5_OES = 0x8B97, + GL_PALETTE8_RGBA4_OES = 0x8B98, + GL_PALETTE8_RGB5_A1_OES = 0x8B99, +}; +#endif + +#ifndef GL_OES_fixed_point +#define GL_OES_fixed_point 1 +enum +{ + GL_FIXED_OES = 0x140C, +}; +extern void (* const& glAlphaFuncxOES) (GLenum func, GLfixed ref); +extern void (* const& glClearColorxOES) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +extern void (* const& glClearDepthxOES) (GLfixed depth); +extern void (* const& glClipPlanexOES) (GLenum plane, const GLfixed *equation); +extern void (* const& glColor4xOES) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +extern void (* const& glDepthRangexOES) (GLfixed n, GLfixed f); +extern void (* const& glFogxOES) (GLenum pname, GLfixed param); +extern void (* const& glFogxvOES) (GLenum pname, const GLfixed *param); +extern void (* const& glFrustumxOES) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +extern void (* const& glGetClipPlanexOES) (GLenum plane, GLfixed *equation); +extern void (* const& glGetFixedvOES) (GLenum pname, GLfixed *params); +extern void (* const& glGetTexEnvxvOES) (GLenum target, GLenum pname, GLfixed *params); +extern void (* const& glGetTexParameterxvOES) (GLenum target, GLenum pname, GLfixed *params); +extern void (* const& glLightModelxOES) (GLenum pname, GLfixed param); +extern void (* const& glLightModelxvOES) (GLenum pname, const GLfixed *param); +extern void (* const& glLightxOES) (GLenum light, GLenum pname, GLfixed param); +extern void (* const& glLightxvOES) (GLenum light, GLenum pname, const GLfixed *params); +extern void (* const& glLineWidthxOES) (GLfixed width); +extern void (* const& glLoadMatrixxOES) (const GLfixed *m); +extern void (* const& glMaterialxOES) (GLenum face, GLenum pname, GLfixed param); +extern void (* const& glMaterialxvOES) (GLenum face, GLenum pname, const GLfixed *param); +extern void (* const& glMultMatrixxOES) (const GLfixed *m); +extern void (* const& glMultiTexCoord4xOES) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +extern void (* const& glNormal3xOES) (GLfixed nx, GLfixed ny, GLfixed nz); +extern void (* const& glOrthoxOES) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +extern void (* const& glPointParameterxvOES) (GLenum pname, const GLfixed *params); +extern void (* const& glPointSizexOES) (GLfixed size); +extern void (* const& glPolygonOffsetxOES) (GLfixed factor, GLfixed units); +extern void (* const& glRotatexOES) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +extern void (* const& glScalexOES) (GLfixed x, GLfixed y, GLfixed z); +extern void (* const& glTexEnvxOES) (GLenum target, GLenum pname, GLfixed param); +extern void (* const& glTexEnvxvOES) (GLenum target, GLenum pname, const GLfixed *params); +extern void (* const& glTexParameterxOES) (GLenum target, GLenum pname, GLfixed param); +extern void (* const& glTexParameterxvOES) (GLenum target, GLenum pname, const GLfixed *params); +extern void (* const& glTranslatexOES) (GLfixed x, GLfixed y, GLfixed z); +extern void (* const& glGetLightxvOES) (GLenum light, GLenum pname, GLfixed *params); +extern void (* const& glGetMaterialxvOES) (GLenum face, GLenum pname, GLfixed *params); +extern void (* const& glPointParameterxOES) (GLenum pname, GLfixed param); +extern void (* const& glSampleCoveragexOES) (GLclampx value, GLboolean invert); +extern void (* const& glAccumxOES) (GLenum op, GLfixed value); +extern void (* const& glBitmapxOES) (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); +extern void (* const& glBlendColorxOES) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +extern void (* const& glClearAccumxOES) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +extern void (* const& glColor3xOES) (GLfixed red, GLfixed green, GLfixed blue); +extern void (* const& glColor3xvOES) (const GLfixed *components); +extern void (* const& glColor4xvOES) (const GLfixed *components); +extern void (* const& glConvolutionParameterxOES) (GLenum target, GLenum pname, GLfixed param); +extern void (* const& glConvolutionParameterxvOES) (GLenum target, GLenum pname, const GLfixed *params); +extern void (* const& glEvalCoord1xOES) (GLfixed u); +extern void (* const& glEvalCoord1xvOES) (const GLfixed *coords); +extern void (* const& glEvalCoord2xOES) (GLfixed u, GLfixed v); +extern void (* const& glEvalCoord2xvOES) (const GLfixed *coords); +extern void (* const& glFeedbackBufferxOES) (GLsizei n, GLenum type, const GLfixed *buffer); +extern void (* const& glGetConvolutionParameterxvOES) (GLenum target, GLenum pname, GLfixed *params); +extern void (* const& glGetHistogramParameterxvOES) (GLenum target, GLenum pname, GLfixed *params); +extern void (* const& glGetLightxOES) (GLenum light, GLenum pname, GLfixed *params); +extern void (* const& glGetMapxvOES) (GLenum target, GLenum query, GLfixed *v); +extern void (* const& glGetMaterialxOES) (GLenum face, GLenum pname, GLfixed param); +extern void (* const& glGetPixelMapxv) (GLenum map, GLint size, GLfixed *values); +extern void (* const& glGetTexGenxvOES) (GLenum coord, GLenum pname, GLfixed *params); +extern void (* const& glGetTexLevelParameterxvOES) (GLenum target, GLint level, GLenum pname, GLfixed *params); +extern void (* const& glIndexxOES) (GLfixed component); +extern void (* const& glIndexxvOES) (const GLfixed *component); +extern void (* const& glLoadTransposeMatrixxOES) (const GLfixed *m); +extern void (* const& glMap1xOES) (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); +extern void (* const& glMap2xOES) (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); +extern void (* const& glMapGrid1xOES) (GLint n, GLfixed u1, GLfixed u2); +extern void (* const& glMapGrid2xOES) (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); +extern void (* const& glMultTransposeMatrixxOES) (const GLfixed *m); +extern void (* const& glMultiTexCoord1xOES) (GLenum texture, GLfixed s); +extern void (* const& glMultiTexCoord1xvOES) (GLenum texture, const GLfixed *coords); +extern void (* const& glMultiTexCoord2xOES) (GLenum texture, GLfixed s, GLfixed t); +extern void (* const& glMultiTexCoord2xvOES) (GLenum texture, const GLfixed *coords); +extern void (* const& glMultiTexCoord3xOES) (GLenum texture, GLfixed s, GLfixed t, GLfixed r); +extern void (* const& glMultiTexCoord3xvOES) (GLenum texture, const GLfixed *coords); +extern void (* const& glMultiTexCoord4xvOES) (GLenum texture, const GLfixed *coords); +extern void (* const& glNormal3xvOES) (const GLfixed *coords); +extern void (* const& glPassThroughxOES) (GLfixed token); +extern void (* const& glPixelMapx) (GLenum map, GLint size, const GLfixed *values); +extern void (* const& glPixelStorex) (GLenum pname, GLfixed param); +extern void (* const& glPixelTransferxOES) (GLenum pname, GLfixed param); +extern void (* const& glPixelZoomxOES) (GLfixed xfactor, GLfixed yfactor); +extern void (* const& glPrioritizeTexturesxOES) (GLsizei n, const GLuint *textures, const GLfixed *priorities); +extern void (* const& glRasterPos2xOES) (GLfixed x, GLfixed y); +extern void (* const& glRasterPos2xvOES) (const GLfixed *coords); +extern void (* const& glRasterPos3xOES) (GLfixed x, GLfixed y, GLfixed z); +extern void (* const& glRasterPos3xvOES) (const GLfixed *coords); +extern void (* const& glRasterPos4xOES) (GLfixed x, GLfixed y, GLfixed z, GLfixed w); +extern void (* const& glRasterPos4xvOES) (const GLfixed *coords); +extern void (* const& glRectxOES) (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); +extern void (* const& glRectxvOES) (const GLfixed *v1, const GLfixed *v2); +extern void (* const& glTexCoord1xOES) (GLfixed s); +extern void (* const& glTexCoord1xvOES) (const GLfixed *coords); +extern void (* const& glTexCoord2xOES) (GLfixed s, GLfixed t); +extern void (* const& glTexCoord2xvOES) (const GLfixed *coords); +extern void (* const& glTexCoord3xOES) (GLfixed s, GLfixed t, GLfixed r); +extern void (* const& glTexCoord3xvOES) (const GLfixed *coords); +extern void (* const& glTexCoord4xOES) (GLfixed s, GLfixed t, GLfixed r, GLfixed q); +extern void (* const& glTexCoord4xvOES) (const GLfixed *coords); +extern void (* const& glTexGenxOES) (GLenum coord, GLenum pname, GLfixed param); +extern void (* const& glTexGenxvOES) (GLenum coord, GLenum pname, const GLfixed *params); +extern void (* const& glVertex2xOES) (GLfixed x); +extern void (* const& glVertex2xvOES) (const GLfixed *coords); +extern void (* const& glVertex3xOES) (GLfixed x, GLfixed y); +extern void (* const& glVertex3xvOES) (const GLfixed *coords); +extern void (* const& glVertex4xOES) (GLfixed x, GLfixed y, GLfixed z); +extern void (* const& glVertex4xvOES) (const GLfixed *coords); +#endif + +#ifndef GL_OES_query_matrix +#define GL_OES_query_matrix 1 +extern GLbitfield (* const& glQueryMatrixxOES) (GLfixed *mantissa, GLint *exponent); +#endif + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 +enum +{ + GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A, + GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B, +}; +#endif + +#ifndef GL_OES_single_precision +#define GL_OES_single_precision 1 +extern void (* const& glClearDepthfOES) (GLclampf depth); +extern void (* const& glClipPlanefOES) (GLenum plane, const GLfloat *equation); +extern void (* const& glDepthRangefOES) (GLclampf n, GLclampf f); +extern void (* const& glFrustumfOES) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +extern void (* const& glGetClipPlanefOES) (GLenum plane, GLfloat *equation); +extern void (* const& glOrthofOES) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +#endif + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 +enum +{ + GL_INTERLACE_OML = 0x8980, + GL_INTERLACE_READ_OML = 0x8981, +}; +#endif + +#ifndef GL_OML_resample +#define GL_OML_resample 1 +enum +{ + GL_PACK_RESAMPLE_OML = 0x8984, + GL_UNPACK_RESAMPLE_OML = 0x8985, + GL_RESAMPLE_REPLICATE_OML = 0x8986, + GL_RESAMPLE_ZERO_FILL_OML = 0x8987, + GL_RESAMPLE_AVERAGE_OML = 0x8988, + GL_RESAMPLE_DECIMATE_OML = 0x8989, +}; +#endif + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 +enum +{ + GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982, + GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983, +}; +#endif + +#ifndef GL_OVR_multiview +#define GL_OVR_multiview 1 +enum +{ + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632, + GL_MAX_VIEWS_OVR = 0x9631, + GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633, +}; +extern void (* const& glFramebufferTextureMultiviewOVR) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +#endif + +#ifndef GL_OVR_multiview2 +#define GL_OVR_multiview2 1 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 +enum +{ + GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8, + GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD, + GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE, + GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202, + GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203, + GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204, + GL_ALWAYS_FAST_HINT_PGI = 0x1A20C, + GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D, + GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E, + GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F, + GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210, + GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211, + GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216, + GL_STRICT_LIGHTING_HINT_PGI = 0x1A217, + GL_STRICT_SCISSOR_HINT_PGI = 0x1A218, + GL_FULL_STIPPLE_HINT_PGI = 0x1A219, + GL_CLIP_NEAR_HINT_PGI = 0x1A220, + GL_CLIP_FAR_HINT_PGI = 0x1A221, + GL_WIDE_LINE_HINT_PGI = 0x1A222, + GL_BACK_NORMALS_HINT_PGI = 0x1A223, +}; +extern void (* const& glHintPGI) (GLenum target, GLint mode); +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 +enum +{ + GL_VERTEX_DATA_HINT_PGI = 0x1A22A, + GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B, + GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C, + GL_MAX_VERTEX_HINT_PGI = 0x1A22D, + GL_COLOR3_BIT_PGI = 0x00010000, + GL_COLOR4_BIT_PGI = 0x00020000, + GL_EDGEFLAG_BIT_PGI = 0x00040000, + GL_INDEX_BIT_PGI = 0x00080000, + GL_MAT_AMBIENT_BIT_PGI = 0x00100000, + GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000, + GL_MAT_DIFFUSE_BIT_PGI = 0x00400000, + GL_MAT_EMISSION_BIT_PGI = 0x00800000, + GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000, + GL_MAT_SHININESS_BIT_PGI = 0x02000000, + GL_MAT_SPECULAR_BIT_PGI = 0x04000000, + GL_NORMAL_BIT_PGI = 0x08000000, + GL_TEXCOORD1_BIT_PGI = 0x10000000, + GL_TEXCOORD2_BIT_PGI = 0x20000000, + GL_TEXCOORD3_BIT_PGI = 0x40000000, + GL_TEXCOORD4_BIT_PGI = 0x80000000, + GL_VERTEX23_BIT_PGI = 0x00000004, + GL_VERTEX4_BIT_PGI = 0x00000008, +}; +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 +enum +{ + GL_SCREEN_COORDINATES_REND = 0x8490, + GL_INVERTED_SCREEN_W_REND = 0x8491, +}; +#endif + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 +enum +{ + GL_RGB_S3TC = 0x83A0, + GL_RGB4_S3TC = 0x83A1, + GL_RGBA_S3TC = 0x83A2, + GL_RGBA4_S3TC = 0x83A3, + GL_RGBA_DXT5_S3TC = 0x83A4, + GL_RGBA4_DXT5_S3TC = 0x83A5, +}; +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 +enum +{ + GL_DETAIL_TEXTURE_2D_SGIS = 0x8095, + GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096, + GL_LINEAR_DETAIL_SGIS = 0x8097, + GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098, + GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099, + GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A, + GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B, + GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C, +}; +extern void (* const& glDetailTexFuncSGIS) (GLenum target, GLsizei n, const GLfloat *points); +extern void (* const& glGetDetailTexFuncSGIS) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 +enum +{ + GL_FOG_FUNC_SGIS = 0x812A, + GL_FOG_FUNC_POINTS_SGIS = 0x812B, + GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C, +}; +extern void (* const& glFogFuncSGIS) (GLsizei n, const GLfloat *points); +extern void (* const& glGetFogFuncSGIS) (GLfloat *points); +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 +enum +{ + GL_GENERATE_MIPMAP_SGIS = 0x8191, + GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192, +}; +#endif + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 +enum +{ + GL_MULTISAMPLE_SGIS = 0x809D, + GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F, + GL_SAMPLE_MASK_SGIS = 0x80A0, + GL_1PASS_SGIS = 0x80A1, + GL_2PASS_0_SGIS = 0x80A2, + GL_2PASS_1_SGIS = 0x80A3, + GL_4PASS_0_SGIS = 0x80A4, + GL_4PASS_1_SGIS = 0x80A5, + GL_4PASS_2_SGIS = 0x80A6, + GL_4PASS_3_SGIS = 0x80A7, + GL_SAMPLE_BUFFERS_SGIS = 0x80A8, + GL_SAMPLES_SGIS = 0x80A9, + GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA, + GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB, + GL_SAMPLE_PATTERN_SGIS = 0x80AC, +}; +extern void (* const& glSampleMaskSGIS) (GLclampf value, GLboolean invert); +extern void (* const& glSamplePatternSGIS) (GLenum pattern); +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 +enum +{ + GL_PIXEL_TEXTURE_SGIS = 0x8353, + GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354, + GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355, + GL_PIXEL_GROUP_COLOR_SGIS = 0x8356, +}; +extern void (* const& glPixelTexGenParameteriSGIS) (GLenum pname, GLint param); +extern void (* const& glPixelTexGenParameterivSGIS) (GLenum pname, const GLint *params); +extern void (* const& glPixelTexGenParameterfSGIS) (GLenum pname, GLfloat param); +extern void (* const& glPixelTexGenParameterfvSGIS) (GLenum pname, const GLfloat *params); +extern void (* const& glGetPixelTexGenParameterivSGIS) (GLenum pname, GLint *params); +extern void (* const& glGetPixelTexGenParameterfvSGIS) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 +enum +{ + GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0, + GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1, + GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2, + GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3, + GL_EYE_POINT_SGIS = 0x81F4, + GL_OBJECT_POINT_SGIS = 0x81F5, + GL_EYE_LINE_SGIS = 0x81F6, + GL_OBJECT_LINE_SGIS = 0x81F7, +}; +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_SGIS_point_parameters 1 +enum +{ + GL_POINT_SIZE_MIN_SGIS = 0x8126, + GL_POINT_SIZE_MAX_SGIS = 0x8127, + GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128, + GL_DISTANCE_ATTENUATION_SGIS = 0x8129, +}; +extern void (* const& glPointParameterfSGIS) (GLenum pname, GLfloat param); +extern void (* const& glPointParameterfvSGIS) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 +enum +{ + GL_LINEAR_SHARPEN_SGIS = 0x80AD, + GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE, + GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF, + GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0, +}; +extern void (* const& glSharpenTexFuncSGIS) (GLenum target, GLsizei n, const GLfloat *points); +extern void (* const& glGetSharpenTexFuncSGIS) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 +enum +{ + GL_PACK_SKIP_VOLUMES_SGIS = 0x8130, + GL_PACK_IMAGE_DEPTH_SGIS = 0x8131, + GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132, + GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133, + GL_TEXTURE_4D_SGIS = 0x8134, + GL_PROXY_TEXTURE_4D_SGIS = 0x8135, + GL_TEXTURE_4DSIZE_SGIS = 0x8136, + GL_TEXTURE_WRAP_Q_SGIS = 0x8137, + GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138, + GL_TEXTURE_4D_BINDING_SGIS = 0x814F, +}; +extern void (* const& glTexImage4DSGIS) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexSubImage4DSGIS) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 +enum +{ + GL_CLAMP_TO_BORDER_SGIS = 0x812D, +}; +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_SGIS_texture_color_mask 1 +enum +{ + GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF, +}; +extern void (* const& glTextureColorMaskSGIS) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 +enum +{ + GL_CLAMP_TO_EDGE_SGIS = 0x812F, +}; +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 +enum +{ + GL_FILTER4_SGIS = 0x8146, + GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147, +}; +extern void (* const& glGetTexFilterFuncSGIS) (GLenum target, GLenum filter, GLfloat *weights); +extern void (* const& glTexFilterFuncSGIS) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 +enum +{ + GL_TEXTURE_MIN_LOD_SGIS = 0x813A, + GL_TEXTURE_MAX_LOD_SGIS = 0x813B, + GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C, + GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D, +}; +#endif + +#ifndef GL_SGIS_texture_select +#define GL_SGIS_texture_select 1 +enum +{ + GL_DUAL_ALPHA4_SGIS = 0x8110, + GL_DUAL_ALPHA8_SGIS = 0x8111, + GL_DUAL_ALPHA12_SGIS = 0x8112, + GL_DUAL_ALPHA16_SGIS = 0x8113, + GL_DUAL_LUMINANCE4_SGIS = 0x8114, + GL_DUAL_LUMINANCE8_SGIS = 0x8115, + GL_DUAL_LUMINANCE12_SGIS = 0x8116, + GL_DUAL_LUMINANCE16_SGIS = 0x8117, + GL_DUAL_INTENSITY4_SGIS = 0x8118, + GL_DUAL_INTENSITY8_SGIS = 0x8119, + GL_DUAL_INTENSITY12_SGIS = 0x811A, + GL_DUAL_INTENSITY16_SGIS = 0x811B, + GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C, + GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D, + GL_QUAD_ALPHA4_SGIS = 0x811E, + GL_QUAD_ALPHA8_SGIS = 0x811F, + GL_QUAD_LUMINANCE4_SGIS = 0x8120, + GL_QUAD_LUMINANCE8_SGIS = 0x8121, + GL_QUAD_INTENSITY4_SGIS = 0x8122, + GL_QUAD_INTENSITY8_SGIS = 0x8123, + GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124, + GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125, +}; +#endif + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 +enum +{ + GL_ASYNC_MARKER_SGIX = 0x8329, +}; +extern void (* const& glAsyncMarkerSGIX) (GLuint marker); +extern GLint (* const& glFinishAsyncSGIX) (GLuint *markerp); +extern GLint (* const& glPollAsyncSGIX) (GLuint *markerp); +extern GLuint (* const& glGenAsyncMarkersSGIX) (GLsizei range); +extern void (* const& glDeleteAsyncMarkersSGIX) (GLuint marker, GLsizei range); +extern GLboolean (* const& glIsAsyncMarkerSGIX) (GLuint marker); +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 +enum +{ + GL_ASYNC_HISTOGRAM_SGIX = 0x832C, + GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D, +}; +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 +enum +{ + GL_ASYNC_TEX_IMAGE_SGIX = 0x835C, + GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D, + GL_ASYNC_READ_PIXELS_SGIX = 0x835E, + GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F, + GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360, + GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361, +}; +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 +enum +{ + GL_ALPHA_MIN_SGIX = 0x8320, + GL_ALPHA_MAX_SGIX = 0x8321, +}; +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 +enum +{ + GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183, +}; +#endif + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 +enum +{ + GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170, + GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171, + GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172, + GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173, + GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174, + GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175, + GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176, + GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177, + GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178, + GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D, + GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E, + GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F, +}; +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 +enum +{ + GL_CONVOLUTION_HINT_SGIX = 0x8316, +}; +#endif + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 +enum +{ + GL_DEPTH_COMPONENT16_SGIX = 0x81A5, + GL_DEPTH_COMPONENT24_SGIX = 0x81A6, + GL_DEPTH_COMPONENT32_SGIX = 0x81A7, +}; +#endif + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 +extern void (* const& glFlushRasterSGIX) (); +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 +enum +{ + GL_FOG_OFFSET_SGIX = 0x8198, + GL_FOG_OFFSET_VALUE_SGIX = 0x8199, +}; +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_SGIX_fragment_lighting 1 +enum +{ + GL_FRAGMENT_LIGHTING_SGIX = 0x8400, + GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401, + GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402, + GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403, + GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404, + GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405, + GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406, + GL_LIGHT_ENV_MODE_SGIX = 0x8407, + GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408, + GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409, + GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A, + GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B, + GL_FRAGMENT_LIGHT0_SGIX = 0x840C, + GL_FRAGMENT_LIGHT1_SGIX = 0x840D, + GL_FRAGMENT_LIGHT2_SGIX = 0x840E, + GL_FRAGMENT_LIGHT3_SGIX = 0x840F, + GL_FRAGMENT_LIGHT4_SGIX = 0x8410, + GL_FRAGMENT_LIGHT5_SGIX = 0x8411, + GL_FRAGMENT_LIGHT6_SGIX = 0x8412, + GL_FRAGMENT_LIGHT7_SGIX = 0x8413, +}; +extern void (* const& glFragmentColorMaterialSGIX) (GLenum face, GLenum mode); +extern void (* const& glFragmentLightfSGIX) (GLenum light, GLenum pname, GLfloat param); +extern void (* const& glFragmentLightfvSGIX) (GLenum light, GLenum pname, const GLfloat *params); +extern void (* const& glFragmentLightiSGIX) (GLenum light, GLenum pname, GLint param); +extern void (* const& glFragmentLightivSGIX) (GLenum light, GLenum pname, const GLint *params); +extern void (* const& glFragmentLightModelfSGIX) (GLenum pname, GLfloat param); +extern void (* const& glFragmentLightModelfvSGIX) (GLenum pname, const GLfloat *params); +extern void (* const& glFragmentLightModeliSGIX) (GLenum pname, GLint param); +extern void (* const& glFragmentLightModelivSGIX) (GLenum pname, const GLint *params); +extern void (* const& glFragmentMaterialfSGIX) (GLenum face, GLenum pname, GLfloat param); +extern void (* const& glFragmentMaterialfvSGIX) (GLenum face, GLenum pname, const GLfloat *params); +extern void (* const& glFragmentMaterialiSGIX) (GLenum face, GLenum pname, GLint param); +extern void (* const& glFragmentMaterialivSGIX) (GLenum face, GLenum pname, const GLint *params); +extern void (* const& glGetFragmentLightfvSGIX) (GLenum light, GLenum pname, GLfloat *params); +extern void (* const& glGetFragmentLightivSGIX) (GLenum light, GLenum pname, GLint *params); +extern void (* const& glGetFragmentMaterialfvSGIX) (GLenum face, GLenum pname, GLfloat *params); +extern void (* const& glGetFragmentMaterialivSGIX) (GLenum face, GLenum pname, GLint *params); +extern void (* const& glLightEnviSGIX) (GLenum pname, GLint param); +#endif + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 +enum +{ + GL_FRAMEZOOM_SGIX = 0x818B, + GL_FRAMEZOOM_FACTOR_SGIX = 0x818C, + GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D, +}; +extern void (* const& glFrameZoomSGIX) (GLint factor); +#endif + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 +extern void (* const& glIglooInterfaceSGIX) (GLenum pname, const void *params); +#endif + +#ifndef GL_SGIX_instruments +#define GL_SGIX_instruments 1 +enum +{ + GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180, + GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181, +}; +extern GLint (* const& glGetInstrumentsSGIX) (); +extern void (* const& glInstrumentsBufferSGIX) (GLsizei size, GLint *buffer); +extern GLint (* const& glPollInstrumentsSGIX) (GLint *marker_p); +extern void (* const& glReadInstrumentsSGIX) (GLint marker); +extern void (* const& glStartInstrumentsSGIX) (); +extern void (* const& glStopInstrumentsSGIX) (GLint marker); +#endif + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 +enum +{ + GL_INTERLACE_SGIX = 0x8094, +}; +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 +enum +{ + GL_IR_INSTRUMENT1_SGIX = 0x817F, +}; +#endif + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 +enum +{ + GL_LIST_PRIORITY_SGIX = 0x8182, +}; +extern void (* const& glGetListParameterfvSGIX) (GLuint list, GLenum pname, GLfloat *params); +extern void (* const& glGetListParameterivSGIX) (GLuint list, GLenum pname, GLint *params); +extern void (* const& glListParameterfSGIX) (GLuint list, GLenum pname, GLfloat param); +extern void (* const& glListParameterfvSGIX) (GLuint list, GLenum pname, const GLfloat *params); +extern void (* const& glListParameteriSGIX) (GLuint list, GLenum pname, GLint param); +extern void (* const& glListParameterivSGIX) (GLuint list, GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 +enum +{ + GL_PIXEL_TEX_GEN_SGIX = 0x8139, + GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B, +}; +extern void (* const& glPixelTexGenSGIX) (GLenum mode); +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 +enum +{ + GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E, + GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F, + GL_PIXEL_TILE_WIDTH_SGIX = 0x8140, + GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141, + GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142, + GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143, + GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144, + GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145, +}; +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 +enum +{ + GL_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001, + GL_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002, + GL_GEOMETRY_DEFORMATION_SGIX = 0x8194, + GL_TEXTURE_DEFORMATION_SGIX = 0x8195, + GL_DEFORMATIONS_MASK_SGIX = 0x8196, + GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197, +}; +extern void (* const& glDeformationMap3dSGIX) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +extern void (* const& glDeformationMap3fSGIX) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +extern void (* const& glDeformSGIX) (GLbitfield mask); +extern void (* const& glLoadIdentityDeformationMapSGIX) (GLbitfield mask); +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 +enum +{ + GL_REFERENCE_PLANE_SGIX = 0x817D, + GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E, +}; +extern void (* const& glReferencePlaneSGIX) (const GLdouble *equation); +#endif + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 +enum +{ + GL_PACK_RESAMPLE_SGIX = 0x842E, + GL_UNPACK_RESAMPLE_SGIX = 0x842F, + GL_RESAMPLE_REPLICATE_SGIX = 0x8433, + GL_RESAMPLE_ZERO_FILL_SGIX = 0x8434, + GL_RESAMPLE_DECIMATE_SGIX = 0x8430, +}; +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 +enum +{ + GL_SCALEBIAS_HINT_SGIX = 0x8322, +}; +#endif + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 +enum +{ + GL_TEXTURE_COMPARE_SGIX = 0x819A, + GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B, + GL_TEXTURE_LEQUAL_R_SGIX = 0x819C, + GL_TEXTURE_GEQUAL_R_SGIX = 0x819D, +}; +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 +enum +{ + GL_SHADOW_AMBIENT_SGIX = 0x80BF, +}; +#endif + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 +enum +{ + GL_SPRITE_SGIX = 0x8148, + GL_SPRITE_MODE_SGIX = 0x8149, + GL_SPRITE_AXIS_SGIX = 0x814A, + GL_SPRITE_TRANSLATION_SGIX = 0x814B, + GL_SPRITE_AXIAL_SGIX = 0x814C, + GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D, + GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E, +}; +extern void (* const& glSpriteParameterfSGIX) (GLenum pname, GLfloat param); +extern void (* const& glSpriteParameterfvSGIX) (GLenum pname, const GLfloat *params); +extern void (* const& glSpriteParameteriSGIX) (GLenum pname, GLint param); +extern void (* const& glSpriteParameterivSGIX) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 +enum +{ + GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0, + GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1, + GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2, + GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3, + GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4, +}; +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 +extern void (* const& glTagSampleBufferSGIX) (); +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 +enum +{ + GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE, +}; +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 +enum +{ + GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369, + GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A, + GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B, +}; +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 +enum +{ + GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E, + GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F, + GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190, +}; +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 +enum +{ + GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E, +}; +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 +enum +{ + GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179, + GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A, + GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B, + GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C, +}; +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 +enum +{ + GL_VERTEX_PRECLIP_SGIX = 0x83EE, + GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF, +}; +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 +enum +{ + GL_YCRCB_422_SGIX = 0x81BB, + GL_YCRCB_444_SGIX = 0x81BC, +}; +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 +enum +{ + GL_YCRCB_SGIX = 0x8318, + GL_YCRCBA_SGIX = 0x8319, +}; +#endif + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 +enum +{ + GL_COLOR_MATRIX_SGI = 0x80B1, + GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2, + GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3, + GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4, + GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5, + GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6, + GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7, + GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8, + GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9, + GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA, + GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB, +}; +#endif + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 +enum +{ + GL_COLOR_TABLE_SGI = 0x80D0, + GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1, + GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2, + GL_PROXY_COLOR_TABLE_SGI = 0x80D3, + GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4, + GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5, + GL_COLOR_TABLE_SCALE_SGI = 0x80D6, + GL_COLOR_TABLE_BIAS_SGI = 0x80D7, + GL_COLOR_TABLE_FORMAT_SGI = 0x80D8, + GL_COLOR_TABLE_WIDTH_SGI = 0x80D9, + GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA, + GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB, + GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC, + GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD, + GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE, + GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF, +}; +extern void (* const& glColorTableSGI) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +extern void (* const& glColorTableParameterfvSGI) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glColorTableParameterivSGI) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glCopyColorTableSGI) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void (* const& glGetColorTableSGI) (GLenum target, GLenum format, GLenum type, void *table); +extern void (* const& glGetColorTableParameterfvSGI) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetColorTableParameterivSGI) (GLenum target, GLenum pname, GLint *params); +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 +enum +{ + GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC, + GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD, +}; +#endif + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 +enum +{ + GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5, + GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6, +}; +extern void (* const& glFinishTextureSUNX) (); +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 +enum +{ + GL_WRAP_BORDER_SUN = 0x81D4, +}; +#endif + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 +enum +{ + GL_GLOBAL_ALPHA_SUN = 0x81D9, + GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA, +}; +extern void (* const& glGlobalAlphaFactorbSUN) (GLbyte factor); +extern void (* const& glGlobalAlphaFactorsSUN) (GLshort factor); +extern void (* const& glGlobalAlphaFactoriSUN) (GLint factor); +extern void (* const& glGlobalAlphaFactorfSUN) (GLfloat factor); +extern void (* const& glGlobalAlphaFactordSUN) (GLdouble factor); +extern void (* const& glGlobalAlphaFactorubSUN) (GLubyte factor); +extern void (* const& glGlobalAlphaFactorusSUN) (GLushort factor); +extern void (* const& glGlobalAlphaFactoruiSUN) (GLuint factor); +#endif + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 +enum +{ + GL_QUAD_MESH_SUN = 0x8614, + GL_TRIANGLE_MESH_SUN = 0x8615, +}; +extern void (* const& glDrawMeshArraysSUN) (GLenum mode, GLint first, GLsizei count, GLsizei width); +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 +enum +{ + GL_SLICE_ACCUM_SUN = 0x85CC, +}; +#endif + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 +enum +{ + GL_RESTART_SUN = 0x0001, + GL_REPLACE_MIDDLE_SUN = 0x0002, + GL_REPLACE_OLDEST_SUN = 0x0003, + GL_TRIANGLE_LIST_SUN = 0x81D7, + GL_REPLACEMENT_CODE_SUN = 0x81D8, + GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0, + GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1, + GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2, + GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3, + GL_R1UI_V3F_SUN = 0x85C4, + GL_R1UI_C4UB_V3F_SUN = 0x85C5, + GL_R1UI_C3F_V3F_SUN = 0x85C6, + GL_R1UI_N3F_V3F_SUN = 0x85C7, + GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8, + GL_R1UI_T2F_V3F_SUN = 0x85C9, + GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA, + GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB, +}; +extern void (* const& glReplacementCodeuiSUN) (GLuint code); +extern void (* const& glReplacementCodeusSUN) (GLushort code); +extern void (* const& glReplacementCodeubSUN) (GLubyte code); +extern void (* const& glReplacementCodeuivSUN) (const GLuint *code); +extern void (* const& glReplacementCodeusvSUN) (const GLushort *code); +extern void (* const& glReplacementCodeubvSUN) (const GLubyte *code); +extern void (* const& glReplacementCodePointerSUN) (GLenum type, GLsizei stride, const void **pointer); +#endif + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 +extern void (* const& glColor4ubVertex2fSUN) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +extern void (* const& glColor4ubVertex2fvSUN) (const GLubyte *c, const GLfloat *v); +extern void (* const& glColor4ubVertex3fSUN) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glColor4ubVertex3fvSUN) (const GLubyte *c, const GLfloat *v); +extern void (* const& glColor3fVertex3fSUN) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glColor3fVertex3fvSUN) (const GLfloat *c, const GLfloat *v); +extern void (* const& glNormal3fVertex3fSUN) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glNormal3fVertex3fvSUN) (const GLfloat *n, const GLfloat *v); +extern void (* const& glColor4fNormal3fVertex3fSUN) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glColor4fNormal3fVertex3fvSUN) (const GLfloat *c, const GLfloat *n, const GLfloat *v); +extern void (* const& glTexCoord2fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glTexCoord2fVertex3fvSUN) (const GLfloat *tc, const GLfloat *v); +extern void (* const& glTexCoord4fVertex4fSUN) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glTexCoord4fVertex4fvSUN) (const GLfloat *tc, const GLfloat *v); +extern void (* const& glTexCoord2fColor4ubVertex3fSUN) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glTexCoord2fColor4ubVertex3fvSUN) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +extern void (* const& glTexCoord2fColor3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glTexCoord2fColor3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +extern void (* const& glTexCoord2fNormal3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glTexCoord2fNormal3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +extern void (* const& glTexCoord2fColor4fNormal3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glTexCoord2fColor4fNormal3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +extern void (* const& glTexCoord4fColor4fNormal3fVertex4fSUN) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glTexCoord4fColor4fNormal3fVertex4fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +extern void (* const& glReplacementCodeuiVertex3fSUN) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiVertex3fvSUN) (const GLuint *rc, const GLfloat *v); +extern void (* const& glReplacementCodeuiColor4ubVertex3fSUN) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiColor4ubVertex3fvSUN) (const GLuint *rc, const GLubyte *c, const GLfloat *v); +extern void (* const& glReplacementCodeuiColor3fVertex3fSUN) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiColor3fVertex3fvSUN) (const GLuint *rc, const GLfloat *c, const GLfloat *v); +extern void (* const& glReplacementCodeuiNormal3fVertex3fSUN) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *n, const GLfloat *v); +extern void (* const& glReplacementCodeuiColor4fNormal3fVertex3fSUN) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiColor4fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +extern void (* const& glReplacementCodeuiTexCoord2fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiTexCoord2fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +extern void (* const& glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +extern void (* const& glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#endif + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 +enum +{ + GL_PHONG_WIN = 0x80EA, + GL_PHONG_HINT_WIN = 0x80EB, +}; +#endif + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 +enum +{ + GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC, +}; +#endif + +#ifndef GL_EXT_texture_shadow_lod +#define GL_EXT_texture_shadow_lod 1 +#endif + + +void loadFunctions(); + +} +} diff --git a/modules/juce_opengl/opengl/juce_gles2.cpp b/modules/juce_opengl/opengl/juce_gles2.cpp new file mode 100644 index 0000000000..b142dd111f --- /dev/null +++ b/modules/juce_opengl/opengl/juce_gles2.cpp @@ -0,0 +1,1406 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2020 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 6 End-User License + Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). + + End User License Agreement: www.juce.com/juce-6-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +// This file was generated automatically using data from the opengl-registry +// https://github.com/KhronosGroup/OpenGL-Registry + + +// This file's corresponding header contains a reference to a function pointer +// for each command in the GL spec. The functions from earlier GL versions are +// (pretty much) guaranteed to be available in the platform GL library. For +// these functions, the references will be initialised to point directly at the +// library implementations. This behaviour is somewhat configurable: +// preprocessor defs of the form `JUCE_STATIC_LINK_` will +// ensure that the functions from a particular GL version are linked +// statically. Of course, this may fail to link if the platform doesn't +// implement the requested GL version. Any GL versions that are not explicitly +// requested for static linking, along with all known GL extensions, are loaded +// at runtime using gl::loadFunctions(). Again, these functions can be accessed +// via the references in the header. + +// You should be aware that *any* of the functions declared in the header may +// be nullptr if the implementation does not supply that function. If you +// depend on specific GL features/extensions, it's probably a good idea to +// check each function pointer to ensure that the function was loaded +// successfully. + + +#define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0 \ + X (void , glActiveTexture, (GLenum texture)) \ + X (void , glAttachShader, (GLuint program, GLuint shader)) \ + X (void , glBindAttribLocation, (GLuint program, GLuint index, const GLchar *name)) \ + X (void , glBindBuffer, (GLenum target, GLuint buffer)) \ + X (void , glBindFramebuffer, (GLenum target, GLuint framebuffer)) \ + X (void , glBindRenderbuffer, (GLenum target, GLuint renderbuffer)) \ + X (void , glBindTexture, (GLenum target, GLuint texture)) \ + X (void , glBlendColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ + X (void , glBlendEquation, (GLenum mode)) \ + X (void , glBlendEquationSeparate, (GLenum modeRGB, GLenum modeAlpha)) \ + X (void , glBlendFunc, (GLenum sfactor, GLenum dfactor)) \ + X (void , glBlendFuncSeparate, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)) \ + X (void , glBufferData, (GLenum target, GLsizeiptr size, const void *data, GLenum usage)) \ + X (void , glBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, const void *data)) \ + X (GLenum , glCheckFramebufferStatus, (GLenum target)) \ + X (void , glClear, (GLbitfield mask)) \ + X (void , glClearColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ + X (void , glClearDepthf, (GLfloat d)) \ + X (void , glClearStencil, (GLint s)) \ + X (void , glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) \ + X (void , glCompileShader, (GLuint shader)) \ + X (void , glCompressedTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glCopyTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \ + X (void , glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (GLuint , glCreateProgram, ()) \ + X (GLuint , glCreateShader, (GLenum type)) \ + X (void , glCullFace, (GLenum mode)) \ + X (void , glDeleteBuffers, (GLsizei n, const GLuint *buffers)) \ + X (void , glDeleteFramebuffers, (GLsizei n, const GLuint *framebuffers)) \ + X (void , glDeleteProgram, (GLuint program)) \ + X (void , glDeleteRenderbuffers, (GLsizei n, const GLuint *renderbuffers)) \ + X (void , glDeleteShader, (GLuint shader)) \ + X (void , glDeleteTextures, (GLsizei n, const GLuint *textures)) \ + X (void , glDepthFunc, (GLenum func)) \ + X (void , glDepthMask, (GLboolean flag)) \ + X (void , glDepthRangef, (GLfloat n, GLfloat f)) \ + X (void , glDetachShader, (GLuint program, GLuint shader)) \ + X (void , glDisable, (GLenum cap)) \ + X (void , glDisableVertexAttribArray, (GLuint index)) \ + X (void , glDrawArrays, (GLenum mode, GLint first, GLsizei count)) \ + X (void , glDrawElements, (GLenum mode, GLsizei count, GLenum type, const void *indices)) \ + X (void , glEnable, (GLenum cap)) \ + X (void , glEnableVertexAttribArray, (GLuint index)) \ + X (void , glFinish, ()) \ + X (void , glFlush, ()) \ + X (void , glFramebufferRenderbuffer, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \ + X (void , glFramebufferTexture2D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ + X (void , glFrontFace, (GLenum mode)) \ + X (void , glGenBuffers, (GLsizei n, GLuint *buffers)) \ + X (void , glGenerateMipmap, (GLenum target)) \ + X (void , glGenFramebuffers, (GLsizei n, GLuint *framebuffers)) \ + X (void , glGenRenderbuffers, (GLsizei n, GLuint *renderbuffers)) \ + X (void , glGenTextures, (GLsizei n, GLuint *textures)) \ + X (void , glGetActiveAttrib, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \ + X (void , glGetActiveUniform, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \ + X (void , glGetAttachedShaders, (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders)) \ + X (GLint , glGetAttribLocation, (GLuint program, const GLchar *name)) \ + X (void , glGetBooleanv, (GLenum pname, GLboolean *data)) \ + X (void , glGetBufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (GLenum , glGetError, ()) \ + X (void , glGetFloatv, (GLenum pname, GLfloat *data)) \ + X (void , glGetFramebufferAttachmentParameteriv, (GLenum target, GLenum attachment, GLenum pname, GLint *params)) \ + X (void , glGetIntegerv, (GLenum pname, GLint *data)) \ + X (void , glGetProgramiv, (GLuint program, GLenum pname, GLint *params)) \ + X (void , glGetProgramInfoLog, (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glGetRenderbufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetShaderiv, (GLuint shader, GLenum pname, GLint *params)) \ + X (void , glGetShaderInfoLog, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glGetShaderPrecisionFormat, (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)) \ + X (void , glGetShaderSource, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)) \ + X (const GLubyte *, glGetString, (GLenum name)) \ + X (void , glGetTexParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \ + X (void , glGetTexParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetUniformfv, (GLuint program, GLint location, GLfloat *params)) \ + X (void , glGetUniformiv, (GLuint program, GLint location, GLint *params)) \ + X (GLint , glGetUniformLocation, (GLuint program, const GLchar *name)) \ + X (void , glGetVertexAttribfv, (GLuint index, GLenum pname, GLfloat *params)) \ + X (void , glGetVertexAttribiv, (GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribPointerv, (GLuint index, GLenum pname, void **pointer)) \ + X (void , glHint, (GLenum target, GLenum mode)) \ + X (GLboolean , glIsBuffer, (GLuint buffer)) \ + X (GLboolean , glIsEnabled, (GLenum cap)) \ + X (GLboolean , glIsFramebuffer, (GLuint framebuffer)) \ + X (GLboolean , glIsProgram, (GLuint program)) \ + X (GLboolean , glIsRenderbuffer, (GLuint renderbuffer)) \ + X (GLboolean , glIsShader, (GLuint shader)) \ + X (GLboolean , glIsTexture, (GLuint texture)) \ + X (void , glLineWidth, (GLfloat width)) \ + X (void , glLinkProgram, (GLuint program)) \ + X (void , glPixelStorei, (GLenum pname, GLint param)) \ + X (void , glPolygonOffset, (GLfloat factor, GLfloat units)) \ + X (void , glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)) \ + X (void , glReleaseShaderCompiler, ()) \ + X (void , glRenderbufferStorage, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glSampleCoverage, (GLfloat value, GLboolean invert)) \ + X (void , glScissor, (GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glShaderBinary, (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length)) \ + X (void , glShaderSource, (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length)) \ + X (void , glStencilFunc, (GLenum func, GLint ref, GLuint mask)) \ + X (void , glStencilFuncSeparate, (GLenum face, GLenum func, GLint ref, GLuint mask)) \ + X (void , glStencilMask, (GLuint mask)) \ + X (void , glStencilMaskSeparate, (GLenum face, GLuint mask)) \ + X (void , glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass)) \ + X (void , glStencilOpSeparate, (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)) \ + X (void , glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexParameterf, (GLenum target, GLenum pname, GLfloat param)) \ + X (void , glTexParameterfv, (GLenum target, GLenum pname, const GLfloat *params)) \ + X (void , glTexParameteri, (GLenum target, GLenum pname, GLint param)) \ + X (void , glTexParameteriv, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \ + X (void , glUniform1f, (GLint location, GLfloat v0)) \ + X (void , glUniform1fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform1i, (GLint location, GLint v0)) \ + X (void , glUniform1iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform2f, (GLint location, GLfloat v0, GLfloat v1)) \ + X (void , glUniform2fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform2i, (GLint location, GLint v0, GLint v1)) \ + X (void , glUniform2iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform3f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ + X (void , glUniform3fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform3i, (GLint location, GLint v0, GLint v1, GLint v2)) \ + X (void , glUniform3iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniform4f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ + X (void , glUniform4fv, (GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glUniform4i, (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ + X (void , glUniform4iv, (GLint location, GLsizei count, const GLint *value)) \ + X (void , glUniformMatrix2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUseProgram, (GLuint program)) \ + X (void , glValidateProgram, (GLuint program)) \ + X (void , glVertexAttrib1f, (GLuint index, GLfloat x)) \ + X (void , glVertexAttrib1fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib2f, (GLuint index, GLfloat x, GLfloat y)) \ + X (void , glVertexAttrib2fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib3f, (GLuint index, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glVertexAttrib3fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttrib4f, (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ + X (void , glVertexAttrib4fv, (GLuint index, const GLfloat *v)) \ + X (void , glVertexAttribPointer, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)) \ + X (void , glViewport, (GLint x, GLint y, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0 \ + X (void , glReadBuffer, (GLenum src)) \ + X (void , glDrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)) \ + X (void , glTexImage3D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glCompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glGenQueries, (GLsizei n, GLuint *ids)) \ + X (void , glDeleteQueries, (GLsizei n, const GLuint *ids)) \ + X (GLboolean , glIsQuery, (GLuint id)) \ + X (void , glBeginQuery, (GLenum target, GLuint id)) \ + X (void , glEndQuery, (GLenum target)) \ + X (void , glGetQueryiv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetQueryObjectuiv, (GLuint id, GLenum pname, GLuint *params)) \ + X (GLboolean , glUnmapBuffer, (GLenum target)) \ + X (void , glGetBufferPointerv, (GLenum target, GLenum pname, void **params)) \ + X (void , glDrawBuffers, (GLsizei n, const GLenum *bufs)) \ + X (void , glUniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glBlitFramebuffer, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \ + X (void , glRenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glFramebufferTextureLayer, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)) \ + X (void * , glMapBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \ + X (void , glFlushMappedBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length)) \ + X (void , glBindVertexArray, (GLuint array)) \ + X (void , glDeleteVertexArrays, (GLsizei n, const GLuint *arrays)) \ + X (void , glGenVertexArrays, (GLsizei n, GLuint *arrays)) \ + X (GLboolean , glIsVertexArray, (GLuint array)) \ + X (void , glGetIntegeri_v, (GLenum target, GLuint index, GLint *data)) \ + X (void , glBeginTransformFeedback, (GLenum primitiveMode)) \ + X (void , glEndTransformFeedback, ()) \ + X (void , glBindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glBindBufferBase, (GLenum target, GLuint index, GLuint buffer)) \ + X (void , glTransformFeedbackVaryings, (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)) \ + X (void , glGetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)) \ + X (void , glVertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \ + X (void , glGetVertexAttribIiv, (GLuint index, GLenum pname, GLint *params)) \ + X (void , glGetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint *params)) \ + X (void , glVertexAttribI4i, (GLuint index, GLint x, GLint y, GLint z, GLint w)) \ + X (void , glVertexAttribI4ui, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \ + X (void , glVertexAttribI4iv, (GLuint index, const GLint *v)) \ + X (void , glVertexAttribI4uiv, (GLuint index, const GLuint *v)) \ + X (void , glGetUniformuiv, (GLuint program, GLint location, GLuint *params)) \ + X (GLint , glGetFragDataLocation, (GLuint program, const GLchar *name)) \ + X (void , glUniform1ui, (GLint location, GLuint v0)) \ + X (void , glUniform2ui, (GLint location, GLuint v0, GLuint v1)) \ + X (void , glUniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2)) \ + X (void , glUniform4ui, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ + X (void , glUniform1uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform2uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform3uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glUniform4uiv, (GLint location, GLsizei count, const GLuint *value)) \ + X (void , glClearBufferiv, (GLenum buffer, GLint drawbuffer, const GLint *value)) \ + X (void , glClearBufferuiv, (GLenum buffer, GLint drawbuffer, const GLuint *value)) \ + X (void , glClearBufferfv, (GLenum buffer, GLint drawbuffer, const GLfloat *value)) \ + X (void , glClearBufferfi, (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)) \ + X (const GLubyte *, glGetStringi, (GLenum name, GLuint index)) \ + X (void , glCopyBufferSubData, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \ + X (void , glGetUniformIndices, (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)) \ + X (void , glGetActiveUniformsiv, (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)) \ + X (GLuint , glGetUniformBlockIndex, (GLuint program, const GLchar *uniformBlockName)) \ + X (void , glGetActiveUniformBlockiv, (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)) \ + X (void , glGetActiveUniformBlockName, (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)) \ + X (void , glUniformBlockBinding, (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)) \ + X (void , glDrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount)) \ + X (void , glDrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)) \ + X (GLsync , glFenceSync, (GLenum condition, GLbitfield flags)) \ + X (GLboolean , glIsSync, (GLsync sync)) \ + X (void , glDeleteSync, (GLsync sync)) \ + X (GLenum , glClientWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ + X (void , glWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ + X (void , glGetInteger64v, (GLenum pname, GLint64 *data)) \ + X (void , glGetSynciv, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) \ + X (void , glGetInteger64i_v, (GLenum target, GLuint index, GLint64 *data)) \ + X (void , glGetBufferParameteri64v, (GLenum target, GLenum pname, GLint64 *params)) \ + X (void , glGenSamplers, (GLsizei count, GLuint *samplers)) \ + X (void , glDeleteSamplers, (GLsizei count, const GLuint *samplers)) \ + X (GLboolean , glIsSampler, (GLuint sampler)) \ + X (void , glBindSampler, (GLuint unit, GLuint sampler)) \ + X (void , glSamplerParameteri, (GLuint sampler, GLenum pname, GLint param)) \ + X (void , glSamplerParameteriv, (GLuint sampler, GLenum pname, const GLint *param)) \ + X (void , glSamplerParameterf, (GLuint sampler, GLenum pname, GLfloat param)) \ + X (void , glSamplerParameterfv, (GLuint sampler, GLenum pname, const GLfloat *param)) \ + X (void , glGetSamplerParameteriv, (GLuint sampler, GLenum pname, GLint *params)) \ + X (void , glGetSamplerParameterfv, (GLuint sampler, GLenum pname, GLfloat *params)) \ + X (void , glVertexAttribDivisor, (GLuint index, GLuint divisor)) \ + X (void , glBindTransformFeedback, (GLenum target, GLuint id)) \ + X (void , glDeleteTransformFeedbacks, (GLsizei n, const GLuint *ids)) \ + X (void , glGenTransformFeedbacks, (GLsizei n, GLuint *ids)) \ + X (GLboolean , glIsTransformFeedback, (GLuint id)) \ + X (void , glPauseTransformFeedback, ()) \ + X (void , glResumeTransformFeedback, ()) \ + X (void , glGetProgramBinary, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \ + X (void , glProgramBinary, (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)) \ + X (void , glProgramParameteri, (GLuint program, GLenum pname, GLint value)) \ + X (void , glInvalidateFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments)) \ + X (void , glInvalidateSubFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glTexStorage2D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glTexStorage3D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ + X (void , glGetInternalformativ, (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1 \ + X (void , glDispatchCompute, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \ + X (void , glDispatchComputeIndirect, (GLintptr indirect)) \ + X (void , glDrawArraysIndirect, (GLenum mode, const void *indirect)) \ + X (void , glDrawElementsIndirect, (GLenum mode, GLenum type, const void *indirect)) \ + X (void , glFramebufferParameteri, (GLenum target, GLenum pname, GLint param)) \ + X (void , glGetFramebufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetProgramInterfaceiv, (GLuint program, GLenum programInterface, GLenum pname, GLint *params)) \ + X (GLuint , glGetProgramResourceIndex, (GLuint program, GLenum programInterface, const GLchar *name)) \ + X (void , glGetProgramResourceName, (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)) \ + X (void , glGetProgramResourceiv, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params)) \ + X (GLint , glGetProgramResourceLocation, (GLuint program, GLenum programInterface, const GLchar *name)) \ + X (void , glUseProgramStages, (GLuint pipeline, GLbitfield stages, GLuint program)) \ + X (void , glActiveShaderProgram, (GLuint pipeline, GLuint program)) \ + X (GLuint , glCreateShaderProgramv, (GLenum type, GLsizei count, const GLchar *const*strings)) \ + X (void , glBindProgramPipeline, (GLuint pipeline)) \ + X (void , glDeleteProgramPipelines, (GLsizei n, const GLuint *pipelines)) \ + X (void , glGenProgramPipelines, (GLsizei n, GLuint *pipelines)) \ + X (GLboolean , glIsProgramPipeline, (GLuint pipeline)) \ + X (void , glGetProgramPipelineiv, (GLuint pipeline, GLenum pname, GLint *params)) \ + X (void , glProgramUniform1i, (GLuint program, GLint location, GLint v0)) \ + X (void , glProgramUniform2i, (GLuint program, GLint location, GLint v0, GLint v1)) \ + X (void , glProgramUniform3i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \ + X (void , glProgramUniform4i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ + X (void , glProgramUniform1ui, (GLuint program, GLint location, GLuint v0)) \ + X (void , glProgramUniform2ui, (GLuint program, GLint location, GLuint v0, GLuint v1)) \ + X (void , glProgramUniform3ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \ + X (void , glProgramUniform4ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ + X (void , glProgramUniform1f, (GLuint program, GLint location, GLfloat v0)) \ + X (void , glProgramUniform2f, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \ + X (void , glProgramUniform3f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ + X (void , glProgramUniform4f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ + X (void , glProgramUniform1iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform2iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform3iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform4iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform1uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform2uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform3uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform4uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform1fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform2fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform3fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform4fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glValidateProgramPipeline, (GLuint pipeline)) \ + X (void , glGetProgramPipelineInfoLog, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glBindImageTexture, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \ + X (void , glGetBooleani_v, (GLenum target, GLuint index, GLboolean *data)) \ + X (void , glMemoryBarrier, (GLbitfield barriers)) \ + X (void , glMemoryBarrierByRegion, (GLbitfield barriers)) \ + X (void , glTexStorage2DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ + X (void , glGetMultisamplefv, (GLenum pname, GLuint index, GLfloat *val)) \ + X (void , glSampleMaski, (GLuint maskNumber, GLbitfield mask)) \ + X (void , glGetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint *params)) \ + X (void , glGetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat *params)) \ + X (void , glBindVertexBuffer, (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \ + X (void , glVertexAttribFormat, (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ + X (void , glVertexAttribIFormat, (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ + X (void , glVertexAttribBinding, (GLuint attribindex, GLuint bindingindex)) \ + X (void , glVertexBindingDivisor, (GLuint bindingindex, GLuint divisor)) + +#define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2 \ + X (void , glBlendBarrier, ()) \ + X (void , glCopyImageSubData, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) \ + X (void , glDebugMessageControl, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ + X (void , glDebugMessageInsert, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \ + X (void , glDebugMessageCallback, (GLDEBUGPROC callback, const void *userParam)) \ + X (GLuint , glGetDebugMessageLog, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \ + X (void , glPushDebugGroup, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \ + X (void , glPopDebugGroup, ()) \ + X (void , glObjectLabel, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectLabel, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \ + X (void , glObjectPtrLabel, (const void *ptr, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectPtrLabel, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) \ + X (void , glGetPointerv, (GLenum pname, void **params)) \ + X (void , glEnablei, (GLenum target, GLuint index)) \ + X (void , glDisablei, (GLenum target, GLuint index)) \ + X (void , glBlendEquationi, (GLuint buf, GLenum mode)) \ + X (void , glBlendEquationSeparatei, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ + X (void , glBlendFunci, (GLuint buf, GLenum src, GLenum dst)) \ + X (void , glBlendFuncSeparatei, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ + X (void , glColorMaski, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \ + X (GLboolean , glIsEnabledi, (GLenum target, GLuint index)) \ + X (void , glDrawElementsBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawRangeElementsBaseVertex, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawElementsInstancedBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) \ + X (void , glFramebufferTexture, (GLenum target, GLenum attachment, GLuint texture, GLint level)) \ + X (void , glPrimitiveBoundingBox, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) \ + X (GLenum , glGetGraphicsResetStatus, ()) \ + X (void , glReadnPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ + X (void , glGetnUniformfv, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ + X (void , glGetnUniformiv, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \ + X (void , glGetnUniformuiv, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) \ + X (void , glMinSampleShading, (GLfloat value)) \ + X (void , glPatchParameteri, (GLenum pname, GLint value)) \ + X (void , glTexParameterIiv, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexParameterIuiv, (GLenum target, GLenum pname, const GLuint *params)) \ + X (void , glGetTexParameterIiv, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTexParameterIuiv, (GLenum target, GLenum pname, GLuint *params)) \ + X (void , glSamplerParameterIiv, (GLuint sampler, GLenum pname, const GLint *param)) \ + X (void , glSamplerParameterIuiv, (GLuint sampler, GLenum pname, const GLuint *param)) \ + X (void , glGetSamplerParameterIiv, (GLuint sampler, GLenum pname, GLint *params)) \ + X (void , glGetSamplerParameterIuiv, (GLuint sampler, GLenum pname, GLuint *params)) \ + X (void , glTexBuffer, (GLenum target, GLenum internalformat, GLuint buffer)) \ + X (void , glTexBufferRange, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ + X (void , glTexStorage3DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \ + X (void , glRenderbufferStorageMultisampleAdvancedAMD, (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glNamedRenderbufferStorageMultisampleAdvancedAMD, (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \ + X (void , glGetPerfMonitorGroupsAMD, (GLint *numGroups, GLsizei groupsSize, GLuint *groups)) \ + X (void , glGetPerfMonitorCountersAMD, (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)) \ + X (void , glGetPerfMonitorGroupStringAMD, (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)) \ + X (void , glGetPerfMonitorCounterStringAMD, (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)) \ + X (void , glGetPerfMonitorCounterInfoAMD, (GLuint group, GLuint counter, GLenum pname, void *data)) \ + X (void , glGenPerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \ + X (void , glDeletePerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \ + X (void , glSelectPerfMonitorCountersAMD, (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList)) \ + X (void , glBeginPerfMonitorAMD, (GLuint monitor)) \ + X (void , glEndPerfMonitorAMD, (GLuint monitor)) \ + X (void , glGetPerfMonitorCounterDataAMD, (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)) + +#define JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_blit \ + X (void , glBlitFramebufferANGLE, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) + +#define JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_multisample \ + X (void , glRenderbufferStorageMultisampleANGLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_ANGLE_instanced_arrays \ + X (void , glDrawArraysInstancedANGLE, (GLenum mode, GLint first, GLsizei count, GLsizei primcount)) \ + X (void , glDrawElementsInstancedANGLE, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) \ + X (void , glVertexAttribDivisorANGLE, (GLuint index, GLuint divisor)) + +#define JUCE_GL_FUNCTIONS_GL_ANGLE_translated_shader_source \ + X (void , glGetTranslatedShaderSourceANGLE, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_copy_texture_levels \ + X (void , glCopyTextureLevelsAPPLE, (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount)) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \ + X (void , glRenderbufferStorageMultisampleAPPLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glResolveMultisampleFramebufferAPPLE, ()) + +#define JUCE_GL_FUNCTIONS_GL_APPLE_sync \ + X (GLsync , glFenceSyncAPPLE, (GLenum condition, GLbitfield flags)) \ + X (GLboolean , glIsSyncAPPLE, (GLsync sync)) \ + X (void , glDeleteSyncAPPLE, (GLsync sync)) \ + X (GLenum , glClientWaitSyncAPPLE, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ + X (void , glWaitSyncAPPLE, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ + X (void , glGetInteger64vAPPLE, (GLenum pname, GLint64 *params)) \ + X (void , glGetSyncivAPPLE, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \ + X (void , glEGLImageTargetTexStorageEXT, (GLenum target, GLeglImageOES image, const GLint* attrib_list)) \ + X (void , glEGLImageTargetTextureStorageEXT, (GLuint texture, GLeglImageOES image, const GLint* attrib_list)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_base_instance \ + X (void , glDrawArraysInstancedBaseInstanceEXT, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)) \ + X (void , glDrawElementsInstancedBaseInstanceEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)) \ + X (void , glDrawElementsInstancedBaseVertexBaseInstanceEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \ + X (void , glBindFragDataLocationIndexedEXT, (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name)) \ + X (void , glBindFragDataLocationEXT, (GLuint program, GLuint color, const GLchar *name)) \ + X (GLint , glGetProgramResourceLocationIndexEXT, (GLuint program, GLenum programInterface, const GLchar *name)) \ + X (GLint , glGetFragDataIndexEXT, (GLuint program, const GLchar *name)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \ + X (void , glBlendEquationEXT, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_buffer_storage \ + X (void , glBufferStorageEXT, (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_clear_texture \ + X (void , glClearTexImageEXT, (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)) \ + X (void , glClearTexSubImageEXT, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_clip_control \ + X (void , glClipControlEXT, (GLenum origin, GLenum depth)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_copy_image \ + X (void , glCopyImageSubDataEXT, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_debug_label \ + X (void , glLabelObjectEXT, (GLenum type, GLuint object, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectLabelEXT, (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \ + X (void , glInsertEventMarkerEXT, (GLsizei length, const GLchar *marker)) \ + X (void , glPushGroupMarkerEXT, (GLsizei length, const GLchar *marker)) \ + X (void , glPopGroupMarkerEXT, ()) + +#define JUCE_GL_FUNCTIONS_GL_EXT_discard_framebuffer \ + X (void , glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_disjoint_timer_query \ + X (void , glGenQueriesEXT, (GLsizei n, GLuint *ids)) \ + X (void , glDeleteQueriesEXT, (GLsizei n, const GLuint *ids)) \ + X (GLboolean , glIsQueryEXT, (GLuint id)) \ + X (void , glBeginQueryEXT, (GLenum target, GLuint id)) \ + X (void , glEndQueryEXT, (GLenum target)) \ + X (void , glQueryCounterEXT, (GLuint id, GLenum target)) \ + X (void , glGetQueryivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetQueryObjectivEXT, (GLuint id, GLenum pname, GLint *params)) \ + X (void , glGetQueryObjectuivEXT, (GLuint id, GLenum pname, GLuint *params)) \ + X (void , glGetQueryObjecti64vEXT, (GLuint id, GLenum pname, GLint64 *params)) \ + X (void , glGetQueryObjectui64vEXT, (GLuint id, GLenum pname, GLuint64 *params)) \ + X (void , glGetInteger64vEXT, (GLenum pname, GLint64 *data)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers \ + X (void , glDrawBuffersEXT, (GLsizei n, const GLenum *bufs)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers_indexed \ + X (void , glEnableiEXT, (GLenum target, GLuint index)) \ + X (void , glDisableiEXT, (GLenum target, GLuint index)) \ + X (void , glBlendEquationiEXT, (GLuint buf, GLenum mode)) \ + X (void , glBlendEquationSeparateiEXT, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ + X (void , glBlendFunciEXT, (GLuint buf, GLenum src, GLenum dst)) \ + X (void , glBlendFuncSeparateiEXT, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ + X (void , glColorMaskiEXT, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \ + X (GLboolean , glIsEnablediEXT, (GLenum target, GLuint index)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_elements_base_vertex \ + X (void , glDrawElementsBaseVertexEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawRangeElementsBaseVertexEXT, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawElementsInstancedBaseVertexEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) \ + X (void , glMultiDrawElementsBaseVertexEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \ + X (void , glDrawArraysInstancedEXT, (GLenum mode, GLint start, GLsizei count, GLsizei primcount)) \ + X (void , glDrawElementsInstancedEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \ + X (void , glDrawTransformFeedbackEXT, (GLenum mode, GLuint id)) \ + X (void , glDrawTransformFeedbackInstancedEXT, (GLenum mode, GLuint id, GLsizei instancecount)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \ + X (void , glBufferStorageExternalEXT, (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) \ + X (void , glNamedBufferStorageExternalEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \ + X (void , glFramebufferTextureEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \ + X (void , glVertexAttribDivisorEXT, (GLuint index, GLuint divisor)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \ + X (void * , glMapBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \ + X (void , glFlushMappedBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_memory_object \ + X (void , glGetUnsignedBytevEXT, (GLenum pname, GLubyte *data)) \ + X (void , glGetUnsignedBytei_vEXT, (GLenum target, GLuint index, GLubyte *data)) \ + X (void , glDeleteMemoryObjectsEXT, (GLsizei n, const GLuint *memoryObjects)) \ + X (GLboolean , glIsMemoryObjectEXT, (GLuint memoryObject)) \ + X (void , glCreateMemoryObjectsEXT, (GLsizei n, GLuint *memoryObjects)) \ + X (void , glMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, const GLint *params)) \ + X (void , glGetMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, GLint *params)) \ + X (void , glTexStorageMem2DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem2DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem3DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem3DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glBufferStorageMemEXT, (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem2DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem2DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem3DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem3DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ + X (void , glNamedBufferStorageMemEXT, (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset)) \ + X (void , glTexStorageMem1DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)) \ + X (void , glTextureStorageMem1DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \ + X (void , glImportMemoryFdEXT, (GLuint memory, GLuint64 size, GLenum handleType, GLint fd)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \ + X (void , glImportMemoryWin32HandleEXT, (GLuint memory, GLuint64 size, GLenum handleType, void *handle)) \ + X (void , glImportMemoryWin32NameEXT, (GLuint memory, GLuint64 size, GLenum handleType, const void *name)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \ + X (void , glMultiDrawArraysEXT, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)) \ + X (void , glMultiDrawElementsEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_indirect \ + X (void , glMultiDrawArraysIndirectEXT, (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride)) \ + X (void , glMultiDrawElementsIndirectEXT, (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_multisampled_render_to_texture \ + X (void , glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_multiview_draw_buffers \ + X (void , glReadBufferIndexedEXT, (GLenum src, GLint index)) \ + X (void , glDrawBuffersIndexedEXT, (GLint n, const GLenum *location, const GLint *indices)) \ + X (void , glGetIntegeri_vEXT, (GLenum target, GLuint index, GLint *data)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \ + X (void , glPolygonOffsetClampEXT, (GLfloat factor, GLfloat units, GLfloat clamp)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_primitive_bounding_box \ + X (void , glPrimitiveBoundingBoxEXT, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \ + X (void , glRasterSamplesEXT, (GLuint samples, GLboolean fixedsamplelocations)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_robustness \ + X (GLenum , glGetGraphicsResetStatusEXT, ()) \ + X (void , glReadnPixelsEXT, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ + X (void , glGetnUniformfvEXT, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ + X (void , glGetnUniformivEXT, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_semaphore \ + X (void , glGenSemaphoresEXT, (GLsizei n, GLuint *semaphores)) \ + X (void , glDeleteSemaphoresEXT, (GLsizei n, const GLuint *semaphores)) \ + X (GLboolean , glIsSemaphoreEXT, (GLuint semaphore)) \ + X (void , glSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, const GLuint64 *params)) \ + X (void , glGetSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, GLuint64 *params)) \ + X (void , glWaitSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts)) \ + X (void , glSignalSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \ + X (void , glImportSemaphoreFdEXT, (GLuint semaphore, GLenum handleType, GLint fd)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \ + X (void , glImportSemaphoreWin32HandleEXT, (GLuint semaphore, GLenum handleType, void *handle)) \ + X (void , glImportSemaphoreWin32NameEXT, (GLuint semaphore, GLenum handleType, const void *name)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \ + X (void , glUseShaderProgramEXT, (GLenum type, GLuint program)) \ + X (void , glActiveProgramEXT, (GLuint program)) \ + X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \ + X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \ + X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \ + X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar **strings)) \ + X (void , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \ + X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \ + X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ + X (void , glGetProgramPipelineivEXT, (GLuint pipeline, GLenum pname, GLint *params)) \ + X (GLboolean , glIsProgramPipelineEXT, (GLuint pipeline)) \ + X (void , glProgramParameteriEXT, (GLuint program, GLenum pname, GLint value)) \ + X (void , glProgramUniform1fEXT, (GLuint program, GLint location, GLfloat v0)) \ + X (void , glProgramUniform1fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform1iEXT, (GLuint program, GLint location, GLint v0)) \ + X (void , glProgramUniform1ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform2fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \ + X (void , glProgramUniform2fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform2iEXT, (GLuint program, GLint location, GLint v0, GLint v1)) \ + X (void , glProgramUniform2ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform3fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ + X (void , glProgramUniform3fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform3iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \ + X (void , glProgramUniform3ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniform4fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ + X (void , glProgramUniform4fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ + X (void , glProgramUniform4iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ + X (void , glProgramUniform4ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ + X (void , glProgramUniformMatrix2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUseProgramStagesEXT, (GLuint pipeline, GLbitfield stages, GLuint program)) \ + X (void , glValidateProgramPipelineEXT, (GLuint pipeline)) \ + X (void , glProgramUniform1uiEXT, (GLuint program, GLint location, GLuint v0)) \ + X (void , glProgramUniform2uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1)) \ + X (void , glProgramUniform3uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \ + X (void , glProgramUniform4uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ + X (void , glProgramUniform1uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform2uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform3uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniform4uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ + X (void , glProgramUniformMatrix2x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix2x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix3x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glProgramUniformMatrix4x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \ + X (void , glFramebufferFetchBarrierEXT, ()) + +#define JUCE_GL_FUNCTIONS_GL_EXT_shader_pixel_local_storage2 \ + X (void , glFramebufferPixelLocalStorageSizeEXT, (GLuint target, GLsizei size)) \ + X (GLsizei , glGetFramebufferPixelLocalStorageSizeEXT, (GLuint target)) \ + X (void , glClearPixelLocalStorageuiEXT, (GLsizei offset, GLsizei n, const GLuint *values)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_sparse_texture \ + X (void , glTexPageCommitmentEXT, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_tessellation_shader \ + X (void , glPatchParameteriEXT, (GLenum pname, GLint value)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_border_clamp \ + X (void , glTexParameterIivEXT, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexParameterIuivEXT, (GLenum target, GLenum pname, const GLuint *params)) \ + X (void , glGetTexParameterIivEXT, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTexParameterIuivEXT, (GLenum target, GLenum pname, GLuint *params)) \ + X (void , glSamplerParameterIivEXT, (GLuint sampler, GLenum pname, const GLint *param)) \ + X (void , glSamplerParameterIuivEXT, (GLuint sampler, GLenum pname, const GLuint *param)) \ + X (void , glGetSamplerParameterIivEXT, (GLuint sampler, GLenum pname, GLint *params)) \ + X (void , glGetSamplerParameterIuivEXT, (GLuint sampler, GLenum pname, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \ + X (void , glTexBufferEXT, (GLenum target, GLenum internalformat, GLuint buffer)) \ + X (void , glTexBufferRangeEXT, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \ + X (void , glTexStorage1DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \ + X (void , glTexStorage2DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glTexStorage3DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ + X (void , glTextureStorage1DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \ + X (void , glTextureStorage2DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glTextureStorage3DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_texture_view \ + X (void , glTextureViewEXT, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)) + +#define JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \ + X (void , glCreateSemaphoresNV, (GLsizei n, GLuint *semaphores)) \ + X (void , glSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, const GLint *params)) \ + X (void , glGetSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \ + X (GLboolean , glAcquireKeyedMutexWin32EXT, (GLuint memory, GLuint64 key, GLuint timeout)) \ + X (GLboolean , glReleaseKeyedMutexWin32EXT, (GLuint memory, GLuint64 key)) + +#define JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \ + X (void , glWindowRectanglesEXT, (GLenum mode, GLsizei count, const GLint *box)) + +#define JUCE_GL_FUNCTIONS_GL_IMG_bindless_texture \ + X (GLuint64 , glGetTextureHandleIMG, (GLuint texture)) \ + X (GLuint64 , glGetTextureSamplerHandleIMG, (GLuint texture, GLuint sampler)) \ + X (void , glUniformHandleui64IMG, (GLint location, GLuint64 value)) \ + X (void , glUniformHandleui64vIMG, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glProgramUniformHandleui64IMG, (GLuint program, GLint location, GLuint64 value)) \ + X (void , glProgramUniformHandleui64vIMG, (GLuint program, GLint location, GLsizei count, const GLuint64 *values)) + +#define JUCE_GL_FUNCTIONS_GL_IMG_framebuffer_downsample \ + X (void , glFramebufferTexture2DDownsampleIMG, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale)) \ + X (void , glFramebufferTextureLayerDownsampleIMG, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale)) + +#define JUCE_GL_FUNCTIONS_GL_IMG_multisampled_render_to_texture \ + X (void , glRenderbufferStorageMultisampleIMG, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ + X (void , glFramebufferTexture2DMultisampleIMG, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)) + +#define JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \ + X (void , glApplyFramebufferAttachmentCMAAINTEL, ()) + +#define JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \ + X (void , glBeginPerfQueryINTEL, (GLuint queryHandle)) \ + X (void , glCreatePerfQueryINTEL, (GLuint queryId, GLuint *queryHandle)) \ + X (void , glDeletePerfQueryINTEL, (GLuint queryHandle)) \ + X (void , glEndPerfQueryINTEL, (GLuint queryHandle)) \ + X (void , glGetFirstPerfQueryIdINTEL, (GLuint *queryId)) \ + X (void , glGetNextPerfQueryIdINTEL, (GLuint queryId, GLuint *nextQueryId)) \ + X (void , glGetPerfCounterInfoINTEL, (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue)) \ + X (void , glGetPerfQueryDataINTEL, (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten)) \ + X (void , glGetPerfQueryIdByNameINTEL, (GLchar *queryName, GLuint *queryId)) \ + X (void , glGetPerfQueryInfoINTEL, (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask)) + +#define JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \ + X (void , glBlendBarrierKHR, ()) + +#define JUCE_GL_FUNCTIONS_GL_KHR_debug \ + X (void , glDebugMessageControlKHR, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ + X (void , glDebugMessageInsertKHR, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \ + X (void , glDebugMessageCallbackKHR, (GLDEBUGPROCKHR callback, const void *userParam)) \ + X (GLuint , glGetDebugMessageLogKHR, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \ + X (void , glPushDebugGroupKHR, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \ + X (void , glPopDebugGroupKHR, ()) \ + X (void , glObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \ + X (void , glObjectPtrLabelKHR, (const void *ptr, GLsizei length, const GLchar *label)) \ + X (void , glGetObjectPtrLabelKHR, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) \ + X (void , glGetPointervKHR, (GLenum pname, void **params)) + +#define JUCE_GL_FUNCTIONS_GL_KHR_robustness \ + X (GLenum , glGetGraphicsResetStatusKHR, ()) \ + X (void , glReadnPixelsKHR, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ + X (void , glGetnUniformfvKHR, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ + X (void , glGetnUniformivKHR, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \ + X (void , glGetnUniformuivKHR, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \ + X (void , glMaxShaderCompilerThreadsKHR, (GLuint count)) + +#define JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \ + X (void , glFramebufferParameteriMESA, (GLenum target, GLenum pname, GLint param)) \ + X (void , glGetFramebufferParameterivMESA, (GLenum target, GLenum pname, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \ + X (GLuint64 , glGetTextureHandleNV, (GLuint texture)) \ + X (GLuint64 , glGetTextureSamplerHandleNV, (GLuint texture, GLuint sampler)) \ + X (void , glMakeTextureHandleResidentNV, (GLuint64 handle)) \ + X (void , glMakeTextureHandleNonResidentNV, (GLuint64 handle)) \ + X (GLuint64 , glGetImageHandleNV, (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format)) \ + X (void , glMakeImageHandleResidentNV, (GLuint64 handle, GLenum access)) \ + X (void , glMakeImageHandleNonResidentNV, (GLuint64 handle)) \ + X (void , glUniformHandleui64NV, (GLint location, GLuint64 value)) \ + X (void , glUniformHandleui64vNV, (GLint location, GLsizei count, const GLuint64 *value)) \ + X (void , glProgramUniformHandleui64NV, (GLuint program, GLint location, GLuint64 value)) \ + X (void , glProgramUniformHandleui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64 *values)) \ + X (GLboolean , glIsTextureHandleResidentNV, (GLuint64 handle)) \ + X (GLboolean , glIsImageHandleResidentNV, (GLuint64 handle)) + +#define JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \ + X (void , glBlendParameteriNV, (GLenum pname, GLint value)) \ + X (void , glBlendBarrierNV, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \ + X (void , glViewportPositionWScaleNV, (GLuint index, GLfloat xcoeff, GLfloat ycoeff)) + +#define JUCE_GL_FUNCTIONS_GL_NV_conditional_render \ + X (void , glBeginConditionalRenderNV, (GLuint id, GLenum mode)) \ + X (void , glEndConditionalRenderNV, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \ + X (void , glSubpixelPrecisionBiasNV, (GLuint xbits, GLuint ybits)) + +#define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \ + X (void , glConservativeRasterParameteriNV, (GLenum pname, GLint param)) + +#define JUCE_GL_FUNCTIONS_GL_NV_copy_buffer \ + X (void , glCopyBufferSubDataNV, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) + +#define JUCE_GL_FUNCTIONS_GL_NV_coverage_sample \ + X (void , glCoverageMaskNV, (GLboolean mask)) \ + X (void , glCoverageOperationNV, (GLenum operation)) + +#define JUCE_GL_FUNCTIONS_GL_NV_draw_buffers \ + X (void , glDrawBuffersNV, (GLsizei n, const GLenum *bufs)) + +#define JUCE_GL_FUNCTIONS_GL_NV_draw_instanced \ + X (void , glDrawArraysInstancedNV, (GLenum mode, GLint first, GLsizei count, GLsizei primcount)) \ + X (void , glDrawElementsInstancedNV, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) + +#define JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \ + X (void , glDrawVkImageNV, (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1)) \ + X (GLVULKANPROCNV, glGetVkProcAddrNV, (const GLchar *name)) \ + X (void , glWaitVkSemaphoreNV, (GLuint64 vkSemaphore)) \ + X (void , glSignalVkSemaphoreNV, (GLuint64 vkSemaphore)) \ + X (void , glSignalVkFenceNV, (GLuint64 vkFence)) + +#define JUCE_GL_FUNCTIONS_GL_NV_fence \ + X (void , glDeleteFencesNV, (GLsizei n, const GLuint *fences)) \ + X (void , glGenFencesNV, (GLsizei n, GLuint *fences)) \ + X (GLboolean , glIsFenceNV, (GLuint fence)) \ + X (GLboolean , glTestFenceNV, (GLuint fence)) \ + X (void , glGetFenceivNV, (GLuint fence, GLenum pname, GLint *params)) \ + X (void , glFinishFenceNV, (GLuint fence)) \ + X (void , glSetFenceNV, (GLuint fence, GLenum condition)) + +#define JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \ + X (void , glFragmentCoverageColorNV, (GLuint color)) + +#define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_blit \ + X (void , glBlitFramebufferNV, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) + +#define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \ + X (void , glCoverageModulationTableNV, (GLsizei n, const GLfloat *v)) \ + X (void , glGetCoverageModulationTableNV, (GLsizei bufSize, GLfloat *v)) \ + X (void , glCoverageModulationNV, (GLenum components)) + +#define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample \ + X (void , glRenderbufferStorageMultisampleNV, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) + +#define JUCE_GL_FUNCTIONS_GL_NV_gpu_shader5 \ + X (void , glUniform1i64NV, (GLint location, GLint64EXT x)) \ + X (void , glUniform2i64NV, (GLint location, GLint64EXT x, GLint64EXT y)) \ + X (void , glUniform3i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \ + X (void , glUniform4i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \ + X (void , glUniform1i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform2i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform3i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform4i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glUniform1ui64NV, (GLint location, GLuint64EXT x)) \ + X (void , glUniform2ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y)) \ + X (void , glUniform3ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \ + X (void , glUniform4ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \ + X (void , glUniform1ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glUniform2ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glUniform3ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glUniform4ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glGetUniformi64vNV, (GLuint program, GLint location, GLint64EXT *params)) \ + X (void , glProgramUniform1i64NV, (GLuint program, GLint location, GLint64EXT x)) \ + X (void , glProgramUniform2i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y)) \ + X (void , glProgramUniform3i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \ + X (void , glProgramUniform4i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \ + X (void , glProgramUniform1i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform2i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform3i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform4i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ + X (void , glProgramUniform1ui64NV, (GLuint program, GLint location, GLuint64EXT x)) \ + X (void , glProgramUniform2ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y)) \ + X (void , glProgramUniform3ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \ + X (void , glProgramUniform4ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \ + X (void , glProgramUniform1ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glProgramUniform2ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glProgramUniform3ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ + X (void , glProgramUniform4ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) + +#define JUCE_GL_FUNCTIONS_GL_NV_instanced_arrays \ + X (void , glVertexAttribDivisorNV, (GLuint index, GLuint divisor)) + +#define JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \ + X (void , glGetInternalformatSampleivNV, (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params)) + +#define JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \ + X (void , glGetMemoryObjectDetachedResourcesuivNV, (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params)) \ + X (void , glResetMemoryObjectParameterNV, (GLuint memory, GLenum pname)) \ + X (void , glTexAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \ + X (void , glBufferAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \ + X (void , glTextureAttachMemoryNV, (GLuint texture, GLuint memory, GLuint64 offset)) \ + X (void , glNamedBufferAttachMemoryNV, (GLuint buffer, GLuint memory, GLuint64 offset)) + +#define JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \ + X (void , glBufferPageCommitmentMemNV, (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \ + X (void , glTexPageCommitmentMemNV, (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)) \ + X (void , glNamedBufferPageCommitmentMemNV, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \ + X (void , glTexturePageCommitmentMemNV, (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)) + +#define JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \ + X (void , glDrawMeshTasksNV, (GLuint first, GLuint count)) \ + X (void , glDrawMeshTasksIndirectNV, (GLintptr indirect)) \ + X (void , glMultiDrawMeshTasksIndirectNV, (GLintptr indirect, GLsizei drawcount, GLsizei stride)) \ + X (void , glMultiDrawMeshTasksIndirectCountNV, (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)) + +#define JUCE_GL_FUNCTIONS_GL_NV_non_square_matrices \ + X (void , glUniformMatrix2x3fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3x2fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix2x4fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4x2fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix3x4fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ + X (void , glUniformMatrix4x3fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) + +#define JUCE_GL_FUNCTIONS_GL_NV_path_rendering \ + X (GLuint , glGenPathsNV, (GLsizei range)) \ + X (void , glDeletePathsNV, (GLuint path, GLsizei range)) \ + X (GLboolean , glIsPathNV, (GLuint path)) \ + X (void , glPathCommandsNV, (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathCoordsNV, (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathSubCommandsNV, (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathSubCoordsNV, (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords)) \ + X (void , glPathStringNV, (GLuint path, GLenum format, GLsizei length, const void *pathString)) \ + X (void , glPathGlyphsNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (void , glPathGlyphRangeNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (void , glWeightPathsNV, (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights)) \ + X (void , glCopyPathNV, (GLuint resultPath, GLuint srcPath)) \ + X (void , glInterpolatePathsNV, (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight)) \ + X (void , glTransformPathNV, (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glPathParameterivNV, (GLuint path, GLenum pname, const GLint *value)) \ + X (void , glPathParameteriNV, (GLuint path, GLenum pname, GLint value)) \ + X (void , glPathParameterfvNV, (GLuint path, GLenum pname, const GLfloat *value)) \ + X (void , glPathParameterfNV, (GLuint path, GLenum pname, GLfloat value)) \ + X (void , glPathDashArrayNV, (GLuint path, GLsizei dashCount, const GLfloat *dashArray)) \ + X (void , glPathStencilFuncNV, (GLenum func, GLint ref, GLuint mask)) \ + X (void , glPathStencilDepthOffsetNV, (GLfloat factor, GLfloat units)) \ + X (void , glStencilFillPathNV, (GLuint path, GLenum fillMode, GLuint mask)) \ + X (void , glStencilStrokePathNV, (GLuint path, GLint reference, GLuint mask)) \ + X (void , glStencilFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glStencilStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glPathCoverDepthFuncNV, (GLenum func)) \ + X (void , glCoverFillPathNV, (GLuint path, GLenum coverMode)) \ + X (void , glCoverStrokePathNV, (GLuint path, GLenum coverMode)) \ + X (void , glCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glGetPathParameterivNV, (GLuint path, GLenum pname, GLint *value)) \ + X (void , glGetPathParameterfvNV, (GLuint path, GLenum pname, GLfloat *value)) \ + X (void , glGetPathCommandsNV, (GLuint path, GLubyte *commands)) \ + X (void , glGetPathCoordsNV, (GLuint path, GLfloat *coords)) \ + X (void , glGetPathDashArrayNV, (GLuint path, GLfloat *dashArray)) \ + X (void , glGetPathMetricsNV, (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics)) \ + X (void , glGetPathMetricRangeNV, (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics)) \ + X (void , glGetPathSpacingNV, (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing)) \ + X (GLboolean , glIsPointInFillPathNV, (GLuint path, GLuint mask, GLfloat x, GLfloat y)) \ + X (GLboolean , glIsPointInStrokePathNV, (GLuint path, GLfloat x, GLfloat y)) \ + X (GLfloat , glGetPathLengthNV, (GLuint path, GLsizei startSegment, GLsizei numSegments)) \ + X (GLboolean , glPointAlongPathNV, (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY)) \ + X (void , glMatrixLoad3x2fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixLoad3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixLoadTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixMult3x2fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixMult3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glMatrixMultTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ + X (void , glStencilThenCoverFillPathNV, (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode)) \ + X (void , glStencilThenCoverStrokePathNV, (GLuint path, GLint reference, GLuint mask, GLenum coverMode)) \ + X (void , glStencilThenCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (void , glStencilThenCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ + X (GLenum , glPathGlyphIndexRangeNV, (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount)) \ + X (GLenum , glPathGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (GLenum , glPathMemoryGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ + X (void , glProgramPathFragmentInputGenNV, (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs)) \ + X (void , glGetProgramResourcefvNV, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params)) \ + X (void , glPathColorGenNV, (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs)) \ + X (void , glPathTexGenNV, (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs)) \ + X (void , glPathFogGenNV, (GLenum genMode)) \ + X (void , glGetPathColorGenivNV, (GLenum color, GLenum pname, GLint *value)) \ + X (void , glGetPathColorGenfvNV, (GLenum color, GLenum pname, GLfloat *value)) \ + X (void , glGetPathTexGenivNV, (GLenum texCoordSet, GLenum pname, GLint *value)) \ + X (void , glGetPathTexGenfvNV, (GLenum texCoordSet, GLenum pname, GLfloat *value)) \ + X (void , glMatrixFrustumEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ + X (void , glMatrixLoadIdentityEXT, (GLenum mode)) \ + X (void , glMatrixLoadTransposefEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixLoadTransposedEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glMatrixLoadfEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixLoaddEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glMatrixMultTransposefEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixMultTransposedEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glMatrixMultfEXT, (GLenum mode, const GLfloat *m)) \ + X (void , glMatrixMultdEXT, (GLenum mode, const GLdouble *m)) \ + X (void , glMatrixOrthoEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ + X (void , glMatrixPopEXT, (GLenum mode)) \ + X (void , glMatrixPushEXT, (GLenum mode)) \ + X (void , glMatrixRotatefEXT, (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glMatrixRotatedEXT, (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glMatrixScalefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glMatrixScaledEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z)) \ + X (void , glMatrixTranslatefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \ + X (void , glMatrixTranslatedEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z)) + +#define JUCE_GL_FUNCTIONS_GL_NV_polygon_mode \ + X (void , glPolygonModeNV, (GLenum face, GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_NV_read_buffer \ + X (void , glReadBufferNV, (GLenum mode)) + +#define JUCE_GL_FUNCTIONS_GL_NV_sample_locations \ + X (void , glFramebufferSampleLocationsfvNV, (GLenum target, GLuint start, GLsizei count, const GLfloat *v)) \ + X (void , glNamedFramebufferSampleLocationsfvNV, (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v)) \ + X (void , glResolveDepthValuesNV, ()) + +#define JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \ + X (void , glScissorExclusiveNV, (GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glScissorExclusiveArrayvNV, (GLuint first, GLsizei count, const GLint *v)) + +#define JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \ + X (void , glBindShadingRateImageNV, (GLuint texture)) \ + X (void , glGetShadingRateImagePaletteNV, (GLuint viewport, GLuint entry, GLenum *rate)) \ + X (void , glGetShadingRateSampleLocationivNV, (GLenum rate, GLuint samples, GLuint index, GLint *location)) \ + X (void , glShadingRateImageBarrierNV, (GLboolean synchronize)) \ + X (void , glShadingRateImagePaletteNV, (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates)) \ + X (void , glShadingRateSampleOrderNV, (GLenum order)) \ + X (void , glShadingRateSampleOrderCustomNV, (GLenum rate, GLuint samples, const GLint *locations)) + +#define JUCE_GL_FUNCTIONS_GL_NV_viewport_array \ + X (void , glViewportArrayvNV, (GLuint first, GLsizei count, const GLfloat *v)) \ + X (void , glViewportIndexedfNV, (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)) \ + X (void , glViewportIndexedfvNV, (GLuint index, const GLfloat *v)) \ + X (void , glScissorArrayvNV, (GLuint first, GLsizei count, const GLint *v)) \ + X (void , glScissorIndexedNV, (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)) \ + X (void , glScissorIndexedvNV, (GLuint index, const GLint *v)) \ + X (void , glDepthRangeArrayfvNV, (GLuint first, GLsizei count, const GLfloat *v)) \ + X (void , glDepthRangeIndexedfNV, (GLuint index, GLfloat n, GLfloat f)) \ + X (void , glGetFloati_vNV, (GLenum target, GLuint index, GLfloat *data)) \ + X (void , glEnableiNV, (GLenum target, GLuint index)) \ + X (void , glDisableiNV, (GLenum target, GLuint index)) \ + X (GLboolean , glIsEnablediNV, (GLenum target, GLuint index)) + +#define JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \ + X (void , glViewportSwizzleNV, (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew)) + +#define JUCE_GL_FUNCTIONS_GL_OES_EGL_image \ + X (void , glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image)) \ + X (void , glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image)) + +#define JUCE_GL_FUNCTIONS_GL_OES_copy_image \ + X (void , glCopyImageSubDataOES, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) + +#define JUCE_GL_FUNCTIONS_GL_OES_draw_buffers_indexed \ + X (void , glEnableiOES, (GLenum target, GLuint index)) \ + X (void , glDisableiOES, (GLenum target, GLuint index)) \ + X (void , glBlendEquationiOES, (GLuint buf, GLenum mode)) \ + X (void , glBlendEquationSeparateiOES, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ + X (void , glBlendFunciOES, (GLuint buf, GLenum src, GLenum dst)) \ + X (void , glBlendFuncSeparateiOES, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ + X (void , glColorMaskiOES, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \ + X (GLboolean , glIsEnablediOES, (GLenum target, GLuint index)) + +#define JUCE_GL_FUNCTIONS_GL_OES_draw_elements_base_vertex \ + X (void , glDrawElementsBaseVertexOES, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawRangeElementsBaseVertexOES, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ + X (void , glDrawElementsInstancedBaseVertexOES, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) + +#define JUCE_GL_FUNCTIONS_GL_OES_geometry_shader \ + X (void , glFramebufferTextureOES, (GLenum target, GLenum attachment, GLuint texture, GLint level)) + +#define JUCE_GL_FUNCTIONS_GL_OES_get_program_binary \ + X (void , glGetProgramBinaryOES, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \ + X (void , glProgramBinaryOES, (GLuint program, GLenum binaryFormat, const void *binary, GLint length)) + +#define JUCE_GL_FUNCTIONS_GL_OES_mapbuffer \ + X (void * , glMapBufferOES, (GLenum target, GLenum access)) \ + X (GLboolean , glUnmapBufferOES, (GLenum target)) \ + X (void , glGetBufferPointervOES, (GLenum target, GLenum pname, void **params)) + +#define JUCE_GL_FUNCTIONS_GL_OES_primitive_bounding_box \ + X (void , glPrimitiveBoundingBoxOES, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) + +#define JUCE_GL_FUNCTIONS_GL_OES_sample_shading \ + X (void , glMinSampleShadingOES, (GLfloat value)) + +#define JUCE_GL_FUNCTIONS_GL_OES_tessellation_shader \ + X (void , glPatchParameteriOES, (GLenum pname, GLint value)) + +#define JUCE_GL_FUNCTIONS_GL_OES_texture_3D \ + X (void , glTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ + X (void , glTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ + X (void , glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ + X (void , glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \ + X (void , glCompressedTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \ + X (void , glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)) + +#define JUCE_GL_FUNCTIONS_GL_OES_texture_border_clamp \ + X (void , glTexParameterIivOES, (GLenum target, GLenum pname, const GLint *params)) \ + X (void , glTexParameterIuivOES, (GLenum target, GLenum pname, const GLuint *params)) \ + X (void , glGetTexParameterIivOES, (GLenum target, GLenum pname, GLint *params)) \ + X (void , glGetTexParameterIuivOES, (GLenum target, GLenum pname, GLuint *params)) \ + X (void , glSamplerParameterIivOES, (GLuint sampler, GLenum pname, const GLint *param)) \ + X (void , glSamplerParameterIuivOES, (GLuint sampler, GLenum pname, const GLuint *param)) \ + X (void , glGetSamplerParameterIivOES, (GLuint sampler, GLenum pname, GLint *params)) \ + X (void , glGetSamplerParameterIuivOES, (GLuint sampler, GLenum pname, GLuint *params)) + +#define JUCE_GL_FUNCTIONS_GL_OES_texture_buffer \ + X (void , glTexBufferOES, (GLenum target, GLenum internalformat, GLuint buffer)) \ + X (void , glTexBufferRangeOES, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) + +#define JUCE_GL_FUNCTIONS_GL_OES_texture_storage_multisample_2d_array \ + X (void , glTexStorage3DMultisampleOES, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) + +#define JUCE_GL_FUNCTIONS_GL_OES_texture_view \ + X (void , glTextureViewOES, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)) + +#define JUCE_GL_FUNCTIONS_GL_OES_vertex_array_object \ + X (void , glBindVertexArrayOES, (GLuint array)) \ + X (void , glDeleteVertexArraysOES, (GLsizei n, const GLuint *arrays)) \ + X (void , glGenVertexArraysOES, (GLsizei n, GLuint *arrays)) \ + X (GLboolean , glIsVertexArrayOES, (GLuint array)) + +#define JUCE_GL_FUNCTIONS_GL_OES_viewport_array \ + X (void , glViewportArrayvOES, (GLuint first, GLsizei count, const GLfloat *v)) \ + X (void , glViewportIndexedfOES, (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)) \ + X (void , glViewportIndexedfvOES, (GLuint index, const GLfloat *v)) \ + X (void , glScissorArrayvOES, (GLuint first, GLsizei count, const GLint *v)) \ + X (void , glScissorIndexedOES, (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)) \ + X (void , glScissorIndexedvOES, (GLuint index, const GLint *v)) \ + X (void , glDepthRangeArrayfvOES, (GLuint first, GLsizei count, const GLfloat *v)) \ + X (void , glDepthRangeIndexedfOES, (GLuint index, GLfloat n, GLfloat f)) \ + X (void , glGetFloati_vOES, (GLenum target, GLuint index, GLfloat *data)) + +#define JUCE_GL_FUNCTIONS_GL_OVR_multiview \ + X (void , glFramebufferTextureMultiviewOVR, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)) + +#define JUCE_GL_FUNCTIONS_GL_OVR_multiview_multisampled_render_to_texture \ + X (void , glFramebufferTextureMultisampleMultiviewOVR, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_alpha_test \ + X (void , glAlphaFuncQCOM, (GLenum func, GLclampf ref)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_driver_control \ + X (void , glGetDriverControlsQCOM, (GLint *num, GLsizei size, GLuint *driverControls)) \ + X (void , glGetDriverControlStringQCOM, (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)) \ + X (void , glEnableDriverControlQCOM, (GLuint driverControl)) \ + X (void , glDisableDriverControlQCOM, (GLuint driverControl)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_extended_get \ + X (void , glExtGetTexturesQCOM, (GLuint *textures, GLint maxTextures, GLint *numTextures)) \ + X (void , glExtGetBuffersQCOM, (GLuint *buffers, GLint maxBuffers, GLint *numBuffers)) \ + X (void , glExtGetRenderbuffersQCOM, (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)) \ + X (void , glExtGetFramebuffersQCOM, (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)) \ + X (void , glExtGetTexLevelParameterivQCOM, (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)) \ + X (void , glExtTexObjectStateOverrideiQCOM, (GLenum target, GLenum pname, GLint param)) \ + X (void , glExtGetTexSubImageQCOM, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels)) \ + X (void , glExtGetBufferPointervQCOM, (GLenum target, void **params)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_extended_get2 \ + X (void , glExtGetShadersQCOM, (GLuint *shaders, GLint maxShaders, GLint *numShaders)) \ + X (void , glExtGetProgramsQCOM, (GLuint *programs, GLint maxPrograms, GLint *numPrograms)) \ + X (GLboolean , glExtIsProgramBinaryQCOM, (GLuint program)) \ + X (void , glExtGetProgramBinarySourceQCOM, (GLuint program, GLenum shadertype, GLchar *source, GLint *length)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_framebuffer_foveated \ + X (void , glFramebufferFoveationConfigQCOM, (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures)) \ + X (void , glFramebufferFoveationParametersQCOM, (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_motion_estimation \ + X (void , glTexEstimateMotionQCOM, (GLuint ref, GLuint target, GLuint output)) \ + X (void , glTexEstimateMotionRegionsQCOM, (GLuint ref, GLuint target, GLuint output, GLuint mask)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_frame_extrapolation \ + X (void , glExtrapolateTex2DQCOM, (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_texture_foveated \ + X (void , glTextureFoveationParametersQCOM, (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_shader_framebuffer_fetch_noncoherent \ + X (void , glFramebufferFetchBarrierQCOM, ()) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_shading_rate \ + X (void , glShadingRateQCOM, (GLenum rate)) + +#define JUCE_GL_FUNCTIONS_GL_QCOM_tiled_rendering \ + X (void , glStartTilingQCOM, (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)) \ + X (void , glEndTilingQCOM, (GLbitfield preserveMask)) + + +#if JUCE_STATIC_LINK_GL_ES_VERSION_2_0 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0 +#endif + +#if JUCE_STATIC_LINK_GL_ES_VERSION_3_0 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0 +#endif + +#if JUCE_STATIC_LINK_GL_ES_VERSION_3_1 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1 +#endif + +#if JUCE_STATIC_LINK_GL_ES_VERSION_3_2 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2 + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC +#else + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC + #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2 +#endif + + +#define JUCE_STATIC_GL_FUNCTIONS \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC + +#define JUCE_DYNAMIC_GL_FUNCTIONS \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC \ + JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \ + JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \ + JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_blit \ + JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_multisample \ + JUCE_GL_FUNCTIONS_GL_ANGLE_instanced_arrays \ + JUCE_GL_FUNCTIONS_GL_ANGLE_translated_shader_source \ + JUCE_GL_FUNCTIONS_GL_APPLE_copy_texture_levels \ + JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \ + JUCE_GL_FUNCTIONS_GL_APPLE_sync \ + JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \ + JUCE_GL_FUNCTIONS_GL_EXT_base_instance \ + JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \ + JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \ + JUCE_GL_FUNCTIONS_GL_EXT_buffer_storage \ + JUCE_GL_FUNCTIONS_GL_EXT_clear_texture \ + JUCE_GL_FUNCTIONS_GL_EXT_clip_control \ + JUCE_GL_FUNCTIONS_GL_EXT_copy_image \ + JUCE_GL_FUNCTIONS_GL_EXT_debug_label \ + JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \ + JUCE_GL_FUNCTIONS_GL_EXT_discard_framebuffer \ + JUCE_GL_FUNCTIONS_GL_EXT_disjoint_timer_query \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers_indexed \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_elements_base_vertex \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \ + JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \ + JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \ + JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \ + JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \ + JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \ + JUCE_GL_FUNCTIONS_GL_EXT_memory_object \ + JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \ + JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \ + JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \ + JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_indirect \ + JUCE_GL_FUNCTIONS_GL_EXT_multisampled_render_to_texture \ + JUCE_GL_FUNCTIONS_GL_EXT_multiview_draw_buffers \ + JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \ + JUCE_GL_FUNCTIONS_GL_EXT_primitive_bounding_box \ + JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \ + JUCE_GL_FUNCTIONS_GL_EXT_robustness \ + JUCE_GL_FUNCTIONS_GL_EXT_semaphore \ + JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \ + JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \ + JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \ + JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \ + JUCE_GL_FUNCTIONS_GL_EXT_shader_pixel_local_storage2 \ + JUCE_GL_FUNCTIONS_GL_EXT_sparse_texture \ + JUCE_GL_FUNCTIONS_GL_EXT_tessellation_shader \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_border_clamp \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \ + JUCE_GL_FUNCTIONS_GL_EXT_texture_view \ + JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \ + JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \ + JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \ + JUCE_GL_FUNCTIONS_GL_IMG_bindless_texture \ + JUCE_GL_FUNCTIONS_GL_IMG_framebuffer_downsample \ + JUCE_GL_FUNCTIONS_GL_IMG_multisampled_render_to_texture \ + JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \ + JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \ + JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \ + JUCE_GL_FUNCTIONS_GL_KHR_debug \ + JUCE_GL_FUNCTIONS_GL_KHR_robustness \ + JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \ + JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \ + JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \ + JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \ + JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \ + JUCE_GL_FUNCTIONS_GL_NV_conditional_render \ + JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \ + JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \ + JUCE_GL_FUNCTIONS_GL_NV_copy_buffer \ + JUCE_GL_FUNCTIONS_GL_NV_coverage_sample \ + JUCE_GL_FUNCTIONS_GL_NV_draw_buffers \ + JUCE_GL_FUNCTIONS_GL_NV_draw_instanced \ + JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \ + JUCE_GL_FUNCTIONS_GL_NV_fence \ + JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \ + JUCE_GL_FUNCTIONS_GL_NV_framebuffer_blit \ + JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \ + JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample \ + JUCE_GL_FUNCTIONS_GL_NV_gpu_shader5 \ + JUCE_GL_FUNCTIONS_GL_NV_instanced_arrays \ + JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \ + JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \ + JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \ + JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \ + JUCE_GL_FUNCTIONS_GL_NV_non_square_matrices \ + JUCE_GL_FUNCTIONS_GL_NV_path_rendering \ + JUCE_GL_FUNCTIONS_GL_NV_polygon_mode \ + JUCE_GL_FUNCTIONS_GL_NV_read_buffer \ + JUCE_GL_FUNCTIONS_GL_NV_sample_locations \ + JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \ + JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \ + JUCE_GL_FUNCTIONS_GL_NV_viewport_array \ + JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \ + JUCE_GL_FUNCTIONS_GL_OES_EGL_image \ + JUCE_GL_FUNCTIONS_GL_OES_copy_image \ + JUCE_GL_FUNCTIONS_GL_OES_draw_buffers_indexed \ + JUCE_GL_FUNCTIONS_GL_OES_draw_elements_base_vertex \ + JUCE_GL_FUNCTIONS_GL_OES_geometry_shader \ + JUCE_GL_FUNCTIONS_GL_OES_get_program_binary \ + JUCE_GL_FUNCTIONS_GL_OES_mapbuffer \ + JUCE_GL_FUNCTIONS_GL_OES_primitive_bounding_box \ + JUCE_GL_FUNCTIONS_GL_OES_sample_shading \ + JUCE_GL_FUNCTIONS_GL_OES_tessellation_shader \ + JUCE_GL_FUNCTIONS_GL_OES_texture_3D \ + JUCE_GL_FUNCTIONS_GL_OES_texture_border_clamp \ + JUCE_GL_FUNCTIONS_GL_OES_texture_buffer \ + JUCE_GL_FUNCTIONS_GL_OES_texture_storage_multisample_2d_array \ + JUCE_GL_FUNCTIONS_GL_OES_texture_view \ + JUCE_GL_FUNCTIONS_GL_OES_vertex_array_object \ + JUCE_GL_FUNCTIONS_GL_OES_viewport_array \ + JUCE_GL_FUNCTIONS_GL_OVR_multiview \ + JUCE_GL_FUNCTIONS_GL_OVR_multiview_multisampled_render_to_texture \ + JUCE_GL_FUNCTIONS_GL_QCOM_alpha_test \ + JUCE_GL_FUNCTIONS_GL_QCOM_driver_control \ + JUCE_GL_FUNCTIONS_GL_QCOM_extended_get \ + JUCE_GL_FUNCTIONS_GL_QCOM_extended_get2 \ + JUCE_GL_FUNCTIONS_GL_QCOM_framebuffer_foveated \ + JUCE_GL_FUNCTIONS_GL_QCOM_motion_estimation \ + JUCE_GL_FUNCTIONS_GL_QCOM_frame_extrapolation \ + JUCE_GL_FUNCTIONS_GL_QCOM_texture_foveated \ + JUCE_GL_FUNCTIONS_GL_QCOM_shader_framebuffer_fetch_noncoherent \ + JUCE_GL_FUNCTIONS_GL_QCOM_shading_rate \ + JUCE_GL_FUNCTIONS_GL_QCOM_tiled_rendering + +#define X(returns, name, params) \ + extern "C" KHRONOS_APICALL returns KHRONOS_APIENTRY name params; \ + returns (* const& ::juce::gl::name) params = ::name; +JUCE_STATIC_GL_FUNCTIONS +#undef X + +#define X(returns, name, params) \ + static returns (* juce_ ## name) params = nullptr; \ + returns (* const& ::juce::gl::name) params = juce_ ## name; +JUCE_DYNAMIC_GL_FUNCTIONS +#undef X + +void juce::gl::loadFunctions() +{ + #define X(returns, name, params) \ + juce_ ## name = reinterpret_cast (::juce::OpenGLHelpers::getExtensionFunction (#name)); + JUCE_DYNAMIC_GL_FUNCTIONS + #undef X +} + +#undef JUCE_STATIC_GL_FUNCTIONS +#undef JUCE_DYNAMIC_GL_FUNCTIONS diff --git a/modules/juce_opengl/opengl/juce_gles2.h b/modules/juce_opengl/opengl/juce_gles2.h new file mode 100644 index 0000000000..b92a708a07 --- /dev/null +++ b/modules/juce_opengl/opengl/juce_gles2.h @@ -0,0 +1,5243 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2020 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 6 End-User License + Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). + + End User License Agreement: www.juce.com/juce-6-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +// This file was generated automatically using data from the opengl-registry +// https://github.com/KhronosGroup/OpenGL-Registry + +#pragma once + +// IMPORTANT! Include this before any platform gl files. + +#if defined (ES1_GL_H_GUARD) || defined (__gl_es20_h_) || defined (__gl_es30_h_) +#error gl.h included before juce_gles2.h +#endif +#if defined (__gltypes_h_) +#error gltypes.h included before juce_gles2.h +#endif + +#define ES1_GL_H_GUARD +#define __gl_es20_h_ +#define __gl_es30_h_ + +#include "juce_khrplatform.h" +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef khronos_int8_t GLbyte; +typedef khronos_uint8_t GLubyte; +typedef khronos_int16_t GLshort; +typedef khronos_uint16_t GLushort; +typedef int GLint; +typedef unsigned int GLuint; +typedef khronos_int32_t GLclampx; +typedef int GLsizei; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void *GLeglClientBufferEXT; +typedef void *GLeglImageOES; +typedef char GLchar; +typedef char GLcharARB; +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef khronos_uint16_t GLhalf; +typedef khronos_uint16_t GLhalfARB; +typedef khronos_int32_t GLfixed; +typedef khronos_intptr_t GLintptr; +typedef khronos_intptr_t GLintptrARB; +typedef khronos_ssize_t GLsizeiptr; +typedef khronos_ssize_t GLsizeiptrARB; +typedef khronos_int64_t GLint64; +typedef khronos_int64_t GLint64EXT; +typedef khronos_uint64_t GLuint64; +typedef khronos_uint64_t GLuint64EXT; +typedef struct __GLsync *GLsync; +struct _cl_context; +struct _cl_event; +typedef void ( *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void ( *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +typedef unsigned short GLhalfNV; +typedef GLintptr GLvdpauSurfaceNV; +typedef void ( *GLVULKANPROCNV)(void); + +namespace juce +{ +namespace gl +{ + +#ifndef GL_ES_VERSION_2_0 +#define GL_ES_VERSION_2_0 1 +enum +{ + GL_DEPTH_BUFFER_BIT = 0x00000100, + GL_STENCIL_BUFFER_BIT = 0x00000400, + GL_COLOR_BUFFER_BIT = 0x00004000, + GL_FALSE = 0, + GL_TRUE = 1, + GL_POINTS = 0x0000, + GL_LINES = 0x0001, + GL_LINE_LOOP = 0x0002, + GL_LINE_STRIP = 0x0003, + GL_TRIANGLES = 0x0004, + GL_TRIANGLE_STRIP = 0x0005, + GL_TRIANGLE_FAN = 0x0006, + GL_ZERO = 0, + GL_ONE = 1, + GL_SRC_COLOR = 0x0300, + GL_ONE_MINUS_SRC_COLOR = 0x0301, + GL_SRC_ALPHA = 0x0302, + GL_ONE_MINUS_SRC_ALPHA = 0x0303, + GL_DST_ALPHA = 0x0304, + GL_ONE_MINUS_DST_ALPHA = 0x0305, + GL_DST_COLOR = 0x0306, + GL_ONE_MINUS_DST_COLOR = 0x0307, + GL_SRC_ALPHA_SATURATE = 0x0308, + GL_FUNC_ADD = 0x8006, + GL_BLEND_EQUATION = 0x8009, + GL_BLEND_EQUATION_RGB = 0x8009, + GL_BLEND_EQUATION_ALPHA = 0x883D, + GL_FUNC_SUBTRACT = 0x800A, + GL_FUNC_REVERSE_SUBTRACT = 0x800B, + GL_BLEND_DST_RGB = 0x80C8, + GL_BLEND_SRC_RGB = 0x80C9, + GL_BLEND_DST_ALPHA = 0x80CA, + GL_BLEND_SRC_ALPHA = 0x80CB, + GL_CONSTANT_COLOR = 0x8001, + GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, + GL_CONSTANT_ALPHA = 0x8003, + GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, + GL_BLEND_COLOR = 0x8005, + GL_ARRAY_BUFFER = 0x8892, + GL_ELEMENT_ARRAY_BUFFER = 0x8893, + GL_ARRAY_BUFFER_BINDING = 0x8894, + GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895, + GL_STREAM_DRAW = 0x88E0, + GL_STATIC_DRAW = 0x88E4, + GL_DYNAMIC_DRAW = 0x88E8, + GL_BUFFER_SIZE = 0x8764, + GL_BUFFER_USAGE = 0x8765, + GL_CURRENT_VERTEX_ATTRIB = 0x8626, + GL_FRONT = 0x0404, + GL_BACK = 0x0405, + GL_FRONT_AND_BACK = 0x0408, + GL_TEXTURE_2D = 0x0DE1, + GL_CULL_FACE = 0x0B44, + GL_BLEND = 0x0BE2, + GL_DITHER = 0x0BD0, + GL_STENCIL_TEST = 0x0B90, + GL_DEPTH_TEST = 0x0B71, + GL_SCISSOR_TEST = 0x0C11, + GL_POLYGON_OFFSET_FILL = 0x8037, + GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E, + GL_SAMPLE_COVERAGE = 0x80A0, + GL_NO_ERROR = 0, + GL_INVALID_ENUM = 0x0500, + GL_INVALID_VALUE = 0x0501, + GL_INVALID_OPERATION = 0x0502, + GL_OUT_OF_MEMORY = 0x0505, + GL_CW = 0x0900, + GL_CCW = 0x0901, + GL_LINE_WIDTH = 0x0B21, + GL_ALIASED_POINT_SIZE_RANGE = 0x846D, + GL_ALIASED_LINE_WIDTH_RANGE = 0x846E, + GL_CULL_FACE_MODE = 0x0B45, + GL_FRONT_FACE = 0x0B46, + GL_DEPTH_RANGE = 0x0B70, + GL_DEPTH_WRITEMASK = 0x0B72, + GL_DEPTH_CLEAR_VALUE = 0x0B73, + GL_DEPTH_FUNC = 0x0B74, + GL_STENCIL_CLEAR_VALUE = 0x0B91, + GL_STENCIL_FUNC = 0x0B92, + GL_STENCIL_FAIL = 0x0B94, + GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, + GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, + GL_STENCIL_REF = 0x0B97, + GL_STENCIL_VALUE_MASK = 0x0B93, + GL_STENCIL_WRITEMASK = 0x0B98, + GL_STENCIL_BACK_FUNC = 0x8800, + GL_STENCIL_BACK_FAIL = 0x8801, + GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802, + GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803, + GL_STENCIL_BACK_REF = 0x8CA3, + GL_STENCIL_BACK_VALUE_MASK = 0x8CA4, + GL_STENCIL_BACK_WRITEMASK = 0x8CA5, + GL_VIEWPORT = 0x0BA2, + GL_SCISSOR_BOX = 0x0C10, + GL_COLOR_CLEAR_VALUE = 0x0C22, + GL_COLOR_WRITEMASK = 0x0C23, + GL_UNPACK_ALIGNMENT = 0x0CF5, + GL_PACK_ALIGNMENT = 0x0D05, + GL_MAX_TEXTURE_SIZE = 0x0D33, + GL_MAX_VIEWPORT_DIMS = 0x0D3A, + GL_SUBPIXEL_BITS = 0x0D50, + GL_RED_BITS = 0x0D52, + GL_GREEN_BITS = 0x0D53, + GL_BLUE_BITS = 0x0D54, + GL_ALPHA_BITS = 0x0D55, + GL_DEPTH_BITS = 0x0D56, + GL_STENCIL_BITS = 0x0D57, + GL_POLYGON_OFFSET_UNITS = 0x2A00, + GL_POLYGON_OFFSET_FACTOR = 0x8038, + GL_TEXTURE_BINDING_2D = 0x8069, + GL_SAMPLE_BUFFERS = 0x80A8, + GL_SAMPLES = 0x80A9, + GL_SAMPLE_COVERAGE_VALUE = 0x80AA, + GL_SAMPLE_COVERAGE_INVERT = 0x80AB, + GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2, + GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3, + GL_DONT_CARE = 0x1100, + GL_FASTEST = 0x1101, + GL_NICEST = 0x1102, + GL_GENERATE_MIPMAP_HINT = 0x8192, + GL_BYTE = 0x1400, + GL_UNSIGNED_BYTE = 0x1401, + GL_SHORT = 0x1402, + GL_UNSIGNED_SHORT = 0x1403, + GL_INT = 0x1404, + GL_UNSIGNED_INT = 0x1405, + GL_FLOAT = 0x1406, + GL_FIXED = 0x140C, + GL_DEPTH_COMPONENT = 0x1902, + GL_ALPHA = 0x1906, + GL_RGB = 0x1907, + GL_RGBA = 0x1908, + GL_LUMINANCE = 0x1909, + GL_LUMINANCE_ALPHA = 0x190A, + GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033, + GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034, + GL_UNSIGNED_SHORT_5_6_5 = 0x8363, + GL_FRAGMENT_SHADER = 0x8B30, + GL_VERTEX_SHADER = 0x8B31, + GL_MAX_VERTEX_ATTRIBS = 0x8869, + GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB, + GL_MAX_VARYING_VECTORS = 0x8DFC, + GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D, + GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C, + GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872, + GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD, + GL_SHADER_TYPE = 0x8B4F, + GL_DELETE_STATUS = 0x8B80, + GL_LINK_STATUS = 0x8B82, + GL_VALIDATE_STATUS = 0x8B83, + GL_ATTACHED_SHADERS = 0x8B85, + GL_ACTIVE_UNIFORMS = 0x8B86, + GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, + GL_ACTIVE_ATTRIBUTES = 0x8B89, + GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, + GL_SHADING_LANGUAGE_VERSION = 0x8B8C, + GL_CURRENT_PROGRAM = 0x8B8D, + GL_NEVER = 0x0200, + GL_LESS = 0x0201, + GL_EQUAL = 0x0202, + GL_LEQUAL = 0x0203, + GL_GREATER = 0x0204, + GL_NOTEQUAL = 0x0205, + GL_GEQUAL = 0x0206, + GL_ALWAYS = 0x0207, + GL_KEEP = 0x1E00, + GL_REPLACE = 0x1E01, + GL_INCR = 0x1E02, + GL_DECR = 0x1E03, + GL_INVERT = 0x150A, + GL_INCR_WRAP = 0x8507, + GL_DECR_WRAP = 0x8508, + GL_VENDOR = 0x1F00, + GL_RENDERER = 0x1F01, + GL_VERSION = 0x1F02, + GL_EXTENSIONS = 0x1F03, + GL_NEAREST = 0x2600, + GL_LINEAR = 0x2601, + GL_NEAREST_MIPMAP_NEAREST = 0x2700, + GL_LINEAR_MIPMAP_NEAREST = 0x2701, + GL_NEAREST_MIPMAP_LINEAR = 0x2702, + GL_LINEAR_MIPMAP_LINEAR = 0x2703, + GL_TEXTURE_MAG_FILTER = 0x2800, + GL_TEXTURE_MIN_FILTER = 0x2801, + GL_TEXTURE_WRAP_S = 0x2802, + GL_TEXTURE_WRAP_T = 0x2803, + GL_TEXTURE = 0x1702, + GL_TEXTURE_CUBE_MAP = 0x8513, + GL_TEXTURE_BINDING_CUBE_MAP = 0x8514, + GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A, + GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C, + GL_TEXTURE0 = 0x84C0, + GL_TEXTURE1 = 0x84C1, + GL_TEXTURE2 = 0x84C2, + GL_TEXTURE3 = 0x84C3, + GL_TEXTURE4 = 0x84C4, + GL_TEXTURE5 = 0x84C5, + GL_TEXTURE6 = 0x84C6, + GL_TEXTURE7 = 0x84C7, + GL_TEXTURE8 = 0x84C8, + GL_TEXTURE9 = 0x84C9, + GL_TEXTURE10 = 0x84CA, + GL_TEXTURE11 = 0x84CB, + GL_TEXTURE12 = 0x84CC, + GL_TEXTURE13 = 0x84CD, + GL_TEXTURE14 = 0x84CE, + GL_TEXTURE15 = 0x84CF, + GL_TEXTURE16 = 0x84D0, + GL_TEXTURE17 = 0x84D1, + GL_TEXTURE18 = 0x84D2, + GL_TEXTURE19 = 0x84D3, + GL_TEXTURE20 = 0x84D4, + GL_TEXTURE21 = 0x84D5, + GL_TEXTURE22 = 0x84D6, + GL_TEXTURE23 = 0x84D7, + GL_TEXTURE24 = 0x84D8, + GL_TEXTURE25 = 0x84D9, + GL_TEXTURE26 = 0x84DA, + GL_TEXTURE27 = 0x84DB, + GL_TEXTURE28 = 0x84DC, + GL_TEXTURE29 = 0x84DD, + GL_TEXTURE30 = 0x84DE, + GL_TEXTURE31 = 0x84DF, + GL_ACTIVE_TEXTURE = 0x84E0, + GL_REPEAT = 0x2901, + GL_CLAMP_TO_EDGE = 0x812F, + GL_MIRRORED_REPEAT = 0x8370, + GL_FLOAT_VEC2 = 0x8B50, + GL_FLOAT_VEC3 = 0x8B51, + GL_FLOAT_VEC4 = 0x8B52, + GL_INT_VEC2 = 0x8B53, + GL_INT_VEC3 = 0x8B54, + GL_INT_VEC4 = 0x8B55, + GL_BOOL = 0x8B56, + GL_BOOL_VEC2 = 0x8B57, + GL_BOOL_VEC3 = 0x8B58, + GL_BOOL_VEC4 = 0x8B59, + GL_FLOAT_MAT2 = 0x8B5A, + GL_FLOAT_MAT3 = 0x8B5B, + GL_FLOAT_MAT4 = 0x8B5C, + GL_SAMPLER_2D = 0x8B5E, + GL_SAMPLER_CUBE = 0x8B60, + GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622, + GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623, + GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624, + GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625, + GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A, + GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645, + GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F, + GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A, + GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B, + GL_COMPILE_STATUS = 0x8B81, + GL_INFO_LOG_LENGTH = 0x8B84, + GL_SHADER_SOURCE_LENGTH = 0x8B88, + GL_SHADER_COMPILER = 0x8DFA, + GL_SHADER_BINARY_FORMATS = 0x8DF8, + GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9, + GL_LOW_FLOAT = 0x8DF0, + GL_MEDIUM_FLOAT = 0x8DF1, + GL_HIGH_FLOAT = 0x8DF2, + GL_LOW_INT = 0x8DF3, + GL_MEDIUM_INT = 0x8DF4, + GL_HIGH_INT = 0x8DF5, + GL_FRAMEBUFFER = 0x8D40, + GL_RENDERBUFFER = 0x8D41, + GL_RGBA4 = 0x8056, + GL_RGB5_A1 = 0x8057, + GL_RGB565 = 0x8D62, + GL_DEPTH_COMPONENT16 = 0x81A5, + GL_STENCIL_INDEX8 = 0x8D48, + GL_RENDERBUFFER_WIDTH = 0x8D42, + GL_RENDERBUFFER_HEIGHT = 0x8D43, + GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44, + GL_RENDERBUFFER_RED_SIZE = 0x8D50, + GL_RENDERBUFFER_GREEN_SIZE = 0x8D51, + GL_RENDERBUFFER_BLUE_SIZE = 0x8D52, + GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53, + GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54, + GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3, + GL_COLOR_ATTACHMENT0 = 0x8CE0, + GL_DEPTH_ATTACHMENT = 0x8D00, + GL_STENCIL_ATTACHMENT = 0x8D20, + GL_NONE = 0, + GL_FRAMEBUFFER_COMPLETE = 0x8CD5, + GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6, + GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7, + GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9, + GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD, + GL_FRAMEBUFFER_BINDING = 0x8CA6, + GL_RENDERBUFFER_BINDING = 0x8CA7, + GL_MAX_RENDERBUFFER_SIZE = 0x84E8, + GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506, +}; +extern void (* const& glActiveTexture) (GLenum texture); +extern void (* const& glAttachShader) (GLuint program, GLuint shader); +extern void (* const& glBindAttribLocation) (GLuint program, GLuint index, const GLchar *name); +extern void (* const& glBindBuffer) (GLenum target, GLuint buffer); +extern void (* const& glBindFramebuffer) (GLenum target, GLuint framebuffer); +extern void (* const& glBindRenderbuffer) (GLenum target, GLuint renderbuffer); +extern void (* const& glBindTexture) (GLenum target, GLuint texture); +extern void (* const& glBlendColor) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void (* const& glBlendEquation) (GLenum mode); +extern void (* const& glBlendEquationSeparate) (GLenum modeRGB, GLenum modeAlpha); +extern void (* const& glBlendFunc) (GLenum sfactor, GLenum dfactor); +extern void (* const& glBlendFuncSeparate) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +extern void (* const& glBufferData) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +extern void (* const& glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +extern GLenum (* const& glCheckFramebufferStatus) (GLenum target); +extern void (* const& glClear) (GLbitfield mask); +extern void (* const& glClearColor) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void (* const& glClearDepthf) (GLfloat d); +extern void (* const& glClearStencil) (GLint s); +extern void (* const& glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +extern void (* const& glCompileShader) (GLuint shader); +extern void (* const& glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glCopyTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void (* const& glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern GLuint (* const& glCreateProgram) (); +extern GLuint (* const& glCreateShader) (GLenum type); +extern void (* const& glCullFace) (GLenum mode); +extern void (* const& glDeleteBuffers) (GLsizei n, const GLuint *buffers); +extern void (* const& glDeleteFramebuffers) (GLsizei n, const GLuint *framebuffers); +extern void (* const& glDeleteProgram) (GLuint program); +extern void (* const& glDeleteRenderbuffers) (GLsizei n, const GLuint *renderbuffers); +extern void (* const& glDeleteShader) (GLuint shader); +extern void (* const& glDeleteTextures) (GLsizei n, const GLuint *textures); +extern void (* const& glDepthFunc) (GLenum func); +extern void (* const& glDepthMask) (GLboolean flag); +extern void (* const& glDepthRangef) (GLfloat n, GLfloat f); +extern void (* const& glDetachShader) (GLuint program, GLuint shader); +extern void (* const& glDisable) (GLenum cap); +extern void (* const& glDisableVertexAttribArray) (GLuint index); +extern void (* const& glDrawArrays) (GLenum mode, GLint first, GLsizei count); +extern void (* const& glDrawElements) (GLenum mode, GLsizei count, GLenum type, const void *indices); +extern void (* const& glEnable) (GLenum cap); +extern void (* const& glEnableVertexAttribArray) (GLuint index); +extern void (* const& glFinish) (); +extern void (* const& glFlush) (); +extern void (* const& glFramebufferRenderbuffer) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void (* const& glFramebufferTexture2D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void (* const& glFrontFace) (GLenum mode); +extern void (* const& glGenBuffers) (GLsizei n, GLuint *buffers); +extern void (* const& glGenerateMipmap) (GLenum target); +extern void (* const& glGenFramebuffers) (GLsizei n, GLuint *framebuffers); +extern void (* const& glGenRenderbuffers) (GLsizei n, GLuint *renderbuffers); +extern void (* const& glGenTextures) (GLsizei n, GLuint *textures); +extern void (* const& glGetActiveAttrib) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern void (* const& glGetActiveUniform) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern void (* const& glGetAttachedShaders) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +extern GLint (* const& glGetAttribLocation) (GLuint program, const GLchar *name); +extern void (* const& glGetBooleanv) (GLenum pname, GLboolean *data); +extern void (* const& glGetBufferParameteriv) (GLenum target, GLenum pname, GLint *params); +extern GLenum (* const& glGetError) (); +extern void (* const& glGetFloatv) (GLenum pname, GLfloat *data); +extern void (* const& glGetFramebufferAttachmentParameteriv) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void (* const& glGetIntegerv) (GLenum pname, GLint *data); +extern void (* const& glGetProgramiv) (GLuint program, GLenum pname, GLint *params); +extern void (* const& glGetProgramInfoLog) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glGetRenderbufferParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetShaderiv) (GLuint shader, GLenum pname, GLint *params); +extern void (* const& glGetShaderInfoLog) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glGetShaderPrecisionFormat) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +extern void (* const& glGetShaderSource) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +extern const GLubyte * (* const& glGetString) (GLenum name); +extern void (* const& glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat *params); +extern void (* const& glGetTexParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetUniformfv) (GLuint program, GLint location, GLfloat *params); +extern void (* const& glGetUniformiv) (GLuint program, GLint location, GLint *params); +extern GLint (* const& glGetUniformLocation) (GLuint program, const GLchar *name); +extern void (* const& glGetVertexAttribfv) (GLuint index, GLenum pname, GLfloat *params); +extern void (* const& glGetVertexAttribiv) (GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribPointerv) (GLuint index, GLenum pname, void **pointer); +extern void (* const& glHint) (GLenum target, GLenum mode); +extern GLboolean (* const& glIsBuffer) (GLuint buffer); +extern GLboolean (* const& glIsEnabled) (GLenum cap); +extern GLboolean (* const& glIsFramebuffer) (GLuint framebuffer); +extern GLboolean (* const& glIsProgram) (GLuint program); +extern GLboolean (* const& glIsRenderbuffer) (GLuint renderbuffer); +extern GLboolean (* const& glIsShader) (GLuint shader); +extern GLboolean (* const& glIsTexture) (GLuint texture); +extern void (* const& glLineWidth) (GLfloat width); +extern void (* const& glLinkProgram) (GLuint program); +extern void (* const& glPixelStorei) (GLenum pname, GLint param); +extern void (* const& glPolygonOffset) (GLfloat factor, GLfloat units); +extern void (* const& glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +extern void (* const& glReleaseShaderCompiler) (); +extern void (* const& glRenderbufferStorage) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glSampleCoverage) (GLfloat value, GLboolean invert); +extern void (* const& glScissor) (GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glShaderBinary) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +extern void (* const& glShaderSource) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +extern void (* const& glStencilFunc) (GLenum func, GLint ref, GLuint mask); +extern void (* const& glStencilFuncSeparate) (GLenum face, GLenum func, GLint ref, GLuint mask); +extern void (* const& glStencilMask) (GLuint mask); +extern void (* const& glStencilMaskSeparate) (GLenum face, GLuint mask); +extern void (* const& glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass); +extern void (* const& glStencilOpSeparate) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +extern void (* const& glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexParameterf) (GLenum target, GLenum pname, GLfloat param); +extern void (* const& glTexParameterfv) (GLenum target, GLenum pname, const GLfloat *params); +extern void (* const& glTexParameteri) (GLenum target, GLenum pname, GLint param); +extern void (* const& glTexParameteriv) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +extern void (* const& glUniform1f) (GLint location, GLfloat v0); +extern void (* const& glUniform1fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform1i) (GLint location, GLint v0); +extern void (* const& glUniform1iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform2f) (GLint location, GLfloat v0, GLfloat v1); +extern void (* const& glUniform2fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform2i) (GLint location, GLint v0, GLint v1); +extern void (* const& glUniform2iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform3f) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void (* const& glUniform3fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform3i) (GLint location, GLint v0, GLint v1, GLint v2); +extern void (* const& glUniform3iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniform4f) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void (* const& glUniform4fv) (GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glUniform4i) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void (* const& glUniform4iv) (GLint location, GLsizei count, const GLint *value); +extern void (* const& glUniformMatrix2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUseProgram) (GLuint program); +extern void (* const& glValidateProgram) (GLuint program); +extern void (* const& glVertexAttrib1f) (GLuint index, GLfloat x); +extern void (* const& glVertexAttrib1fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib2f) (GLuint index, GLfloat x, GLfloat y); +extern void (* const& glVertexAttrib2fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib3f) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glVertexAttrib3fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttrib4f) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void (* const& glVertexAttrib4fv) (GLuint index, const GLfloat *v); +extern void (* const& glVertexAttribPointer) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +extern void (* const& glViewport) (GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_ES_VERSION_3_0 +#define GL_ES_VERSION_3_0 1 +enum +{ + GL_READ_BUFFER = 0x0C02, + GL_UNPACK_ROW_LENGTH = 0x0CF2, + GL_UNPACK_SKIP_ROWS = 0x0CF3, + GL_UNPACK_SKIP_PIXELS = 0x0CF4, + GL_PACK_ROW_LENGTH = 0x0D02, + GL_PACK_SKIP_ROWS = 0x0D03, + GL_PACK_SKIP_PIXELS = 0x0D04, + GL_COLOR = 0x1800, + GL_DEPTH = 0x1801, + GL_STENCIL = 0x1802, + GL_RED = 0x1903, + GL_RGB8 = 0x8051, + GL_RGBA8 = 0x8058, + GL_RGB10_A2 = 0x8059, + GL_TEXTURE_BINDING_3D = 0x806A, + GL_UNPACK_SKIP_IMAGES = 0x806D, + GL_UNPACK_IMAGE_HEIGHT = 0x806E, + GL_TEXTURE_3D = 0x806F, + GL_TEXTURE_WRAP_R = 0x8072, + GL_MAX_3D_TEXTURE_SIZE = 0x8073, + GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, + GL_MAX_ELEMENTS_VERTICES = 0x80E8, + GL_MAX_ELEMENTS_INDICES = 0x80E9, + GL_TEXTURE_MIN_LOD = 0x813A, + GL_TEXTURE_MAX_LOD = 0x813B, + GL_TEXTURE_BASE_LEVEL = 0x813C, + GL_TEXTURE_MAX_LEVEL = 0x813D, + GL_MIN = 0x8007, + GL_MAX = 0x8008, + GL_DEPTH_COMPONENT24 = 0x81A6, + GL_MAX_TEXTURE_LOD_BIAS = 0x84FD, + GL_TEXTURE_COMPARE_MODE = 0x884C, + GL_TEXTURE_COMPARE_FUNC = 0x884D, + GL_CURRENT_QUERY = 0x8865, + GL_QUERY_RESULT = 0x8866, + GL_QUERY_RESULT_AVAILABLE = 0x8867, + GL_BUFFER_MAPPED = 0x88BC, + GL_BUFFER_MAP_POINTER = 0x88BD, + GL_STREAM_READ = 0x88E1, + GL_STREAM_COPY = 0x88E2, + GL_STATIC_READ = 0x88E5, + GL_STATIC_COPY = 0x88E6, + GL_DYNAMIC_READ = 0x88E9, + GL_DYNAMIC_COPY = 0x88EA, + GL_MAX_DRAW_BUFFERS = 0x8824, + GL_DRAW_BUFFER0 = 0x8825, + GL_DRAW_BUFFER1 = 0x8826, + GL_DRAW_BUFFER2 = 0x8827, + GL_DRAW_BUFFER3 = 0x8828, + GL_DRAW_BUFFER4 = 0x8829, + GL_DRAW_BUFFER5 = 0x882A, + GL_DRAW_BUFFER6 = 0x882B, + GL_DRAW_BUFFER7 = 0x882C, + GL_DRAW_BUFFER8 = 0x882D, + GL_DRAW_BUFFER9 = 0x882E, + GL_DRAW_BUFFER10 = 0x882F, + GL_DRAW_BUFFER11 = 0x8830, + GL_DRAW_BUFFER12 = 0x8831, + GL_DRAW_BUFFER13 = 0x8832, + GL_DRAW_BUFFER14 = 0x8833, + GL_DRAW_BUFFER15 = 0x8834, + GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49, + GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A, + GL_SAMPLER_3D = 0x8B5F, + GL_SAMPLER_2D_SHADOW = 0x8B62, + GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B, + GL_PIXEL_PACK_BUFFER = 0x88EB, + GL_PIXEL_UNPACK_BUFFER = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF, + GL_FLOAT_MAT2x3 = 0x8B65, + GL_FLOAT_MAT2x4 = 0x8B66, + GL_FLOAT_MAT3x2 = 0x8B67, + GL_FLOAT_MAT3x4 = 0x8B68, + GL_FLOAT_MAT4x2 = 0x8B69, + GL_FLOAT_MAT4x3 = 0x8B6A, + GL_SRGB = 0x8C40, + GL_SRGB8 = 0x8C41, + GL_SRGB8_ALPHA8 = 0x8C43, + GL_COMPARE_REF_TO_TEXTURE = 0x884E, + GL_MAJOR_VERSION = 0x821B, + GL_MINOR_VERSION = 0x821C, + GL_NUM_EXTENSIONS = 0x821D, + GL_RGBA32F = 0x8814, + GL_RGB32F = 0x8815, + GL_RGBA16F = 0x881A, + GL_RGB16F = 0x881B, + GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD, + GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF, + GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904, + GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905, + GL_MAX_VARYING_COMPONENTS = 0x8B4B, + GL_TEXTURE_2D_ARRAY = 0x8C1A, + GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D, + GL_R11F_G11F_B10F = 0x8C3A, + GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B, + GL_RGB9_E5 = 0x8C3D, + GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E, + GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80, + GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88, + GL_RASTERIZER_DISCARD = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B, + GL_INTERLEAVED_ATTRIBS = 0x8C8C, + GL_SEPARATE_ATTRIBS = 0x8C8D, + GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F, + GL_RGBA32UI = 0x8D70, + GL_RGB32UI = 0x8D71, + GL_RGBA16UI = 0x8D76, + GL_RGB16UI = 0x8D77, + GL_RGBA8UI = 0x8D7C, + GL_RGB8UI = 0x8D7D, + GL_RGBA32I = 0x8D82, + GL_RGB32I = 0x8D83, + GL_RGBA16I = 0x8D88, + GL_RGB16I = 0x8D89, + GL_RGBA8I = 0x8D8E, + GL_RGB8I = 0x8D8F, + GL_RED_INTEGER = 0x8D94, + GL_RGB_INTEGER = 0x8D98, + GL_RGBA_INTEGER = 0x8D99, + GL_SAMPLER_2D_ARRAY = 0x8DC1, + GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4, + GL_SAMPLER_CUBE_SHADOW = 0x8DC5, + GL_UNSIGNED_INT_VEC2 = 0x8DC6, + GL_UNSIGNED_INT_VEC3 = 0x8DC7, + GL_UNSIGNED_INT_VEC4 = 0x8DC8, + GL_INT_SAMPLER_2D = 0x8DCA, + GL_INT_SAMPLER_3D = 0x8DCB, + GL_INT_SAMPLER_CUBE = 0x8DCC, + GL_INT_SAMPLER_2D_ARRAY = 0x8DCF, + GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2, + GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3, + GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4, + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7, + GL_BUFFER_ACCESS_FLAGS = 0x911F, + GL_BUFFER_MAP_LENGTH = 0x9120, + GL_BUFFER_MAP_OFFSET = 0x9121, + GL_DEPTH_COMPONENT32F = 0x8CAC, + GL_DEPTH32F_STENCIL8 = 0x8CAD, + GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD, + GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210, + GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211, + GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212, + GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213, + GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214, + GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215, + GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216, + GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217, + GL_FRAMEBUFFER_DEFAULT = 0x8218, + GL_FRAMEBUFFER_UNDEFINED = 0x8219, + GL_DEPTH_STENCIL_ATTACHMENT = 0x821A, + GL_DEPTH_STENCIL = 0x84F9, + GL_UNSIGNED_INT_24_8 = 0x84FA, + GL_DEPTH24_STENCIL8 = 0x88F0, + GL_UNSIGNED_NORMALIZED = 0x8C17, + GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6, + GL_READ_FRAMEBUFFER = 0x8CA8, + GL_DRAW_FRAMEBUFFER = 0x8CA9, + GL_READ_FRAMEBUFFER_BINDING = 0x8CAA, + GL_RENDERBUFFER_SAMPLES = 0x8CAB, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4, + GL_MAX_COLOR_ATTACHMENTS = 0x8CDF, + GL_COLOR_ATTACHMENT1 = 0x8CE1, + GL_COLOR_ATTACHMENT2 = 0x8CE2, + GL_COLOR_ATTACHMENT3 = 0x8CE3, + GL_COLOR_ATTACHMENT4 = 0x8CE4, + GL_COLOR_ATTACHMENT5 = 0x8CE5, + GL_COLOR_ATTACHMENT6 = 0x8CE6, + GL_COLOR_ATTACHMENT7 = 0x8CE7, + GL_COLOR_ATTACHMENT8 = 0x8CE8, + GL_COLOR_ATTACHMENT9 = 0x8CE9, + GL_COLOR_ATTACHMENT10 = 0x8CEA, + GL_COLOR_ATTACHMENT11 = 0x8CEB, + GL_COLOR_ATTACHMENT12 = 0x8CEC, + GL_COLOR_ATTACHMENT13 = 0x8CED, + GL_COLOR_ATTACHMENT14 = 0x8CEE, + GL_COLOR_ATTACHMENT15 = 0x8CEF, + GL_COLOR_ATTACHMENT16 = 0x8CF0, + GL_COLOR_ATTACHMENT17 = 0x8CF1, + GL_COLOR_ATTACHMENT18 = 0x8CF2, + GL_COLOR_ATTACHMENT19 = 0x8CF3, + GL_COLOR_ATTACHMENT20 = 0x8CF4, + GL_COLOR_ATTACHMENT21 = 0x8CF5, + GL_COLOR_ATTACHMENT22 = 0x8CF6, + GL_COLOR_ATTACHMENT23 = 0x8CF7, + GL_COLOR_ATTACHMENT24 = 0x8CF8, + GL_COLOR_ATTACHMENT25 = 0x8CF9, + GL_COLOR_ATTACHMENT26 = 0x8CFA, + GL_COLOR_ATTACHMENT27 = 0x8CFB, + GL_COLOR_ATTACHMENT28 = 0x8CFC, + GL_COLOR_ATTACHMENT29 = 0x8CFD, + GL_COLOR_ATTACHMENT30 = 0x8CFE, + GL_COLOR_ATTACHMENT31 = 0x8CFF, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56, + GL_MAX_SAMPLES = 0x8D57, + GL_HALF_FLOAT = 0x140B, + GL_MAP_READ_BIT = 0x0001, + GL_MAP_WRITE_BIT = 0x0002, + GL_MAP_INVALIDATE_RANGE_BIT = 0x0004, + GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008, + GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010, + GL_MAP_UNSYNCHRONIZED_BIT = 0x0020, + GL_RG = 0x8227, + GL_RG_INTEGER = 0x8228, + GL_R8 = 0x8229, + GL_RG8 = 0x822B, + GL_R16F = 0x822D, + GL_R32F = 0x822E, + GL_RG16F = 0x822F, + GL_RG32F = 0x8230, + GL_R8I = 0x8231, + GL_R8UI = 0x8232, + GL_R16I = 0x8233, + GL_R16UI = 0x8234, + GL_R32I = 0x8235, + GL_R32UI = 0x8236, + GL_RG8I = 0x8237, + GL_RG8UI = 0x8238, + GL_RG16I = 0x8239, + GL_RG16UI = 0x823A, + GL_RG32I = 0x823B, + GL_RG32UI = 0x823C, + GL_VERTEX_ARRAY_BINDING = 0x85B5, + GL_R8_SNORM = 0x8F94, + GL_RG8_SNORM = 0x8F95, + GL_RGB8_SNORM = 0x8F96, + GL_RGBA8_SNORM = 0x8F97, + GL_SIGNED_NORMALIZED = 0x8F9C, + GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69, + GL_COPY_READ_BUFFER = 0x8F36, + GL_COPY_WRITE_BUFFER = 0x8F37, + GL_COPY_READ_BUFFER_BINDING = 0x8F36, + GL_COPY_WRITE_BUFFER_BINDING = 0x8F37, + GL_UNIFORM_BUFFER = 0x8A11, + GL_UNIFORM_BUFFER_BINDING = 0x8A28, + GL_UNIFORM_BUFFER_START = 0x8A29, + GL_UNIFORM_BUFFER_SIZE = 0x8A2A, + GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B, + GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D, + GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E, + GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F, + GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30, + GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31, + GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33, + GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34, + GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35, + GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36, + GL_UNIFORM_TYPE = 0x8A37, + GL_UNIFORM_SIZE = 0x8A38, + GL_UNIFORM_NAME_LENGTH = 0x8A39, + GL_UNIFORM_BLOCK_INDEX = 0x8A3A, + GL_UNIFORM_OFFSET = 0x8A3B, + GL_UNIFORM_ARRAY_STRIDE = 0x8A3C, + GL_UNIFORM_MATRIX_STRIDE = 0x8A3D, + GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E, + GL_UNIFORM_BLOCK_BINDING = 0x8A3F, + GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40, + GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43, + GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44, + GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46, + GL_INVALID_INDEX = 0xFFFFFFFF, + GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122, + GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125, + GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111, + GL_OBJECT_TYPE = 0x9112, + GL_SYNC_CONDITION = 0x9113, + GL_SYNC_STATUS = 0x9114, + GL_SYNC_FLAGS = 0x9115, + GL_SYNC_FENCE = 0x9116, + GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117, + GL_UNSIGNALED = 0x9118, + GL_SIGNALED = 0x9119, + GL_ALREADY_SIGNALED = 0x911A, + GL_TIMEOUT_EXPIRED = 0x911B, + GL_CONDITION_SATISFIED = 0x911C, + GL_WAIT_FAILED = 0x911D, + GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001, + GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF, + GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE, + GL_ANY_SAMPLES_PASSED = 0x8C2F, + GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A, + GL_SAMPLER_BINDING = 0x8919, + GL_RGB10_A2UI = 0x906F, + GL_TEXTURE_SWIZZLE_R = 0x8E42, + GL_TEXTURE_SWIZZLE_G = 0x8E43, + GL_TEXTURE_SWIZZLE_B = 0x8E44, + GL_TEXTURE_SWIZZLE_A = 0x8E45, + GL_GREEN = 0x1904, + GL_BLUE = 0x1905, + GL_INT_2_10_10_10_REV = 0x8D9F, + GL_TRANSFORM_FEEDBACK = 0x8E22, + GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23, + GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24, + GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25, + GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257, + GL_PROGRAM_BINARY_LENGTH = 0x8741, + GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE, + GL_PROGRAM_BINARY_FORMATS = 0x87FF, + GL_COMPRESSED_R11_EAC = 0x9270, + GL_COMPRESSED_SIGNED_R11_EAC = 0x9271, + GL_COMPRESSED_RG11_EAC = 0x9272, + GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273, + GL_COMPRESSED_RGB8_ETC2 = 0x9274, + GL_COMPRESSED_SRGB8_ETC2 = 0x9275, + GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276, + GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277, + GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278, + GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279, + GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F, + GL_MAX_ELEMENT_INDEX = 0x8D6B, + GL_NUM_SAMPLE_COUNTS = 0x9380, + GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF, +}; +extern void (* const& glReadBuffer) (GLenum src); +extern void (* const& glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +extern void (* const& glTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glGenQueries) (GLsizei n, GLuint *ids); +extern void (* const& glDeleteQueries) (GLsizei n, const GLuint *ids); +extern GLboolean (* const& glIsQuery) (GLuint id); +extern void (* const& glBeginQuery) (GLenum target, GLuint id); +extern void (* const& glEndQuery) (GLenum target); +extern void (* const& glGetQueryiv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetQueryObjectuiv) (GLuint id, GLenum pname, GLuint *params); +extern GLboolean (* const& glUnmapBuffer) (GLenum target); +extern void (* const& glGetBufferPointerv) (GLenum target, GLenum pname, void **params); +extern void (* const& glDrawBuffers) (GLsizei n, const GLenum *bufs); +extern void (* const& glUniformMatrix2x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix2x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4x2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3x4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4x3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glBlitFramebuffer) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern void (* const& glRenderbufferStorageMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glFramebufferTextureLayer) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +extern void * (* const& glMapBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +extern void (* const& glFlushMappedBufferRange) (GLenum target, GLintptr offset, GLsizeiptr length); +extern void (* const& glBindVertexArray) (GLuint array); +extern void (* const& glDeleteVertexArrays) (GLsizei n, const GLuint *arrays); +extern void (* const& glGenVertexArrays) (GLsizei n, GLuint *arrays); +extern GLboolean (* const& glIsVertexArray) (GLuint array); +extern void (* const& glGetIntegeri_v) (GLenum target, GLuint index, GLint *data); +extern void (* const& glBeginTransformFeedback) (GLenum primitiveMode); +extern void (* const& glEndTransformFeedback) (); +extern void (* const& glBindBufferRange) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glBindBufferBase) (GLenum target, GLuint index, GLuint buffer); +extern void (* const& glTransformFeedbackVaryings) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +extern void (* const& glGetTransformFeedbackVarying) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +extern void (* const& glVertexAttribIPointer) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +extern void (* const& glGetVertexAttribIiv) (GLuint index, GLenum pname, GLint *params); +extern void (* const& glGetVertexAttribIuiv) (GLuint index, GLenum pname, GLuint *params); +extern void (* const& glVertexAttribI4i) (GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void (* const& glVertexAttribI4ui) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void (* const& glVertexAttribI4iv) (GLuint index, const GLint *v); +extern void (* const& glVertexAttribI4uiv) (GLuint index, const GLuint *v); +extern void (* const& glGetUniformuiv) (GLuint program, GLint location, GLuint *params); +extern GLint (* const& glGetFragDataLocation) (GLuint program, const GLchar *name); +extern void (* const& glUniform1ui) (GLint location, GLuint v0); +extern void (* const& glUniform2ui) (GLint location, GLuint v0, GLuint v1); +extern void (* const& glUniform3ui) (GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void (* const& glUniform4ui) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void (* const& glUniform1uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform2uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform3uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glUniform4uiv) (GLint location, GLsizei count, const GLuint *value); +extern void (* const& glClearBufferiv) (GLenum buffer, GLint drawbuffer, const GLint *value); +extern void (* const& glClearBufferuiv) (GLenum buffer, GLint drawbuffer, const GLuint *value); +extern void (* const& glClearBufferfv) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +extern void (* const& glClearBufferfi) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +extern const GLubyte * (* const& glGetStringi) (GLenum name, GLuint index); +extern void (* const& glCopyBufferSubData) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +extern void (* const& glGetUniformIndices) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +extern void (* const& glGetActiveUniformsiv) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +extern GLuint (* const& glGetUniformBlockIndex) (GLuint program, const GLchar *uniformBlockName); +extern void (* const& glGetActiveUniformBlockiv) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +extern void (* const& glGetActiveUniformBlockName) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +extern void (* const& glUniformBlockBinding) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +extern void (* const& glDrawArraysInstanced) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +extern void (* const& glDrawElementsInstanced) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +extern GLsync (* const& glFenceSync) (GLenum condition, GLbitfield flags); +extern GLboolean (* const& glIsSync) (GLsync sync); +extern void (* const& glDeleteSync) (GLsync sync); +extern GLenum (* const& glClientWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void (* const& glWaitSync) (GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void (* const& glGetInteger64v) (GLenum pname, GLint64 *data); +extern void (* const& glGetSynciv) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +extern void (* const& glGetInteger64i_v) (GLenum target, GLuint index, GLint64 *data); +extern void (* const& glGetBufferParameteri64v) (GLenum target, GLenum pname, GLint64 *params); +extern void (* const& glGenSamplers) (GLsizei count, GLuint *samplers); +extern void (* const& glDeleteSamplers) (GLsizei count, const GLuint *samplers); +extern GLboolean (* const& glIsSampler) (GLuint sampler); +extern void (* const& glBindSampler) (GLuint unit, GLuint sampler); +extern void (* const& glSamplerParameteri) (GLuint sampler, GLenum pname, GLint param); +extern void (* const& glSamplerParameteriv) (GLuint sampler, GLenum pname, const GLint *param); +extern void (* const& glSamplerParameterf) (GLuint sampler, GLenum pname, GLfloat param); +extern void (* const& glSamplerParameterfv) (GLuint sampler, GLenum pname, const GLfloat *param); +extern void (* const& glGetSamplerParameteriv) (GLuint sampler, GLenum pname, GLint *params); +extern void (* const& glGetSamplerParameterfv) (GLuint sampler, GLenum pname, GLfloat *params); +extern void (* const& glVertexAttribDivisor) (GLuint index, GLuint divisor); +extern void (* const& glBindTransformFeedback) (GLenum target, GLuint id); +extern void (* const& glDeleteTransformFeedbacks) (GLsizei n, const GLuint *ids); +extern void (* const& glGenTransformFeedbacks) (GLsizei n, GLuint *ids); +extern GLboolean (* const& glIsTransformFeedback) (GLuint id); +extern void (* const& glPauseTransformFeedback) (); +extern void (* const& glResumeTransformFeedback) (); +extern void (* const& glGetProgramBinary) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +extern void (* const& glProgramBinary) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +extern void (* const& glProgramParameteri) (GLuint program, GLenum pname, GLint value); +extern void (* const& glInvalidateFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +extern void (* const& glInvalidateSubFramebuffer) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glTexStorage2D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glTexStorage3D) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +extern void (* const& glGetInternalformativ) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); +#endif + +#ifndef GL_ES_VERSION_3_1 +#define GL_ES_VERSION_3_1 1 +enum +{ + GL_COMPUTE_SHADER = 0x91B9, + GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB, + GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC, + GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD, + GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262, + GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263, + GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264, + GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265, + GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266, + GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB, + GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE, + GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF, + GL_COMPUTE_WORK_GROUP_SIZE = 0x8267, + GL_DISPATCH_INDIRECT_BUFFER = 0x90EE, + GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF, + GL_COMPUTE_SHADER_BIT = 0x00000020, + GL_DRAW_INDIRECT_BUFFER = 0x8F3F, + GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43, + GL_MAX_UNIFORM_LOCATIONS = 0x826E, + GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310, + GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311, + GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313, + GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314, + GL_MAX_FRAMEBUFFER_WIDTH = 0x9315, + GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316, + GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318, + GL_UNIFORM = 0x92E1, + GL_UNIFORM_BLOCK = 0x92E2, + GL_PROGRAM_INPUT = 0x92E3, + GL_PROGRAM_OUTPUT = 0x92E4, + GL_BUFFER_VARIABLE = 0x92E5, + GL_SHADER_STORAGE_BLOCK = 0x92E6, + GL_ATOMIC_COUNTER_BUFFER = 0x92C0, + GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4, + GL_ACTIVE_RESOURCES = 0x92F5, + GL_MAX_NAME_LENGTH = 0x92F6, + GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7, + GL_NAME_LENGTH = 0x92F9, + GL_TYPE = 0x92FA, + GL_ARRAY_SIZE = 0x92FB, + GL_OFFSET = 0x92FC, + GL_BLOCK_INDEX = 0x92FD, + GL_ARRAY_STRIDE = 0x92FE, + GL_MATRIX_STRIDE = 0x92FF, + GL_IS_ROW_MAJOR = 0x9300, + GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301, + GL_BUFFER_BINDING = 0x9302, + GL_BUFFER_DATA_SIZE = 0x9303, + GL_NUM_ACTIVE_VARIABLES = 0x9304, + GL_ACTIVE_VARIABLES = 0x9305, + GL_REFERENCED_BY_VERTEX_SHADER = 0x9306, + GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A, + GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B, + GL_TOP_LEVEL_ARRAY_SIZE = 0x930C, + GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D, + GL_LOCATION = 0x930E, + GL_VERTEX_SHADER_BIT = 0x00000001, + GL_FRAGMENT_SHADER_BIT = 0x00000002, + GL_ALL_SHADER_BITS = 0xFFFFFFFF, + GL_PROGRAM_SEPARABLE = 0x8258, + GL_ACTIVE_PROGRAM = 0x8259, + GL_PROGRAM_PIPELINE_BINDING = 0x825A, + GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1, + GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2, + GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3, + GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC, + GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0, + GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1, + GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2, + GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6, + GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7, + GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8, + GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC, + GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9, + GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB, + GL_MAX_IMAGE_UNITS = 0x8F38, + GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA, + GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE, + GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF, + GL_IMAGE_BINDING_NAME = 0x8F3A, + GL_IMAGE_BINDING_LEVEL = 0x8F3B, + GL_IMAGE_BINDING_LAYERED = 0x8F3C, + GL_IMAGE_BINDING_LAYER = 0x8F3D, + GL_IMAGE_BINDING_ACCESS = 0x8F3E, + GL_IMAGE_BINDING_FORMAT = 0x906E, + GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001, + GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002, + GL_UNIFORM_BARRIER_BIT = 0x00000004, + GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008, + GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020, + GL_COMMAND_BARRIER_BIT = 0x00000040, + GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080, + GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100, + GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200, + GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400, + GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800, + GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000, + GL_ALL_BARRIER_BITS = 0xFFFFFFFF, + GL_IMAGE_2D = 0x904D, + GL_IMAGE_3D = 0x904E, + GL_IMAGE_CUBE = 0x9050, + GL_IMAGE_2D_ARRAY = 0x9053, + GL_INT_IMAGE_2D = 0x9058, + GL_INT_IMAGE_3D = 0x9059, + GL_INT_IMAGE_CUBE = 0x905B, + GL_INT_IMAGE_2D_ARRAY = 0x905E, + GL_UNSIGNED_INT_IMAGE_2D = 0x9063, + GL_UNSIGNED_INT_IMAGE_3D = 0x9064, + GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066, + GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069, + GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7, + GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8, + GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9, + GL_READ_ONLY = 0x88B8, + GL_WRITE_ONLY = 0x88B9, + GL_READ_WRITE = 0x88BA, + GL_SHADER_STORAGE_BUFFER = 0x90D2, + GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3, + GL_SHADER_STORAGE_BUFFER_START = 0x90D4, + GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5, + GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6, + GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA, + GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB, + GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC, + GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD, + GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE, + GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF, + GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000, + GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39, + GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA, + GL_STENCIL_INDEX = 0x1901, + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E, + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F, + GL_SAMPLE_POSITION = 0x8E50, + GL_SAMPLE_MASK = 0x8E51, + GL_SAMPLE_MASK_VALUE = 0x8E52, + GL_TEXTURE_2D_MULTISAMPLE = 0x9100, + GL_MAX_SAMPLE_MASK_WORDS = 0x8E59, + GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E, + GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F, + GL_MAX_INTEGER_SAMPLES = 0x9110, + GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104, + GL_TEXTURE_SAMPLES = 0x9106, + GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107, + GL_TEXTURE_WIDTH = 0x1000, + GL_TEXTURE_HEIGHT = 0x1001, + GL_TEXTURE_DEPTH = 0x8071, + GL_TEXTURE_INTERNAL_FORMAT = 0x1003, + GL_TEXTURE_RED_SIZE = 0x805C, + GL_TEXTURE_GREEN_SIZE = 0x805D, + GL_TEXTURE_BLUE_SIZE = 0x805E, + GL_TEXTURE_ALPHA_SIZE = 0x805F, + GL_TEXTURE_DEPTH_SIZE = 0x884A, + GL_TEXTURE_STENCIL_SIZE = 0x88F1, + GL_TEXTURE_SHARED_SIZE = 0x8C3F, + GL_TEXTURE_RED_TYPE = 0x8C10, + GL_TEXTURE_GREEN_TYPE = 0x8C11, + GL_TEXTURE_BLUE_TYPE = 0x8C12, + GL_TEXTURE_ALPHA_TYPE = 0x8C13, + GL_TEXTURE_DEPTH_TYPE = 0x8C16, + GL_TEXTURE_COMPRESSED = 0x86A1, + GL_SAMPLER_2D_MULTISAMPLE = 0x9108, + GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A, + GL_VERTEX_ATTRIB_BINDING = 0x82D4, + GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5, + GL_VERTEX_BINDING_DIVISOR = 0x82D6, + GL_VERTEX_BINDING_OFFSET = 0x82D7, + GL_VERTEX_BINDING_STRIDE = 0x82D8, + GL_VERTEX_BINDING_BUFFER = 0x8F4F, + GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9, + GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA, + GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5, +}; +extern void (* const& glDispatchCompute) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +extern void (* const& glDispatchComputeIndirect) (GLintptr indirect); +extern void (* const& glDrawArraysIndirect) (GLenum mode, const void *indirect); +extern void (* const& glDrawElementsIndirect) (GLenum mode, GLenum type, const void *indirect); +extern void (* const& glFramebufferParameteri) (GLenum target, GLenum pname, GLint param); +extern void (* const& glGetFramebufferParameteriv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetProgramInterfaceiv) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); +extern GLuint (* const& glGetProgramResourceIndex) (GLuint program, GLenum programInterface, const GLchar *name); +extern void (* const& glGetProgramResourceName) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +extern void (* const& glGetProgramResourceiv) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); +extern GLint (* const& glGetProgramResourceLocation) (GLuint program, GLenum programInterface, const GLchar *name); +extern void (* const& glUseProgramStages) (GLuint pipeline, GLbitfield stages, GLuint program); +extern void (* const& glActiveShaderProgram) (GLuint pipeline, GLuint program); +extern GLuint (* const& glCreateShaderProgramv) (GLenum type, GLsizei count, const GLchar *const*strings); +extern void (* const& glBindProgramPipeline) (GLuint pipeline); +extern void (* const& glDeleteProgramPipelines) (GLsizei n, const GLuint *pipelines); +extern void (* const& glGenProgramPipelines) (GLsizei n, GLuint *pipelines); +extern GLboolean (* const& glIsProgramPipeline) (GLuint pipeline); +extern void (* const& glGetProgramPipelineiv) (GLuint pipeline, GLenum pname, GLint *params); +extern void (* const& glProgramUniform1i) (GLuint program, GLint location, GLint v0); +extern void (* const& glProgramUniform2i) (GLuint program, GLint location, GLint v0, GLint v1); +extern void (* const& glProgramUniform3i) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +extern void (* const& glProgramUniform4i) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void (* const& glProgramUniform1ui) (GLuint program, GLint location, GLuint v0); +extern void (* const& glProgramUniform2ui) (GLuint program, GLint location, GLuint v0, GLuint v1); +extern void (* const& glProgramUniform3ui) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void (* const& glProgramUniform4ui) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void (* const& glProgramUniform1f) (GLuint program, GLint location, GLfloat v0); +extern void (* const& glProgramUniform2f) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +extern void (* const& glProgramUniform3f) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void (* const& glProgramUniform4f) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void (* const& glProgramUniform1iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform2iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform3iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform4iv) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform1uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform2uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform3uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform4uiv) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform1fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform2fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform3fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform4fv) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2x3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2x4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x2fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x4fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x3fv) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glValidateProgramPipeline) (GLuint pipeline); +extern void (* const& glGetProgramPipelineInfoLog) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glBindImageTexture) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +extern void (* const& glGetBooleani_v) (GLenum target, GLuint index, GLboolean *data); +extern void (* const& glMemoryBarrier) (GLbitfield barriers); +extern void (* const& glMemoryBarrierByRegion) (GLbitfield barriers); +extern void (* const& glTexStorage2DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +extern void (* const& glGetMultisamplefv) (GLenum pname, GLuint index, GLfloat *val); +extern void (* const& glSampleMaski) (GLuint maskNumber, GLbitfield mask); +extern void (* const& glGetTexLevelParameteriv) (GLenum target, GLint level, GLenum pname, GLint *params); +extern void (* const& glGetTexLevelParameterfv) (GLenum target, GLint level, GLenum pname, GLfloat *params); +extern void (* const& glBindVertexBuffer) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +extern void (* const& glVertexAttribFormat) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +extern void (* const& glVertexAttribIFormat) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +extern void (* const& glVertexAttribBinding) (GLuint attribindex, GLuint bindingindex); +extern void (* const& glVertexBindingDivisor) (GLuint bindingindex, GLuint divisor); +#endif + +#ifndef GL_ES_VERSION_3_2 +#define GL_ES_VERSION_3_2 1 +enum +{ + GL_MULTISAMPLE_LINE_WIDTH_RANGE = 0x9381, + GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY = 0x9382, + GL_MULTIPLY = 0x9294, + GL_SCREEN = 0x9295, + GL_OVERLAY = 0x9296, + GL_DARKEN = 0x9297, + GL_LIGHTEN = 0x9298, + GL_COLORDODGE = 0x9299, + GL_COLORBURN = 0x929A, + GL_HARDLIGHT = 0x929B, + GL_SOFTLIGHT = 0x929C, + GL_DIFFERENCE = 0x929E, + GL_EXCLUSION = 0x92A0, + GL_HSL_HUE = 0x92AD, + GL_HSL_SATURATION = 0x92AE, + GL_HSL_COLOR = 0x92AF, + GL_HSL_LUMINOSITY = 0x92B0, + GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242, + GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243, + GL_DEBUG_CALLBACK_FUNCTION = 0x8244, + GL_DEBUG_CALLBACK_USER_PARAM = 0x8245, + GL_DEBUG_SOURCE_API = 0x8246, + GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247, + GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248, + GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249, + GL_DEBUG_SOURCE_APPLICATION = 0x824A, + GL_DEBUG_SOURCE_OTHER = 0x824B, + GL_DEBUG_TYPE_ERROR = 0x824C, + GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D, + GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E, + GL_DEBUG_TYPE_PORTABILITY = 0x824F, + GL_DEBUG_TYPE_PERFORMANCE = 0x8250, + GL_DEBUG_TYPE_OTHER = 0x8251, + GL_DEBUG_TYPE_MARKER = 0x8268, + GL_DEBUG_TYPE_PUSH_GROUP = 0x8269, + GL_DEBUG_TYPE_POP_GROUP = 0x826A, + GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B, + GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C, + GL_DEBUG_GROUP_STACK_DEPTH = 0x826D, + GL_BUFFER = 0x82E0, + GL_SHADER = 0x82E1, + GL_PROGRAM = 0x82E2, + GL_VERTEX_ARRAY = 0x8074, + GL_QUERY = 0x82E3, + GL_PROGRAM_PIPELINE = 0x82E4, + GL_SAMPLER = 0x82E6, + GL_MAX_LABEL_LENGTH = 0x82E8, + GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143, + GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144, + GL_DEBUG_LOGGED_MESSAGES = 0x9145, + GL_DEBUG_SEVERITY_HIGH = 0x9146, + GL_DEBUG_SEVERITY_MEDIUM = 0x9147, + GL_DEBUG_SEVERITY_LOW = 0x9148, + GL_DEBUG_OUTPUT = 0x92E0, + GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002, + GL_STACK_OVERFLOW = 0x0503, + GL_STACK_UNDERFLOW = 0x0504, + GL_GEOMETRY_SHADER = 0x8DD9, + GL_GEOMETRY_SHADER_BIT = 0x00000004, + GL_GEOMETRY_VERTICES_OUT = 0x8916, + GL_GEOMETRY_INPUT_TYPE = 0x8917, + GL_GEOMETRY_OUTPUT_TYPE = 0x8918, + GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F, + GL_LAYER_PROVOKING_VERTEX = 0x825E, + GL_LINES_ADJACENCY = 0x000A, + GL_LINE_STRIP_ADJACENCY = 0x000B, + GL_TRIANGLES_ADJACENCY = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY = 0x000D, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF, + GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C, + GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32, + GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123, + GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124, + GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1, + GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29, + GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF, + GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5, + GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD, + GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7, + GL_FIRST_VERTEX_CONVENTION = 0x8E4D, + GL_LAST_VERTEX_CONVENTION = 0x8E4E, + GL_UNDEFINED_VERTEX = 0x8260, + GL_PRIMITIVES_GENERATED = 0x8C87, + GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312, + GL_MAX_FRAMEBUFFER_LAYERS = 0x9317, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7, + GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309, + GL_PRIMITIVE_BOUNDING_BOX = 0x92BE, + GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004, + GL_CONTEXT_FLAGS = 0x821E, + GL_LOSE_CONTEXT_ON_RESET = 0x8252, + GL_GUILTY_CONTEXT_RESET = 0x8253, + GL_INNOCENT_CONTEXT_RESET = 0x8254, + GL_UNKNOWN_CONTEXT_RESET = 0x8255, + GL_RESET_NOTIFICATION_STRATEGY = 0x8256, + GL_NO_RESET_NOTIFICATION = 0x8261, + GL_CONTEXT_LOST = 0x0507, + GL_SAMPLE_SHADING = 0x8C36, + GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37, + GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B, + GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C, + GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D, + GL_PATCHES = 0x000E, + GL_PATCH_VERTICES = 0x8E72, + GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75, + GL_TESS_GEN_MODE = 0x8E76, + GL_TESS_GEN_SPACING = 0x8E77, + GL_TESS_GEN_VERTEX_ORDER = 0x8E78, + GL_TESS_GEN_POINT_MODE = 0x8E79, + GL_ISOLINES = 0x8E7A, + GL_QUADS = 0x0007, + GL_FRACTIONAL_ODD = 0x8E7B, + GL_FRACTIONAL_EVEN = 0x8E7C, + GL_MAX_PATCH_VERTICES = 0x8E7D, + GL_MAX_TESS_GEN_LEVEL = 0x8E7E, + GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F, + GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80, + GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81, + GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82, + GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83, + GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84, + GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85, + GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86, + GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89, + GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A, + GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C, + GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D, + GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E, + GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4, + GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB, + GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC, + GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8, + GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9, + GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221, + GL_IS_PER_PATCH = 0x92E7, + GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307, + GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308, + GL_TESS_CONTROL_SHADER = 0x8E88, + GL_TESS_EVALUATION_SHADER = 0x8E87, + GL_TESS_CONTROL_SHADER_BIT = 0x00000008, + GL_TESS_EVALUATION_SHADER_BIT = 0x00000010, + GL_TEXTURE_BORDER_COLOR = 0x1004, + GL_CLAMP_TO_BORDER = 0x812D, + GL_TEXTURE_BUFFER = 0x8C2A, + GL_TEXTURE_BUFFER_BINDING = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D, + GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F, + GL_SAMPLER_BUFFER = 0x8DC2, + GL_INT_SAMPLER_BUFFER = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8, + GL_IMAGE_BUFFER = 0x9051, + GL_INT_IMAGE_BUFFER = 0x905C, + GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067, + GL_TEXTURE_BUFFER_OFFSET = 0x919D, + GL_TEXTURE_BUFFER_SIZE = 0x919E, + GL_COMPRESSED_RGBA_ASTC_4x4 = 0x93B0, + GL_COMPRESSED_RGBA_ASTC_5x4 = 0x93B1, + GL_COMPRESSED_RGBA_ASTC_5x5 = 0x93B2, + GL_COMPRESSED_RGBA_ASTC_6x5 = 0x93B3, + GL_COMPRESSED_RGBA_ASTC_6x6 = 0x93B4, + GL_COMPRESSED_RGBA_ASTC_8x5 = 0x93B5, + GL_COMPRESSED_RGBA_ASTC_8x6 = 0x93B6, + GL_COMPRESSED_RGBA_ASTC_8x8 = 0x93B7, + GL_COMPRESSED_RGBA_ASTC_10x5 = 0x93B8, + GL_COMPRESSED_RGBA_ASTC_10x6 = 0x93B9, + GL_COMPRESSED_RGBA_ASTC_10x8 = 0x93BA, + GL_COMPRESSED_RGBA_ASTC_10x10 = 0x93BB, + GL_COMPRESSED_RGBA_ASTC_12x10 = 0x93BC, + GL_COMPRESSED_RGBA_ASTC_12x12 = 0x93BD, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD, + GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009, + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A, + GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C, + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D, + GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E, + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F, + GL_IMAGE_CUBE_MAP_ARRAY = 0x9054, + GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F, + GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A, + GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102, + GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105, + GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B, + GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D, +}; +extern void (* const& glBlendBarrier) (); +extern void (* const& glCopyImageSubData) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +extern void (* const& glDebugMessageControl) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +extern void (* const& glDebugMessageInsert) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +extern void (* const& glDebugMessageCallback) (GLDEBUGPROC callback, const void *userParam); +extern GLuint (* const& glGetDebugMessageLog) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +extern void (* const& glPushDebugGroup) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +extern void (* const& glPopDebugGroup) (); +extern void (* const& glObjectLabel) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectLabel) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +extern void (* const& glObjectPtrLabel) (const void *ptr, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectPtrLabel) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +extern void (* const& glGetPointerv) (GLenum pname, void **params); +extern void (* const& glEnablei) (GLenum target, GLuint index); +extern void (* const& glDisablei) (GLenum target, GLuint index); +extern void (* const& glBlendEquationi) (GLuint buf, GLenum mode); +extern void (* const& glBlendEquationSeparatei) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +extern void (* const& glBlendFunci) (GLuint buf, GLenum src, GLenum dst); +extern void (* const& glBlendFuncSeparatei) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +extern void (* const& glColorMaski) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +extern GLboolean (* const& glIsEnabledi) (GLenum target, GLuint index); +extern void (* const& glDrawElementsBaseVertex) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawRangeElementsBaseVertex) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawElementsInstancedBaseVertex) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +extern void (* const& glFramebufferTexture) (GLenum target, GLenum attachment, GLuint texture, GLint level); +extern void (* const& glPrimitiveBoundingBox) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +extern GLenum (* const& glGetGraphicsResetStatus) (); +extern void (* const& glReadnPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +extern void (* const& glGetnUniformfv) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +extern void (* const& glGetnUniformiv) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +extern void (* const& glGetnUniformuiv) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +extern void (* const& glMinSampleShading) (GLfloat value); +extern void (* const& glPatchParameteri) (GLenum pname, GLint value); +extern void (* const& glTexParameterIiv) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexParameterIuiv) (GLenum target, GLenum pname, const GLuint *params); +extern void (* const& glGetTexParameterIiv) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTexParameterIuiv) (GLenum target, GLenum pname, GLuint *params); +extern void (* const& glSamplerParameterIiv) (GLuint sampler, GLenum pname, const GLint *param); +extern void (* const& glSamplerParameterIuiv) (GLuint sampler, GLenum pname, const GLuint *param); +extern void (* const& glGetSamplerParameterIiv) (GLuint sampler, GLenum pname, GLint *params); +extern void (* const& glGetSamplerParameterIuiv) (GLuint sampler, GLenum pname, GLuint *params); +extern void (* const& glTexBuffer) (GLenum target, GLenum internalformat, GLuint buffer); +extern void (* const& glTexBufferRange) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void (* const& glTexStorage3DMultisample) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +#endif + +#ifndef GL_AMD_compressed_3DC_texture +#define GL_AMD_compressed_3DC_texture 1 +enum +{ + GL_3DC_X_AMD = 0x87F9, + GL_3DC_XY_AMD = 0x87FA, +}; +#endif + +#ifndef GL_AMD_compressed_ATC_texture +#define GL_AMD_compressed_ATC_texture 1 +enum +{ + GL_ATC_RGB_AMD = 0x8C92, + GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93, + GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE, +}; +#endif + +#ifndef GL_AMD_framebuffer_multisample_advanced +#define GL_AMD_framebuffer_multisample_advanced 1 +enum +{ + GL_RENDERBUFFER_STORAGE_SAMPLES_AMD = 0x91B2, + GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD = 0x91B3, + GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD = 0x91B4, + GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD = 0x91B5, + GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B6, + GL_SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B7, +}; +extern void (* const& glRenderbufferStorageMultisampleAdvancedAMD) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glNamedRenderbufferStorageMultisampleAdvancedAMD) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +enum +{ + GL_COUNTER_TYPE_AMD = 0x8BC0, + GL_COUNTER_RANGE_AMD = 0x8BC1, + GL_UNSIGNED_INT64_AMD = 0x8BC2, + GL_PERCENTAGE_AMD = 0x8BC3, + GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4, + GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5, + GL_PERFMON_RESULT_AMD = 0x8BC6, +}; +extern void (* const& glGetPerfMonitorGroupsAMD) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +extern void (* const& glGetPerfMonitorCountersAMD) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +extern void (* const& glGetPerfMonitorGroupStringAMD) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +extern void (* const& glGetPerfMonitorCounterStringAMD) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +extern void (* const& glGetPerfMonitorCounterInfoAMD) (GLuint group, GLuint counter, GLenum pname, void *data); +extern void (* const& glGenPerfMonitorsAMD) (GLsizei n, GLuint *monitors); +extern void (* const& glDeletePerfMonitorsAMD) (GLsizei n, GLuint *monitors); +extern void (* const& glSelectPerfMonitorCountersAMD) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +extern void (* const& glBeginPerfMonitorAMD) (GLuint monitor); +extern void (* const& glEndPerfMonitorAMD) (GLuint monitor); +extern void (* const& glGetPerfMonitorCounterDataAMD) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif + +#ifndef GL_AMD_program_binary_Z400 +#define GL_AMD_program_binary_Z400 1 +enum +{ + GL_Z400_BINARY_AMD = 0x8740, +}; +#endif + +#ifndef GL_ANDROID_extension_pack_es31a +#define GL_ANDROID_extension_pack_es31a 1 +#endif + +#ifndef GL_ANGLE_depth_texture +#define GL_ANGLE_depth_texture 1 +enum +{ + GL_DEPTH_STENCIL_OES = 0x84F9, + GL_UNSIGNED_INT_24_8_OES = 0x84FA, + GL_DEPTH_COMPONENT32_OES = 0x81A7, + GL_DEPTH24_STENCIL8_OES = 0x88F0, +}; +#endif + +#ifndef GL_ANGLE_framebuffer_blit +#define GL_ANGLE_framebuffer_blit 1 +enum +{ + GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8, + GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9, + GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6, + GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA, +}; +extern void (* const& glBlitFramebufferANGLE) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_ANGLE_framebuffer_multisample 1 +enum +{ + GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56, + GL_MAX_SAMPLES_ANGLE = 0x8D57, +}; +extern void (* const& glRenderbufferStorageMultisampleANGLE) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_ANGLE_instanced_arrays +#define GL_ANGLE_instanced_arrays 1 +enum +{ + GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE, +}; +extern void (* const& glDrawArraysInstancedANGLE) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +extern void (* const& glDrawElementsInstancedANGLE) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +extern void (* const& glVertexAttribDivisorANGLE) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_ANGLE_pack_reverse_row_order 1 +enum +{ + GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4, +}; +#endif + +#ifndef GL_ANGLE_program_binary +#define GL_ANGLE_program_binary 1 +enum +{ + GL_PROGRAM_BINARY_ANGLE = 0x93A6, +}; +#endif + +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_ANGLE_texture_compression_dxt3 1 +enum +{ + GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2, +}; +#endif + +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_ANGLE_texture_compression_dxt5 1 +enum +{ + GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3, +}; +#endif + +#ifndef GL_ANGLE_texture_usage +#define GL_ANGLE_texture_usage 1 +enum +{ + GL_TEXTURE_USAGE_ANGLE = 0x93A2, + GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3, +}; +#endif + +#ifndef GL_ANGLE_translated_shader_source +#define GL_ANGLE_translated_shader_source 1 +enum +{ + GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0, +}; +extern void (* const& glGetTranslatedShaderSourceANGLE) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +#endif + +#ifndef GL_APPLE_clip_distance +#define GL_APPLE_clip_distance 1 +enum +{ + GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32, + GL_CLIP_DISTANCE0_APPLE = 0x3000, + GL_CLIP_DISTANCE1_APPLE = 0x3001, + GL_CLIP_DISTANCE2_APPLE = 0x3002, + GL_CLIP_DISTANCE3_APPLE = 0x3003, + GL_CLIP_DISTANCE4_APPLE = 0x3004, + GL_CLIP_DISTANCE5_APPLE = 0x3005, + GL_CLIP_DISTANCE6_APPLE = 0x3006, + GL_CLIP_DISTANCE7_APPLE = 0x3007, +}; +#endif + +#ifndef GL_APPLE_color_buffer_packed_float +#define GL_APPLE_color_buffer_packed_float 1 +#endif + +#ifndef GL_APPLE_copy_texture_levels +#define GL_APPLE_copy_texture_levels 1 +extern void (* const& glCopyTextureLevelsAPPLE) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); +#endif + +#ifndef GL_APPLE_framebuffer_multisample +#define GL_APPLE_framebuffer_multisample 1 +enum +{ + GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56, + GL_MAX_SAMPLES_APPLE = 0x8D57, + GL_READ_FRAMEBUFFER_APPLE = 0x8CA8, + GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9, + GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6, + GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA, +}; +extern void (* const& glRenderbufferStorageMultisampleAPPLE) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glResolveMultisampleFramebufferAPPLE) (); +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +enum +{ + GL_RGB_422_APPLE = 0x8A1F, + GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA, + GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB, + GL_RGB_RAW_422_APPLE = 0x8A51, +}; +#endif + +#ifndef GL_APPLE_sync +#define GL_APPLE_sync 1 +enum +{ + GL_SYNC_OBJECT_APPLE = 0x8A53, + GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111, + GL_OBJECT_TYPE_APPLE = 0x9112, + GL_SYNC_CONDITION_APPLE = 0x9113, + GL_SYNC_STATUS_APPLE = 0x9114, + GL_SYNC_FLAGS_APPLE = 0x9115, + GL_SYNC_FENCE_APPLE = 0x9116, + GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117, + GL_UNSIGNALED_APPLE = 0x9118, + GL_SIGNALED_APPLE = 0x9119, + GL_ALREADY_SIGNALED_APPLE = 0x911A, + GL_TIMEOUT_EXPIRED_APPLE = 0x911B, + GL_CONDITION_SATISFIED_APPLE = 0x911C, + GL_WAIT_FAILED_APPLE = 0x911D, + GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001, + GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF, +}; +extern GLsync (* const& glFenceSyncAPPLE) (GLenum condition, GLbitfield flags); +extern GLboolean (* const& glIsSyncAPPLE) (GLsync sync); +extern void (* const& glDeleteSyncAPPLE) (GLsync sync); +extern GLenum (* const& glClientWaitSyncAPPLE) (GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void (* const& glWaitSyncAPPLE) (GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void (* const& glGetInteger64vAPPLE) (GLenum pname, GLint64 *params); +extern void (* const& glGetSyncivAPPLE) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +#endif + +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_APPLE_texture_format_BGRA8888 1 +enum +{ + GL_BGRA_EXT = 0x80E1, + GL_BGRA8_EXT = 0x93A1, +}; +#endif + +#ifndef GL_APPLE_texture_max_level +#define GL_APPLE_texture_max_level 1 +enum +{ + GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D, +}; +#endif + +#ifndef GL_APPLE_texture_packed_float +#define GL_APPLE_texture_packed_float 1 +enum +{ + GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B, + GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E, + GL_R11F_G11F_B10F_APPLE = 0x8C3A, + GL_RGB9_E5_APPLE = 0x8C3D, +}; +#endif + +#ifndef GL_ARM_mali_program_binary +#define GL_ARM_mali_program_binary 1 +enum +{ + GL_MALI_PROGRAM_BINARY_ARM = 0x8F61, +}; +#endif + +#ifndef GL_ARM_mali_shader_binary +#define GL_ARM_mali_shader_binary 1 +enum +{ + GL_MALI_SHADER_BINARY_ARM = 0x8F60, +}; +#endif + +#ifndef GL_ARM_rgba8 +#define GL_ARM_rgba8 1 +#endif + +#ifndef GL_ARM_shader_framebuffer_fetch +#define GL_ARM_shader_framebuffer_fetch 1 +enum +{ + GL_FETCH_PER_SAMPLE_ARM = 0x8F65, + GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66, +}; +#endif + +#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil +#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 +#endif + +#ifndef GL_ARM_texture_unnormalized_coordinates +#define GL_ARM_texture_unnormalized_coordinates 1 +enum +{ + GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM = 0x8F6A, +}; +#endif + +#ifndef GL_DMP_program_binary +#define GL_DMP_program_binary 1 +enum +{ + GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251, + GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252, + GL_DMP_PROGRAM_BINARY_DMP = 0x9253, +}; +#endif + +#ifndef GL_DMP_shader_binary +#define GL_DMP_shader_binary 1 +enum +{ + GL_SHADER_BINARY_DMP = 0x9250, +}; +#endif + +#ifndef GL_EXT_EGL_image_array +#define GL_EXT_EGL_image_array 1 +#endif + +#ifndef GL_EXT_EGL_image_storage +#define GL_EXT_EGL_image_storage 1 +extern void (* const& glEGLImageTargetTexStorageEXT) (GLenum target, GLeglImageOES image, const GLint* attrib_list); +extern void (* const& glEGLImageTargetTextureStorageEXT) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); +#endif + +#ifndef GL_EXT_YUV_target +#define GL_EXT_YUV_target 1 +enum +{ + GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT = 0x8BE7, + GL_TEXTURE_EXTERNAL_OES = 0x8D65, + GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67, + GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68, +}; +#endif + +#ifndef GL_EXT_base_instance +#define GL_EXT_base_instance 1 +extern void (* const& glDrawArraysInstancedBaseInstanceEXT) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +extern void (* const& glDrawElementsInstancedBaseInstanceEXT) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +extern void (* const& glDrawElementsInstancedBaseVertexBaseInstanceEXT) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +#endif + +#ifndef GL_EXT_blend_func_extended +#define GL_EXT_blend_func_extended 1 +enum +{ + GL_SRC1_COLOR_EXT = 0x88F9, + GL_SRC1_ALPHA_EXT = 0x8589, + GL_ONE_MINUS_SRC1_COLOR_EXT = 0x88FA, + GL_ONE_MINUS_SRC1_ALPHA_EXT = 0x88FB, + GL_SRC_ALPHA_SATURATE_EXT = 0x0308, + GL_LOCATION_INDEX_EXT = 0x930F, + GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT = 0x88FC, +}; +extern void (* const& glBindFragDataLocationIndexedEXT) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +extern void (* const& glBindFragDataLocationEXT) (GLuint program, GLuint color, const GLchar *name); +extern GLint (* const& glGetProgramResourceLocationIndexEXT) (GLuint program, GLenum programInterface, const GLchar *name); +extern GLint (* const& glGetFragDataIndexEXT) (GLuint program, const GLchar *name); +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +enum +{ + GL_MIN_EXT = 0x8007, + GL_MAX_EXT = 0x8008, + GL_FUNC_ADD_EXT = 0x8006, + GL_BLEND_EQUATION_EXT = 0x8009, +}; +extern void (* const& glBlendEquationEXT) (GLenum mode); +#endif + +#ifndef GL_EXT_buffer_storage +#define GL_EXT_buffer_storage 1 +enum +{ + GL_MAP_PERSISTENT_BIT_EXT = 0x0040, + GL_MAP_COHERENT_BIT_EXT = 0x0080, + GL_DYNAMIC_STORAGE_BIT_EXT = 0x0100, + GL_CLIENT_STORAGE_BIT_EXT = 0x0200, + GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT = 0x00004000, + GL_BUFFER_IMMUTABLE_STORAGE_EXT = 0x821F, + GL_BUFFER_STORAGE_FLAGS_EXT = 0x8220, +}; +extern void (* const& glBufferStorageEXT) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +#endif + +#ifndef GL_EXT_clear_texture +#define GL_EXT_clear_texture 1 +extern void (* const& glClearTexImageEXT) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +extern void (* const& glClearTexSubImageEXT) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); +#endif + +#ifndef GL_EXT_clip_control +#define GL_EXT_clip_control 1 +enum +{ + GL_LOWER_LEFT_EXT = 0x8CA1, + GL_UPPER_LEFT_EXT = 0x8CA2, + GL_NEGATIVE_ONE_TO_ONE_EXT = 0x935E, + GL_ZERO_TO_ONE_EXT = 0x935F, + GL_CLIP_ORIGIN_EXT = 0x935C, + GL_CLIP_DEPTH_MODE_EXT = 0x935D, +}; +extern void (* const& glClipControlEXT) (GLenum origin, GLenum depth); +#endif + +#ifndef GL_EXT_clip_cull_distance +#define GL_EXT_clip_cull_distance 1 +enum +{ + GL_MAX_CLIP_DISTANCES_EXT = 0x0D32, + GL_MAX_CULL_DISTANCES_EXT = 0x82F9, + GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT = 0x82FA, + GL_CLIP_DISTANCE0_EXT = 0x3000, + GL_CLIP_DISTANCE1_EXT = 0x3001, + GL_CLIP_DISTANCE2_EXT = 0x3002, + GL_CLIP_DISTANCE3_EXT = 0x3003, + GL_CLIP_DISTANCE4_EXT = 0x3004, + GL_CLIP_DISTANCE5_EXT = 0x3005, + GL_CLIP_DISTANCE6_EXT = 0x3006, + GL_CLIP_DISTANCE7_EXT = 0x3007, +}; +#endif + +#ifndef GL_EXT_color_buffer_float +#define GL_EXT_color_buffer_float 1 +#endif + +#ifndef GL_EXT_color_buffer_half_float +#define GL_EXT_color_buffer_half_float 1 +enum +{ + GL_RGBA16F_EXT = 0x881A, + GL_RGB16F_EXT = 0x881B, + GL_RG16F_EXT = 0x822F, + GL_R16F_EXT = 0x822D, + GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211, + GL_UNSIGNED_NORMALIZED_EXT = 0x8C17, +}; +#endif + +#ifndef GL_EXT_conservative_depth +#define GL_EXT_conservative_depth 1 +#endif + +#ifndef GL_EXT_copy_image +#define GL_EXT_copy_image 1 +extern void (* const& glCopyImageSubDataEXT) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +#endif + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +enum +{ + GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F, + GL_PROGRAM_OBJECT_EXT = 0x8B40, + GL_SHADER_OBJECT_EXT = 0x8B48, + GL_BUFFER_OBJECT_EXT = 0x9151, + GL_QUERY_OBJECT_EXT = 0x9153, + GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154, +}; +extern void (* const& glLabelObjectEXT) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectLabelEXT) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +extern void (* const& glInsertEventMarkerEXT) (GLsizei length, const GLchar *marker); +extern void (* const& glPushGroupMarkerEXT) (GLsizei length, const GLchar *marker); +extern void (* const& glPopGroupMarkerEXT) (); +#endif + +#ifndef GL_EXT_depth_clamp +#define GL_EXT_depth_clamp 1 +enum +{ + GL_DEPTH_CLAMP_EXT = 0x864F, +}; +#endif + +#ifndef GL_EXT_discard_framebuffer +#define GL_EXT_discard_framebuffer 1 +enum +{ + GL_COLOR_EXT = 0x1800, + GL_DEPTH_EXT = 0x1801, + GL_STENCIL_EXT = 0x1802, +}; +extern void (* const& glDiscardFramebufferEXT) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +#endif + +#ifndef GL_EXT_disjoint_timer_query +#define GL_EXT_disjoint_timer_query 1 +enum +{ + GL_QUERY_COUNTER_BITS_EXT = 0x8864, + GL_CURRENT_QUERY_EXT = 0x8865, + GL_QUERY_RESULT_EXT = 0x8866, + GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867, + GL_TIME_ELAPSED_EXT = 0x88BF, + GL_TIMESTAMP_EXT = 0x8E28, + GL_GPU_DISJOINT_EXT = 0x8FBB, +}; +extern void (* const& glGenQueriesEXT) (GLsizei n, GLuint *ids); +extern void (* const& glDeleteQueriesEXT) (GLsizei n, const GLuint *ids); +extern GLboolean (* const& glIsQueryEXT) (GLuint id); +extern void (* const& glBeginQueryEXT) (GLenum target, GLuint id); +extern void (* const& glEndQueryEXT) (GLenum target); +extern void (* const& glQueryCounterEXT) (GLuint id, GLenum target); +extern void (* const& glGetQueryivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetQueryObjectivEXT) (GLuint id, GLenum pname, GLint *params); +extern void (* const& glGetQueryObjectuivEXT) (GLuint id, GLenum pname, GLuint *params); +extern void (* const& glGetQueryObjecti64vEXT) (GLuint id, GLenum pname, GLint64 *params); +extern void (* const& glGetQueryObjectui64vEXT) (GLuint id, GLenum pname, GLuint64 *params); +extern void (* const& glGetInteger64vEXT) (GLenum pname, GLint64 *data); +#endif + +#ifndef GL_EXT_draw_buffers +#define GL_EXT_draw_buffers 1 +enum +{ + GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF, + GL_MAX_DRAW_BUFFERS_EXT = 0x8824, + GL_DRAW_BUFFER0_EXT = 0x8825, + GL_DRAW_BUFFER1_EXT = 0x8826, + GL_DRAW_BUFFER2_EXT = 0x8827, + GL_DRAW_BUFFER3_EXT = 0x8828, + GL_DRAW_BUFFER4_EXT = 0x8829, + GL_DRAW_BUFFER5_EXT = 0x882A, + GL_DRAW_BUFFER6_EXT = 0x882B, + GL_DRAW_BUFFER7_EXT = 0x882C, + GL_DRAW_BUFFER8_EXT = 0x882D, + GL_DRAW_BUFFER9_EXT = 0x882E, + GL_DRAW_BUFFER10_EXT = 0x882F, + GL_DRAW_BUFFER11_EXT = 0x8830, + GL_DRAW_BUFFER12_EXT = 0x8831, + GL_DRAW_BUFFER13_EXT = 0x8832, + GL_DRAW_BUFFER14_EXT = 0x8833, + GL_DRAW_BUFFER15_EXT = 0x8834, + GL_COLOR_ATTACHMENT0_EXT = 0x8CE0, + GL_COLOR_ATTACHMENT1_EXT = 0x8CE1, + GL_COLOR_ATTACHMENT2_EXT = 0x8CE2, + GL_COLOR_ATTACHMENT3_EXT = 0x8CE3, + GL_COLOR_ATTACHMENT4_EXT = 0x8CE4, + GL_COLOR_ATTACHMENT5_EXT = 0x8CE5, + GL_COLOR_ATTACHMENT6_EXT = 0x8CE6, + GL_COLOR_ATTACHMENT7_EXT = 0x8CE7, + GL_COLOR_ATTACHMENT8_EXT = 0x8CE8, + GL_COLOR_ATTACHMENT9_EXT = 0x8CE9, + GL_COLOR_ATTACHMENT10_EXT = 0x8CEA, + GL_COLOR_ATTACHMENT11_EXT = 0x8CEB, + GL_COLOR_ATTACHMENT12_EXT = 0x8CEC, + GL_COLOR_ATTACHMENT13_EXT = 0x8CED, + GL_COLOR_ATTACHMENT14_EXT = 0x8CEE, + GL_COLOR_ATTACHMENT15_EXT = 0x8CEF, +}; +extern void (* const& glDrawBuffersEXT) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_EXT_draw_buffers_indexed +#define GL_EXT_draw_buffers_indexed 1 +extern void (* const& glEnableiEXT) (GLenum target, GLuint index); +extern void (* const& glDisableiEXT) (GLenum target, GLuint index); +extern void (* const& glBlendEquationiEXT) (GLuint buf, GLenum mode); +extern void (* const& glBlendEquationSeparateiEXT) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +extern void (* const& glBlendFunciEXT) (GLuint buf, GLenum src, GLenum dst); +extern void (* const& glBlendFuncSeparateiEXT) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +extern void (* const& glColorMaskiEXT) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +extern GLboolean (* const& glIsEnablediEXT) (GLenum target, GLuint index); +#endif + +#ifndef GL_EXT_draw_elements_base_vertex +#define GL_EXT_draw_elements_base_vertex 1 +extern void (* const& glDrawElementsBaseVertexEXT) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawRangeElementsBaseVertexEXT) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawElementsInstancedBaseVertexEXT) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +extern void (* const& glMultiDrawElementsBaseVertexEXT) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +#endif + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +extern void (* const& glDrawArraysInstancedEXT) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +extern void (* const& glDrawElementsInstancedEXT) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_draw_transform_feedback +#define GL_EXT_draw_transform_feedback 1 +extern void (* const& glDrawTransformFeedbackEXT) (GLenum mode, GLuint id); +extern void (* const& glDrawTransformFeedbackInstancedEXT) (GLenum mode, GLuint id, GLsizei instancecount); +#endif + +#ifndef GL_EXT_external_buffer +#define GL_EXT_external_buffer 1 +extern void (* const& glBufferStorageExternalEXT) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +extern void (* const& glNamedBufferStorageExternalEXT) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +#endif + +#ifndef GL_EXT_float_blend +#define GL_EXT_float_blend 1 +#endif + +#ifndef GL_EXT_geometry_point_size +#define GL_EXT_geometry_point_size 1 +#endif + +#ifndef GL_EXT_geometry_shader +#define GL_EXT_geometry_shader 1 +enum +{ + GL_GEOMETRY_SHADER_EXT = 0x8DD9, + GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004, + GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916, + GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917, + GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918, + GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F, + GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E, + GL_LINES_ADJACENCY_EXT = 0x000A, + GL_LINE_STRIP_ADJACENCY_EXT = 0x000B, + GL_TRIANGLES_ADJACENCY_EXT = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF, + GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C, + GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32, + GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123, + GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124, + GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1, + GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29, + GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF, + GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5, + GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD, + GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7, + GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D, + GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E, + GL_UNDEFINED_VERTEX_EXT = 0x8260, + GL_PRIMITIVES_GENERATED_EXT = 0x8C87, + GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312, + GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7, + GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309, +}; +extern void (* const& glFramebufferTextureEXT) (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif + +#ifndef GL_EXT_gpu_shader5 +#define GL_EXT_gpu_shader5 1 +#endif + +#ifndef GL_EXT_instanced_arrays +#define GL_EXT_instanced_arrays 1 +enum +{ + GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE, +}; +extern void (* const& glVertexAttribDivisorEXT) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_EXT_map_buffer_range +#define GL_EXT_map_buffer_range 1 +enum +{ + GL_MAP_READ_BIT_EXT = 0x0001, + GL_MAP_WRITE_BIT_EXT = 0x0002, + GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004, + GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008, + GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010, + GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020, +}; +extern void * (* const& glMapBufferRangeEXT) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +extern void (* const& glFlushMappedBufferRangeEXT) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +#ifndef GL_EXT_memory_object +#define GL_EXT_memory_object 1 +enum +{ + GL_TEXTURE_TILING_EXT = 0x9580, + GL_DEDICATED_MEMORY_OBJECT_EXT = 0x9581, + GL_PROTECTED_MEMORY_OBJECT_EXT = 0x959B, + GL_NUM_TILING_TYPES_EXT = 0x9582, + GL_TILING_TYPES_EXT = 0x9583, + GL_OPTIMAL_TILING_EXT = 0x9584, + GL_LINEAR_TILING_EXT = 0x9585, + GL_NUM_DEVICE_UUIDS_EXT = 0x9596, + GL_DEVICE_UUID_EXT = 0x9597, + GL_DRIVER_UUID_EXT = 0x9598, + GL_UUID_SIZE_EXT = 16, +}; +extern void (* const& glGetUnsignedBytevEXT) (GLenum pname, GLubyte *data); +extern void (* const& glGetUnsignedBytei_vEXT) (GLenum target, GLuint index, GLubyte *data); +extern void (* const& glDeleteMemoryObjectsEXT) (GLsizei n, const GLuint *memoryObjects); +extern GLboolean (* const& glIsMemoryObjectEXT) (GLuint memoryObject); +extern void (* const& glCreateMemoryObjectsEXT) (GLsizei n, GLuint *memoryObjects); +extern void (* const& glMemoryObjectParameterivEXT) (GLuint memoryObject, GLenum pname, const GLint *params); +extern void (* const& glGetMemoryObjectParameterivEXT) (GLuint memoryObject, GLenum pname, GLint *params); +extern void (* const& glTexStorageMem2DEXT) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem2DMultisampleEXT) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem3DEXT) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem3DMultisampleEXT) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glBufferStorageMemEXT) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem2DEXT) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem2DMultisampleEXT) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem3DEXT) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem3DMultisampleEXT) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +extern void (* const& glNamedBufferStorageMemEXT) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +extern void (* const& glTexStorageMem1DEXT) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +extern void (* const& glTextureStorageMem1DEXT) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +#endif + +#ifndef GL_EXT_memory_object_fd +#define GL_EXT_memory_object_fd 1 +enum +{ + GL_HANDLE_TYPE_OPAQUE_FD_EXT = 0x9586, +}; +extern void (* const& glImportMemoryFdEXT) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); +#endif + +#ifndef GL_EXT_memory_object_win32 +#define GL_EXT_memory_object_win32 1 +enum +{ + GL_HANDLE_TYPE_OPAQUE_WIN32_EXT = 0x9587, + GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT = 0x9588, + GL_DEVICE_LUID_EXT = 0x9599, + GL_DEVICE_NODE_MASK_EXT = 0x959A, + GL_LUID_SIZE_EXT = 8, + GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT = 0x9589, + GL_HANDLE_TYPE_D3D12_RESOURCE_EXT = 0x958A, + GL_HANDLE_TYPE_D3D11_IMAGE_EXT = 0x958B, + GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT = 0x958C, +}; +extern void (* const& glImportMemoryWin32HandleEXT) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +extern void (* const& glImportMemoryWin32NameEXT) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +extern void (* const& glMultiDrawArraysEXT) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void (* const& glMultiDrawElementsEXT) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_multi_draw_indirect +#define GL_EXT_multi_draw_indirect 1 +extern void (* const& glMultiDrawArraysIndirectEXT) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +extern void (* const& glMultiDrawElementsIndirectEXT) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +#endif + +#ifndef GL_EXT_multisampled_compatibility +#define GL_EXT_multisampled_compatibility 1 +enum +{ + GL_MULTISAMPLE_EXT = 0x809D, + GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F, +}; +#endif + +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_EXT_multisampled_render_to_texture 1 +enum +{ + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C, + GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56, + GL_MAX_SAMPLES_EXT = 0x8D57, +}; +extern void (* const& glRenderbufferStorageMultisampleEXT) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glFramebufferTexture2DMultisampleEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif + +#ifndef GL_EXT_multisampled_render_to_texture2 +#define GL_EXT_multisampled_render_to_texture2 1 +#endif + +#ifndef GL_EXT_multiview_draw_buffers +#define GL_EXT_multiview_draw_buffers 1 +enum +{ + GL_COLOR_ATTACHMENT_EXT = 0x90F0, + GL_MULTIVIEW_EXT = 0x90F1, + GL_DRAW_BUFFER_EXT = 0x0C01, + GL_READ_BUFFER_EXT = 0x0C02, + GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2, +}; +extern void (* const& glReadBufferIndexedEXT) (GLenum src, GLint index); +extern void (* const& glDrawBuffersIndexedEXT) (GLint n, const GLenum *location, const GLint *indices); +extern void (* const& glGetIntegeri_vEXT) (GLenum target, GLuint index, GLint *data); +#endif + +#ifndef GL_EXT_multiview_tessellation_geometry_shader +#define GL_EXT_multiview_tessellation_geometry_shader 1 +#endif + +#ifndef GL_EXT_multiview_texture_multisample +#define GL_EXT_multiview_texture_multisample 1 +#endif + +#ifndef GL_EXT_multiview_timer_query +#define GL_EXT_multiview_timer_query 1 +#endif + +#ifndef GL_EXT_occlusion_query_boolean +#define GL_EXT_occlusion_query_boolean 1 +enum +{ + GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F, + GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A, +}; +#endif + +#ifndef GL_EXT_polygon_offset_clamp +#define GL_EXT_polygon_offset_clamp 1 +enum +{ + GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B, +}; +extern void (* const& glPolygonOffsetClampEXT) (GLfloat factor, GLfloat units, GLfloat clamp); +#endif + +#ifndef GL_EXT_post_depth_coverage +#define GL_EXT_post_depth_coverage 1 +#endif + +#ifndef GL_EXT_primitive_bounding_box +#define GL_EXT_primitive_bounding_box 1 +enum +{ + GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE, +}; +extern void (* const& glPrimitiveBoundingBoxEXT) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#endif + +#ifndef GL_EXT_protected_textures +#define GL_EXT_protected_textures 1 +enum +{ + GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT = 0x00000010, + GL_TEXTURE_PROTECTED_EXT = 0x8BFA, +}; +#endif + +#ifndef GL_EXT_pvrtc_sRGB +#define GL_EXT_pvrtc_sRGB 1 +enum +{ + GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54, + GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55, + GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56, + GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57, + GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0, + GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1, +}; +#endif + +#ifndef GL_EXT_raster_multisample +#define GL_EXT_raster_multisample 1 +enum +{ + GL_RASTER_MULTISAMPLE_EXT = 0x9327, + GL_RASTER_SAMPLES_EXT = 0x9328, + GL_MAX_RASTER_SAMPLES_EXT = 0x9329, + GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A, + GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B, + GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C, +}; +extern void (* const& glRasterSamplesEXT) (GLuint samples, GLboolean fixedsamplelocations); +#endif + +#ifndef GL_EXT_read_format_bgra +#define GL_EXT_read_format_bgra 1 +enum +{ + GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365, + GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366, +}; +#endif + +#ifndef GL_EXT_render_snorm +#define GL_EXT_render_snorm 1 +enum +{ + GL_R16_SNORM_EXT = 0x8F98, + GL_RG16_SNORM_EXT = 0x8F99, + GL_RGBA16_SNORM_EXT = 0x8F9B, +}; +#endif + +#ifndef GL_EXT_robustness +#define GL_EXT_robustness 1 +enum +{ + GL_GUILTY_CONTEXT_RESET_EXT = 0x8253, + GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254, + GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255, + GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3, + GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256, + GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252, + GL_NO_RESET_NOTIFICATION_EXT = 0x8261, +}; +extern GLenum (* const& glGetGraphicsResetStatusEXT) (); +extern void (* const& glReadnPixelsEXT) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +extern void (* const& glGetnUniformfvEXT) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +extern void (* const& glGetnUniformivEXT) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +#endif + +#ifndef GL_EXT_semaphore +#define GL_EXT_semaphore 1 +enum +{ + GL_LAYOUT_GENERAL_EXT = 0x958D, + GL_LAYOUT_COLOR_ATTACHMENT_EXT = 0x958E, + GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT = 0x958F, + GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT = 0x9590, + GL_LAYOUT_SHADER_READ_ONLY_EXT = 0x9591, + GL_LAYOUT_TRANSFER_SRC_EXT = 0x9592, + GL_LAYOUT_TRANSFER_DST_EXT = 0x9593, + GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT = 0x9530, + GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT = 0x9531, +}; +extern void (* const& glGenSemaphoresEXT) (GLsizei n, GLuint *semaphores); +extern void (* const& glDeleteSemaphoresEXT) (GLsizei n, const GLuint *semaphores); +extern GLboolean (* const& glIsSemaphoreEXT) (GLuint semaphore); +extern void (* const& glSemaphoreParameterui64vEXT) (GLuint semaphore, GLenum pname, const GLuint64 *params); +extern void (* const& glGetSemaphoreParameterui64vEXT) (GLuint semaphore, GLenum pname, GLuint64 *params); +extern void (* const& glWaitSemaphoreEXT) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); +extern void (* const& glSignalSemaphoreEXT) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +#endif + +#ifndef GL_EXT_semaphore_fd +#define GL_EXT_semaphore_fd 1 +extern void (* const& glImportSemaphoreFdEXT) (GLuint semaphore, GLenum handleType, GLint fd); +#endif + +#ifndef GL_EXT_semaphore_win32 +#define GL_EXT_semaphore_win32 1 +enum +{ + GL_HANDLE_TYPE_D3D12_FENCE_EXT = 0x9594, + GL_D3D12_FENCE_VALUE_EXT = 0x9595, +}; +extern void (* const& glImportSemaphoreWin32HandleEXT) (GLuint semaphore, GLenum handleType, void *handle); +extern void (* const& glImportSemaphoreWin32NameEXT) (GLuint semaphore, GLenum handleType, const void *name); +#endif + +#ifndef GL_EXT_sRGB +#define GL_EXT_sRGB 1 +enum +{ + GL_SRGB_EXT = 0x8C40, + GL_SRGB_ALPHA_EXT = 0x8C42, + GL_SRGB8_ALPHA8_EXT = 0x8C43, + GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210, +}; +#endif + +#ifndef GL_EXT_sRGB_write_control +#define GL_EXT_sRGB_write_control 1 +enum +{ + GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9, +}; +#endif + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 +enum +{ + GL_ACTIVE_PROGRAM_EXT = 0x8B8D, + GL_VERTEX_SHADER_BIT_EXT = 0x00000001, + GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002, + GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF, + GL_PROGRAM_SEPARABLE_EXT = 0x8258, + GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A, +}; +extern void (* const& glUseShaderProgramEXT) (GLenum type, GLuint program); +extern void (* const& glActiveProgramEXT) (GLuint program); +extern GLuint (* const& glCreateShaderProgramEXT) (GLenum type, const GLchar *string); +extern void (* const& glActiveShaderProgramEXT) (GLuint pipeline, GLuint program); +extern void (* const& glBindProgramPipelineEXT) (GLuint pipeline); +extern GLuint (* const& glCreateShaderProgramvEXT) (GLenum type, GLsizei count, const GLchar **strings); +extern void (* const& glDeleteProgramPipelinesEXT) (GLsizei n, const GLuint *pipelines); +extern void (* const& glGenProgramPipelinesEXT) (GLsizei n, GLuint *pipelines); +extern void (* const& glGetProgramPipelineInfoLogEXT) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void (* const& glGetProgramPipelineivEXT) (GLuint pipeline, GLenum pname, GLint *params); +extern GLboolean (* const& glIsProgramPipelineEXT) (GLuint pipeline); +extern void (* const& glProgramParameteriEXT) (GLuint program, GLenum pname, GLint value); +extern void (* const& glProgramUniform1fEXT) (GLuint program, GLint location, GLfloat v0); +extern void (* const& glProgramUniform1fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform1iEXT) (GLuint program, GLint location, GLint v0); +extern void (* const& glProgramUniform1ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform2fEXT) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +extern void (* const& glProgramUniform2fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform2iEXT) (GLuint program, GLint location, GLint v0, GLint v1); +extern void (* const& glProgramUniform2ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform3fEXT) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void (* const& glProgramUniform3fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform3iEXT) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +extern void (* const& glProgramUniform3ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniform4fEXT) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void (* const& glProgramUniform4fvEXT) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +extern void (* const& glProgramUniform4iEXT) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void (* const& glProgramUniform4ivEXT) (GLuint program, GLint location, GLsizei count, const GLint *value); +extern void (* const& glProgramUniformMatrix2fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUseProgramStagesEXT) (GLuint pipeline, GLbitfield stages, GLuint program); +extern void (* const& glValidateProgramPipelineEXT) (GLuint pipeline); +extern void (* const& glProgramUniform1uiEXT) (GLuint program, GLint location, GLuint v0); +extern void (* const& glProgramUniform2uiEXT) (GLuint program, GLint location, GLuint v0, GLuint v1); +extern void (* const& glProgramUniform3uiEXT) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void (* const& glProgramUniform4uiEXT) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void (* const& glProgramUniform1uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform2uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform3uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniform4uivEXT) (GLuint program, GLint location, GLsizei count, const GLuint *value); +extern void (* const& glProgramUniformMatrix2x3fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x2fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix2x4fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x2fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix3x4fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glProgramUniformMatrix4x3fvEXT) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 +enum +{ + GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52, +}; +#endif + +#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent +#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 +extern void (* const& glFramebufferFetchBarrierEXT) (); +#endif + +#ifndef GL_EXT_shader_group_vote +#define GL_EXT_shader_group_vote 1 +#endif + +#ifndef GL_EXT_shader_implicit_conversions +#define GL_EXT_shader_implicit_conversions 1 +#endif + +#ifndef GL_EXT_shader_integer_mix +#define GL_EXT_shader_integer_mix 1 +#endif + +#ifndef GL_EXT_shader_io_blocks +#define GL_EXT_shader_io_blocks 1 +#endif + +#ifndef GL_EXT_shader_non_constant_global_initializers +#define GL_EXT_shader_non_constant_global_initializers 1 +#endif + +#ifndef GL_EXT_shader_pixel_local_storage +#define GL_EXT_shader_pixel_local_storage 1 +enum +{ + GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63, + GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67, + GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64, +}; +#endif + +#ifndef GL_EXT_shader_pixel_local_storage2 +#define GL_EXT_shader_pixel_local_storage2 1 +enum +{ + GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT = 0x9650, + GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT = 0x9651, + GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT = 0x9652, +}; +extern void (* const& glFramebufferPixelLocalStorageSizeEXT) (GLuint target, GLsizei size); +extern GLsizei (* const& glGetFramebufferPixelLocalStorageSizeEXT) (GLuint target); +extern void (* const& glClearPixelLocalStorageuiEXT) (GLsizei offset, GLsizei n, const GLuint *values); +#endif + +#ifndef GL_EXT_shader_texture_lod +#define GL_EXT_shader_texture_lod 1 +#endif + +#ifndef GL_EXT_shadow_samplers +#define GL_EXT_shadow_samplers 1 +enum +{ + GL_TEXTURE_COMPARE_MODE_EXT = 0x884C, + GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D, + GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E, + GL_SAMPLER_2D_SHADOW_EXT = 0x8B62, +}; +#endif + +#ifndef GL_EXT_sparse_texture +#define GL_EXT_sparse_texture 1 +enum +{ + GL_TEXTURE_SPARSE_EXT = 0x91A6, + GL_VIRTUAL_PAGE_SIZE_INDEX_EXT = 0x91A7, + GL_NUM_SPARSE_LEVELS_EXT = 0x91AA, + GL_NUM_VIRTUAL_PAGE_SIZES_EXT = 0x91A8, + GL_VIRTUAL_PAGE_SIZE_X_EXT = 0x9195, + GL_VIRTUAL_PAGE_SIZE_Y_EXT = 0x9196, + GL_VIRTUAL_PAGE_SIZE_Z_EXT = 0x9197, + GL_TEXTURE_CUBE_MAP_ARRAY_OES = 0x9009, + GL_MAX_SPARSE_TEXTURE_SIZE_EXT = 0x9198, + GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT = 0x9199, + GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT = 0x919A, + GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT = 0x91A9, +}; +extern void (* const& glTexPageCommitmentEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +#endif + +#ifndef GL_EXT_sparse_texture2 +#define GL_EXT_sparse_texture2 1 +#endif + +#ifndef GL_EXT_tessellation_point_size +#define GL_EXT_tessellation_point_size 1 +#endif + +#ifndef GL_EXT_tessellation_shader +#define GL_EXT_tessellation_shader 1 +enum +{ + GL_PATCHES_EXT = 0x000E, + GL_PATCH_VERTICES_EXT = 0x8E72, + GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75, + GL_TESS_GEN_MODE_EXT = 0x8E76, + GL_TESS_GEN_SPACING_EXT = 0x8E77, + GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78, + GL_TESS_GEN_POINT_MODE_EXT = 0x8E79, + GL_ISOLINES_EXT = 0x8E7A, + GL_QUADS_EXT = 0x0007, + GL_FRACTIONAL_ODD_EXT = 0x8E7B, + GL_FRACTIONAL_EVEN_EXT = 0x8E7C, + GL_MAX_PATCH_VERTICES_EXT = 0x8E7D, + GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E, + GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F, + GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80, + GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81, + GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82, + GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83, + GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84, + GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85, + GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86, + GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89, + GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A, + GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C, + GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D, + GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E, + GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4, + GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB, + GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC, + GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8, + GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9, + GL_IS_PER_PATCH_EXT = 0x92E7, + GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307, + GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308, + GL_TESS_CONTROL_SHADER_EXT = 0x8E88, + GL_TESS_EVALUATION_SHADER_EXT = 0x8E87, + GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008, + GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010, +}; +extern void (* const& glPatchParameteriEXT) (GLenum pname, GLint value); +#endif + +#ifndef GL_EXT_texture_border_clamp +#define GL_EXT_texture_border_clamp 1 +enum +{ + GL_TEXTURE_BORDER_COLOR_EXT = 0x1004, + GL_CLAMP_TO_BORDER_EXT = 0x812D, +}; +extern void (* const& glTexParameterIivEXT) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexParameterIuivEXT) (GLenum target, GLenum pname, const GLuint *params); +extern void (* const& glGetTexParameterIivEXT) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTexParameterIuivEXT) (GLenum target, GLenum pname, GLuint *params); +extern void (* const& glSamplerParameterIivEXT) (GLuint sampler, GLenum pname, const GLint *param); +extern void (* const& glSamplerParameterIuivEXT) (GLuint sampler, GLenum pname, const GLuint *param); +extern void (* const& glGetSamplerParameterIivEXT) (GLuint sampler, GLenum pname, GLint *params); +extern void (* const& glGetSamplerParameterIuivEXT) (GLuint sampler, GLenum pname, GLuint *params); +#endif + +#ifndef GL_EXT_texture_buffer +#define GL_EXT_texture_buffer 1 +enum +{ + GL_TEXTURE_BUFFER_EXT = 0x8C2A, + GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D, + GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F, + GL_SAMPLER_BUFFER_EXT = 0x8DC2, + GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8, + GL_IMAGE_BUFFER_EXT = 0x9051, + GL_INT_IMAGE_BUFFER_EXT = 0x905C, + GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067, + GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D, + GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E, +}; +extern void (* const& glTexBufferEXT) (GLenum target, GLenum internalformat, GLuint buffer); +extern void (* const& glTexBufferRangeEXT) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +#endif + +#ifndef GL_EXT_texture_compression_astc_decode_mode +#define GL_EXT_texture_compression_astc_decode_mode 1 +enum +{ + GL_TEXTURE_ASTC_DECODE_PRECISION_EXT = 0x8F69, +}; +#endif + +#ifndef GL_EXT_texture_compression_bptc +#define GL_EXT_texture_compression_bptc 1 +enum +{ + GL_COMPRESSED_RGBA_BPTC_UNORM_EXT = 0x8E8C, + GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 0x8E8D, + GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 0x8E8E, + GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 0x8E8F, +}; +#endif + +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_EXT_texture_compression_dxt1 1 +enum +{ + GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0, + GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1, +}; +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +enum +{ + GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB, + GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC, + GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD, + GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE, +}; +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +enum +{ + GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2, + GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3, +}; +#endif + +#ifndef GL_EXT_texture_compression_s3tc_srgb +#define GL_EXT_texture_compression_s3tc_srgb 1 +enum +{ + GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F, +}; +#endif + +#ifndef GL_EXT_texture_cube_map_array +#define GL_EXT_texture_cube_map_array 1 +enum +{ + GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009, + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A, + GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C, + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D, + GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E, + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F, + GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054, + GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F, + GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A, +}; +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +enum +{ + GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE, + GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF, +}; +#endif + +#ifndef GL_EXT_texture_filter_minmax +#define GL_EXT_texture_filter_minmax 1 +enum +{ + GL_TEXTURE_REDUCTION_MODE_EXT = 0x9366, + GL_WEIGHTED_AVERAGE_EXT = 0x9367, +}; +#endif + +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_EXT_texture_format_BGRA8888 1 +#endif + +#ifndef GL_EXT_texture_format_sRGB_override +#define GL_EXT_texture_format_sRGB_override 1 +enum +{ + GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT = 0x8FBF, +}; +#endif + +#ifndef GL_EXT_texture_mirror_clamp_to_edge +#define GL_EXT_texture_mirror_clamp_to_edge 1 +enum +{ + GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743, +}; +#endif + +#ifndef GL_EXT_texture_norm16 +#define GL_EXT_texture_norm16 1 +enum +{ + GL_R16_EXT = 0x822A, + GL_RG16_EXT = 0x822C, + GL_RGBA16_EXT = 0x805B, + GL_RGB16_EXT = 0x8054, + GL_RGB16_SNORM_EXT = 0x8F9A, +}; +#endif + +#ifndef GL_EXT_texture_query_lod +#define GL_EXT_texture_query_lod 1 +#endif + +#ifndef GL_EXT_texture_rg +#define GL_EXT_texture_rg 1 +enum +{ + GL_RED_EXT = 0x1903, + GL_RG_EXT = 0x8227, + GL_R8_EXT = 0x8229, + GL_RG8_EXT = 0x822B, +}; +#endif + +#ifndef GL_EXT_texture_sRGB_R8 +#define GL_EXT_texture_sRGB_R8 1 +enum +{ + GL_SR8_EXT = 0x8FBD, +}; +#endif + +#ifndef GL_EXT_texture_sRGB_RG8 +#define GL_EXT_texture_sRGB_RG8 1 +enum +{ + GL_SRG8_EXT = 0x8FBE, +}; +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +enum +{ + GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48, + GL_DECODE_EXT = 0x8A49, + GL_SKIP_DECODE_EXT = 0x8A4A, +}; +#endif + +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 +enum +{ + GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F, + GL_ALPHA8_EXT = 0x803C, + GL_LUMINANCE8_EXT = 0x8040, + GL_LUMINANCE8_ALPHA8_EXT = 0x8045, + GL_RGBA32F_EXT = 0x8814, + GL_RGB32F_EXT = 0x8815, + GL_ALPHA32F_EXT = 0x8816, + GL_LUMINANCE32F_EXT = 0x8818, + GL_LUMINANCE_ALPHA32F_EXT = 0x8819, + GL_ALPHA16F_EXT = 0x881C, + GL_LUMINANCE16F_EXT = 0x881E, + GL_LUMINANCE_ALPHA16F_EXT = 0x881F, + GL_RGB10_A2_EXT = 0x8059, + GL_RGB10_EXT = 0x8052, + GL_R32F_EXT = 0x822E, + GL_RG32F_EXT = 0x8230, +}; +extern void (* const& glTexStorage1DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +extern void (* const& glTexStorage2DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glTexStorage3DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +extern void (* const& glTextureStorage1DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +extern void (* const& glTextureStorage2DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glTextureStorage3DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif + +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_EXT_texture_type_2_10_10_10_REV 1 +enum +{ + GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368, +}; +#endif + +#ifndef GL_EXT_texture_view +#define GL_EXT_texture_view 1 +enum +{ + GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB, + GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC, + GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD, + GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE, +}; +extern void (* const& glTextureViewEXT) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +#endif + +#ifndef GL_NV_timeline_semaphore +#define GL_NV_timeline_semaphore 1 +enum +{ + GL_TIMELINE_SEMAPHORE_VALUE_NV = 0x9595, + GL_SEMAPHORE_TYPE_NV = 0x95B3, + GL_SEMAPHORE_TYPE_BINARY_NV = 0x95B4, + GL_SEMAPHORE_TYPE_TIMELINE_NV = 0x95B5, + GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV = 0x95B6, +}; +extern void (* const& glCreateSemaphoresNV) (GLsizei n, GLuint *semaphores); +extern void (* const& glSemaphoreParameterivNV) (GLuint semaphore, GLenum pname, const GLint *params); +extern void (* const& glGetSemaphoreParameterivNV) (GLuint semaphore, GLenum pname, GLint *params); +#endif + +#ifndef GL_EXT_unpack_subimage +#define GL_EXT_unpack_subimage 1 +enum +{ + GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2, + GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3, + GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4, +}; +#endif + +#ifndef GL_EXT_win32_keyed_mutex +#define GL_EXT_win32_keyed_mutex 1 +extern GLboolean (* const& glAcquireKeyedMutexWin32EXT) (GLuint memory, GLuint64 key, GLuint timeout); +extern GLboolean (* const& glReleaseKeyedMutexWin32EXT) (GLuint memory, GLuint64 key); +#endif + +#ifndef GL_EXT_window_rectangles +#define GL_EXT_window_rectangles 1 +enum +{ + GL_INCLUSIVE_EXT = 0x8F10, + GL_EXCLUSIVE_EXT = 0x8F11, + GL_WINDOW_RECTANGLE_EXT = 0x8F12, + GL_WINDOW_RECTANGLE_MODE_EXT = 0x8F13, + GL_MAX_WINDOW_RECTANGLES_EXT = 0x8F14, + GL_NUM_WINDOW_RECTANGLES_EXT = 0x8F15, +}; +extern void (* const& glWindowRectanglesEXT) (GLenum mode, GLsizei count, const GLint *box); +#endif + +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_FJ_shader_binary_GCCSO 1 +enum +{ + GL_GCCSO_SHADER_BINARY_FJ = 0x9260, +}; +#endif + +#ifndef GL_IMG_bindless_texture +#define GL_IMG_bindless_texture 1 +extern GLuint64 (* const& glGetTextureHandleIMG) (GLuint texture); +extern GLuint64 (* const& glGetTextureSamplerHandleIMG) (GLuint texture, GLuint sampler); +extern void (* const& glUniformHandleui64IMG) (GLint location, GLuint64 value); +extern void (* const& glUniformHandleui64vIMG) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glProgramUniformHandleui64IMG) (GLuint program, GLint location, GLuint64 value); +extern void (* const& glProgramUniformHandleui64vIMG) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +#endif + +#ifndef GL_IMG_framebuffer_downsample +#define GL_IMG_framebuffer_downsample 1 +enum +{ + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG = 0x913C, + GL_NUM_DOWNSAMPLE_SCALES_IMG = 0x913D, + GL_DOWNSAMPLE_SCALES_IMG = 0x913E, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG = 0x913F, +}; +extern void (* const& glFramebufferTexture2DDownsampleIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); +extern void (* const& glFramebufferTextureLayerDownsampleIMG) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); +#endif + +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_IMG_multisampled_render_to_texture 1 +enum +{ + GL_RENDERBUFFER_SAMPLES_IMG = 0x9133, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134, + GL_MAX_SAMPLES_IMG = 0x9135, + GL_TEXTURE_SAMPLES_IMG = 0x9136, +}; +extern void (* const& glRenderbufferStorageMultisampleIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void (* const& glFramebufferTexture2DMultisampleIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif + +#ifndef GL_IMG_program_binary +#define GL_IMG_program_binary 1 +enum +{ + GL_SGX_PROGRAM_BINARY_IMG = 0x9130, +}; +#endif + +#ifndef GL_IMG_read_format +#define GL_IMG_read_format 1 +enum +{ + GL_BGRA_IMG = 0x80E1, + GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365, +}; +#endif + +#ifndef GL_IMG_shader_binary +#define GL_IMG_shader_binary 1 +enum +{ + GL_SGX_BINARY_IMG = 0x8C0A, +}; +#endif + +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_IMG_texture_compression_pvrtc 1 +enum +{ + GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00, + GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01, + GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02, + GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03, +}; +#endif + +#ifndef GL_IMG_texture_compression_pvrtc2 +#define GL_IMG_texture_compression_pvrtc2 1 +enum +{ + GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137, + GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138, +}; +#endif + +#ifndef GL_IMG_texture_filter_cubic +#define GL_IMG_texture_filter_cubic 1 +enum +{ + GL_CUBIC_IMG = 0x9139, + GL_CUBIC_MIPMAP_NEAREST_IMG = 0x913A, + GL_CUBIC_MIPMAP_LINEAR_IMG = 0x913B, +}; +#endif + +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 +enum +{ + GL_CONSERVATIVE_RASTERIZATION_INTEL = 0x83FE, +}; +#endif + +#ifndef GL_INTEL_framebuffer_CMAA +#define GL_INTEL_framebuffer_CMAA 1 +extern void (* const& glApplyFramebufferAttachmentCMAAINTEL) (); +#endif + +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 +enum +{ + GL_BLACKHOLE_RENDER_INTEL = 0x83FC, +}; +#endif + +#ifndef GL_INTEL_performance_query +#define GL_INTEL_performance_query 1 +enum +{ + GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000, + GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001, + GL_PERFQUERY_WAIT_INTEL = 0x83FB, + GL_PERFQUERY_FLUSH_INTEL = 0x83FA, + GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9, + GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0, + GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1, + GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2, + GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3, + GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4, + GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5, + GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8, + GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9, + GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA, + GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB, + GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC, + GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD, + GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE, + GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF, + GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500, +}; +extern void (* const& glBeginPerfQueryINTEL) (GLuint queryHandle); +extern void (* const& glCreatePerfQueryINTEL) (GLuint queryId, GLuint *queryHandle); +extern void (* const& glDeletePerfQueryINTEL) (GLuint queryHandle); +extern void (* const& glEndPerfQueryINTEL) (GLuint queryHandle); +extern void (* const& glGetFirstPerfQueryIdINTEL) (GLuint *queryId); +extern void (* const& glGetNextPerfQueryIdINTEL) (GLuint queryId, GLuint *nextQueryId); +extern void (* const& glGetPerfCounterInfoINTEL) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +extern void (* const& glGetPerfQueryDataINTEL) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); +extern void (* const& glGetPerfQueryIdByNameINTEL) (GLchar *queryName, GLuint *queryId); +extern void (* const& glGetPerfQueryInfoINTEL) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#endif + +#ifndef GL_KHR_blend_equation_advanced +#define GL_KHR_blend_equation_advanced 1 +enum +{ + GL_MULTIPLY_KHR = 0x9294, + GL_SCREEN_KHR = 0x9295, + GL_OVERLAY_KHR = 0x9296, + GL_DARKEN_KHR = 0x9297, + GL_LIGHTEN_KHR = 0x9298, + GL_COLORDODGE_KHR = 0x9299, + GL_COLORBURN_KHR = 0x929A, + GL_HARDLIGHT_KHR = 0x929B, + GL_SOFTLIGHT_KHR = 0x929C, + GL_DIFFERENCE_KHR = 0x929E, + GL_EXCLUSION_KHR = 0x92A0, + GL_HSL_HUE_KHR = 0x92AD, + GL_HSL_SATURATION_KHR = 0x92AE, + GL_HSL_COLOR_KHR = 0x92AF, + GL_HSL_LUMINOSITY_KHR = 0x92B0, +}; +extern void (* const& glBlendBarrierKHR) (); +#endif + +#ifndef GL_KHR_blend_equation_advanced_coherent +#define GL_KHR_blend_equation_advanced_coherent 1 +enum +{ + GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285, +}; +#endif + +#ifndef GL_KHR_context_flush_control +#define GL_KHR_context_flush_control 1 +enum +{ + GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB, + GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC, + GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB, + GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC, +}; +#endif + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 +enum +{ + GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242, + GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243, + GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244, + GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245, + GL_DEBUG_SOURCE_API_KHR = 0x8246, + GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247, + GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248, + GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249, + GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A, + GL_DEBUG_SOURCE_OTHER_KHR = 0x824B, + GL_DEBUG_TYPE_ERROR_KHR = 0x824C, + GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D, + GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E, + GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F, + GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250, + GL_DEBUG_TYPE_OTHER_KHR = 0x8251, + GL_DEBUG_TYPE_MARKER_KHR = 0x8268, + GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269, + GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A, + GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B, + GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C, + GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D, + GL_BUFFER_KHR = 0x82E0, + GL_SHADER_KHR = 0x82E1, + GL_PROGRAM_KHR = 0x82E2, + GL_VERTEX_ARRAY_KHR = 0x8074, + GL_QUERY_KHR = 0x82E3, + GL_PROGRAM_PIPELINE_KHR = 0x82E4, + GL_SAMPLER_KHR = 0x82E6, + GL_MAX_LABEL_LENGTH_KHR = 0x82E8, + GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143, + GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144, + GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145, + GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146, + GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147, + GL_DEBUG_SEVERITY_LOW_KHR = 0x9148, + GL_DEBUG_OUTPUT_KHR = 0x92E0, + GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002, + GL_STACK_OVERFLOW_KHR = 0x0503, + GL_STACK_UNDERFLOW_KHR = 0x0504, + GL_DISPLAY_LIST = 0x82E7, +}; +extern void (* const& glDebugMessageControlKHR) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +extern void (* const& glDebugMessageInsertKHR) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +extern void (* const& glDebugMessageCallbackKHR) (GLDEBUGPROCKHR callback, const void *userParam); +extern GLuint (* const& glGetDebugMessageLogKHR) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +extern void (* const& glPushDebugGroupKHR) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +extern void (* const& glPopDebugGroupKHR) (); +extern void (* const& glObjectLabelKHR) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectLabelKHR) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +extern void (* const& glObjectPtrLabelKHR) (const void *ptr, GLsizei length, const GLchar *label); +extern void (* const& glGetObjectPtrLabelKHR) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +extern void (* const& glGetPointervKHR) (GLenum pname, void **params); +#endif + +#ifndef GL_KHR_no_error +#define GL_KHR_no_error 1 +enum +{ + GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008, +}; +#endif + +#ifndef GL_KHR_robust_buffer_access_behavior +#define GL_KHR_robust_buffer_access_behavior 1 +#endif + +#ifndef GL_KHR_robustness +#define GL_KHR_robustness 1 +enum +{ + GL_CONTEXT_ROBUST_ACCESS = 0x90F3, + GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3, + GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252, + GL_GUILTY_CONTEXT_RESET_KHR = 0x8253, + GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254, + GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255, + GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256, + GL_NO_RESET_NOTIFICATION_KHR = 0x8261, + GL_CONTEXT_LOST_KHR = 0x0507, +}; +extern GLenum (* const& glGetGraphicsResetStatusKHR) (); +extern void (* const& glReadnPixelsKHR) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +extern void (* const& glGetnUniformfvKHR) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +extern void (* const& glGetnUniformivKHR) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +extern void (* const& glGetnUniformuivKHR) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +#endif + +#ifndef GL_KHR_shader_subgroup +#define GL_KHR_shader_subgroup 1 +enum +{ + GL_SUBGROUP_SIZE_KHR = 0x9532, + GL_SUBGROUP_SUPPORTED_STAGES_KHR = 0x9533, + GL_SUBGROUP_SUPPORTED_FEATURES_KHR = 0x9534, + GL_SUBGROUP_QUAD_ALL_STAGES_KHR = 0x9535, + GL_SUBGROUP_FEATURE_BASIC_BIT_KHR = 0x00000001, + GL_SUBGROUP_FEATURE_VOTE_BIT_KHR = 0x00000002, + GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR = 0x00000004, + GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR = 0x00000008, + GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR = 0x00000010, + GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR = 0x00000020, + GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR = 0x00000040, + GL_SUBGROUP_FEATURE_QUAD_BIT_KHR = 0x00000080, +}; +#endif + +#ifndef GL_KHR_texture_compression_astc_hdr +#define GL_KHR_texture_compression_astc_hdr 1 +enum +{ + GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0, + GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1, + GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2, + GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3, + GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4, + GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5, + GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6, + GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7, + GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8, + GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9, + GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA, + GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB, + GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC, + GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD, +}; +#endif + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 +#endif + +#ifndef GL_KHR_texture_compression_astc_sliced_3d +#define GL_KHR_texture_compression_astc_sliced_3d 1 +#endif + +#ifndef GL_KHR_parallel_shader_compile +#define GL_KHR_parallel_shader_compile 1 +enum +{ + GL_MAX_SHADER_COMPILER_THREADS_KHR = 0x91B0, + GL_COMPLETION_STATUS_KHR = 0x91B1, +}; +extern void (* const& glMaxShaderCompilerThreadsKHR) (GLuint count); +#endif + +#ifndef GL_MESA_bgra +#define GL_MESA_bgra 1 +enum +{ + GL_BGR_EXT = 0x80E0, +}; +#endif + +#ifndef GL_MESA_framebuffer_flip_x +#define GL_MESA_framebuffer_flip_x 1 +enum +{ + GL_FRAMEBUFFER_FLIP_X_MESA = 0x8BBC, +}; +#endif + +#ifndef GL_MESA_framebuffer_flip_y +#define GL_MESA_framebuffer_flip_y 1 +enum +{ + GL_FRAMEBUFFER_FLIP_Y_MESA = 0x8BBB, +}; +extern void (* const& glFramebufferParameteriMESA) (GLenum target, GLenum pname, GLint param); +extern void (* const& glGetFramebufferParameterivMESA) (GLenum target, GLenum pname, GLint *params); +#endif + +#ifndef GL_MESA_framebuffer_swap_xy +#define GL_MESA_framebuffer_swap_xy 1 +enum +{ + GL_FRAMEBUFFER_SWAP_XY_MESA = 0x8BBD, +}; +#endif + +#ifndef GL_MESA_program_binary_formats +#define GL_MESA_program_binary_formats 1 +enum +{ + GL_PROGRAM_BINARY_FORMAT_MESA = 0x875F, +}; +#endif + +#ifndef GL_MESA_shader_integer_functions +#define GL_MESA_shader_integer_functions 1 +#endif + +#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers +#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 +#endif + +#ifndef GL_NV_bindless_texture +#define GL_NV_bindless_texture 1 +extern GLuint64 (* const& glGetTextureHandleNV) (GLuint texture); +extern GLuint64 (* const& glGetTextureSamplerHandleNV) (GLuint texture, GLuint sampler); +extern void (* const& glMakeTextureHandleResidentNV) (GLuint64 handle); +extern void (* const& glMakeTextureHandleNonResidentNV) (GLuint64 handle); +extern GLuint64 (* const& glGetImageHandleNV) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +extern void (* const& glMakeImageHandleResidentNV) (GLuint64 handle, GLenum access); +extern void (* const& glMakeImageHandleNonResidentNV) (GLuint64 handle); +extern void (* const& glUniformHandleui64NV) (GLint location, GLuint64 value); +extern void (* const& glUniformHandleui64vNV) (GLint location, GLsizei count, const GLuint64 *value); +extern void (* const& glProgramUniformHandleui64NV) (GLuint program, GLint location, GLuint64 value); +extern void (* const& glProgramUniformHandleui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +extern GLboolean (* const& glIsTextureHandleResidentNV) (GLuint64 handle); +extern GLboolean (* const& glIsImageHandleResidentNV) (GLuint64 handle); +#endif + +#ifndef GL_NV_blend_equation_advanced +#define GL_NV_blend_equation_advanced 1 +enum +{ + GL_BLEND_OVERLAP_NV = 0x9281, + GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280, + GL_BLUE_NV = 0x1905, + GL_COLORBURN_NV = 0x929A, + GL_COLORDODGE_NV = 0x9299, + GL_CONJOINT_NV = 0x9284, + GL_CONTRAST_NV = 0x92A1, + GL_DARKEN_NV = 0x9297, + GL_DIFFERENCE_NV = 0x929E, + GL_DISJOINT_NV = 0x9283, + GL_DST_ATOP_NV = 0x928F, + GL_DST_IN_NV = 0x928B, + GL_DST_NV = 0x9287, + GL_DST_OUT_NV = 0x928D, + GL_DST_OVER_NV = 0x9289, + GL_EXCLUSION_NV = 0x92A0, + GL_GREEN_NV = 0x1904, + GL_HARDLIGHT_NV = 0x929B, + GL_HARDMIX_NV = 0x92A9, + GL_HSL_COLOR_NV = 0x92AF, + GL_HSL_HUE_NV = 0x92AD, + GL_HSL_LUMINOSITY_NV = 0x92B0, + GL_HSL_SATURATION_NV = 0x92AE, + GL_INVERT_OVG_NV = 0x92B4, + GL_INVERT_RGB_NV = 0x92A3, + GL_LIGHTEN_NV = 0x9298, + GL_LINEARBURN_NV = 0x92A5, + GL_LINEARDODGE_NV = 0x92A4, + GL_LINEARLIGHT_NV = 0x92A7, + GL_MINUS_CLAMPED_NV = 0x92B3, + GL_MINUS_NV = 0x929F, + GL_MULTIPLY_NV = 0x9294, + GL_OVERLAY_NV = 0x9296, + GL_PINLIGHT_NV = 0x92A8, + GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2, + GL_PLUS_CLAMPED_NV = 0x92B1, + GL_PLUS_DARKER_NV = 0x9292, + GL_PLUS_NV = 0x9291, + GL_RED_NV = 0x1903, + GL_SCREEN_NV = 0x9295, + GL_SOFTLIGHT_NV = 0x929C, + GL_SRC_ATOP_NV = 0x928E, + GL_SRC_IN_NV = 0x928A, + GL_SRC_NV = 0x9286, + GL_SRC_OUT_NV = 0x928C, + GL_SRC_OVER_NV = 0x9288, + GL_UNCORRELATED_NV = 0x9282, + GL_VIVIDLIGHT_NV = 0x92A6, + GL_XOR_NV = 0x1506, +}; +extern void (* const& glBlendParameteriNV) (GLenum pname, GLint value); +extern void (* const& glBlendBarrierNV) (); +#endif + +#ifndef GL_NV_blend_equation_advanced_coherent +#define GL_NV_blend_equation_advanced_coherent 1 +enum +{ + GL_BLEND_ADVANCED_COHERENT_NV = 0x9285, +}; +#endif + +#ifndef GL_NV_blend_minmax_factor +#define GL_NV_blend_minmax_factor 1 +enum +{ + GL_FACTOR_MIN_AMD = 0x901C, + GL_FACTOR_MAX_AMD = 0x901D, +}; +#endif + +#ifndef GL_NV_clip_space_w_scaling +#define GL_NV_clip_space_w_scaling 1 +enum +{ + GL_VIEWPORT_POSITION_W_SCALE_NV = 0x937C, + GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV = 0x937D, + GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV = 0x937E, +}; +extern void (* const& glViewportPositionWScaleNV) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); +#endif + +#ifndef GL_NV_compute_shader_derivatives +#define GL_NV_compute_shader_derivatives 1 +#endif + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +enum +{ + GL_QUERY_WAIT_NV = 0x8E13, + GL_QUERY_NO_WAIT_NV = 0x8E14, + GL_QUERY_BY_REGION_WAIT_NV = 0x8E15, + GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16, +}; +extern void (* const& glBeginConditionalRenderNV) (GLuint id, GLenum mode); +extern void (* const& glEndConditionalRenderNV) (); +#endif + +#ifndef GL_NV_conservative_raster +#define GL_NV_conservative_raster 1 +enum +{ + GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346, + GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347, + GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348, + GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349, +}; +extern void (* const& glSubpixelPrecisionBiasNV) (GLuint xbits, GLuint ybits); +#endif + +#ifndef GL_NV_conservative_raster_pre_snap +#define GL_NV_conservative_raster_pre_snap 1 +enum +{ + GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV = 0x9550, +}; +#endif + +#ifndef GL_NV_conservative_raster_pre_snap_triangles +#define GL_NV_conservative_raster_pre_snap_triangles 1 +enum +{ + GL_CONSERVATIVE_RASTER_MODE_NV = 0x954D, + GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV = 0x954E, + GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV = 0x954F, +}; +extern void (* const& glConservativeRasterParameteriNV) (GLenum pname, GLint param); +#endif + +#ifndef GL_NV_copy_buffer +#define GL_NV_copy_buffer 1 +enum +{ + GL_COPY_READ_BUFFER_NV = 0x8F36, + GL_COPY_WRITE_BUFFER_NV = 0x8F37, +}; +extern void (* const& glCopyBufferSubDataNV) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif + +#ifndef GL_NV_coverage_sample +#define GL_NV_coverage_sample 1 +enum +{ + GL_COVERAGE_COMPONENT_NV = 0x8ED0, + GL_COVERAGE_COMPONENT4_NV = 0x8ED1, + GL_COVERAGE_ATTACHMENT_NV = 0x8ED2, + GL_COVERAGE_BUFFERS_NV = 0x8ED3, + GL_COVERAGE_SAMPLES_NV = 0x8ED4, + GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5, + GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6, + GL_COVERAGE_AUTOMATIC_NV = 0x8ED7, + GL_COVERAGE_BUFFER_BIT_NV = 0x00008000, +}; +extern void (* const& glCoverageMaskNV) (GLboolean mask); +extern void (* const& glCoverageOperationNV) (GLenum operation); +#endif + +#ifndef GL_NV_depth_nonlinear +#define GL_NV_depth_nonlinear 1 +enum +{ + GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C, +}; +#endif + +#ifndef GL_NV_draw_buffers +#define GL_NV_draw_buffers 1 +enum +{ + GL_MAX_DRAW_BUFFERS_NV = 0x8824, + GL_DRAW_BUFFER0_NV = 0x8825, + GL_DRAW_BUFFER1_NV = 0x8826, + GL_DRAW_BUFFER2_NV = 0x8827, + GL_DRAW_BUFFER3_NV = 0x8828, + GL_DRAW_BUFFER4_NV = 0x8829, + GL_DRAW_BUFFER5_NV = 0x882A, + GL_DRAW_BUFFER6_NV = 0x882B, + GL_DRAW_BUFFER7_NV = 0x882C, + GL_DRAW_BUFFER8_NV = 0x882D, + GL_DRAW_BUFFER9_NV = 0x882E, + GL_DRAW_BUFFER10_NV = 0x882F, + GL_DRAW_BUFFER11_NV = 0x8830, + GL_DRAW_BUFFER12_NV = 0x8831, + GL_DRAW_BUFFER13_NV = 0x8832, + GL_DRAW_BUFFER14_NV = 0x8833, + GL_DRAW_BUFFER15_NV = 0x8834, + GL_COLOR_ATTACHMENT0_NV = 0x8CE0, + GL_COLOR_ATTACHMENT1_NV = 0x8CE1, + GL_COLOR_ATTACHMENT2_NV = 0x8CE2, + GL_COLOR_ATTACHMENT3_NV = 0x8CE3, + GL_COLOR_ATTACHMENT4_NV = 0x8CE4, + GL_COLOR_ATTACHMENT5_NV = 0x8CE5, + GL_COLOR_ATTACHMENT6_NV = 0x8CE6, + GL_COLOR_ATTACHMENT7_NV = 0x8CE7, + GL_COLOR_ATTACHMENT8_NV = 0x8CE8, + GL_COLOR_ATTACHMENT9_NV = 0x8CE9, + GL_COLOR_ATTACHMENT10_NV = 0x8CEA, + GL_COLOR_ATTACHMENT11_NV = 0x8CEB, + GL_COLOR_ATTACHMENT12_NV = 0x8CEC, + GL_COLOR_ATTACHMENT13_NV = 0x8CED, + GL_COLOR_ATTACHMENT14_NV = 0x8CEE, + GL_COLOR_ATTACHMENT15_NV = 0x8CEF, +}; +extern void (* const& glDrawBuffersNV) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_NV_draw_instanced +#define GL_NV_draw_instanced 1 +extern void (* const& glDrawArraysInstancedNV) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +extern void (* const& glDrawElementsInstancedNV) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif + +#ifndef GL_NV_draw_vulkan_image +#define GL_NV_draw_vulkan_image 1 +extern void (* const& glDrawVkImageNV) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +extern GLVULKANPROCNV (* const& glGetVkProcAddrNV) (const GLchar *name); +extern void (* const& glWaitVkSemaphoreNV) (GLuint64 vkSemaphore); +extern void (* const& glSignalVkSemaphoreNV) (GLuint64 vkSemaphore); +extern void (* const& glSignalVkFenceNV) (GLuint64 vkFence); +#endif + +#ifndef GL_NV_explicit_attrib_location +#define GL_NV_explicit_attrib_location 1 +#endif + +#ifndef GL_NV_fbo_color_attachments +#define GL_NV_fbo_color_attachments 1 +enum +{ + GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF, +}; +#endif + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +enum +{ + GL_ALL_COMPLETED_NV = 0x84F2, + GL_FENCE_STATUS_NV = 0x84F3, + GL_FENCE_CONDITION_NV = 0x84F4, +}; +extern void (* const& glDeleteFencesNV) (GLsizei n, const GLuint *fences); +extern void (* const& glGenFencesNV) (GLsizei n, GLuint *fences); +extern GLboolean (* const& glIsFenceNV) (GLuint fence); +extern GLboolean (* const& glTestFenceNV) (GLuint fence); +extern void (* const& glGetFenceivNV) (GLuint fence, GLenum pname, GLint *params); +extern void (* const& glFinishFenceNV) (GLuint fence); +extern void (* const& glSetFenceNV) (GLuint fence, GLenum condition); +#endif + +#ifndef GL_NV_fill_rectangle +#define GL_NV_fill_rectangle 1 +enum +{ + GL_FILL_RECTANGLE_NV = 0x933C, +}; +#endif + +#ifndef GL_NV_fragment_coverage_to_color +#define GL_NV_fragment_coverage_to_color 1 +enum +{ + GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD, + GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE, +}; +extern void (* const& glFragmentCoverageColorNV) (GLuint color); +#endif + +#ifndef GL_NV_fragment_shader_barycentric +#define GL_NV_fragment_shader_barycentric 1 +#endif + +#ifndef GL_NV_fragment_shader_interlock +#define GL_NV_fragment_shader_interlock 1 +#endif + +#ifndef GL_NV_framebuffer_blit +#define GL_NV_framebuffer_blit 1 +enum +{ + GL_READ_FRAMEBUFFER_NV = 0x8CA8, + GL_DRAW_FRAMEBUFFER_NV = 0x8CA9, + GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6, + GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA, +}; +extern void (* const& glBlitFramebufferNV) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +#ifndef GL_NV_framebuffer_mixed_samples +#define GL_NV_framebuffer_mixed_samples 1 +enum +{ + GL_COVERAGE_MODULATION_TABLE_NV = 0x9331, + GL_COLOR_SAMPLES_NV = 0x8E20, + GL_DEPTH_SAMPLES_NV = 0x932D, + GL_STENCIL_SAMPLES_NV = 0x932E, + GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F, + GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330, + GL_COVERAGE_MODULATION_NV = 0x9332, + GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333, +}; +extern void (* const& glCoverageModulationTableNV) (GLsizei n, const GLfloat *v); +extern void (* const& glGetCoverageModulationTableNV) (GLsizei bufSize, GLfloat *v); +extern void (* const& glCoverageModulationNV) (GLenum components); +#endif + +#ifndef GL_NV_framebuffer_multisample +#define GL_NV_framebuffer_multisample 1 +enum +{ + GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56, + GL_MAX_SAMPLES_NV = 0x8D57, +}; +extern void (* const& glRenderbufferStorageMultisampleNV) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_NV_generate_mipmap_sRGB +#define GL_NV_generate_mipmap_sRGB 1 +#endif + +#ifndef GL_NV_geometry_shader_passthrough +#define GL_NV_geometry_shader_passthrough 1 +#endif + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 +enum +{ + GL_INT64_NV = 0x140E, + GL_UNSIGNED_INT64_NV = 0x140F, + GL_INT8_NV = 0x8FE0, + GL_INT8_VEC2_NV = 0x8FE1, + GL_INT8_VEC3_NV = 0x8FE2, + GL_INT8_VEC4_NV = 0x8FE3, + GL_INT16_NV = 0x8FE4, + GL_INT16_VEC2_NV = 0x8FE5, + GL_INT16_VEC3_NV = 0x8FE6, + GL_INT16_VEC4_NV = 0x8FE7, + GL_INT64_VEC2_NV = 0x8FE9, + GL_INT64_VEC3_NV = 0x8FEA, + GL_INT64_VEC4_NV = 0x8FEB, + GL_UNSIGNED_INT8_NV = 0x8FEC, + GL_UNSIGNED_INT8_VEC2_NV = 0x8FED, + GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE, + GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF, + GL_UNSIGNED_INT16_NV = 0x8FF0, + GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1, + GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2, + GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3, + GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5, + GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6, + GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7, + GL_FLOAT16_NV = 0x8FF8, + GL_FLOAT16_VEC2_NV = 0x8FF9, + GL_FLOAT16_VEC3_NV = 0x8FFA, + GL_FLOAT16_VEC4_NV = 0x8FFB, +}; +extern void (* const& glUniform1i64NV) (GLint location, GLint64EXT x); +extern void (* const& glUniform2i64NV) (GLint location, GLint64EXT x, GLint64EXT y); +extern void (* const& glUniform3i64NV) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +extern void (* const& glUniform4i64NV) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +extern void (* const& glUniform1i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform2i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform3i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform4i64vNV) (GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glUniform1ui64NV) (GLint location, GLuint64EXT x); +extern void (* const& glUniform2ui64NV) (GLint location, GLuint64EXT x, GLuint64EXT y); +extern void (* const& glUniform3ui64NV) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +extern void (* const& glUniform4ui64NV) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +extern void (* const& glUniform1ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glUniform2ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glUniform3ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glUniform4ui64vNV) (GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glGetUniformi64vNV) (GLuint program, GLint location, GLint64EXT *params); +extern void (* const& glProgramUniform1i64NV) (GLuint program, GLint location, GLint64EXT x); +extern void (* const& glProgramUniform2i64NV) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +extern void (* const& glProgramUniform3i64NV) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +extern void (* const& glProgramUniform4i64NV) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +extern void (* const& glProgramUniform1i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform2i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform3i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform4i64vNV) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +extern void (* const& glProgramUniform1ui64NV) (GLuint program, GLint location, GLuint64EXT x); +extern void (* const& glProgramUniform2ui64NV) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +extern void (* const& glProgramUniform3ui64NV) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +extern void (* const& glProgramUniform4ui64NV) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +extern void (* const& glProgramUniform1ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glProgramUniform2ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glProgramUniform3ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +extern void (* const& glProgramUniform4ui64vNV) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif + +#ifndef GL_NV_image_formats +#define GL_NV_image_formats 1 +#endif + +#ifndef GL_NV_instanced_arrays +#define GL_NV_instanced_arrays 1 +enum +{ + GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE, +}; +extern void (* const& glVertexAttribDivisorNV) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_NV_internalformat_sample_query +#define GL_NV_internalformat_sample_query 1 +enum +{ + GL_MULTISAMPLES_NV = 0x9371, + GL_SUPERSAMPLE_SCALE_X_NV = 0x9372, + GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373, + GL_CONFORMANT_NV = 0x9374, +}; +extern void (* const& glGetInternalformatSampleivNV) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); +#endif + +#ifndef GL_NV_memory_attachment +#define GL_NV_memory_attachment 1 +enum +{ + GL_ATTACHED_MEMORY_OBJECT_NV = 0x95A4, + GL_ATTACHED_MEMORY_OFFSET_NV = 0x95A5, + GL_MEMORY_ATTACHABLE_ALIGNMENT_NV = 0x95A6, + GL_MEMORY_ATTACHABLE_SIZE_NV = 0x95A7, + GL_MEMORY_ATTACHABLE_NV = 0x95A8, + GL_DETACHED_MEMORY_INCARNATION_NV = 0x95A9, + GL_DETACHED_TEXTURES_NV = 0x95AA, + GL_DETACHED_BUFFERS_NV = 0x95AB, + GL_MAX_DETACHED_TEXTURES_NV = 0x95AC, + GL_MAX_DETACHED_BUFFERS_NV = 0x95AD, +}; +extern void (* const& glGetMemoryObjectDetachedResourcesuivNV) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); +extern void (* const& glResetMemoryObjectParameterNV) (GLuint memory, GLenum pname); +extern void (* const& glTexAttachMemoryNV) (GLenum target, GLuint memory, GLuint64 offset); +extern void (* const& glBufferAttachMemoryNV) (GLenum target, GLuint memory, GLuint64 offset); +extern void (* const& glTextureAttachMemoryNV) (GLuint texture, GLuint memory, GLuint64 offset); +extern void (* const& glNamedBufferAttachMemoryNV) (GLuint buffer, GLuint memory, GLuint64 offset); +#endif + +#ifndef GL_NV_memory_object_sparse +#define GL_NV_memory_object_sparse 1 +extern void (* const& glBufferPageCommitmentMemNV) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +extern void (* const& glTexPageCommitmentMemNV) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +extern void (* const& glNamedBufferPageCommitmentMemNV) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +extern void (* const& glTexturePageCommitmentMemNV) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +#endif + +#ifndef GL_NV_mesh_shader +#define GL_NV_mesh_shader 1 +enum +{ + GL_MESH_SHADER_NV = 0x9559, + GL_TASK_SHADER_NV = 0x955A, + GL_MAX_MESH_UNIFORM_BLOCKS_NV = 0x8E60, + GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV = 0x8E61, + GL_MAX_MESH_IMAGE_UNIFORMS_NV = 0x8E62, + GL_MAX_MESH_UNIFORM_COMPONENTS_NV = 0x8E63, + GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV = 0x8E64, + GL_MAX_MESH_ATOMIC_COUNTERS_NV = 0x8E65, + GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV = 0x8E66, + GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV = 0x8E67, + GL_MAX_TASK_UNIFORM_BLOCKS_NV = 0x8E68, + GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV = 0x8E69, + GL_MAX_TASK_IMAGE_UNIFORMS_NV = 0x8E6A, + GL_MAX_TASK_UNIFORM_COMPONENTS_NV = 0x8E6B, + GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV = 0x8E6C, + GL_MAX_TASK_ATOMIC_COUNTERS_NV = 0x8E6D, + GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV = 0x8E6E, + GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV = 0x8E6F, + GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV = 0x95A2, + GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV = 0x95A3, + GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV = 0x9536, + GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV = 0x9537, + GL_MAX_MESH_OUTPUT_VERTICES_NV = 0x9538, + GL_MAX_MESH_OUTPUT_PRIMITIVES_NV = 0x9539, + GL_MAX_TASK_OUTPUT_COUNT_NV = 0x953A, + GL_MAX_DRAW_MESH_TASKS_COUNT_NV = 0x953D, + GL_MAX_MESH_VIEWS_NV = 0x9557, + GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV = 0x92DF, + GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV = 0x9543, + GL_MAX_MESH_WORK_GROUP_SIZE_NV = 0x953B, + GL_MAX_TASK_WORK_GROUP_SIZE_NV = 0x953C, + GL_MESH_WORK_GROUP_SIZE_NV = 0x953E, + GL_TASK_WORK_GROUP_SIZE_NV = 0x953F, + GL_MESH_VERTICES_OUT_NV = 0x9579, + GL_MESH_PRIMITIVES_OUT_NV = 0x957A, + GL_MESH_OUTPUT_TYPE_NV = 0x957B, + GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV = 0x959C, + GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV = 0x959D, + GL_REFERENCED_BY_MESH_SHADER_NV = 0x95A0, + GL_REFERENCED_BY_TASK_SHADER_NV = 0x95A1, + GL_MESH_SHADER_BIT_NV = 0x00000040, + GL_TASK_SHADER_BIT_NV = 0x00000080, + GL_MESH_SUBROUTINE_NV = 0x957C, + GL_TASK_SUBROUTINE_NV = 0x957D, + GL_MESH_SUBROUTINE_UNIFORM_NV = 0x957E, + GL_TASK_SUBROUTINE_UNIFORM_NV = 0x957F, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV = 0x959E, + GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV = 0x959F, +}; +extern void (* const& glDrawMeshTasksNV) (GLuint first, GLuint count); +extern void (* const& glDrawMeshTasksIndirectNV) (GLintptr indirect); +extern void (* const& glMultiDrawMeshTasksIndirectNV) (GLintptr indirect, GLsizei drawcount, GLsizei stride); +extern void (* const& glMultiDrawMeshTasksIndirectCountNV) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#endif + +#ifndef GL_NV_non_square_matrices +#define GL_NV_non_square_matrices 1 +enum +{ + GL_FLOAT_MAT2x3_NV = 0x8B65, + GL_FLOAT_MAT2x4_NV = 0x8B66, + GL_FLOAT_MAT3x2_NV = 0x8B67, + GL_FLOAT_MAT3x4_NV = 0x8B68, + GL_FLOAT_MAT4x2_NV = 0x8B69, + GL_FLOAT_MAT4x3_NV = 0x8B6A, +}; +extern void (* const& glUniformMatrix2x3fvNV) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3x2fvNV) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix2x4fvNV) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4x2fvNV) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix3x4fvNV) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void (* const& glUniformMatrix4x3fvNV) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_NV_path_rendering +#define GL_NV_path_rendering 1 +enum +{ + GL_PATH_FORMAT_SVG_NV = 0x9070, + GL_PATH_FORMAT_PS_NV = 0x9071, + GL_STANDARD_FONT_NAME_NV = 0x9072, + GL_SYSTEM_FONT_NAME_NV = 0x9073, + GL_FILE_NAME_NV = 0x9074, + GL_PATH_STROKE_WIDTH_NV = 0x9075, + GL_PATH_END_CAPS_NV = 0x9076, + GL_PATH_INITIAL_END_CAP_NV = 0x9077, + GL_PATH_TERMINAL_END_CAP_NV = 0x9078, + GL_PATH_JOIN_STYLE_NV = 0x9079, + GL_PATH_MITER_LIMIT_NV = 0x907A, + GL_PATH_DASH_CAPS_NV = 0x907B, + GL_PATH_INITIAL_DASH_CAP_NV = 0x907C, + GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D, + GL_PATH_DASH_OFFSET_NV = 0x907E, + GL_PATH_CLIENT_LENGTH_NV = 0x907F, + GL_PATH_FILL_MODE_NV = 0x9080, + GL_PATH_FILL_MASK_NV = 0x9081, + GL_PATH_FILL_COVER_MODE_NV = 0x9082, + GL_PATH_STROKE_COVER_MODE_NV = 0x9083, + GL_PATH_STROKE_MASK_NV = 0x9084, + GL_COUNT_UP_NV = 0x9088, + GL_COUNT_DOWN_NV = 0x9089, + GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A, + GL_CONVEX_HULL_NV = 0x908B, + GL_BOUNDING_BOX_NV = 0x908D, + GL_TRANSLATE_X_NV = 0x908E, + GL_TRANSLATE_Y_NV = 0x908F, + GL_TRANSLATE_2D_NV = 0x9090, + GL_TRANSLATE_3D_NV = 0x9091, + GL_AFFINE_2D_NV = 0x9092, + GL_AFFINE_3D_NV = 0x9094, + GL_TRANSPOSE_AFFINE_2D_NV = 0x9096, + GL_TRANSPOSE_AFFINE_3D_NV = 0x9098, + GL_UTF8_NV = 0x909A, + GL_UTF16_NV = 0x909B, + GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C, + GL_PATH_COMMAND_COUNT_NV = 0x909D, + GL_PATH_COORD_COUNT_NV = 0x909E, + GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F, + GL_PATH_COMPUTED_LENGTH_NV = 0x90A0, + GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1, + GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2, + GL_SQUARE_NV = 0x90A3, + GL_ROUND_NV = 0x90A4, + GL_TRIANGULAR_NV = 0x90A5, + GL_BEVEL_NV = 0x90A6, + GL_MITER_REVERT_NV = 0x90A7, + GL_MITER_TRUNCATE_NV = 0x90A8, + GL_SKIP_MISSING_GLYPH_NV = 0x90A9, + GL_USE_MISSING_GLYPH_NV = 0x90AA, + GL_PATH_ERROR_POSITION_NV = 0x90AB, + GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD, + GL_ADJACENT_PAIRS_NV = 0x90AE, + GL_FIRST_TO_REST_NV = 0x90AF, + GL_PATH_GEN_MODE_NV = 0x90B0, + GL_PATH_GEN_COEFF_NV = 0x90B1, + GL_PATH_GEN_COMPONENTS_NV = 0x90B3, + GL_PATH_STENCIL_FUNC_NV = 0x90B7, + GL_PATH_STENCIL_REF_NV = 0x90B8, + GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9, + GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD, + GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE, + GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF, + GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4, + GL_MOVE_TO_RESETS_NV = 0x90B5, + GL_MOVE_TO_CONTINUES_NV = 0x90B6, + GL_CLOSE_PATH_NV = 0x00, + GL_MOVE_TO_NV = 0x02, + GL_RELATIVE_MOVE_TO_NV = 0x03, + GL_LINE_TO_NV = 0x04, + GL_RELATIVE_LINE_TO_NV = 0x05, + GL_HORIZONTAL_LINE_TO_NV = 0x06, + GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07, + GL_VERTICAL_LINE_TO_NV = 0x08, + GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09, + GL_QUADRATIC_CURVE_TO_NV = 0x0A, + GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B, + GL_CUBIC_CURVE_TO_NV = 0x0C, + GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D, + GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E, + GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F, + GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10, + GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11, + GL_SMALL_CCW_ARC_TO_NV = 0x12, + GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13, + GL_SMALL_CW_ARC_TO_NV = 0x14, + GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15, + GL_LARGE_CCW_ARC_TO_NV = 0x16, + GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17, + GL_LARGE_CW_ARC_TO_NV = 0x18, + GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19, + GL_RESTART_PATH_NV = 0xF0, + GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2, + GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4, + GL_RECT_NV = 0xF6, + GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8, + GL_CIRCULAR_CW_ARC_TO_NV = 0xFA, + GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC, + GL_ARC_TO_NV = 0xFE, + GL_RELATIVE_ARC_TO_NV = 0xFF, + GL_BOLD_BIT_NV = 0x01, + GL_ITALIC_BIT_NV = 0x02, + GL_GLYPH_WIDTH_BIT_NV = 0x01, + GL_GLYPH_HEIGHT_BIT_NV = 0x02, + GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04, + GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08, + GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10, + GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20, + GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40, + GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80, + GL_GLYPH_HAS_KERNING_BIT_NV = 0x100, + GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000, + GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000, + GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000, + GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000, + GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000, + GL_FONT_ASCENDER_BIT_NV = 0x00200000, + GL_FONT_DESCENDER_BIT_NV = 0x00400000, + GL_FONT_HEIGHT_BIT_NV = 0x00800000, + GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000, + GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000, + GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000, + GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000, + GL_FONT_HAS_KERNING_BIT_NV = 0x10000000, + GL_ROUNDED_RECT_NV = 0xE8, + GL_RELATIVE_ROUNDED_RECT_NV = 0xE9, + GL_ROUNDED_RECT2_NV = 0xEA, + GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB, + GL_ROUNDED_RECT4_NV = 0xEC, + GL_RELATIVE_ROUNDED_RECT4_NV = 0xED, + GL_ROUNDED_RECT8_NV = 0xEE, + GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF, + GL_RELATIVE_RECT_NV = 0xF7, + GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368, + GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369, + GL_FONT_UNAVAILABLE_NV = 0x936A, + GL_FONT_UNINTELLIGIBLE_NV = 0x936B, + GL_CONIC_CURVE_TO_NV = 0x1A, + GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B, + GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000, + GL_STANDARD_FONT_FORMAT_NV = 0x936C, + GL_2_BYTES_NV = 0x1407, + GL_3_BYTES_NV = 0x1408, + GL_4_BYTES_NV = 0x1409, + GL_EYE_LINEAR_NV = 0x2400, + GL_OBJECT_LINEAR_NV = 0x2401, + GL_CONSTANT_NV = 0x8576, + GL_PATH_FOG_GEN_MODE_NV = 0x90AC, + GL_PRIMARY_COLOR = 0x8577, + GL_PRIMARY_COLOR_NV = 0x852C, + GL_SECONDARY_COLOR_NV = 0x852D, + GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2, + GL_PATH_PROJECTION_NV = 0x1701, + GL_PATH_MODELVIEW_NV = 0x1700, + GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3, + GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6, + GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36, + GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3, + GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4, + GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7, + GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38, + GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4, + GL_FRAGMENT_INPUT_NV = 0x936D, +}; +extern GLuint (* const& glGenPathsNV) (GLsizei range); +extern void (* const& glDeletePathsNV) (GLuint path, GLsizei range); +extern GLboolean (* const& glIsPathNV) (GLuint path); +extern void (* const& glPathCommandsNV) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathCoordsNV) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathSubCommandsNV) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathSubCoordsNV) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +extern void (* const& glPathStringNV) (GLuint path, GLenum format, GLsizei length, const void *pathString); +extern void (* const& glPathGlyphsNV) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern void (* const& glPathGlyphRangeNV) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern void (* const& glWeightPathsNV) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +extern void (* const& glCopyPathNV) (GLuint resultPath, GLuint srcPath); +extern void (* const& glInterpolatePathsNV) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +extern void (* const& glTransformPathNV) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glPathParameterivNV) (GLuint path, GLenum pname, const GLint *value); +extern void (* const& glPathParameteriNV) (GLuint path, GLenum pname, GLint value); +extern void (* const& glPathParameterfvNV) (GLuint path, GLenum pname, const GLfloat *value); +extern void (* const& glPathParameterfNV) (GLuint path, GLenum pname, GLfloat value); +extern void (* const& glPathDashArrayNV) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +extern void (* const& glPathStencilFuncNV) (GLenum func, GLint ref, GLuint mask); +extern void (* const& glPathStencilDepthOffsetNV) (GLfloat factor, GLfloat units); +extern void (* const& glStencilFillPathNV) (GLuint path, GLenum fillMode, GLuint mask); +extern void (* const& glStencilStrokePathNV) (GLuint path, GLint reference, GLuint mask); +extern void (* const& glStencilFillPathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glStencilStrokePathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glPathCoverDepthFuncNV) (GLenum func); +extern void (* const& glCoverFillPathNV) (GLuint path, GLenum coverMode); +extern void (* const& glCoverStrokePathNV) (GLuint path, GLenum coverMode); +extern void (* const& glCoverFillPathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glCoverStrokePathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glGetPathParameterivNV) (GLuint path, GLenum pname, GLint *value); +extern void (* const& glGetPathParameterfvNV) (GLuint path, GLenum pname, GLfloat *value); +extern void (* const& glGetPathCommandsNV) (GLuint path, GLubyte *commands); +extern void (* const& glGetPathCoordsNV) (GLuint path, GLfloat *coords); +extern void (* const& glGetPathDashArrayNV) (GLuint path, GLfloat *dashArray); +extern void (* const& glGetPathMetricsNV) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +extern void (* const& glGetPathMetricRangeNV) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +extern void (* const& glGetPathSpacingNV) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +extern GLboolean (* const& glIsPointInFillPathNV) (GLuint path, GLuint mask, GLfloat x, GLfloat y); +extern GLboolean (* const& glIsPointInStrokePathNV) (GLuint path, GLfloat x, GLfloat y); +extern GLfloat (* const& glGetPathLengthNV) (GLuint path, GLsizei startSegment, GLsizei numSegments); +extern GLboolean (* const& glPointAlongPathNV) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +extern void (* const& glMatrixLoad3x2fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixLoad3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixLoadTranspose3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixMult3x2fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixMult3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glMatrixMultTranspose3x3fNV) (GLenum matrixMode, const GLfloat *m); +extern void (* const& glStencilThenCoverFillPathNV) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); +extern void (* const& glStencilThenCoverStrokePathNV) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); +extern void (* const& glStencilThenCoverFillPathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern void (* const& glStencilThenCoverStrokePathInstancedNV) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +extern GLenum (* const& glPathGlyphIndexRangeNV) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); +extern GLenum (* const& glPathGlyphIndexArrayNV) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern GLenum (* const& glPathMemoryGlyphIndexArrayNV) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +extern void (* const& glProgramPathFragmentInputGenNV) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); +extern void (* const& glGetProgramResourcefvNV) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); +extern void (* const& glPathColorGenNV) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); +extern void (* const& glPathTexGenNV) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); +extern void (* const& glPathFogGenNV) (GLenum genMode); +extern void (* const& glGetPathColorGenivNV) (GLenum color, GLenum pname, GLint *value); +extern void (* const& glGetPathColorGenfvNV) (GLenum color, GLenum pname, GLfloat *value); +extern void (* const& glGetPathTexGenivNV) (GLenum texCoordSet, GLenum pname, GLint *value); +extern void (* const& glGetPathTexGenfvNV) (GLenum texCoordSet, GLenum pname, GLfloat *value); +extern void (* const& glMatrixFrustumEXT) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void (* const& glMatrixLoadIdentityEXT) (GLenum mode); +extern void (* const& glMatrixLoadTransposefEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixLoadTransposedEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glMatrixLoadfEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixLoaddEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glMatrixMultTransposefEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixMultTransposedEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glMatrixMultfEXT) (GLenum mode, const GLfloat *m); +extern void (* const& glMatrixMultdEXT) (GLenum mode, const GLdouble *m); +extern void (* const& glMatrixOrthoEXT) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void (* const& glMatrixPopEXT) (GLenum mode); +extern void (* const& glMatrixPushEXT) (GLenum mode); +extern void (* const& glMatrixRotatefEXT) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glMatrixRotatedEXT) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glMatrixScalefEXT) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glMatrixScaledEXT) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +extern void (* const& glMatrixTranslatefEXT) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +extern void (* const& glMatrixTranslatedEXT) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +#endif + +#ifndef GL_NV_path_rendering_shared_edge +#define GL_NV_path_rendering_shared_edge 1 +enum +{ + GL_SHARED_EDGE_NV = 0xC0, +}; +#endif + +#ifndef GL_NV_pixel_buffer_object +#define GL_NV_pixel_buffer_object 1 +enum +{ + GL_PIXEL_PACK_BUFFER_NV = 0x88EB, + GL_PIXEL_UNPACK_BUFFER_NV = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING_NV = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING_NV = 0x88EF, +}; +#endif + +#ifndef GL_NV_polygon_mode +#define GL_NV_polygon_mode 1 +enum +{ + GL_POLYGON_MODE_NV = 0x0B40, + GL_POLYGON_OFFSET_POINT_NV = 0x2A01, + GL_POLYGON_OFFSET_LINE_NV = 0x2A02, + GL_POINT_NV = 0x1B00, + GL_LINE_NV = 0x1B01, + GL_FILL_NV = 0x1B02, +}; +extern void (* const& glPolygonModeNV) (GLenum face, GLenum mode); +#endif + +#ifndef GL_NV_primitive_shading_rate +#define GL_NV_primitive_shading_rate 1 +enum +{ + GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV = 0x95B1, + GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV = 0x95B2, +}; +#endif + +#ifndef GL_NV_read_buffer +#define GL_NV_read_buffer 1 +enum +{ + GL_READ_BUFFER_NV = 0x0C02, +}; +extern void (* const& glReadBufferNV) (GLenum mode); +#endif + +#ifndef GL_NV_read_buffer_front +#define GL_NV_read_buffer_front 1 +#endif + +#ifndef GL_NV_read_depth +#define GL_NV_read_depth 1 +#endif + +#ifndef GL_NV_read_depth_stencil +#define GL_NV_read_depth_stencil 1 +#endif + +#ifndef GL_NV_read_stencil +#define GL_NV_read_stencil 1 +#endif + +#ifndef GL_NV_representative_fragment_test +#define GL_NV_representative_fragment_test 1 +enum +{ + GL_REPRESENTATIVE_FRAGMENT_TEST_NV = 0x937F, +}; +#endif + +#ifndef GL_NV_sRGB_formats +#define GL_NV_sRGB_formats 1 +enum +{ + GL_SLUMINANCE_NV = 0x8C46, + GL_SLUMINANCE_ALPHA_NV = 0x8C44, + GL_SRGB8_NV = 0x8C41, + GL_SLUMINANCE8_NV = 0x8C47, + GL_SLUMINANCE8_ALPHA8_NV = 0x8C45, + GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F, + GL_ETC1_SRGB8_NV = 0x88EE, +}; +#endif + +#ifndef GL_NV_sample_locations +#define GL_NV_sample_locations 1 +enum +{ + GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D, + GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E, + GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F, + GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340, + GL_SAMPLE_LOCATION_NV = 0x8E50, + GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341, + GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342, + GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343, +}; +extern void (* const& glFramebufferSampleLocationsfvNV) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +extern void (* const& glNamedFramebufferSampleLocationsfvNV) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +extern void (* const& glResolveDepthValuesNV) (); +#endif + +#ifndef GL_NV_sample_mask_override_coverage +#define GL_NV_sample_mask_override_coverage 1 +#endif + +#ifndef GL_NV_scissor_exclusive +#define GL_NV_scissor_exclusive 1 +enum +{ + GL_SCISSOR_TEST_EXCLUSIVE_NV = 0x9555, + GL_SCISSOR_BOX_EXCLUSIVE_NV = 0x9556, +}; +extern void (* const& glScissorExclusiveNV) (GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glScissorExclusiveArrayvNV) (GLuint first, GLsizei count, const GLint *v); +#endif + +#ifndef GL_NV_shader_atomic_fp16_vector +#define GL_NV_shader_atomic_fp16_vector 1 +#endif + +#ifndef GL_NV_shader_noperspective_interpolation +#define GL_NV_shader_noperspective_interpolation 1 +#endif + +#ifndef GL_NV_shader_subgroup_partitioned +#define GL_NV_shader_subgroup_partitioned 1 +enum +{ + GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, +}; +#endif + +#ifndef GL_NV_shader_texture_footprint +#define GL_NV_shader_texture_footprint 1 +#endif + +#ifndef GL_NV_shading_rate_image +#define GL_NV_shading_rate_image 1 +enum +{ + GL_SHADING_RATE_IMAGE_NV = 0x9563, + GL_SHADING_RATE_NO_INVOCATIONS_NV = 0x9564, + GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0x9565, + GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 0x9566, + GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 0x9567, + GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 0x9568, + GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 0x9569, + GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 0x956A, + GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 0x956B, + GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 0x956C, + GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 0x956D, + GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 0x956E, + GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 0x956F, + GL_SHADING_RATE_IMAGE_BINDING_NV = 0x955B, + GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV = 0x955C, + GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV = 0x955D, + GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV = 0x955E, + GL_MAX_COARSE_FRAGMENT_SAMPLES_NV = 0x955F, + GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV = 0x95AE, + GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV = 0x95AF, + GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV = 0x95B0, +}; +extern void (* const& glBindShadingRateImageNV) (GLuint texture); +extern void (* const& glGetShadingRateImagePaletteNV) (GLuint viewport, GLuint entry, GLenum *rate); +extern void (* const& glGetShadingRateSampleLocationivNV) (GLenum rate, GLuint samples, GLuint index, GLint *location); +extern void (* const& glShadingRateImageBarrierNV) (GLboolean synchronize); +extern void (* const& glShadingRateImagePaletteNV) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); +extern void (* const& glShadingRateSampleOrderNV) (GLenum order); +extern void (* const& glShadingRateSampleOrderCustomNV) (GLenum rate, GLuint samples, const GLint *locations); +#endif + +#ifndef GL_NV_shadow_samplers_array +#define GL_NV_shadow_samplers_array 1 +enum +{ + GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4, +}; +#endif + +#ifndef GL_NV_shadow_samplers_cube +#define GL_NV_shadow_samplers_cube 1 +enum +{ + GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5, +}; +#endif + +#ifndef GL_NV_stereo_view_rendering +#define GL_NV_stereo_view_rendering 1 +#endif + +#ifndef GL_NV_texture_border_clamp +#define GL_NV_texture_border_clamp 1 +enum +{ + GL_TEXTURE_BORDER_COLOR_NV = 0x1004, + GL_CLAMP_TO_BORDER_NV = 0x812D, +}; +#endif + +#ifndef GL_NV_texture_compression_s3tc_update +#define GL_NV_texture_compression_s3tc_update 1 +#endif + +#ifndef GL_NV_texture_npot_2D_mipmap +#define GL_NV_texture_npot_2D_mipmap 1 +#endif + +#ifndef GL_NV_viewport_array +#define GL_NV_viewport_array 1 +enum +{ + GL_MAX_VIEWPORTS_NV = 0x825B, + GL_VIEWPORT_SUBPIXEL_BITS_NV = 0x825C, + GL_VIEWPORT_BOUNDS_RANGE_NV = 0x825D, + GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV = 0x825F, +}; +extern void (* const& glViewportArrayvNV) (GLuint first, GLsizei count, const GLfloat *v); +extern void (* const& glViewportIndexedfNV) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +extern void (* const& glViewportIndexedfvNV) (GLuint index, const GLfloat *v); +extern void (* const& glScissorArrayvNV) (GLuint first, GLsizei count, const GLint *v); +extern void (* const& glScissorIndexedNV) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +extern void (* const& glScissorIndexedvNV) (GLuint index, const GLint *v); +extern void (* const& glDepthRangeArrayfvNV) (GLuint first, GLsizei count, const GLfloat *v); +extern void (* const& glDepthRangeIndexedfNV) (GLuint index, GLfloat n, GLfloat f); +extern void (* const& glGetFloati_vNV) (GLenum target, GLuint index, GLfloat *data); +extern void (* const& glEnableiNV) (GLenum target, GLuint index); +extern void (* const& glDisableiNV) (GLenum target, GLuint index); +extern GLboolean (* const& glIsEnablediNV) (GLenum target, GLuint index); +#endif + +#ifndef GL_NV_viewport_array2 +#define GL_NV_viewport_array2 1 +#endif + +#ifndef GL_NV_viewport_swizzle +#define GL_NV_viewport_swizzle 1 +enum +{ + GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV = 0x9350, + GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV = 0x9351, + GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV = 0x9352, + GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV = 0x9353, + GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV = 0x9354, + GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV = 0x9355, + GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV = 0x9356, + GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV = 0x9357, + GL_VIEWPORT_SWIZZLE_X_NV = 0x9358, + GL_VIEWPORT_SWIZZLE_Y_NV = 0x9359, + GL_VIEWPORT_SWIZZLE_Z_NV = 0x935A, + GL_VIEWPORT_SWIZZLE_W_NV = 0x935B, +}; +extern void (* const& glViewportSwizzleNV) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); +#endif + +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 +extern void (* const& glEGLImageTargetTexture2DOES) (GLenum target, GLeglImageOES image); +extern void (* const& glEGLImageTargetRenderbufferStorageOES) (GLenum target, GLeglImageOES image); +#endif + +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 +enum +{ + GL_SAMPLER_EXTERNAL_OES = 0x8D66, +}; +#endif + +#ifndef GL_OES_EGL_image_external_essl3 +#define GL_OES_EGL_image_external_essl3 1 +#endif + +#ifndef GL_OES_compressed_ETC1_RGB8_sub_texture +#define GL_OES_compressed_ETC1_RGB8_sub_texture 1 +#endif + +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_OES_compressed_ETC1_RGB8_texture 1 +enum +{ + GL_ETC1_RGB8_OES = 0x8D64, +}; +#endif + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 +enum +{ + GL_PALETTE4_RGB8_OES = 0x8B90, + GL_PALETTE4_RGBA8_OES = 0x8B91, + GL_PALETTE4_R5_G6_B5_OES = 0x8B92, + GL_PALETTE4_RGBA4_OES = 0x8B93, + GL_PALETTE4_RGB5_A1_OES = 0x8B94, + GL_PALETTE8_RGB8_OES = 0x8B95, + GL_PALETTE8_RGBA8_OES = 0x8B96, + GL_PALETTE8_R5_G6_B5_OES = 0x8B97, + GL_PALETTE8_RGBA4_OES = 0x8B98, + GL_PALETTE8_RGB5_A1_OES = 0x8B99, +}; +#endif + +#ifndef GL_OES_copy_image +#define GL_OES_copy_image 1 +extern void (* const& glCopyImageSubDataOES) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +#endif + +#ifndef GL_OES_depth24 +#define GL_OES_depth24 1 +enum +{ + GL_DEPTH_COMPONENT24_OES = 0x81A6, +}; +#endif + +#ifndef GL_OES_depth32 +#define GL_OES_depth32 1 +#endif + +#ifndef GL_OES_depth_texture +#define GL_OES_depth_texture 1 +#endif + +#ifndef GL_OES_draw_buffers_indexed +#define GL_OES_draw_buffers_indexed 1 +extern void (* const& glEnableiOES) (GLenum target, GLuint index); +extern void (* const& glDisableiOES) (GLenum target, GLuint index); +extern void (* const& glBlendEquationiOES) (GLuint buf, GLenum mode); +extern void (* const& glBlendEquationSeparateiOES) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +extern void (* const& glBlendFunciOES) (GLuint buf, GLenum src, GLenum dst); +extern void (* const& glBlendFuncSeparateiOES) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +extern void (* const& glColorMaskiOES) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +extern GLboolean (* const& glIsEnablediOES) (GLenum target, GLuint index); +#endif + +#ifndef GL_OES_draw_elements_base_vertex +#define GL_OES_draw_elements_base_vertex 1 +extern void (* const& glDrawElementsBaseVertexOES) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawRangeElementsBaseVertexOES) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +extern void (* const& glDrawElementsInstancedBaseVertexOES) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +#endif + +#ifndef GL_OES_element_index_uint +#define GL_OES_element_index_uint 1 +#endif + +#ifndef GL_OES_fbo_render_mipmap +#define GL_OES_fbo_render_mipmap 1 +#endif + +#ifndef GL_OES_fragment_precision_high +#define GL_OES_fragment_precision_high 1 +#endif + +#ifndef GL_OES_geometry_point_size +#define GL_OES_geometry_point_size 1 +#endif + +#ifndef GL_OES_geometry_shader +#define GL_OES_geometry_shader 1 +enum +{ + GL_GEOMETRY_SHADER_OES = 0x8DD9, + GL_GEOMETRY_SHADER_BIT_OES = 0x00000004, + GL_GEOMETRY_LINKED_VERTICES_OUT_OES = 0x8916, + GL_GEOMETRY_LINKED_INPUT_TYPE_OES = 0x8917, + GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES = 0x8918, + GL_GEOMETRY_SHADER_INVOCATIONS_OES = 0x887F, + GL_LAYER_PROVOKING_VERTEX_OES = 0x825E, + GL_LINES_ADJACENCY_OES = 0x000A, + GL_LINE_STRIP_ADJACENCY_OES = 0x000B, + GL_TRIANGLES_ADJACENCY_OES = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY_OES = 0x000D, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8DDF, + GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES = 0x8A2C, + GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8A32, + GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES = 0x9123, + GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES = 0x9124, + GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES = 0x8DE1, + GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES = 0x8E5A, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES = 0x8C29, + GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES = 0x92CF, + GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES = 0x92D5, + GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES = 0x90CD, + GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES = 0x90D7, + GL_FIRST_VERTEX_CONVENTION_OES = 0x8E4D, + GL_LAST_VERTEX_CONVENTION_OES = 0x8E4E, + GL_UNDEFINED_VERTEX_OES = 0x8260, + GL_PRIMITIVES_GENERATED_OES = 0x8C87, + GL_FRAMEBUFFER_DEFAULT_LAYERS_OES = 0x9312, + GL_MAX_FRAMEBUFFER_LAYERS_OES = 0x9317, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES = 0x8DA8, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES = 0x8DA7, + GL_REFERENCED_BY_GEOMETRY_SHADER_OES = 0x9309, +}; +extern void (* const& glFramebufferTextureOES) (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif + +#ifndef GL_OES_get_program_binary +#define GL_OES_get_program_binary 1 +enum +{ + GL_PROGRAM_BINARY_LENGTH_OES = 0x8741, + GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE, + GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF, +}; +extern void (* const& glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +extern void (* const& glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); +#endif + +#ifndef GL_OES_gpu_shader5 +#define GL_OES_gpu_shader5 1 +#endif + +#ifndef GL_OES_mapbuffer +#define GL_OES_mapbuffer 1 +enum +{ + GL_WRITE_ONLY_OES = 0x88B9, + GL_BUFFER_ACCESS_OES = 0x88BB, + GL_BUFFER_MAPPED_OES = 0x88BC, + GL_BUFFER_MAP_POINTER_OES = 0x88BD, +}; +extern void * (* const& glMapBufferOES) (GLenum target, GLenum access); +extern GLboolean (* const& glUnmapBufferOES) (GLenum target); +extern void (* const& glGetBufferPointervOES) (GLenum target, GLenum pname, void **params); +#endif + +#ifndef GL_OES_packed_depth_stencil +#define GL_OES_packed_depth_stencil 1 +#endif + +#ifndef GL_OES_primitive_bounding_box +#define GL_OES_primitive_bounding_box 1 +enum +{ + GL_PRIMITIVE_BOUNDING_BOX_OES = 0x92BE, +}; +extern void (* const& glPrimitiveBoundingBoxOES) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#endif + +#ifndef GL_OES_required_internalformat +#define GL_OES_required_internalformat 1 +enum +{ + GL_ALPHA8_OES = 0x803C, + GL_DEPTH_COMPONENT16_OES = 0x81A5, + GL_LUMINANCE4_ALPHA4_OES = 0x8043, + GL_LUMINANCE8_ALPHA8_OES = 0x8045, + GL_LUMINANCE8_OES = 0x8040, + GL_RGBA4_OES = 0x8056, + GL_RGB5_A1_OES = 0x8057, + GL_RGB565_OES = 0x8D62, + GL_RGB8_OES = 0x8051, + GL_RGBA8_OES = 0x8058, +}; +#endif + +#ifndef GL_OES_rgb8_rgba8 +#define GL_OES_rgb8_rgba8 1 +#endif + +#ifndef GL_OES_sample_shading +#define GL_OES_sample_shading 1 +enum +{ + GL_SAMPLE_SHADING_OES = 0x8C36, + GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37, +}; +extern void (* const& glMinSampleShadingOES) (GLfloat value); +#endif + +#ifndef GL_OES_sample_variables +#define GL_OES_sample_variables 1 +#endif + +#ifndef GL_OES_shader_image_atomic +#define GL_OES_shader_image_atomic 1 +#endif + +#ifndef GL_OES_shader_io_blocks +#define GL_OES_shader_io_blocks 1 +#endif + +#ifndef GL_OES_shader_multisample_interpolation +#define GL_OES_shader_multisample_interpolation 1 +enum +{ + GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B, + GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C, + GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D, +}; +#endif + +#ifndef GL_OES_standard_derivatives +#define GL_OES_standard_derivatives 1 +enum +{ + GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B, +}; +#endif + +#ifndef GL_OES_stencil1 +#define GL_OES_stencil1 1 +enum +{ + GL_STENCIL_INDEX1_OES = 0x8D46, +}; +#endif + +#ifndef GL_OES_stencil4 +#define GL_OES_stencil4 1 +enum +{ + GL_STENCIL_INDEX4_OES = 0x8D47, +}; +#endif + +#ifndef GL_OES_surfaceless_context +#define GL_OES_surfaceless_context 1 +enum +{ + GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219, +}; +#endif + +#ifndef GL_OES_tessellation_point_size +#define GL_OES_tessellation_point_size 1 +#endif + +#ifndef GL_OES_tessellation_shader +#define GL_OES_tessellation_shader 1 +enum +{ + GL_PATCHES_OES = 0x000E, + GL_PATCH_VERTICES_OES = 0x8E72, + GL_TESS_CONTROL_OUTPUT_VERTICES_OES = 0x8E75, + GL_TESS_GEN_MODE_OES = 0x8E76, + GL_TESS_GEN_SPACING_OES = 0x8E77, + GL_TESS_GEN_VERTEX_ORDER_OES = 0x8E78, + GL_TESS_GEN_POINT_MODE_OES = 0x8E79, + GL_ISOLINES_OES = 0x8E7A, + GL_QUADS_OES = 0x0007, + GL_FRACTIONAL_ODD_OES = 0x8E7B, + GL_FRACTIONAL_EVEN_OES = 0x8E7C, + GL_MAX_PATCH_VERTICES_OES = 0x8E7D, + GL_MAX_TESS_GEN_LEVEL_OES = 0x8E7E, + GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E7F, + GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E80, + GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES = 0x8E81, + GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES = 0x8E82, + GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES = 0x8E83, + GL_MAX_TESS_PATCH_COMPONENTS_OES = 0x8E84, + GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES = 0x8E85, + GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES = 0x8E86, + GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES = 0x8E89, + GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES = 0x8E8A, + GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES = 0x886C, + GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES = 0x886D, + GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E1E, + GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E1F, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES = 0x92CD, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES = 0x92CE, + GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES = 0x92D3, + GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES = 0x92D4, + GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES = 0x90CB, + GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES = 0x90CC, + GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES = 0x90D8, + GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES = 0x90D9, + GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES = 0x8221, + GL_IS_PER_PATCH_OES = 0x92E7, + GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES = 0x9307, + GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES = 0x9308, + GL_TESS_CONTROL_SHADER_OES = 0x8E88, + GL_TESS_EVALUATION_SHADER_OES = 0x8E87, + GL_TESS_CONTROL_SHADER_BIT_OES = 0x00000008, + GL_TESS_EVALUATION_SHADER_BIT_OES = 0x00000010, +}; +extern void (* const& glPatchParameteriOES) (GLenum pname, GLint value); +#endif + +#ifndef GL_OES_texture_3D +#define GL_OES_texture_3D 1 +enum +{ + GL_TEXTURE_WRAP_R_OES = 0x8072, + GL_TEXTURE_3D_OES = 0x806F, + GL_TEXTURE_BINDING_3D_OES = 0x806A, + GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073, + GL_SAMPLER_3D_OES = 0x8B5F, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4, +}; +extern void (* const& glTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +extern void (* const& glTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +extern void (* const& glCopyTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void (* const& glCompressedTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +extern void (* const& glCompressedTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +extern void (* const& glFramebufferTexture3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +#endif + +#ifndef GL_OES_texture_border_clamp +#define GL_OES_texture_border_clamp 1 +enum +{ + GL_TEXTURE_BORDER_COLOR_OES = 0x1004, + GL_CLAMP_TO_BORDER_OES = 0x812D, +}; +extern void (* const& glTexParameterIivOES) (GLenum target, GLenum pname, const GLint *params); +extern void (* const& glTexParameterIuivOES) (GLenum target, GLenum pname, const GLuint *params); +extern void (* const& glGetTexParameterIivOES) (GLenum target, GLenum pname, GLint *params); +extern void (* const& glGetTexParameterIuivOES) (GLenum target, GLenum pname, GLuint *params); +extern void (* const& glSamplerParameterIivOES) (GLuint sampler, GLenum pname, const GLint *param); +extern void (* const& glSamplerParameterIuivOES) (GLuint sampler, GLenum pname, const GLuint *param); +extern void (* const& glGetSamplerParameterIivOES) (GLuint sampler, GLenum pname, GLint *params); +extern void (* const& glGetSamplerParameterIuivOES) (GLuint sampler, GLenum pname, GLuint *params); +#endif + +#ifndef GL_OES_texture_buffer +#define GL_OES_texture_buffer 1 +enum +{ + GL_TEXTURE_BUFFER_OES = 0x8C2A, + GL_TEXTURE_BUFFER_BINDING_OES = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE_OES = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER_OES = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES = 0x8C2D, + GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES = 0x919F, + GL_SAMPLER_BUFFER_OES = 0x8DC2, + GL_INT_SAMPLER_BUFFER_OES = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_BUFFER_OES = 0x8DD8, + GL_IMAGE_BUFFER_OES = 0x9051, + GL_INT_IMAGE_BUFFER_OES = 0x905C, + GL_UNSIGNED_INT_IMAGE_BUFFER_OES = 0x9067, + GL_TEXTURE_BUFFER_OFFSET_OES = 0x919D, + GL_TEXTURE_BUFFER_SIZE_OES = 0x919E, +}; +extern void (* const& glTexBufferOES) (GLenum target, GLenum internalformat, GLuint buffer); +extern void (* const& glTexBufferRangeOES) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +#endif + +#ifndef GL_OES_texture_compression_astc +#define GL_OES_texture_compression_astc 1 +enum +{ + GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0, + GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1, + GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2, + GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3, + GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4, + GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5, + GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6, + GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7, + GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8, + GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8, + GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9, +}; +#endif + +#ifndef GL_OES_texture_cube_map_array +#define GL_OES_texture_cube_map_array 1 +enum +{ + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES = 0x900A, + GL_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900C, + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES = 0x900D, + GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900E, + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900F, + GL_IMAGE_CUBE_MAP_ARRAY_OES = 0x9054, + GL_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x905F, + GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x906A, +}; +#endif + +#ifndef GL_OES_texture_float +#define GL_OES_texture_float 1 +#endif + +#ifndef GL_OES_texture_float_linear +#define GL_OES_texture_float_linear 1 +#endif + +#ifndef GL_OES_texture_half_float +#define GL_OES_texture_half_float 1 +enum +{ + GL_HALF_FLOAT_OES = 0x8D61, +}; +#endif + +#ifndef GL_OES_texture_half_float_linear +#define GL_OES_texture_half_float_linear 1 +#endif + +#ifndef GL_OES_texture_npot +#define GL_OES_texture_npot 1 +#endif + +#ifndef GL_OES_texture_stencil8 +#define GL_OES_texture_stencil8 1 +enum +{ + GL_STENCIL_INDEX_OES = 0x1901, + GL_STENCIL_INDEX8_OES = 0x8D48, +}; +#endif + +#ifndef GL_OES_texture_storage_multisample_2d_array +#define GL_OES_texture_storage_multisample_2d_array 1 +enum +{ + GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102, + GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105, + GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B, + GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D, +}; +extern void (* const& glTexStorage3DMultisampleOES) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +#endif + +#ifndef GL_OES_texture_view +#define GL_OES_texture_view 1 +enum +{ + GL_TEXTURE_VIEW_MIN_LEVEL_OES = 0x82DB, + GL_TEXTURE_VIEW_NUM_LEVELS_OES = 0x82DC, + GL_TEXTURE_VIEW_MIN_LAYER_OES = 0x82DD, + GL_TEXTURE_VIEW_NUM_LAYERS_OES = 0x82DE, +}; +extern void (* const& glTextureViewOES) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +#endif + +#ifndef GL_OES_vertex_array_object +#define GL_OES_vertex_array_object 1 +enum +{ + GL_VERTEX_ARRAY_BINDING_OES = 0x85B5, +}; +extern void (* const& glBindVertexArrayOES) (GLuint array); +extern void (* const& glDeleteVertexArraysOES) (GLsizei n, const GLuint *arrays); +extern void (* const& glGenVertexArraysOES) (GLsizei n, GLuint *arrays); +extern GLboolean (* const& glIsVertexArrayOES) (GLuint array); +#endif + +#ifndef GL_OES_vertex_half_float +#define GL_OES_vertex_half_float 1 +#endif + +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_OES_vertex_type_10_10_10_2 1 +enum +{ + GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6, + GL_INT_10_10_10_2_OES = 0x8DF7, +}; +#endif + +#ifndef GL_OES_viewport_array +#define GL_OES_viewport_array 1 +enum +{ + GL_MAX_VIEWPORTS_OES = 0x825B, + GL_VIEWPORT_SUBPIXEL_BITS_OES = 0x825C, + GL_VIEWPORT_BOUNDS_RANGE_OES = 0x825D, + GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES = 0x825F, +}; +extern void (* const& glViewportArrayvOES) (GLuint first, GLsizei count, const GLfloat *v); +extern void (* const& glViewportIndexedfOES) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +extern void (* const& glViewportIndexedfvOES) (GLuint index, const GLfloat *v); +extern void (* const& glScissorArrayvOES) (GLuint first, GLsizei count, const GLint *v); +extern void (* const& glScissorIndexedOES) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +extern void (* const& glScissorIndexedvOES) (GLuint index, const GLint *v); +extern void (* const& glDepthRangeArrayfvOES) (GLuint first, GLsizei count, const GLfloat *v); +extern void (* const& glDepthRangeIndexedfOES) (GLuint index, GLfloat n, GLfloat f); +extern void (* const& glGetFloati_vOES) (GLenum target, GLuint index, GLfloat *data); +#endif + +#ifndef GL_OVR_multiview +#define GL_OVR_multiview 1 +enum +{ + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632, + GL_MAX_VIEWS_OVR = 0x9631, + GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633, +}; +extern void (* const& glFramebufferTextureMultiviewOVR) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +#endif + +#ifndef GL_OVR_multiview2 +#define GL_OVR_multiview2 1 +#endif + +#ifndef GL_OVR_multiview_multisampled_render_to_texture +#define GL_OVR_multiview_multisampled_render_to_texture 1 +extern void (* const& glFramebufferTextureMultisampleMultiviewOVR) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); +#endif + +#ifndef GL_QCOM_alpha_test +#define GL_QCOM_alpha_test 1 +enum +{ + GL_ALPHA_TEST_QCOM = 0x0BC0, + GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1, + GL_ALPHA_TEST_REF_QCOM = 0x0BC2, +}; +extern void (* const& glAlphaFuncQCOM) (GLenum func, GLclampf ref); +#endif + +#ifndef GL_QCOM_binning_control +#define GL_QCOM_binning_control 1 +enum +{ + GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0, + GL_CPU_OPTIMIZED_QCOM = 0x8FB1, + GL_GPU_OPTIMIZED_QCOM = 0x8FB2, + GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3, +}; +#endif + +#ifndef GL_QCOM_driver_control +#define GL_QCOM_driver_control 1 +extern void (* const& glGetDriverControlsQCOM) (GLint *num, GLsizei size, GLuint *driverControls); +extern void (* const& glGetDriverControlStringQCOM) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +extern void (* const& glEnableDriverControlQCOM) (GLuint driverControl); +extern void (* const& glDisableDriverControlQCOM) (GLuint driverControl); +#endif + +#ifndef GL_QCOM_extended_get +#define GL_QCOM_extended_get 1 +enum +{ + GL_TEXTURE_WIDTH_QCOM = 0x8BD2, + GL_TEXTURE_HEIGHT_QCOM = 0x8BD3, + GL_TEXTURE_DEPTH_QCOM = 0x8BD4, + GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5, + GL_TEXTURE_FORMAT_QCOM = 0x8BD6, + GL_TEXTURE_TYPE_QCOM = 0x8BD7, + GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8, + GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9, + GL_TEXTURE_TARGET_QCOM = 0x8BDA, + GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB, + GL_STATE_RESTORE = 0x8BDC, +}; +extern void (* const& glExtGetTexturesQCOM) (GLuint *textures, GLint maxTextures, GLint *numTextures); +extern void (* const& glExtGetBuffersQCOM) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +extern void (* const& glExtGetRenderbuffersQCOM) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +extern void (* const& glExtGetFramebuffersQCOM) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +extern void (* const& glExtGetTexLevelParameterivQCOM) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +extern void (* const& glExtTexObjectStateOverrideiQCOM) (GLenum target, GLenum pname, GLint param); +extern void (* const& glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); +extern void (* const& glExtGetBufferPointervQCOM) (GLenum target, void **params); +#endif + +#ifndef GL_QCOM_extended_get2 +#define GL_QCOM_extended_get2 1 +extern void (* const& glExtGetShadersQCOM) (GLuint *shaders, GLint maxShaders, GLint *numShaders); +extern void (* const& glExtGetProgramsQCOM) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); +extern GLboolean (* const& glExtIsProgramBinaryQCOM) (GLuint program); +extern void (* const& glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); +#endif + +#ifndef GL_QCOM_framebuffer_foveated +#define GL_QCOM_framebuffer_foveated 1 +enum +{ + GL_FOVEATION_ENABLE_BIT_QCOM = 0x00000001, + GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM = 0x00000002, +}; +extern void (* const& glFramebufferFoveationConfigQCOM) (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); +extern void (* const& glFramebufferFoveationParametersQCOM) (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); +#endif + +#ifndef GL_QCOM_motion_estimation +#define GL_QCOM_motion_estimation 1 +enum +{ + GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM = 0x8C90, + GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM = 0x8C91, +}; +extern void (* const& glTexEstimateMotionQCOM) (GLuint ref, GLuint target, GLuint output); +extern void (* const& glTexEstimateMotionRegionsQCOM) (GLuint ref, GLuint target, GLuint output, GLuint mask); +#endif + +#ifndef GL_QCOM_frame_extrapolation +#define GL_QCOM_frame_extrapolation 1 +extern void (* const& glExtrapolateTex2DQCOM) (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); +#endif + +#ifndef GL_QCOM_render_shared_exponent +#define GL_QCOM_render_shared_exponent 1 +#endif + +#ifndef GL_QCOM_texture_foveated +#define GL_QCOM_texture_foveated 1 +enum +{ + GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM = 0x8BFB, + GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM = 0x8BFC, + GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM = 0x8BFD, + GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM = 0x8BFE, + GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM = 0x8BFF, +}; +extern void (* const& glTextureFoveationParametersQCOM) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); +#endif + +#ifndef GL_QCOM_texture_foveated2 +#define GL_QCOM_texture_foveated2 1 +enum +{ + GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM = 0x96A0, +}; +#endif + +#ifndef GL_QCOM_texture_foveated_subsampled_layout +#define GL_QCOM_texture_foveated_subsampled_layout 1 +enum +{ + GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM = 0x00000004, + GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM = 0x8FA1, +}; +#endif + +#ifndef GL_QCOM_perfmon_global_mode +#define GL_QCOM_perfmon_global_mode 1 +enum +{ + GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0, +}; +#endif + +#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent +#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 +enum +{ + GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM = 0x96A2, +}; +extern void (* const& glFramebufferFetchBarrierQCOM) (); +#endif + +#ifndef GL_QCOM_shader_framebuffer_fetch_rate +#define GL_QCOM_shader_framebuffer_fetch_rate 1 +#endif + +#ifndef GL_QCOM_shading_rate +#define GL_QCOM_shading_rate 1 +enum +{ + GL_SHADING_RATE_QCOM = 0x96A4, + GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM = 0x96A5, + GL_SHADING_RATE_1X1_PIXELS_QCOM = 0x96A6, + GL_SHADING_RATE_1X2_PIXELS_QCOM = 0x96A7, + GL_SHADING_RATE_2X1_PIXELS_QCOM = 0x96A8, + GL_SHADING_RATE_2X2_PIXELS_QCOM = 0x96A9, + GL_SHADING_RATE_4X2_PIXELS_QCOM = 0x96AC, + GL_SHADING_RATE_4X4_PIXELS_QCOM = 0x96AE, +}; +extern void (* const& glShadingRateQCOM) (GLenum rate); +#endif + +#ifndef GL_QCOM_tiled_rendering +#define GL_QCOM_tiled_rendering 1 +enum +{ + GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001, + GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002, + GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004, + GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008, + GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010, + GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020, + GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040, + GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080, + GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100, + GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200, + GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400, + GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800, + GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000, + GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000, + GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000, + GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000, + GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000, + GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000, + GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000, + GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000, + GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000, + GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000, + GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000, + GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000, + GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000, + GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000, + GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000, + GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000, + GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000, + GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000, + GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000, + GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000, +}; +extern void (* const& glStartTilingQCOM) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +extern void (* const& glEndTilingQCOM) (GLbitfield preserveMask); +#endif + +#ifndef GL_QCOM_writeonly_rendering +#define GL_QCOM_writeonly_rendering 1 +enum +{ + GL_WRITEONLY_RENDERING_QCOM = 0x8823, +}; +#endif + +#ifndef GL_QCOM_YUV_texture_gather +#define GL_QCOM_YUV_texture_gather 1 +#endif + +#ifndef GL_VIV_shader_binary +#define GL_VIV_shader_binary 1 +enum +{ + GL_SHADER_BINARY_VIV = 0x8FC4, +}; +#endif + +#ifndef GL_EXT_texture_shadow_lod +#define GL_EXT_texture_shadow_lod 1 +#endif + + +void loadFunctions(); + +} +} diff --git a/modules/juce_opengl/opengl/juce_khrplatform.h b/modules/juce_opengl/opengl/juce_khrplatform.h new file mode 100644 index 0000000000..11209702f4 --- /dev/null +++ b/modules/juce_opengl/opengl/juce_khrplatform.h @@ -0,0 +1,290 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2018 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * The master copy of khrplatform.h is maintained in the Khronos EGL + * Registry repository at https://github.com/KhronosGroup/EGL-Registry + * The last semantic modification to khrplatform.h was at commit ID: + * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by filing pull requests or issues on + * the EGL Registry repository linked above. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(KHRONOS_STATIC) + /* If the preprocessor constant KHRONOS_STATIC is defined, make the + * header compatible with static linking. */ +# define KHRONOS_APICALL +#elif defined(_WIN32) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# define KHRONOS_APICALL __attribute__((visibility("default"))) +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__VMS ) || defined(__sgi) + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* + * Win32 + */ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* + * Sun or Digital + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* + * Hypothetical platform with no float or int64 support + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* + * Generic fallback + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* + * Types that are (so far) the same on all platforms + */ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* + * Types that differ between LLP64 and LP64 architectures - in LLP64, + * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears + * to be the only LLP64 architecture in current use. + */ +#ifdef _WIN64 +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* + * Float type + */ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types + * + * These types can be used to represent a time interval in nanoseconds or + * an absolute Unadjusted System Time. Unadjusted System Time is the number + * of nanoseconds since some arbitrary system event (e.g. since the last + * time the system booted). The Unadjusted System Time is an unsigned + * 64 bit value that wraps back to 0 every 584 years. Time intervals + * may be either signed or unsigned. + */ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* + * Dummy value used to pad enum types to 32 bits. + */ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* + * Enumerated boolean type + * + * Values other than zero should be considered to be true. Therefore + * comparisons should not be made against KHRONOS_TRUE. + */ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ diff --git a/modules/juce_opengl/opengl/juce_wgl.h b/modules/juce_opengl/opengl/juce_wgl.h new file mode 100644 index 0000000000..45e76cb77e --- /dev/null +++ b/modules/juce_opengl/opengl/juce_wgl.h @@ -0,0 +1,645 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2020 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 6 End-User License + Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). + + End User License Agreement: www.juce.com/juce-6-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +// This file was generated automatically using data from the opengl-registry +// https://github.com/KhronosGroup/OpenGL-Registry + +#pragma once + + +namespace juce +{ +namespace gl +{ + + +// WGL_VERSION_1_0 +#ifndef WGL_FONT_LINES +enum +{ + WGL_FONT_LINES = 0, + WGL_FONT_POLYGONS = 1, + WGL_SWAP_MAIN_PLANE = 0x00000001, + WGL_SWAP_OVERLAY1 = 0x00000002, + WGL_SWAP_OVERLAY2 = 0x00000004, + WGL_SWAP_OVERLAY3 = 0x00000008, + WGL_SWAP_OVERLAY4 = 0x00000010, + WGL_SWAP_OVERLAY5 = 0x00000020, + WGL_SWAP_OVERLAY6 = 0x00000040, + WGL_SWAP_OVERLAY7 = 0x00000080, + WGL_SWAP_OVERLAY8 = 0x00000100, + WGL_SWAP_OVERLAY9 = 0x00000200, + WGL_SWAP_OVERLAY10 = 0x00000400, + WGL_SWAP_OVERLAY11 = 0x00000800, + WGL_SWAP_OVERLAY12 = 0x00001000, + WGL_SWAP_OVERLAY13 = 0x00002000, + WGL_SWAP_OVERLAY14 = 0x00004000, + WGL_SWAP_OVERLAY15 = 0x00008000, + WGL_SWAP_UNDERLAY1 = 0x00010000, + WGL_SWAP_UNDERLAY2 = 0x00020000, + WGL_SWAP_UNDERLAY3 = 0x00040000, + WGL_SWAP_UNDERLAY4 = 0x00080000, + WGL_SWAP_UNDERLAY5 = 0x00100000, + WGL_SWAP_UNDERLAY6 = 0x00200000, + WGL_SWAP_UNDERLAY7 = 0x00400000, + WGL_SWAP_UNDERLAY8 = 0x00800000, + WGL_SWAP_UNDERLAY9 = 0x01000000, + WGL_SWAP_UNDERLAY10 = 0x02000000, + WGL_SWAP_UNDERLAY11 = 0x04000000, + WGL_SWAP_UNDERLAY12 = 0x08000000, + WGL_SWAP_UNDERLAY13 = 0x10000000, + WGL_SWAP_UNDERLAY14 = 0x20000000, + WGL_SWAP_UNDERLAY15 = 0x40000000, +}; +#endif + +// WGL_3DFX_multisample +#ifndef WGL_SAMPLE_BUFFERS_3DFX +enum +{ + WGL_SAMPLE_BUFFERS_3DFX = 0x2060, + WGL_SAMPLES_3DFX = 0x2061, +}; +#endif + +// WGL_3DL_stereo_control +#ifndef WGL_STEREO_EMITTER_ENABLE_3DL +enum +{ + WGL_STEREO_EMITTER_ENABLE_3DL = 0x2055, + WGL_STEREO_EMITTER_DISABLE_3DL = 0x2056, + WGL_STEREO_POLARITY_NORMAL_3DL = 0x2057, + WGL_STEREO_POLARITY_INVERT_3DL = 0x2058, +}; +#endif + +// WGL_AMD_gpu_association +#ifndef WGL_GPU_VENDOR_AMD +enum +{ + WGL_GPU_VENDOR_AMD = 0x1F00, + WGL_GPU_RENDERER_STRING_AMD = 0x1F01, + WGL_GPU_OPENGL_VERSION_STRING_AMD = 0x1F02, + WGL_GPU_FASTEST_TARGET_GPUS_AMD = 0x21A2, + WGL_GPU_RAM_AMD = 0x21A3, + WGL_GPU_CLOCK_AMD = 0x21A4, + WGL_GPU_NUM_PIPES_AMD = 0x21A5, + WGL_GPU_NUM_SIMD_AMD = 0x21A6, + WGL_GPU_NUM_RB_AMD = 0x21A7, + WGL_GPU_NUM_SPI_AMD = 0x21A8, +}; +#endif + +// WGL_ARB_buffer_region +#ifndef WGL_FRONT_COLOR_BUFFER_BIT_ARB +enum +{ + WGL_FRONT_COLOR_BUFFER_BIT_ARB = 0x00000001, + WGL_BACK_COLOR_BUFFER_BIT_ARB = 0x00000002, + WGL_DEPTH_BUFFER_BIT_ARB = 0x00000004, + WGL_STENCIL_BUFFER_BIT_ARB = 0x00000008, +}; +#endif + +// WGL_ARB_context_flush_control +#ifndef WGL_CONTEXT_RELEASE_BEHAVIOR_ARB +enum +{ + WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = 0x2097, + WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0, + WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = 0x2098, +}; +#endif + +// WGL_ARB_create_context +#ifndef WGL_CONTEXT_DEBUG_BIT_ARB +enum +{ + WGL_CONTEXT_DEBUG_BIT_ARB = 0x00000001, + WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002, + WGL_CONTEXT_MAJOR_VERSION_ARB = 0x2091, + WGL_CONTEXT_MINOR_VERSION_ARB = 0x2092, + WGL_CONTEXT_LAYER_PLANE_ARB = 0x2093, + WGL_CONTEXT_FLAGS_ARB = 0x2094, + ERROR_INVALID_VERSION_ARB = 0x2095, +}; +#endif + +// WGL_ARB_create_context_no_error +#ifndef WGL_CONTEXT_OPENGL_NO_ERROR_ARB +enum +{ + WGL_CONTEXT_OPENGL_NO_ERROR_ARB = 0x31B3, +}; +#endif + +// WGL_ARB_create_context_profile +#ifndef WGL_CONTEXT_PROFILE_MASK_ARB +enum +{ + WGL_CONTEXT_PROFILE_MASK_ARB = 0x9126, + WGL_CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001, + WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002, + ERROR_INVALID_PROFILE_ARB = 0x2096, +}; +#endif + +// WGL_ARB_create_context_robustness +#ifndef WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB +enum +{ + WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = 0x00000004, + WGL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252, + WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256, + WGL_NO_RESET_NOTIFICATION_ARB = 0x8261, +}; +#endif + +// WGL_ARB_framebuffer_sRGB +#ifndef WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB +enum +{ + WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = 0x20A9, +}; +#endif + +// WGL_ARB_make_current_read +#ifndef ERROR_INVALID_PIXEL_TYPE_ARB +enum +{ + ERROR_INVALID_PIXEL_TYPE_ARB = 0x2043, + ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = 0x2054, +}; +#endif + +// WGL_ARB_multisample +#ifndef WGL_SAMPLE_BUFFERS_ARB +enum +{ + WGL_SAMPLE_BUFFERS_ARB = 0x2041, + WGL_SAMPLES_ARB = 0x2042, +}; +#endif + +// WGL_ARB_pbuffer +#ifndef WGL_DRAW_TO_PBUFFER_ARB +enum +{ + WGL_DRAW_TO_PBUFFER_ARB = 0x202D, + WGL_MAX_PBUFFER_PIXELS_ARB = 0x202E, + WGL_MAX_PBUFFER_WIDTH_ARB = 0x202F, + WGL_MAX_PBUFFER_HEIGHT_ARB = 0x2030, + WGL_PBUFFER_LARGEST_ARB = 0x2033, + WGL_PBUFFER_WIDTH_ARB = 0x2034, + WGL_PBUFFER_HEIGHT_ARB = 0x2035, + WGL_PBUFFER_LOST_ARB = 0x2036, +}; +#endif + +// WGL_ARB_pixel_format +#ifndef WGL_NUMBER_PIXEL_FORMATS_ARB +enum +{ + WGL_NUMBER_PIXEL_FORMATS_ARB = 0x2000, + WGL_DRAW_TO_WINDOW_ARB = 0x2001, + WGL_DRAW_TO_BITMAP_ARB = 0x2002, + WGL_ACCELERATION_ARB = 0x2003, + WGL_NEED_PALETTE_ARB = 0x2004, + WGL_NEED_SYSTEM_PALETTE_ARB = 0x2005, + WGL_SWAP_LAYER_BUFFERS_ARB = 0x2006, + WGL_SWAP_METHOD_ARB = 0x2007, + WGL_NUMBER_OVERLAYS_ARB = 0x2008, + WGL_NUMBER_UNDERLAYS_ARB = 0x2009, + WGL_TRANSPARENT_ARB = 0x200A, + WGL_TRANSPARENT_RED_VALUE_ARB = 0x2037, + WGL_TRANSPARENT_GREEN_VALUE_ARB = 0x2038, + WGL_TRANSPARENT_BLUE_VALUE_ARB = 0x2039, + WGL_TRANSPARENT_ALPHA_VALUE_ARB = 0x203A, + WGL_TRANSPARENT_INDEX_VALUE_ARB = 0x203B, + WGL_SHARE_DEPTH_ARB = 0x200C, + WGL_SHARE_STENCIL_ARB = 0x200D, + WGL_SHARE_ACCUM_ARB = 0x200E, + WGL_SUPPORT_GDI_ARB = 0x200F, + WGL_SUPPORT_OPENGL_ARB = 0x2010, + WGL_DOUBLE_BUFFER_ARB = 0x2011, + WGL_STEREO_ARB = 0x2012, + WGL_PIXEL_TYPE_ARB = 0x2013, + WGL_COLOR_BITS_ARB = 0x2014, + WGL_RED_BITS_ARB = 0x2015, + WGL_RED_SHIFT_ARB = 0x2016, + WGL_GREEN_BITS_ARB = 0x2017, + WGL_GREEN_SHIFT_ARB = 0x2018, + WGL_BLUE_BITS_ARB = 0x2019, + WGL_BLUE_SHIFT_ARB = 0x201A, + WGL_ALPHA_BITS_ARB = 0x201B, + WGL_ALPHA_SHIFT_ARB = 0x201C, + WGL_ACCUM_BITS_ARB = 0x201D, + WGL_ACCUM_RED_BITS_ARB = 0x201E, + WGL_ACCUM_GREEN_BITS_ARB = 0x201F, + WGL_ACCUM_BLUE_BITS_ARB = 0x2020, + WGL_ACCUM_ALPHA_BITS_ARB = 0x2021, + WGL_DEPTH_BITS_ARB = 0x2022, + WGL_STENCIL_BITS_ARB = 0x2023, + WGL_AUX_BUFFERS_ARB = 0x2024, + WGL_NO_ACCELERATION_ARB = 0x2025, + WGL_GENERIC_ACCELERATION_ARB = 0x2026, + WGL_FULL_ACCELERATION_ARB = 0x2027, + WGL_SWAP_EXCHANGE_ARB = 0x2028, + WGL_SWAP_COPY_ARB = 0x2029, + WGL_SWAP_UNDEFINED_ARB = 0x202A, + WGL_TYPE_RGBA_ARB = 0x202B, + WGL_TYPE_COLORINDEX_ARB = 0x202C, +}; +#endif + +// WGL_ARB_pixel_format_float +#ifndef WGL_TYPE_RGBA_FLOAT_ARB +enum +{ + WGL_TYPE_RGBA_FLOAT_ARB = 0x21A0, +}; +#endif + +// WGL_ARB_render_texture +#ifndef WGL_BIND_TO_TEXTURE_RGB_ARB +enum +{ + WGL_BIND_TO_TEXTURE_RGB_ARB = 0x2070, + WGL_BIND_TO_TEXTURE_RGBA_ARB = 0x2071, + WGL_TEXTURE_FORMAT_ARB = 0x2072, + WGL_TEXTURE_TARGET_ARB = 0x2073, + WGL_MIPMAP_TEXTURE_ARB = 0x2074, + WGL_TEXTURE_RGB_ARB = 0x2075, + WGL_TEXTURE_RGBA_ARB = 0x2076, + WGL_NO_TEXTURE_ARB = 0x2077, + WGL_TEXTURE_CUBE_MAP_ARB = 0x2078, + WGL_TEXTURE_1D_ARB = 0x2079, + WGL_TEXTURE_2D_ARB = 0x207A, + WGL_MIPMAP_LEVEL_ARB = 0x207B, + WGL_CUBE_MAP_FACE_ARB = 0x207C, + WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x207D, + WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x207E, + WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x207F, + WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x2080, + WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x2081, + WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x2082, + WGL_FRONT_LEFT_ARB = 0x2083, + WGL_FRONT_RIGHT_ARB = 0x2084, + WGL_BACK_LEFT_ARB = 0x2085, + WGL_BACK_RIGHT_ARB = 0x2086, + WGL_AUX0_ARB = 0x2087, + WGL_AUX1_ARB = 0x2088, + WGL_AUX2_ARB = 0x2089, + WGL_AUX3_ARB = 0x208A, + WGL_AUX4_ARB = 0x208B, + WGL_AUX5_ARB = 0x208C, + WGL_AUX6_ARB = 0x208D, + WGL_AUX7_ARB = 0x208E, + WGL_AUX8_ARB = 0x208F, + WGL_AUX9_ARB = 0x2090, +}; +#endif + +// WGL_ARB_robustness_application_isolation +#ifndef WGL_CONTEXT_RESET_ISOLATION_BIT_ARB +enum +{ + WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = 0x00000008, +}; +#endif + +// WGL_ATI_pixel_format_float +#ifndef WGL_TYPE_RGBA_FLOAT_ATI +enum +{ + WGL_TYPE_RGBA_FLOAT_ATI = 0x21A0, +}; +#endif + +// WGL_ATI_render_texture_rectangle +#ifndef WGL_TEXTURE_RECTANGLE_ATI +enum +{ + WGL_TEXTURE_RECTANGLE_ATI = 0x21A5, +}; +#endif + +// WGL_EXT_colorspace +#ifndef WGL_COLORSPACE_EXT +enum +{ + WGL_COLORSPACE_EXT = 0x309D, + WGL_COLORSPACE_SRGB_EXT = 0x3089, + WGL_COLORSPACE_LINEAR_EXT = 0x308A, +}; +#endif + +// WGL_EXT_create_context_es_profile +#ifndef WGL_CONTEXT_ES_PROFILE_BIT_EXT +enum +{ + WGL_CONTEXT_ES_PROFILE_BIT_EXT = 0x00000004, +}; +#endif + +// WGL_EXT_create_context_es2_profile +#ifndef WGL_CONTEXT_ES2_PROFILE_BIT_EXT +enum +{ + WGL_CONTEXT_ES2_PROFILE_BIT_EXT = 0x00000004, +}; +#endif + +// WGL_EXT_depth_float +#ifndef WGL_DEPTH_FLOAT_EXT +enum +{ + WGL_DEPTH_FLOAT_EXT = 0x2040, +}; +#endif + +// WGL_EXT_framebuffer_sRGB +#ifndef WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT +enum +{ + WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20A9, +}; +#endif + +// WGL_EXT_make_current_read +#ifndef ERROR_INVALID_PIXEL_TYPE_EXT +enum +{ + ERROR_INVALID_PIXEL_TYPE_EXT = 0x2043, +}; +#endif + +// WGL_EXT_multisample +#ifndef WGL_SAMPLE_BUFFERS_EXT +enum +{ + WGL_SAMPLE_BUFFERS_EXT = 0x2041, + WGL_SAMPLES_EXT = 0x2042, +}; +#endif + +// WGL_EXT_pbuffer +#ifndef WGL_DRAW_TO_PBUFFER_EXT +enum +{ + WGL_DRAW_TO_PBUFFER_EXT = 0x202D, + WGL_MAX_PBUFFER_PIXELS_EXT = 0x202E, + WGL_MAX_PBUFFER_WIDTH_EXT = 0x202F, + WGL_MAX_PBUFFER_HEIGHT_EXT = 0x2030, + WGL_OPTIMAL_PBUFFER_WIDTH_EXT = 0x2031, + WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = 0x2032, + WGL_PBUFFER_LARGEST_EXT = 0x2033, + WGL_PBUFFER_WIDTH_EXT = 0x2034, + WGL_PBUFFER_HEIGHT_EXT = 0x2035, +}; +#endif + +// WGL_EXT_pixel_format +#ifndef WGL_NUMBER_PIXEL_FORMATS_EXT +enum +{ + WGL_NUMBER_PIXEL_FORMATS_EXT = 0x2000, + WGL_DRAW_TO_WINDOW_EXT = 0x2001, + WGL_DRAW_TO_BITMAP_EXT = 0x2002, + WGL_ACCELERATION_EXT = 0x2003, + WGL_NEED_PALETTE_EXT = 0x2004, + WGL_NEED_SYSTEM_PALETTE_EXT = 0x2005, + WGL_SWAP_LAYER_BUFFERS_EXT = 0x2006, + WGL_SWAP_METHOD_EXT = 0x2007, + WGL_NUMBER_OVERLAYS_EXT = 0x2008, + WGL_NUMBER_UNDERLAYS_EXT = 0x2009, + WGL_TRANSPARENT_EXT = 0x200A, + WGL_TRANSPARENT_VALUE_EXT = 0x200B, + WGL_SHARE_DEPTH_EXT = 0x200C, + WGL_SHARE_STENCIL_EXT = 0x200D, + WGL_SHARE_ACCUM_EXT = 0x200E, + WGL_SUPPORT_GDI_EXT = 0x200F, + WGL_SUPPORT_OPENGL_EXT = 0x2010, + WGL_DOUBLE_BUFFER_EXT = 0x2011, + WGL_STEREO_EXT = 0x2012, + WGL_PIXEL_TYPE_EXT = 0x2013, + WGL_COLOR_BITS_EXT = 0x2014, + WGL_RED_BITS_EXT = 0x2015, + WGL_RED_SHIFT_EXT = 0x2016, + WGL_GREEN_BITS_EXT = 0x2017, + WGL_GREEN_SHIFT_EXT = 0x2018, + WGL_BLUE_BITS_EXT = 0x2019, + WGL_BLUE_SHIFT_EXT = 0x201A, + WGL_ALPHA_BITS_EXT = 0x201B, + WGL_ALPHA_SHIFT_EXT = 0x201C, + WGL_ACCUM_BITS_EXT = 0x201D, + WGL_ACCUM_RED_BITS_EXT = 0x201E, + WGL_ACCUM_GREEN_BITS_EXT = 0x201F, + WGL_ACCUM_BLUE_BITS_EXT = 0x2020, + WGL_ACCUM_ALPHA_BITS_EXT = 0x2021, + WGL_DEPTH_BITS_EXT = 0x2022, + WGL_STENCIL_BITS_EXT = 0x2023, + WGL_AUX_BUFFERS_EXT = 0x2024, + WGL_NO_ACCELERATION_EXT = 0x2025, + WGL_GENERIC_ACCELERATION_EXT = 0x2026, + WGL_FULL_ACCELERATION_EXT = 0x2027, + WGL_SWAP_EXCHANGE_EXT = 0x2028, + WGL_SWAP_COPY_EXT = 0x2029, + WGL_SWAP_UNDEFINED_EXT = 0x202A, + WGL_TYPE_RGBA_EXT = 0x202B, + WGL_TYPE_COLORINDEX_EXT = 0x202C, +}; +#endif + +// WGL_EXT_pixel_format_packed_float +#ifndef WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT +enum +{ + WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = 0x20A8, +}; +#endif + +// WGL_I3D_digital_video_control +#ifndef WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D +enum +{ + WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = 0x2050, + WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = 0x2051, + WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = 0x2052, + WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = 0x2053, +}; +#endif + +// WGL_I3D_gamma +#ifndef WGL_GAMMA_TABLE_SIZE_I3D +enum +{ + WGL_GAMMA_TABLE_SIZE_I3D = 0x204E, + WGL_GAMMA_EXCLUDE_DESKTOP_I3D = 0x204F, +}; +#endif + +// WGL_I3D_genlock +#ifndef WGL_GENLOCK_SOURCE_MULTIVIEW_I3D +enum +{ + WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = 0x2044, + WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D = 0x2045, + WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D = 0x2046, + WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D = 0x2047, + WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = 0x2048, + WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = 0x2049, + WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = 0x204A, + WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = 0x204B, + WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = 0x204C, +}; +#endif + +// WGL_I3D_image_buffer +#ifndef WGL_IMAGE_BUFFER_MIN_ACCESS_I3D +enum +{ + WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = 0x00000001, + WGL_IMAGE_BUFFER_LOCK_I3D = 0x00000002, +}; +#endif + +// WGL_NV_DX_interop +#ifndef WGL_ACCESS_READ_ONLY_NV +enum +{ + WGL_ACCESS_READ_ONLY_NV = 0x00000000, + WGL_ACCESS_READ_WRITE_NV = 0x00000001, + WGL_ACCESS_WRITE_DISCARD_NV = 0x00000002, +}; +#endif + +// WGL_NV_float_buffer +#ifndef WGL_FLOAT_COMPONENTS_NV +enum +{ + WGL_FLOAT_COMPONENTS_NV = 0x20B0, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = 0x20B1, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = 0x20B2, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = 0x20B3, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = 0x20B4, + WGL_TEXTURE_FLOAT_R_NV = 0x20B5, + WGL_TEXTURE_FLOAT_RG_NV = 0x20B6, + WGL_TEXTURE_FLOAT_RGB_NV = 0x20B7, + WGL_TEXTURE_FLOAT_RGBA_NV = 0x20B8, +}; +#endif + +// WGL_NV_gpu_affinity +#ifndef ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV +enum +{ + ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = 0x20D0, + ERROR_MISSING_AFFINITY_MASK_NV = 0x20D1, +}; +#endif + +// WGL_NV_multisample_coverage +#ifndef WGL_COVERAGE_SAMPLES_NV +enum +{ + WGL_COVERAGE_SAMPLES_NV = 0x2042, + WGL_COLOR_SAMPLES_NV = 0x20B9, +}; +#endif + +// WGL_NV_present_video +#ifndef WGL_NUM_VIDEO_SLOTS_NV +enum +{ + WGL_NUM_VIDEO_SLOTS_NV = 0x20F0, +}; +#endif + +// WGL_NV_render_depth_texture +#ifndef WGL_BIND_TO_TEXTURE_DEPTH_NV +enum +{ + WGL_BIND_TO_TEXTURE_DEPTH_NV = 0x20A3, + WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = 0x20A4, + WGL_DEPTH_TEXTURE_FORMAT_NV = 0x20A5, + WGL_TEXTURE_DEPTH_COMPONENT_NV = 0x20A6, + WGL_DEPTH_COMPONENT_NV = 0x20A7, +}; +#endif + +// WGL_NV_render_texture_rectangle +#ifndef WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV +enum +{ + WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = 0x20A0, + WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = 0x20A1, + WGL_TEXTURE_RECTANGLE_NV = 0x20A2, +}; +#endif + +// WGL_NV_video_capture +#ifndef WGL_UNIQUE_ID_NV +enum +{ + WGL_UNIQUE_ID_NV = 0x20CE, + WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = 0x20CF, +}; +#endif + +// WGL_NV_video_output +#ifndef WGL_BIND_TO_VIDEO_RGB_NV +enum +{ + WGL_BIND_TO_VIDEO_RGB_NV = 0x20C0, + WGL_BIND_TO_VIDEO_RGBA_NV = 0x20C1, + WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = 0x20C2, + WGL_VIDEO_OUT_COLOR_NV = 0x20C3, + WGL_VIDEO_OUT_ALPHA_NV = 0x20C4, + WGL_VIDEO_OUT_DEPTH_NV = 0x20C5, + WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6, + WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7, + WGL_VIDEO_OUT_FRAME = 0x20C8, + WGL_VIDEO_OUT_FIELD_1 = 0x20C9, + WGL_VIDEO_OUT_FIELD_2 = 0x20CA, + WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = 0x20CB, + WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = 0x20CC, +}; +#endif + +// WGL_NV_multigpu_context +#ifndef WGL_CONTEXT_MULTIGPU_ATTRIB_NV +enum +{ + WGL_CONTEXT_MULTIGPU_ATTRIB_NV = 0x20AA, + WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV = 0x20AB, + WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV = 0x20AC, + WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV = 0x20AD, + WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV = 0x20AE, +}; +#endif + +} +}