API links for OpenGL ES 3.0 (#1007)

Co-authored-by: mwilsnd <mwilsnd@gmail.com>
This commit is contained in:
Alex Cristici
2023-04-14 23:48:53 +03:00
committed by GitHub
parent 4828cc7a8b
commit 8ff6704fc4
19 changed files with 2216 additions and 311 deletions

View File

@@ -5,6 +5,8 @@
namespace mbgl {
namespace platform {
/* OpenGL ES 2.0 */
void (* const glActiveTexture)(GLenum) = ::glActiveTexture;
void (* const glAttachShader)(GLuint, GLuint) = ::glAttachShader;
void (* const glBindAttribLocation)(GLuint, GLuint, const GLchar *) = ::glBindAttribLocation;
@@ -74,6 +76,7 @@ void (* const glGetProgramiv)(GLuint, GLenum, GLint *) = ::glGetProgramiv;
void (* const glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *) = ::glGetRenderbufferParameteriv;
void (* const glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderInfoLog;
void (* const glGetShaderiv)(GLuint, GLenum, GLint *) = ::glGetShaderiv;
void (* const glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *) = ::glGetShaderPrecisionFormat;
void (* const glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderSource;
const GLubyte *(* const glGetString)(GLenum) = ::glGetString;
void (* const glGetTexParameterfv)(GLenum, GLenum, GLfloat *) = ::glGetTexParameterfv;
@@ -97,15 +100,12 @@ void (* const glLinkProgram)(GLuint) = ::glLinkProgram;
void (* const glPixelStorei)(GLenum, GLint) = ::glPixelStorei;
void (* const glPolygonOffset)(GLfloat, GLfloat) = ::glPolygonOffset;
void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void *) = ::glReadPixels;
void (* const glReleaseShaderCompiler)() = ::glReleaseShaderCompiler;
void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorage;
void (* const glSampleCoverage)(GLfloat, GLboolean) = ::glSampleCoverage;
void (* const glScissor)(GLint, GLint, GLsizei, GLsizei) = ::glScissor;
// Some implementations use `const GLchar* const*` and others `const GLchar**`.
void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = [](GLuint shader, GLsizei count, const GLchar * const * string, const GLint *length) {
::glShaderSource(shader, count, const_cast<const GLchar **>(string), length);
};
void (* const glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei) = ::glShaderBinary;
void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = ::glShaderSource;
void (* const glStencilFunc)(GLenum, GLint, GLuint) = ::glStencilFunc;
void (* const glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = ::glStencilFuncSeparate;
void (* const glStencilMask)(GLuint) = ::glStencilMask;
@@ -150,5 +150,112 @@ void (* const glVertexAttrib4fv)(GLuint, const GLfloat *) = ::glVertexAttrib4fv;
void (* const glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const void *) = ::glVertexAttribPointer;
void (* const glViewport)(GLint, GLint, GLsizei, GLsizei) = ::glViewport;
/* OpenGL ES 3.0 */
void (* const glReadBuffer)(GLenum) = ::glReadBuffer;
void (* const glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *) = ::glDrawRangeElements;
void (* const glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = ::glTexImage3D;
void (* const glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = ::glTexSubImage3D;
void (* const glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = ::glCopyTexSubImage3D;
void (* const glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = ::glCompressedTexImage3D;
void (* const glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = ::glCompressedTexSubImage3D;
void (* const glGenQueries)(GLsizei, GLuint *) = ::glGenQueries;
void (* const glDeleteQueries)(GLsizei, const GLuint *) = ::glDeleteQueries;
GLboolean (* const glIsQuery)(GLuint) = ::glIsQuery;
void (* const glBeginQuery)(GLenum, GLuint) = ::glBeginQuery;
void (* const glEndQuery)(GLenum) = ::glEndQuery;
void (* const glGetQueryiv)(GLenum, GLenum, GLint *) = ::glGetQueryiv;
void (* const glGetQueryObjectuiv)(GLuint, GLenum, GLuint *) = ::glGetQueryObjectuiv;
GLboolean (* const glUnmapBuffer)(GLenum) = ::glUnmapBuffer;
void (* const glGetBufferPointerv)(GLenum, GLenum, GLvoid **) = ::glGetBufferPointerv;
void (* const glDrawBuffers)(GLsizei, const GLenum *) = ::glDrawBuffers;
void (* const glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x3fv;
void (* const glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x2fv;
void (* const glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x4fv;
void (* const glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x2fv;
void (* const glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x4fv;
void (* const glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x3fv;
void (* const glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = ::glBlitFramebuffer;
void (* const glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorageMultisample;
void (* const glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = ::glFramebufferTextureLayer;
GLvoid* (* const glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = ::glMapBufferRange;
void (* const glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = ::glFlushMappedBufferRange;
void (* const glBindVertexArray)(GLuint) = ::glBindVertexArray;
void (* const glDeleteVertexArrays)(GLsizei, const GLuint *) = ::glDeleteVertexArrays;
void (* const glGenVertexArrays)(GLsizei, GLuint *) = ::glGenVertexArrays;
GLboolean (* const glIsVertexArray)(GLuint) = ::glIsVertexArray;
void (* const glGetIntegeri_v)(GLenum, GLuint, GLint *) = ::glGetIntegeri_v;
void (* const glBeginTransformFeedback)(GLenum) = ::glBeginTransformFeedback;
void (* const glEndTransformFeedback)() = ::glEndTransformFeedback;
void (* const glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = ::glBindBufferRange;
void (* const glBindBufferBase)(GLenum, GLuint, GLuint) = ::glBindBufferBase;
void (* const glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar * const*, GLenum) = ::glTransformFeedbackVaryings;
void (* const glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *) = ::glGetTransformFeedbackVarying;
void (* const glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = ::glVertexAttribIPointer;
void (* const glGetVertexAttribIiv)(GLuint, GLenum, GLint *) = ::glGetVertexAttribIiv;
void (* const glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *) = ::glGetVertexAttribIuiv;
void (* const glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = ::glVertexAttribI4i;
void (* const glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = ::glVertexAttribI4ui;
void (* const glVertexAttribI4iv)(GLuint, const GLint *) = ::glVertexAttribI4iv;
void (* const glVertexAttribI4uiv)(GLuint, const GLuint *) = ::glVertexAttribI4uiv;
void (* const glGetUniformuiv)(GLuint, GLint, GLuint *) = ::glGetUniformuiv;
GLint (* const glGetFragDataLocation)(GLuint, const GLchar *) = ::glGetFragDataLocation;
void (* const glUniform1ui)(GLint, GLuint) = ::glUniform1ui;
void (* const glUniform2ui)(GLint, GLuint, GLuint) = ::glUniform2ui;
void (* const glUniform3ui)(GLint, GLuint, GLuint, GLuint) = ::glUniform3ui;
void (* const glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = ::glUniform4ui;
void (* const glUniform1uiv)(GLint, GLsizei, const GLuint *) = ::glUniform1uiv;
void (* const glUniform2uiv)(GLint, GLsizei, const GLuint *) = ::glUniform2uiv;
void (* const glUniform3uiv)(GLint, GLsizei, const GLuint *) = ::glUniform3uiv;
void (* const glUniform4uiv)(GLint, GLsizei, const GLuint *) = ::glUniform4uiv;
void (* const glClearBufferiv)(GLenum, GLint, const GLint *) = ::glClearBufferiv;
void (* const glClearBufferuiv)(GLenum, GLint, const GLuint *) = ::glClearBufferuiv;
void (* const glClearBufferfv)(GLenum, GLint, const GLfloat *) = ::glClearBufferfv;
void (* const glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = ::glClearBufferfi;
const GLubyte* (* const glGetStringi)(GLenum, GLuint) = ::glGetStringi;
void (* const glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = ::glCopyBufferSubData;
void (* const glGetUniformIndices)(GLuint, GLsizei, const GLchar * const*, GLuint *) = ::glGetUniformIndices;
void (* const glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *) = ::glGetActiveUniformsiv;
GLuint (* const glGetUniformBlockIndex)(GLuint, const GLchar *) = ::glGetUniformBlockIndex;
void (* const glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *) = ::glGetActiveUniformBlockiv;
void (* const glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetActiveUniformBlockName;
void (* const glUniformBlockBinding)(GLuint, GLuint, GLuint) = ::glUniformBlockBinding;
void (* const glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = ::glDrawArraysInstanced;
void (* const glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei) = ::glDrawElementsInstanced;
GLsync (* const glFenceSync)(GLenum, GLbitfield) = ::glFenceSync;
GLboolean (* const glIsSync)(GLsync) = ::glIsSync;
void (* const glDeleteSync)(GLsync) = ::glDeleteSync;
GLenum (* const glClientWaitSync)(GLsync, GLbitfield, GLuint64) = ::glClientWaitSync;
void (* const glWaitSync)(GLsync, GLbitfield, GLuint64) = ::glWaitSync;
void (* const glGetInteger64v)(GLenum, GLint64 *) = ::glGetInteger64v;
void (* const glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *) = ::glGetSynciv;
void (* const glGetInteger64i_v)(GLenum, GLuint, GLint64 *) = ::glGetInteger64i_v;
void (* const glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *) = ::glGetBufferParameteri64v;
void (* const glGenSamplers)(GLsizei, GLuint *) = ::glGenSamplers;
void (* const glDeleteSamplers)(GLsizei, const GLuint *) = ::glDeleteSamplers;
GLboolean (* const glIsSampler)(GLuint) = ::glIsSampler;
void (* const glBindSampler)(GLuint, GLuint) = ::glBindSampler;
void (* const glSamplerParameteri)(GLuint, GLenum, GLint) = ::glSamplerParameteri;
void (* const glSamplerParameteriv)(GLuint, GLenum, const GLint *) = ::glSamplerParameteriv;
void (* const glSamplerParameterf)(GLuint, GLenum, GLfloat) = ::glSamplerParameterf;
void (* const glSamplerParameterfv)(GLuint, GLenum, const GLfloat *) = ::glSamplerParameterfv;
void (* const glGetSamplerParameteriv)(GLuint, GLenum, GLint *) = ::glGetSamplerParameteriv;
void (* const glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *) = ::glGetSamplerParameterfv;
void (* const glVertexAttribDivisor)(GLuint, GLuint) = ::glVertexAttribDivisor;
void (* const glBindTransformFeedback)(GLenum, GLuint) = ::glBindTransformFeedback;
void (* const glDeleteTransformFeedbacks)(GLsizei, const GLuint *) = ::glDeleteTransformFeedbacks;
void (* const glGenTransformFeedbacks)(GLsizei, GLuint *) = ::glGenTransformFeedbacks;
GLboolean (* const glIsTransformFeedback)(GLuint) = ::glIsTransformFeedback;
void (* const glPauseTransformFeedback)() = ::glPauseTransformFeedback;
void (* const glResumeTransformFeedback)() = ::glResumeTransformFeedback;
void (* const glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *) = ::glGetProgramBinary;
void (* const glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei) = ::glProgramBinary;
void (* const glProgramParameteri)(GLuint, GLenum, GLint) = ::glProgramParameteri;
void (* const glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *) = ::glInvalidateFramebuffer;
void (* const glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei) = ::glInvalidateSubFramebuffer;
void (* const glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glTexStorage2D;
void (* const glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = ::glTexStorage3D;
void (* const glGetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint *) = ::glGetInternalformativ;
} // namespace platform
} // namespace mbgl

View File

@@ -10,8 +10,8 @@
#include <OpenGLES/ES3/glext.h>
#elif TARGET_OS_MAC
#include <OpenGL/OpenGL.h>
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
#include <OpenGL/gl3.h>
#include <OpenGL/gl3ext.h>
#else
#error Unsupported Apple platform
#endif
@@ -19,6 +19,8 @@
namespace mbgl {
namespace platform {
/* OpenGL ES 2.0 */
void (* const glActiveTexture)(GLenum) = ::glActiveTexture;
void (* const glAttachShader)(GLuint, GLuint) = ::glAttachShader;
void (* const glBindAttribLocation)(GLuint, GLuint, const GLchar *) = ::glBindAttribLocation;
@@ -36,11 +38,7 @@ void (* const glBufferSubData)(GLenum, GLintptr, GLsizeiptr, const void *) = ::g
GLenum (* const glCheckFramebufferStatus)(GLenum) = ::glCheckFramebufferStatus;
void (* const glClear)(GLbitfield) = ::glClear;
void (* const glClearColor)(GLfloat, GLfloat, GLfloat, GLfloat) = ::glClearColor;
#if !TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR && TARGET_OS_MAC
void (* const glClearDepthf)(GLfloat) = [](GLfloat depth) { return ::glClearDepth(depth); };
#else
void (* const glClearDepthf)(GLfloat) = ::glClearDepthf;
#endif
void (* const glClearStencil)(GLint) = ::glClearStencil;
void (* const glColorMask)(GLboolean, GLboolean, GLboolean, GLboolean) = ::glColorMask;
void (* const glCompileShader)(GLuint) = ::glCompileShader;
@@ -59,11 +57,7 @@ void (* const glDeleteShader)(GLuint) = ::glDeleteShader;
void (* const glDeleteTextures)(GLsizei, const GLuint *) = ::glDeleteTextures;
void (* const glDepthFunc)(GLenum) = ::glDepthFunc;
void (* const glDepthMask)(GLboolean) = ::glDepthMask;
#if !TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR && TARGET_OS_MAC
void (* const glDepthRangef)(GLfloat, GLfloat) = [](GLfloat nearVal, GLfloat farVal) { return ::glDepthRange(nearVal, farVal); };
#else
void (* const glDepthRangef)(GLfloat, GLfloat) = ::glDepthRangef;
#endif
void (* const glDetachShader)(GLuint, GLuint) = ::glDetachShader;
void (* const glDisable)(GLenum) = ::glDisable;
void (* const glDisableVertexAttribArray)(GLuint) = ::glDisableVertexAttribArray;
@@ -96,6 +90,7 @@ void (* const glGetProgramiv)(GLuint, GLenum, GLint *) = ::glGetProgramiv;
void (* const glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *) = ::glGetRenderbufferParameteriv;
void (* const glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderInfoLog;
void (* const glGetShaderiv)(GLuint, GLenum, GLint *) = ::glGetShaderiv;
void (* const glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *) = ::glGetShaderPrecisionFormat;
void (* const glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderSource;
const GLubyte *(* const glGetString)(GLenum) = ::glGetString;
void (* const glGetTexParameterfv)(GLenum, GLenum, GLfloat *) = ::glGetTexParameterfv;
@@ -119,9 +114,11 @@ void (* const glLinkProgram)(GLuint) = ::glLinkProgram;
void (* const glPixelStorei)(GLenum, GLint) = ::glPixelStorei;
void (* const glPolygonOffset)(GLfloat, GLfloat) = ::glPolygonOffset;
void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void *) = ::glReadPixels;
void (* const glReleaseShaderCompiler)() = ::glReleaseShaderCompiler;
void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorage;
void (* const glSampleCoverage)(GLfloat, GLboolean) = ::glSampleCoverage;
void (* const glScissor)(GLint, GLint, GLsizei, GLsizei) = ::glScissor;
void (* const glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei) = ::glShaderBinary;
void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = ::glShaderSource;
void (* const glStencilFunc)(GLenum, GLint, GLuint) = ::glStencilFunc;
void (* const glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = ::glStencilFuncSeparate;
@@ -167,5 +164,115 @@ void (* const glVertexAttrib4fv)(GLuint, const GLfloat *) = ::glVertexAttrib4fv;
void (* const glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const void *) = ::glVertexAttribPointer;
void (* const glViewport)(GLint, GLint, GLsizei, GLsizei) = ::glViewport;
/* OpenGL ES 3.0 */
void (* const glReadBuffer)(GLenum) = ::glReadBuffer;
void (* const glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *) = ::glDrawRangeElements;
void (* const glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = ::glTexImage3D;
void (* const glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = ::glTexSubImage3D;
void (* const glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = ::glCopyTexSubImage3D;
void (* const glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = ::glCompressedTexImage3D;
void (* const glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = ::glCompressedTexSubImage3D;
void (* const glGenQueries)(GLsizei, GLuint *) = ::glGenQueries;
void (* const glDeleteQueries)(GLsizei, const GLuint *) = ::glDeleteQueries;
GLboolean (* const glIsQuery)(GLuint) = ::glIsQuery;
void (* const glBeginQuery)(GLenum, GLuint) = ::glBeginQuery;
void (* const glEndQuery)(GLenum) = ::glEndQuery;
void (* const glGetQueryiv)(GLenum, GLenum, GLint *) = ::glGetQueryiv;
void (* const glGetQueryObjectuiv)(GLuint, GLenum, GLuint *) = ::glGetQueryObjectuiv;
GLboolean (* const glUnmapBuffer)(GLenum) = ::glUnmapBuffer;
void (* const glGetBufferPointerv)(GLenum, GLenum, GLvoid **) = ::glGetBufferPointerv;
void (* const glDrawBuffers)(GLsizei, const GLenum *) = ::glDrawBuffers;
void (* const glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x3fv;
void (* const glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x2fv;
void (* const glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x4fv;
void (* const glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x2fv;
void (* const glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x4fv;
void (* const glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x3fv;
void (* const glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = ::glBlitFramebuffer;
void (* const glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorageMultisample;
void (* const glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = ::glFramebufferTextureLayer;
GLvoid* (* const glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = ::glMapBufferRange;
void (* const glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = ::glFlushMappedBufferRange;
void (* const glBindVertexArray)(GLuint) = ::glBindVertexArray;
void (* const glDeleteVertexArrays)(GLsizei, const GLuint *) = ::glDeleteVertexArrays;
void (* const glGenVertexArrays)(GLsizei, GLuint *) = ::glGenVertexArrays;
GLboolean (* const glIsVertexArray)(GLuint) = ::glIsVertexArray;
void (* const glGetIntegeri_v)(GLenum, GLuint, GLint *) = ::glGetIntegeri_v;
void (* const glBeginTransformFeedback)(GLenum) = ::glBeginTransformFeedback;
void (* const glEndTransformFeedback)() = ::glEndTransformFeedback;
void (* const glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = ::glBindBufferRange;
void (* const glBindBufferBase)(GLenum, GLuint, GLuint) = ::glBindBufferBase;
void (* const glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar * const*, GLenum) = ::glTransformFeedbackVaryings;
void (* const glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *) = ::glGetTransformFeedbackVarying;
void (* const glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = ::glVertexAttribIPointer;
void (* const glGetVertexAttribIiv)(GLuint, GLenum, GLint *) = ::glGetVertexAttribIiv;
void (* const glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *) = ::glGetVertexAttribIuiv;
void (* const glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = ::glVertexAttribI4i;
void (* const glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = ::glVertexAttribI4ui;
void (* const glVertexAttribI4iv)(GLuint, const GLint *) = ::glVertexAttribI4iv;
void (* const glVertexAttribI4uiv)(GLuint, const GLuint *) = ::glVertexAttribI4uiv;
void (* const glGetUniformuiv)(GLuint, GLint, GLuint *) = ::glGetUniformuiv;
GLint (* const glGetFragDataLocation)(GLuint, const GLchar *) = ::glGetFragDataLocation;
void (* const glUniform1ui)(GLint, GLuint) = ::glUniform1ui;
void (* const glUniform2ui)(GLint, GLuint, GLuint) = ::glUniform2ui;
void (* const glUniform3ui)(GLint, GLuint, GLuint, GLuint) = ::glUniform3ui;
void (* const glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = ::glUniform4ui;
void (* const glUniform1uiv)(GLint, GLsizei, const GLuint *) = ::glUniform1uiv;
void (* const glUniform2uiv)(GLint, GLsizei, const GLuint *) = ::glUniform2uiv;
void (* const glUniform3uiv)(GLint, GLsizei, const GLuint *) = ::glUniform3uiv;
void (* const glUniform4uiv)(GLint, GLsizei, const GLuint *) = ::glUniform4uiv;
void (* const glClearBufferiv)(GLenum, GLint, const GLint *) = ::glClearBufferiv;
void (* const glClearBufferuiv)(GLenum, GLint, const GLuint *) = ::glClearBufferuiv;
void (* const glClearBufferfv)(GLenum, GLint, const GLfloat *) = ::glClearBufferfv;
void (* const glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = ::glClearBufferfi;
const GLubyte* (* const glGetStringi)(GLenum, GLuint) = ::glGetStringi;
void (* const glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = ::glCopyBufferSubData;
void (* const glGetUniformIndices)(GLuint, GLsizei, const GLchar * const*, GLuint *) = ::glGetUniformIndices;
void (* const glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *) = ::glGetActiveUniformsiv;
GLuint (* const glGetUniformBlockIndex)(GLuint, const GLchar *) = ::glGetUniformBlockIndex;
void (* const glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *) = ::glGetActiveUniformBlockiv;
void (* const glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetActiveUniformBlockName;
void (* const glUniformBlockBinding)(GLuint, GLuint, GLuint) = ::glUniformBlockBinding;
void (* const glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = ::glDrawArraysInstanced;
void (* const glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei) = ::glDrawElementsInstanced;
GLsync (* const glFenceSync)(GLenum, GLbitfield) = ::glFenceSync;
GLboolean (* const glIsSync)(GLsync) = ::glIsSync;
void (* const glDeleteSync)(GLsync) = ::glDeleteSync;
GLenum (* const glClientWaitSync)(GLsync, GLbitfield, GLuint64) = ::glClientWaitSync;
void (* const glWaitSync)(GLsync, GLbitfield, GLuint64) = ::glWaitSync;
void (* const glGetInteger64v)(GLenum, GLint64 *) = ::glGetInteger64v;
void (* const glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *) = ::glGetSynciv;
void (* const glGetInteger64i_v)(GLenum, GLuint, GLint64 *) = ::glGetInteger64i_v;
void (* const glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *) = ::glGetBufferParameteri64v;
void (* const glGenSamplers)(GLsizei, GLuint *) = ::glGenSamplers;
void (* const glDeleteSamplers)(GLsizei, const GLuint *) = ::glDeleteSamplers;
GLboolean (* const glIsSampler)(GLuint) = ::glIsSampler;
void (* const glBindSampler)(GLuint, GLuint) = ::glBindSampler;
void (* const glSamplerParameteri)(GLuint, GLenum, GLint) = ::glSamplerParameteri;
void (* const glSamplerParameteriv)(GLuint, GLenum, const GLint *) = ::glSamplerParameteriv;
void (* const glSamplerParameterf)(GLuint, GLenum, GLfloat) = ::glSamplerParameterf;
void (* const glSamplerParameterfv)(GLuint, GLenum, const GLfloat *) = ::glSamplerParameterfv;
void (* const glGetSamplerParameteriv)(GLuint, GLenum, GLint *) = ::glGetSamplerParameteriv;
void (* const glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *) = ::glGetSamplerParameterfv;
void (* const glVertexAttribDivisor)(GLuint, GLuint) = ::glVertexAttribDivisor;
void (* const glBindTransformFeedback)(GLenum, GLuint) = ::glBindTransformFeedback;
void (* const glDeleteTransformFeedbacks)(GLsizei, const GLuint *) = ::glDeleteTransformFeedbacks;
void (* const glGenTransformFeedbacks)(GLsizei, GLuint *) = ::glGenTransformFeedbacks;
GLboolean (* const glIsTransformFeedback)(GLuint) = ::glIsTransformFeedback;
void (* const glPauseTransformFeedback)() = ::glPauseTransformFeedback;
void (* const glResumeTransformFeedback)() = ::glResumeTransformFeedback;
void (* const glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *) = ::glGetProgramBinary;
void (* const glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei) = ::glProgramBinary;
void (* const glProgramParameteri)(GLuint, GLenum, GLint) = ::glProgramParameteri;
#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR
void (* const glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *) = ::glInvalidateFramebuffer;
void (* const glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei) = ::glInvalidateSubFramebuffer;
#endif
void (* const glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glTexStorage2D;
void (* const glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = ::glTexStorage3D;
void (* const glGetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint *) = ::glGetInternalformativ;
} // namespace platform
} // namespace mbgl

View File

@@ -40,7 +40,9 @@
#pragma warning(pop)
#endif
#if !defined(__APPLE__)
#define GLFW_INCLUDE_ES3
#endif
#define GL_GLEXT_PROTOTYPES
#include <GLFW/glfw3.h>

View File

@@ -8,6 +8,8 @@
namespace mbgl {
namespace platform {
/* OpenGL ES 2.0 */
void (* const glActiveTexture)(GLenum) = ::glActiveTexture;
void (* const glAttachShader)(GLuint, GLuint) = ::glAttachShader;
void (* const glBindAttribLocation)(GLuint, GLuint, const GLchar *) = ::glBindAttribLocation;
@@ -77,6 +79,7 @@ void (* const glGetProgramiv)(GLuint, GLenum, GLint *) = ::glGetProgramiv;
void (* const glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *) = ::glGetRenderbufferParameteriv;
void (* const glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderInfoLog;
void (* const glGetShaderiv)(GLuint, GLenum, GLint *) = ::glGetShaderiv;
void (* const glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *) = ::glGetShaderPrecisionFormat;
void (* const glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderSource;
const GLubyte *(* const glGetString)(GLenum) = ::glGetString;
void (* const glGetTexParameterfv)(GLenum, GLenum, GLfloat *) = ::glGetTexParameterfv;
@@ -100,9 +103,11 @@ void (* const glLinkProgram)(GLuint) = ::glLinkProgram;
void (* const glPixelStorei)(GLenum, GLint) = ::glPixelStorei;
void (* const glPolygonOffset)(GLfloat, GLfloat) = ::glPolygonOffset;
void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void *) = ::glReadPixels;
void (* const glReleaseShaderCompiler)() = ::glReleaseShaderCompiler;
void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorage;
void (* const glSampleCoverage)(GLfloat, GLboolean) = ::glSampleCoverage;
void (* const glScissor)(GLint, GLint, GLsizei, GLsizei) = ::glScissor;
void (* const glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei) = ::glShaderBinary;
void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = ::glShaderSource;
void (* const glStencilFunc)(GLenum, GLint, GLuint) = ::glStencilFunc;
void (* const glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = ::glStencilFuncSeparate;
@@ -148,5 +153,112 @@ void (* const glVertexAttrib4fv)(GLuint, const GLfloat *) = ::glVertexAttrib4fv;
void (* const glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const void *) = ::glVertexAttribPointer;
void (* const glViewport)(GLint, GLint, GLsizei, GLsizei) = ::glViewport;
/* OpenGL ES 3.0 */
void (* const glReadBuffer)(GLenum) = ::glReadBuffer;
void (* const glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *) = ::glDrawRangeElements;
void (* const glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = ::glTexImage3D;
void (* const glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = ::glTexSubImage3D;
void (* const glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = ::glCopyTexSubImage3D;
void (* const glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = ::glCompressedTexImage3D;
void (* const glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = ::glCompressedTexSubImage3D;
void (* const glGenQueries)(GLsizei, GLuint *) = ::glGenQueries;
void (* const glDeleteQueries)(GLsizei, const GLuint *) = ::glDeleteQueries;
GLboolean (* const glIsQuery)(GLuint) = ::glIsQuery;
void (* const glBeginQuery)(GLenum, GLuint) = ::glBeginQuery;
void (* const glEndQuery)(GLenum) = ::glEndQuery;
void (* const glGetQueryiv)(GLenum, GLenum, GLint *) = ::glGetQueryiv;
void (* const glGetQueryObjectuiv)(GLuint, GLenum, GLuint *) = ::glGetQueryObjectuiv;
GLboolean (* const glUnmapBuffer)(GLenum) = ::glUnmapBuffer;
void (* const glGetBufferPointerv)(GLenum, GLenum, GLvoid **) = ::glGetBufferPointerv;
void (* const glDrawBuffers)(GLsizei, const GLenum *) = ::glDrawBuffers;
void (* const glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x3fv;
void (* const glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x2fv;
void (* const glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x4fv;
void (* const glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x2fv;
void (* const glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x4fv;
void (* const glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x3fv;
void (* const glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = ::glBlitFramebuffer;
void (* const glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorageMultisample;
void (* const glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = ::glFramebufferTextureLayer;
GLvoid* (* const glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = ::glMapBufferRange;
void (* const glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = ::glFlushMappedBufferRange;
void (* const glBindVertexArray)(GLuint) = ::glBindVertexArray;
void (* const glDeleteVertexArrays)(GLsizei, const GLuint *) = ::glDeleteVertexArrays;
void (* const glGenVertexArrays)(GLsizei, GLuint *) = ::glGenVertexArrays;
GLboolean (* const glIsVertexArray)(GLuint) = ::glIsVertexArray;
void (* const glGetIntegeri_v)(GLenum, GLuint, GLint *) = ::glGetIntegeri_v;
void (* const glBeginTransformFeedback)(GLenum) = ::glBeginTransformFeedback;
void (* const glEndTransformFeedback)() = ::glEndTransformFeedback;
void (* const glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = ::glBindBufferRange;
void (* const glBindBufferBase)(GLenum, GLuint, GLuint) = ::glBindBufferBase;
void (* const glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar * const*, GLenum) = ::glTransformFeedbackVaryings;
void (* const glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *) = ::glGetTransformFeedbackVarying;
void (* const glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = ::glVertexAttribIPointer;
void (* const glGetVertexAttribIiv)(GLuint, GLenum, GLint *) = ::glGetVertexAttribIiv;
void (* const glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *) = ::glGetVertexAttribIuiv;
void (* const glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = ::glVertexAttribI4i;
void (* const glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = ::glVertexAttribI4ui;
void (* const glVertexAttribI4iv)(GLuint, const GLint *) = ::glVertexAttribI4iv;
void (* const glVertexAttribI4uiv)(GLuint, const GLuint *) = ::glVertexAttribI4uiv;
void (* const glGetUniformuiv)(GLuint, GLint, GLuint *) = ::glGetUniformuiv;
GLint (* const glGetFragDataLocation)(GLuint, const GLchar *) = ::glGetFragDataLocation;
void (* const glUniform1ui)(GLint, GLuint) = ::glUniform1ui;
void (* const glUniform2ui)(GLint, GLuint, GLuint) = ::glUniform2ui;
void (* const glUniform3ui)(GLint, GLuint, GLuint, GLuint) = ::glUniform3ui;
void (* const glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = ::glUniform4ui;
void (* const glUniform1uiv)(GLint, GLsizei, const GLuint *) = ::glUniform1uiv;
void (* const glUniform2uiv)(GLint, GLsizei, const GLuint *) = ::glUniform2uiv;
void (* const glUniform3uiv)(GLint, GLsizei, const GLuint *) = ::glUniform3uiv;
void (* const glUniform4uiv)(GLint, GLsizei, const GLuint *) = ::glUniform4uiv;
void (* const glClearBufferiv)(GLenum, GLint, const GLint *) = ::glClearBufferiv;
void (* const glClearBufferuiv)(GLenum, GLint, const GLuint *) = ::glClearBufferuiv;
void (* const glClearBufferfv)(GLenum, GLint, const GLfloat *) = ::glClearBufferfv;
void (* const glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = ::glClearBufferfi;
const GLubyte* (* const glGetStringi)(GLenum, GLuint) = ::glGetStringi;
void (* const glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = ::glCopyBufferSubData;
void (* const glGetUniformIndices)(GLuint, GLsizei, const GLchar * const*, GLuint *) = ::glGetUniformIndices;
void (* const glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *) = ::glGetActiveUniformsiv;
GLuint (* const glGetUniformBlockIndex)(GLuint, const GLchar *) = ::glGetUniformBlockIndex;
void (* const glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *) = ::glGetActiveUniformBlockiv;
void (* const glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetActiveUniformBlockName;
void (* const glUniformBlockBinding)(GLuint, GLuint, GLuint) = ::glUniformBlockBinding;
void (* const glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = ::glDrawArraysInstanced;
void (* const glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei) = ::glDrawElementsInstanced;
GLsync (* const glFenceSync)(GLenum, GLbitfield) = ::glFenceSync;
GLboolean (* const glIsSync)(GLsync) = ::glIsSync;
void (* const glDeleteSync)(GLsync) = ::glDeleteSync;
GLenum (* const glClientWaitSync)(GLsync, GLbitfield, GLuint64) = ::glClientWaitSync;
void (* const glWaitSync)(GLsync, GLbitfield, GLuint64) = ::glWaitSync;
void (* const glGetInteger64v)(GLenum, GLint64 *) = ::glGetInteger64v;
void (* const glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *) = ::glGetSynciv;
void (* const glGetInteger64i_v)(GLenum, GLuint, GLint64 *) = ::glGetInteger64i_v;
void (* const glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *) = ::glGetBufferParameteri64v;
void (* const glGenSamplers)(GLsizei, GLuint *) = ::glGenSamplers;
void (* const glDeleteSamplers)(GLsizei, const GLuint *) = ::glDeleteSamplers;
GLboolean (* const glIsSampler)(GLuint) = ::glIsSampler;
void (* const glBindSampler)(GLuint, GLuint) = ::glBindSampler;
void (* const glSamplerParameteri)(GLuint, GLenum, GLint) = ::glSamplerParameteri;
void (* const glSamplerParameteriv)(GLuint, GLenum, const GLint *) = ::glSamplerParameteriv;
void (* const glSamplerParameterf)(GLuint, GLenum, GLfloat) = ::glSamplerParameterf;
void (* const glSamplerParameterfv)(GLuint, GLenum, const GLfloat *) = ::glSamplerParameterfv;
void (* const glGetSamplerParameteriv)(GLuint, GLenum, GLint *) = ::glGetSamplerParameteriv;
void (* const glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *) = ::glGetSamplerParameterfv;
void (* const glVertexAttribDivisor)(GLuint, GLuint) = ::glVertexAttribDivisor;
void (* const glBindTransformFeedback)(GLenum, GLuint) = ::glBindTransformFeedback;
void (* const glDeleteTransformFeedbacks)(GLsizei, const GLuint *) = ::glDeleteTransformFeedbacks;
void (* const glGenTransformFeedbacks)(GLsizei, GLuint *) = ::glGenTransformFeedbacks;
GLboolean (* const glIsTransformFeedback)(GLuint) = ::glIsTransformFeedback;
void (* const glPauseTransformFeedback)() = ::glPauseTransformFeedback;
void (* const glResumeTransformFeedback)() = ::glResumeTransformFeedback;
void (* const glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *) = ::glGetProgramBinary;
void (* const glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei) = ::glProgramBinary;
void (* const glProgramParameteri)(GLuint, GLenum, GLint) = ::glProgramParameteri;
void (* const glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *) = ::glInvalidateFramebuffer;
void (* const glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei) = ::glInvalidateSubFramebuffer;
void (* const glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glTexStorage2D;
void (* const glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = ::glTexStorage3D;
void (* const glGetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint *) = ::glGetInternalformativ;
} // namespace platform
} // namespace mbgl

View File

@@ -2,10 +2,13 @@
#include <QOpenGLContext>
#include <QOpenGLFunctions>
#include <QOpenGLExtraFunctions>
namespace mbgl {
namespace platform {
/* OpenGL ES 2.0 */
void (* const glActiveTexture)(GLenum) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glActiveTexture(args...);
};
@@ -282,6 +285,10 @@ void (* const glGetShaderiv)(GLuint, GLenum, GLint *) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glGetShaderiv(args...);
};
void (* const glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glGetShaderPrecisionFormat(args...);
};
void (* const glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glGetShaderSource(args...);
};
@@ -374,6 +381,10 @@ void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void
return QOpenGLContext::currentContext()->functions()->glReadPixels(args...);
};
void (* const glReleaseShaderCompiler)() = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glReleaseShaderCompiler(args...);
};
void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glRenderbufferStorage(args...);
};
@@ -386,6 +397,10 @@ void (* const glScissor)(GLint, GLint, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glScissor(args...);
};
void (* const glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glShaderBinary(args...);
};
void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = [](GLuint shader, GLsizei count, const GLchar * const * string, const GLint *length) {
return QOpenGLContext::currentContext()->functions()->glShaderSource(shader, count, const_cast<const GLchar **>(string), length);
};
@@ -562,5 +577,320 @@ void (* const glViewport)(GLint, GLint, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->functions()->glViewport(args...);
};
/* OpenGL ES 3.0 */
void (* const glReadBuffer)(GLenum) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glReadBuffer(args...);
};
void (* const glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDrawRangeElements(args...);
};
void (* const glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glTexImage3D(args...);
};
void (* const glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glTexSubImage3D(args...);
};
void (* const glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glCopyTexSubImage3D(args...);
};
void (* const glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glCompressedTexImage3D(args...);
};
void (* const glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glCompressedTexSubImage3D(args...);
};
void (* const glGenQueries)(GLsizei, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGenQueries(args...);
};
void (* const glDeleteQueries)(GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDeleteQueries(args...);
};
GLboolean (* const glIsQuery)(GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glIsQuery(args...);
};
void (* const glBeginQuery)(GLenum, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBeginQuery(args...);
};
void (* const glEndQuery)(GLenum) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glEndQuery(args...);
};
void (* const glGetQueryiv)(GLenum, GLenum, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetQueryiv(args...);
};
void (* const glGetQueryObjectuiv)(GLuint, GLenum, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetQueryObjectuiv(args...);
};
GLboolean (* const glUnmapBuffer)(GLenum) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUnmapBuffer(args...);
};
void (* const glGetBufferPointerv)(GLenum, GLenum, GLvoid**) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetBufferPointerv(args...);
};
void (* const glDrawBuffers)(GLsizei, const GLenum*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDrawBuffers(args...);
};
void (* const glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniformMatrix2x3fv(args...);
};
void (* const glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniformMatrix3x2fv(args...);
};
void (* const glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniformMatrix2x4fv(args...);
};
void (* const glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniformMatrix4x2fv(args...);
};
void (* const glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniformMatrix3x4fv(args...);
};
void (* const glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniformMatrix4x3fv(args...);
};
void (* const glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBlitFramebuffer(args...);
};
void (* const glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glRenderbufferStorageMultisample(args...);
};
void (* const glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glFramebufferTextureLayer(args...);
};
GLvoid* (* const glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glMapBufferRange(args...);
};
void (* const glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glFlushMappedBufferRange(args...);
};
void (* const glBindVertexArray)(GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBindVertexArray(args...);
};
void (* const glDeleteVertexArrays)(GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDeleteVertexArrays(args...);
};
void (* const glGenVertexArrays)(GLsizei, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGenVertexArrays(args...);
};
GLboolean (* const glIsVertexArray)(GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glIsVertexArray(args...);
};
void (* const glGetIntegeri_v)(GLenum, GLuint, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetIntegeri_v(args...);
};
void (* const glBeginTransformFeedback)(GLenum) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBeginTransformFeedback(args...);
};
void (* const glEndTransformFeedback)() = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glEndTransformFeedback(args...);
};
void (* const glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBindBufferRange(args...);
};
void (* const glBindBufferBase)(GLenum, GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBindBufferBase(args...);
};
void (* const glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar* const*, GLenum) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glTransformFeedbackVaryings(args...);
};
void (* const glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetTransformFeedbackVarying(args...);
};
void (* const glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glVertexAttribIPointer(args...);
};
void (* const glGetVertexAttribIiv)(GLuint, GLenum, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetVertexAttribIiv(args...);
};
void (* const glGetVertexAttribIuiv)(GLuint, GLenum, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetVertexAttribIuiv(args...);
};
void (* const glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glVertexAttribI4i(args...);
};
void (* const glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glVertexAttribI4ui(args...);
};
void (* const glVertexAttribI4iv)(GLuint, const GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glVertexAttribI4iv(args...);
};
void (* const glVertexAttribI4uiv)(GLuint, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glVertexAttribI4uiv(args...);
};
void (* const glGetUniformuiv)(GLuint, GLint, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetUniformuiv(args...);
};
GLint (* const glGetFragDataLocation)(GLuint, const GLchar*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetFragDataLocation(args...);
};
void (* const glUniform1ui)(GLint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform1ui(args...);
};
void (* const glUniform2ui)(GLint, GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform2ui(args...);
};
void (* const glUniform3ui)(GLint, GLuint, GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform3ui(args...);
};
void (* const glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform4ui(args...);
};
void (* const glUniform1uiv)(GLint, GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform1uiv(args...);
};
void (* const glUniform2uiv)(GLint, GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform2uiv(args...);
};
void (* const glUniform3uiv)(GLint, GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform3uiv(args...);
};
void (* const glUniform4uiv)(GLint, GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniform4uiv(args...);
};
void (* const glClearBufferiv)(GLenum, GLint, const GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glClearBufferiv(args...);
};
void (* const glClearBufferuiv)(GLenum, GLint, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glClearBufferuiv(args...);
};
void (* const glClearBufferfv)(GLenum, GLint, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glClearBufferfv(args...);
};
void (* const glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glClearBufferfi(args...);
};
const GLubyte* (* const glGetStringi)(GLenum, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetStringi(args...);
};
void (* const glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glCopyBufferSubData(args...);
};
void (* const glGetUniformIndices)(GLuint, GLsizei, const GLchar* const*, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetUniformIndices(args...);
};
void (* const glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint*, GLenum, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetActiveUniformsiv(args...);
};
GLuint (* const glGetUniformBlockIndex)(GLuint, const GLchar*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetUniformBlockIndex(args...);
};
void (* const glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetActiveUniformBlockiv(args...);
};
void (* const glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei*, GLchar*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetActiveUniformBlockName(args...);
};
void (* const glUniformBlockBinding)(GLuint, GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glUniformBlockBinding(args...);
};
void (* const glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDrawArraysInstanced(args...);
};
void (* const glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid*, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDrawElementsInstanced(args...);
};
GLsync (* const glFenceSync)(GLenum, GLbitfield) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glFenceSync(args...);
};
GLboolean (* const glIsSync)(GLsync) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glIsSync(args...);
};
void (* const glDeleteSync)(GLsync) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDeleteSync(args...);
};
GLenum (* const glClientWaitSync)(GLsync, GLbitfield, GLuint64) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glClientWaitSync(args...);
};
void (* const glWaitSync)(GLsync, GLbitfield, GLuint64) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glWaitSync(args...);
};
void (* const glGetInteger64v)(GLenum, GLint64*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetInteger64v(args...);
};
void (* const glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei*, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetSynciv(args...);
};
void (* const glGetInteger64i_v)(GLenum, GLuint, GLint64*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetInteger64i_v(args...);
};
void (* const glGetBufferParameteri64v)(GLenum, GLenum, GLint64*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetBufferParameteri64v(args...);
};
void (* const glGenSamplers)(GLsizei, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGenSamplers(args...);
};
void (* const glDeleteSamplers)(GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDeleteSamplers(args...);
};
GLboolean (* const glIsSampler)(GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glIsSampler(args...);
};
void (* const glBindSampler)(GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBindSampler(args...);
};
void (* const glSamplerParameteri)(GLuint, GLenum, GLint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glSamplerParameteri(args...);
};
void (* const glSamplerParameteriv)(GLuint, GLenum, const GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glSamplerParameteriv(args...);
};
void (* const glSamplerParameterf)(GLuint, GLenum, GLfloat) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glSamplerParameterf(args...);
};
void (* const glSamplerParameterfv)(GLuint, GLenum, const GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glSamplerParameterfv(args...);
};
void (* const glGetSamplerParameteriv)(GLuint, GLenum, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetSamplerParameteriv(args...);
};
void (* const glGetSamplerParameterfv)(GLuint, GLenum, GLfloat*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetSamplerParameterfv(args...);
};
void (* const glVertexAttribDivisor)(GLuint, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glVertexAttribDivisor(args...);
};
void (* const glBindTransformFeedback)(GLenum, GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glBindTransformFeedback(args...);
};
void (* const glDeleteTransformFeedbacks)(GLsizei, const GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glDeleteTransformFeedbacks(args...);
};
void (* const glGenTransformFeedbacks)(GLsizei, GLuint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGenTransformFeedbacks(args...);
};
GLboolean (* const glIsTransformFeedback)(GLuint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glIsTransformFeedback(args...);
};
void (* const glPauseTransformFeedback)() = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glPauseTransformFeedback(args...);
};
void (* const glResumeTransformFeedback)() = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glResumeTransformFeedback(args...);
};
void (* const glGetProgramBinary)(GLuint, GLsizei, GLsizei*, GLenum*, GLvoid*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetProgramBinary(args...);
};
void (* const glProgramBinary)(GLuint, GLenum, const GLvoid*, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glProgramBinary(args...);
};
void (* const glProgramParameteri)(GLuint, GLenum, GLint) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glProgramParameteri(args...);
};
void (* const glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glInvalidateFramebuffer(args...);
};
void (* const glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum*, GLint, GLint, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glInvalidateSubFramebuffer(args...);
};
void (* const glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glTexStorage2D(args...);
};
void (* const glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glTexStorage3D(args...);
};
void (* const glGetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint*) = [](auto... args) {
return QOpenGLContext::currentContext()->extraFunctions()->glGetInternalformativ(args...);
};
} // namespace platform
} // namespace mbgl

View File

@@ -19,6 +19,8 @@
extern "C" {
#endif
/* OpenGL ES 2.0 */
PFNGLACTIVETEXTUREPROC wgl_glActiveTexture = NULL;
PFNGLATTACHSHADERPROC wgl_glAttachShader = NULL;
PFNGLBINDATTRIBLOCATIONPROC wgl_glBindAttribLocation = NULL;
@@ -88,6 +90,7 @@ PFNGLGETPROGRAMIVPROC wgl_glGetProgramiv = NULL;
PFNGLGETRENDERBUFFERPARAMETERIVPROC wgl_glGetRenderbufferParameteriv = NULL;
PFNGLGETSHADERINFOLOGPROC wgl_glGetShaderInfoLog = NULL;
PFNGLGETSHADERIVPROC wgl_glGetShaderiv = NULL;
PFNGLGETSHADERPRECISIONFORMATPROC wgl_glGetShaderPrecisionFormat = NULL;
PFNGLGETSHADERSOURCEPROC wgl_glGetShaderSource = NULL;
PFNGLGETSTRINGPROC wgl_glGetString = NULL;
PFNGLGETTEXPARAMETERFVPROC wgl_glGetTexParameterfv = NULL;
@@ -111,9 +114,11 @@ PFNGLLINKPROGRAMPROC wgl_glLinkProgram = NULL;
PFNGLPIXELSTOREIPROC wgl_glPixelStorei = NULL;
PFNGLPOLYGONOFFSETPROC wgl_glPolygonOffset = NULL;
PFNGLREADPIXELSPROC wgl_glReadPixels = NULL;
PFNGLRELEASESHADERCOMPILERPROC wgl_glReleaseShaderCompiler = NULL;
PFNGLRENDERBUFFERSTORAGEPROC wgl_glRenderbufferStorage = NULL;
PFNGLSAMPLECOVERAGEPROC wgl_glSampleCoverage = NULL;
PFNGLSCISSORPROC wgl_glScissor = NULL;
PFNGLSHADERBINARYPROC wgl_glShaderBinary = NULL;
PFNGLSHADERSOURCEPROC wgl_glShaderSource = NULL;
PFNGLSTENCILFUNCPROC wgl_glStencilFunc = NULL;
PFNGLSTENCILFUNCSEPARATEPROC wgl_glStencilFuncSeparate = NULL;
@@ -159,6 +164,115 @@ PFNGLVERTEXATTRIB4FVPROC wgl_glVertexAttrib4fv = NULL;
PFNGLVERTEXATTRIBPOINTERPROC wgl_glVertexAttribPointer = NULL;
PFNGLVIEWPORTPROC wgl_glViewport = NULL;
/* OpenGL ES 3.0 */
PFNGLREADBUFFERPROC wgl_glReadBuffer = NULL;
PFNGLDRAWRANGEELEMENTSPROC wgl_glDrawRangeElements = NULL;
PFNGLTEXIMAGE3DPROC wgl_glTexImage3D = NULL;
PFNGLTEXSUBIMAGE3DPROC wgl_glTexSubImage3D = NULL;
PFNGLCOPYTEXSUBIMAGE3DPROC wgl_glCopyTexSubImage3D = NULL;
PFNGLCOMPRESSEDTEXIMAGE3DPROC wgl_glCompressedTexImage3D = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC wgl_glCompressedTexSubImage3D = NULL;
PFNGLGENQUERIESPROC wgl_glGenQueries = NULL;
PFNGLDELETEQUERIESPROC wgl_glDeleteQueries = NULL;
PFNGLISQUERYPROC wgl_glIsQuery = NULL;
PFNGLBEGINQUERYPROC wgl_glBeginQuery = NULL;
PFNGLENDQUERYPROC wgl_glEndQuery = NULL;
PFNGLGETQUERYIVPROC wgl_glGetQueryiv = NULL;
PFNGLGETQUERYOBJECTUIVPROC wgl_glGetQueryObjectuiv = NULL;
PFNGLUNMAPBUFFERPROC wgl_glUnmapBuffer = NULL;
PFNGLGETBUFFERPOINTERVPROC wgl_glGetBufferPointerv = NULL;
PFNGLDRAWBUFFERSPROC wgl_glDrawBuffers = NULL;
PFNGLUNIFORMMATRIX2X3FVPROC wgl_glUniformMatrix2x3fv = NULL;
PFNGLUNIFORMMATRIX3X2FVPROC wgl_glUniformMatrix3x2fv = NULL;
PFNGLUNIFORMMATRIX2X4FVPROC wgl_glUniformMatrix2x4fv = NULL;
PFNGLUNIFORMMATRIX4X2FVPROC wgl_glUniformMatrix4x2fv = NULL;
PFNGLUNIFORMMATRIX3X4FVPROC wgl_glUniformMatrix3x4fv = NULL;
PFNGLUNIFORMMATRIX4X3FVPROC wgl_glUniformMatrix4x3fv = NULL;
PFNGLBLITFRAMEBUFFERPROC wgl_glBlitFramebuffer = NULL;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC wgl_glRenderbufferStorageMultisample = NULL;
PFNGLFRAMEBUFFERTEXTURELAYERPROC wgl_glFramebufferTextureLayer = NULL;
PFNGLMAPBUFFERRANGEPROC wgl_glMapBufferRange = NULL;
PFNGLFLUSHMAPPEDBUFFERRANGEPROC wgl_glFlushMappedBufferRange = NULL;
PFNGLBINDVERTEXARRAYPROC wgl_glBindVertexArray = NULL;
PFNGLDELETEVERTEXARRAYSPROC wgl_glDeleteVertexArrays = NULL;
PFNGLGENVERTEXARRAYSPROC wgl_glGenVertexArrays = NULL;
PFNGLISVERTEXARRAYPROC wgl_glIsVertexArray = NULL;
PFNGLGETINTEGERI_VPROC wgl_glGetIntegeri_v = NULL;
PFNGLBEGINTRANSFORMFEEDBACKPROC wgl_glBeginTransformFeedback = NULL;
PFNGLENDTRANSFORMFEEDBACKPROC wgl_glEndTransformFeedback = NULL;
PFNGLBINDBUFFERRANGEPROC wgl_glBindBufferRange = NULL;
PFNGLBINDBUFFERBASEPROC wgl_glBindBufferBase = NULL;
PFNGLTRANSFORMFEEDBACKVARYINGSPROC wgl_glTransformFeedbackVaryings = NULL;
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC wgl_glGetTransformFeedbackVarying = NULL;
PFNGLVERTEXATTRIBIPOINTERPROC wgl_glVertexAttribIPointer = NULL;
PFNGLGETVERTEXATTRIBIIVPROC wgl_glGetVertexAttribIiv = NULL;
PFNGLGETVERTEXATTRIBIUIVPROC wgl_glGetVertexAttribIuiv = NULL;
PFNGLVERTEXATTRIBI4IPROC wgl_glVertexAttribI4i = NULL;
PFNGLVERTEXATTRIBI4UIPROC wgl_glVertexAttribI4ui = NULL;
PFNGLVERTEXATTRIBI4IVPROC wgl_glVertexAttribI4iv = NULL;
PFNGLVERTEXATTRIBI4UIVPROC wgl_glVertexAttribI4uiv = NULL;
PFNGLGETUNIFORMUIVPROC wgl_glGetUniformuiv = NULL;
PFNGLGETFRAGDATALOCATIONPROC wgl_glGetFragDataLocation = NULL;
PFNGLUNIFORM1UIPROC wgl_glUniform1ui = NULL;
PFNGLUNIFORM2UIPROC wgl_glUniform2ui = NULL;
PFNGLUNIFORM3UIPROC wgl_glUniform3ui = NULL;
PFNGLUNIFORM4UIPROC wgl_glUniform4ui = NULL;
PFNGLUNIFORM1UIVPROC wgl_glUniform1uiv = NULL;
PFNGLUNIFORM2UIVPROC wgl_glUniform2uiv = NULL;
PFNGLUNIFORM3UIVPROC wgl_glUniform3uiv = NULL;
PFNGLUNIFORM4UIVPROC wgl_glUniform4uiv = NULL;
PFNGLCLEARBUFFERIVPROC wgl_glClearBufferiv = NULL;
PFNGLCLEARBUFFERUIVPROC wgl_glClearBufferuiv = NULL;
PFNGLCLEARBUFFERFVPROC wgl_glClearBufferfv = NULL;
PFNGLCLEARBUFFERFIPROC wgl_glClearBufferfi = NULL;
PFNGLGETSTRINGIPROC wgl_glGetStringi = NULL;
PFNGLCOPYBUFFERSUBDATAPROC wgl_glCopyBufferSubData = NULL;
PFNGLGETUNIFORMINDICESPROC wgl_glGetUniformIndices = NULL;
PFNGLGETACTIVEUNIFORMSIVPROC wgl_glGetActiveUniformsiv = NULL;
PFNGLGETUNIFORMBLOCKINDEXPROC wgl_glGetUniformBlockIndex = NULL;
PFNGLGETACTIVEUNIFORMBLOCKIVPROC wgl_glGetActiveUniformBlockiv = NULL;
PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC wgl_glGetActiveUniformBlockName = NULL;
PFNGLUNIFORMBLOCKBINDINGPROC wgl_glUniformBlockBinding = NULL;
PFNGLDRAWARRAYSINSTANCEDPROC wgl_glDrawArraysInstanced = NULL;
PFNGLDRAWELEMENTSINSTANCEDPROC wgl_glDrawElementsInstanced = NULL;
PFNGLFENCESYNCPROC wgl_glFenceSync = NULL;
PFNGLISSYNCPROC wgl_glIsSync = NULL;
PFNGLDELETESYNCPROC wgl_glDeleteSync = NULL;
PFNGLCLIENTWAITSYNCPROC wgl_glClientWaitSync = NULL;
PFNGLWAITSYNCPROC wgl_glWaitSync = NULL;
PFNGLGETINTEGER64VPROC wgl_glGetInteger64v = NULL;
PFNGLGETSYNCIVPROC wgl_glGetSynciv = NULL;
PFNGLGETINTEGER64I_VPROC wgl_glGetInteger64i_v = NULL;
PFNGLGETBUFFERPARAMETERI64VPROC wgl_glGetBufferParameteri64v = NULL;
PFNGLGENSAMPLERSPROC wgl_glGenSamplers = NULL;
PFNGLDELETESAMPLERSPROC wgl_glDeleteSamplers = NULL;
PFNGLISSAMPLERPROC wgl_glIsSampler = NULL;
PFNGLBINDSAMPLERPROC wgl_glBindSampler = NULL;
PFNGLSAMPLERPARAMETERIPROC wgl_glSamplerParameteri = NULL;
PFNGLSAMPLERPARAMETERIVPROC wgl_glSamplerParameteriv = NULL;
PFNGLSAMPLERPARAMETERFPROC wgl_glSamplerParameterf = NULL;
PFNGLSAMPLERPARAMETERFVPROC wgl_glSamplerParameterfv = NULL;
PFNGLGETSAMPLERPARAMETERIVPROC wgl_glGetSamplerParameteriv = NULL;
PFNGLGETSAMPLERPARAMETERFVPROC wgl_glGetSamplerParameterfv = NULL;
PFNGLVERTEXATTRIBDIVISORPROC wgl_glVertexAttribDivisor = NULL;
PFNGLBINDTRANSFORMFEEDBACKPROC wgl_glBindTransformFeedback = NULL;
PFNGLDELETETRANSFORMFEEDBACKSPROC wgl_glDeleteTransformFeedbacks = NULL;
PFNGLGENTRANSFORMFEEDBACKSPROC wgl_glGenTransformFeedbacks = NULL;
PFNGLISTRANSFORMFEEDBACKPROC wgl_glIsTransformFeedback = NULL;
PFNGLPAUSETRANSFORMFEEDBACKPROC wgl_glPauseTransformFeedback = NULL;
PFNGLRESUMETRANSFORMFEEDBACKPROC wgl_glResumeTransformFeedback = NULL;
PFNGLGETPROGRAMBINARYPROC wgl_glGetProgramBinary = NULL;
PFNGLPROGRAMBINARYPROC wgl_glProgramBinary = NULL;
PFNGLPROGRAMPARAMETERIPROC wgl_glProgramParameteri = NULL;
PFNGLINVALIDATEFRAMEBUFFERPROC wgl_glInvalidateFramebuffer = NULL;
PFNGLINVALIDATESUBFRAMEBUFFERPROC wgl_glInvalidateSubFramebuffer = NULL;
PFNGLTEXSTORAGE2DPROC wgl_glTexStorage2D = NULL;
PFNGLTEXSTORAGE3DPROC wgl_glTexStorage3D = NULL;
PFNGLGETINTERNALFORMATIVPROC wgl_glGetInternalformativ = NULL;
/* OpenGL Windows Extensions */
PFNWGLCHOOSEPIXELFORMATARBPROC wgl_wglChoosePixelFormatARB = NULL;
PFNWGLCREATECONTEXTATTRIBSARBPROC wgl_wglCreateContextAttribsARB = NULL;
PFNWGLGETEXTENSIONSSTRINGARBPROC wgl_wglGetExtensionsStringARB = NULL;
@@ -188,6 +302,8 @@ void loadWGL() {
opengl32 = LoadLibraryA("opengl32.dll");
wgl_wglGetProcAddress = (PFNWGLLOADERWGLGETPROCADDRESSPROC)GetProcAddress(opengl32, "wglGetProcAddress");
/* OpenGL ES 2.0 */
wgl_glActiveTexture = (PFNGLACTIVETEXTUREPROC)wgl_GetProcAddress("glActiveTexture");
wgl_glAttachShader = (PFNGLATTACHSHADERPROC)wgl_GetProcAddress("glAttachShader");
wgl_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)wgl_GetProcAddress("glBindAttribLocation");
@@ -257,6 +373,7 @@ void loadWGL() {
wgl_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)wgl_GetProcAddress("glGetRenderbufferParameteriv");
wgl_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)wgl_GetProcAddress("glGetShaderInfoLog");
wgl_glGetShaderiv = (PFNGLGETSHADERIVPROC)wgl_GetProcAddress("glGetShaderiv");
wgl_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)wgl_GetProcAddress("glGetShaderPrecisionFormat");
wgl_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)wgl_GetProcAddress("glGetShaderSource");
wgl_glGetString = (PFNGLGETSTRINGPROC)wgl_GetProcAddress("glGetString");
wgl_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)wgl_GetProcAddress("glGetTexParameterfv");
@@ -280,9 +397,11 @@ void loadWGL() {
wgl_glPixelStorei = (PFNGLPIXELSTOREIPROC)wgl_GetProcAddress("glPixelStorei");
wgl_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)wgl_GetProcAddress("glPolygonOffset");
wgl_glReadPixels = (PFNGLREADPIXELSPROC)wgl_GetProcAddress("glReadPixels");
wgl_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)wgl_GetProcAddress("glReleaseShaderCompiler");
wgl_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)wgl_GetProcAddress("glRenderbufferStorage");
wgl_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)wgl_GetProcAddress("glSampleCoverage");
wgl_glScissor = (PFNGLSCISSORPROC)wgl_GetProcAddress("glScissor");
wgl_glShaderBinary = (PFNGLSHADERBINARYPROC)wgl_GetProcAddress("glShaderBinary");
wgl_glShaderSource = (PFNGLSHADERSOURCEPROC)wgl_GetProcAddress("glShaderSource");
wgl_glStencilFunc = (PFNGLSTENCILFUNCPROC)wgl_GetProcAddress("glStencilFunc");
wgl_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)wgl_GetProcAddress("glStencilFuncSeparate");
@@ -328,6 +447,115 @@ void loadWGL() {
wgl_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)wgl_GetProcAddress("glVertexAttribPointer");
wgl_glViewport = (PFNGLVIEWPORTPROC)wgl_GetProcAddress("glViewport");
/* OpenGL ES 3.0 */
wgl_glReadBuffer = (PFNGLREADBUFFERPROC)wgl_GetProcAddress("glReadBuffer");
wgl_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)wgl_GetProcAddress("glDrawRangeElements");
wgl_glTexImage3D = (PFNGLTEXIMAGE3DPROC)wgl_GetProcAddress("glTexImage3D");
wgl_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)wgl_GetProcAddress("glTexSubImage3D");
wgl_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)wgl_GetProcAddress("glCopyTexSubImage3D");
wgl_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)wgl_GetProcAddress("glCompressedTexImage3D");
wgl_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)wgl_GetProcAddress("glCompressedTexSubImage3D");
wgl_glGenQueries = (PFNGLGENQUERIESPROC)wgl_GetProcAddress("glGenQueries");
wgl_glDeleteQueries = (PFNGLDELETEQUERIESPROC)wgl_GetProcAddress("glDeleteQueries");
wgl_glIsQuery = (PFNGLISQUERYPROC)wgl_GetProcAddress("glIsQuery");
wgl_glBeginQuery = (PFNGLBEGINQUERYPROC)wgl_GetProcAddress("glBeginQuery");
wgl_glEndQuery = (PFNGLENDQUERYPROC)wgl_GetProcAddress("glEndQuery");
wgl_glGetQueryiv = (PFNGLGETQUERYIVPROC)wgl_GetProcAddress("glGetQueryiv");
wgl_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)wgl_GetProcAddress("glGetQueryObjectuiv");
wgl_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)wgl_GetProcAddress("glUnmapBuffer");
wgl_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)wgl_GetProcAddress("glGetBufferPointerv");
wgl_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)wgl_GetProcAddress("glDrawBuffers");
wgl_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)wgl_GetProcAddress("glUniformMatrix2x3fv");
wgl_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)wgl_GetProcAddress("glUniformMatrix3x2fv");
wgl_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)wgl_GetProcAddress("glUniformMatrix2x4fv");
wgl_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)wgl_GetProcAddress("glUniformMatrix4x2fv");
wgl_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)wgl_GetProcAddress("glUniformMatrix3x4fv");
wgl_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)wgl_GetProcAddress("glUniformMatrix4x3fv");
wgl_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)wgl_GetProcAddress("glBlitFramebuffer");
wgl_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)wgl_GetProcAddress("glRenderbufferStorageMultisample");
wgl_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)wgl_GetProcAddress("glFramebufferTextureLayer");
wgl_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)wgl_GetProcAddress("glMapBufferRange");
wgl_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)wgl_GetProcAddress("glFlushMappedBufferRange");
wgl_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)wgl_GetProcAddress("glBindVertexArray");
wgl_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)wgl_GetProcAddress("glDeleteVertexArrays");
wgl_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)wgl_GetProcAddress("glGenVertexArrays");
wgl_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)wgl_GetProcAddress("glIsVertexArray");
wgl_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)wgl_GetProcAddress("glGetIntegeri_v");
wgl_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)wgl_GetProcAddress("glBeginTransformFeedback");
wgl_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)wgl_GetProcAddress("glEndTransformFeedback");
wgl_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)wgl_GetProcAddress("glBindBufferRange");
wgl_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)wgl_GetProcAddress("glBindBufferBase");
wgl_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)wgl_GetProcAddress("glTransformFeedbackVaryings");
wgl_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)wgl_GetProcAddress("glGetTransformFeedbackVarying");
wgl_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)wgl_GetProcAddress("glVertexAttribIPointer");
wgl_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)wgl_GetProcAddress("glGetVertexAttribIiv");
wgl_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)wgl_GetProcAddress("glGetVertexAttribIuiv");
wgl_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)wgl_GetProcAddress("glVertexAttribI4i");
wgl_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)wgl_GetProcAddress("glVertexAttribI4ui");
wgl_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)wgl_GetProcAddress("glVertexAttribI4iv");
wgl_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)wgl_GetProcAddress("glVertexAttribI4uiv");
wgl_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)wgl_GetProcAddress("glGetUniformuiv");
wgl_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)wgl_GetProcAddress("glGetFragDataLocation");
wgl_glUniform1ui = (PFNGLUNIFORM1UIPROC)wgl_GetProcAddress("glUniform1ui");
wgl_glUniform2ui = (PFNGLUNIFORM2UIPROC)wgl_GetProcAddress("glUniform2ui");
wgl_glUniform3ui = (PFNGLUNIFORM3UIPROC)wgl_GetProcAddress("glUniform3ui");
wgl_glUniform4ui = (PFNGLUNIFORM4UIPROC)wgl_GetProcAddress("glUniform4ui");
wgl_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)wgl_GetProcAddress("glUniform1uiv");
wgl_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)wgl_GetProcAddress("glUniform2uiv");
wgl_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)wgl_GetProcAddress("glUniform3uiv");
wgl_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)wgl_GetProcAddress("glUniform4uiv");
wgl_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)wgl_GetProcAddress("glClearBufferiv");
wgl_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)wgl_GetProcAddress("glClearBufferuiv");
wgl_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)wgl_GetProcAddress("glClearBufferfv");
wgl_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)wgl_GetProcAddress("glClearBufferfi");
wgl_glGetStringi = (PFNGLGETSTRINGIPROC)wgl_GetProcAddress("glGetStringi");
wgl_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)wgl_GetProcAddress("glCopyBufferSubData");
wgl_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)wgl_GetProcAddress("glGetUniformIndices");
wgl_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)wgl_GetProcAddress("glGetActiveUniformsiv");
wgl_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)wgl_GetProcAddress("glGetUniformBlockIndex");
wgl_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)wgl_GetProcAddress("glGetActiveUniformBlockiv");
wgl_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)wgl_GetProcAddress("glGetActiveUniformBlockName");
wgl_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)wgl_GetProcAddress("glUniformBlockBinding");
wgl_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)wgl_GetProcAddress("glDrawArraysInstanced");
wgl_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)wgl_GetProcAddress("glDrawElementsInstanced");
wgl_glFenceSync = (PFNGLFENCESYNCPROC)wgl_GetProcAddress("glFenceSync");
wgl_glIsSync = (PFNGLISSYNCPROC)wgl_GetProcAddress("glIsSync");
wgl_glDeleteSync = (PFNGLDELETESYNCPROC)wgl_GetProcAddress("glDeleteSync");
wgl_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)wgl_GetProcAddress("glClientWaitSync");
wgl_glWaitSync = (PFNGLWAITSYNCPROC)wgl_GetProcAddress("glWaitSync");
wgl_glGetInteger64v = (PFNGLGETINTEGER64VPROC)wgl_GetProcAddress("glGetInteger64v");
wgl_glGetSynciv = (PFNGLGETSYNCIVPROC)wgl_GetProcAddress("glGetSynciv");
wgl_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)wgl_GetProcAddress("glGetInteger64i_v");
wgl_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)wgl_GetProcAddress("glGetBufferParameteri64v");
wgl_glGenSamplers = (PFNGLGENSAMPLERSPROC)wgl_GetProcAddress("glGenSamplers");
wgl_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)wgl_GetProcAddress("glDeleteSamplers");
wgl_glIsSampler = (PFNGLISSAMPLERPROC)wgl_GetProcAddress("glIsSampler");
wgl_glBindSampler = (PFNGLBINDSAMPLERPROC)wgl_GetProcAddress("glBindSampler");
wgl_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)wgl_GetProcAddress("glSamplerParameteri");
wgl_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)wgl_GetProcAddress("glSamplerParameteriv");
wgl_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)wgl_GetProcAddress("glSamplerParameterf");
wgl_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)wgl_GetProcAddress("glSamplerParameterfv");
wgl_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)wgl_GetProcAddress("glGetSamplerParameteriv");
wgl_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)wgl_GetProcAddress("glGetSamplerParameterfv");
wgl_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)wgl_GetProcAddress("glVertexAttribDivisor");
wgl_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)wgl_GetProcAddress("glBindTransformFeedback");
wgl_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)wgl_GetProcAddress("glDeleteTransformFeedbacks");
wgl_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)wgl_GetProcAddress("glGenTransformFeedbacks");
wgl_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)wgl_GetProcAddress("glIsTransformFeedback");
wgl_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)wgl_GetProcAddress("glPauseTransformFeedback");
wgl_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)wgl_GetProcAddress("glResumeTransformFeedback");
wgl_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)wgl_GetProcAddress("glGetProgramBinary");
wgl_glProgramBinary = (PFNGLPROGRAMBINARYPROC)wgl_GetProcAddress("glProgramBinary");
wgl_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)wgl_GetProcAddress("glProgramParameteri");
wgl_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)wgl_GetProcAddress("glInvalidateFramebuffer");
wgl_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)wgl_GetProcAddress("glInvalidateSubFramebuffer");
wgl_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)wgl_GetProcAddress("glTexStorage2D");
wgl_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)wgl_GetProcAddress("glTexStorage3D");
wgl_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)wgl_GetProcAddress("glGetInternalformativ");
/* OpenGL Windows Extensions */
wgl_wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC)wgl_GetProcAddress("wglChoosePixelFormatARB");
wgl_wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)wgl_GetProcAddress("wglCreateContextAttribsARB");
wgl_wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)wgl_GetProcAddress("wglGetExtensionsStringARB");
@@ -341,6 +569,8 @@ void loadWGL() {
namespace mbgl {
namespace platform {
/* OpenGL ES 2.0 */
void (* const glActiveTexture)(GLenum) = [](GLenum texture) { if (!opengl32) loadWGL(); ::wgl_glActiveTexture(texture); };
void (* const glAttachShader)(GLuint, GLuint) = [](GLuint program, GLuint shader) { if (!opengl32) loadWGL(); ::wgl_glAttachShader(program, shader); };
void (* const glBindAttribLocation)(GLuint, GLuint, const GLchar*) = [](GLuint program, GLuint index, const GLchar* name) { if (!opengl32) loadWGL(); ::wgl_glBindAttribLocation(program, index, name); };
@@ -410,6 +640,7 @@ void (* const glGetProgramiv)(GLuint, GLenum, GLint*) = [](GLuint program, GLenu
void (* const glGetRenderbufferParameteriv)(GLenum, GLenum, GLint*) = [](GLenum target, GLenum pname, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetRenderbufferParameteriv(target, pname, params); };
void (* const glGetShaderInfoLog)(GLuint, GLsizei, GLsizei*, GLchar*) = [](GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog) { if (!opengl32) loadWGL(); ::wgl_glGetShaderInfoLog(shader, bufSize, length, infoLog); };
void (* const glGetShaderiv)(GLuint, GLenum, GLint*) = [](GLuint shader, GLenum pname, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetShaderiv(shader, pname, params); };
void (* const glGetShaderPrecisionFormat)(GLenum, GLenum, GLint*, GLint*) = [](GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) { if (!opengl32) loadWGL(); ::wgl_glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision); };
void (* const glGetShaderSource)(GLuint, GLsizei, GLsizei*, GLchar*) = [](GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source) { if (!opengl32) loadWGL(); ::wgl_glGetShaderSource(shader, bufSize, length, source); };
const GLubyte* (* const glGetString)(GLenum) = [](GLenum name) { if (!opengl32) loadWGL(); return ::wgl_glGetString(name); };
void (* const glGetTexParameterfv)(GLenum, GLenum, GLfloat*) = [](GLenum target, GLenum pname, GLfloat* params) { if (!opengl32) loadWGL(); ::wgl_glGetTexParameterfv(target, pname, params); };
@@ -433,9 +664,11 @@ void (* const glLinkProgram)(GLuint) = [](GLuint program) { if (!opengl32) loadW
void (* const glPixelStorei)(GLenum, GLint) = [](GLenum pname, GLint param) { if (!opengl32) loadWGL(); ::wgl_glPixelStorei(pname, param); };
void (* const glPolygonOffset)(GLfloat, GLfloat) = [](GLfloat factor, GLfloat units) { if (!opengl32) loadWGL(); ::wgl_glPolygonOffset(factor, units); };
void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void*) = [](GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) { if (!opengl32) loadWGL(); ::wgl_glReadPixels(x, y, width, height, format, type, pixels); };
void (* const glReleaseShaderCompiler)() = []() { if (!opengl32) loadWGL(); ::wgl_glReleaseShaderCompiler(); };
void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = [](GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { if (!opengl32) loadWGL(); ::wgl_glRenderbufferStorage(target, internalformat, width, height); };
void (* const glSampleCoverage)(GLfloat, GLboolean) = [](GLfloat value, GLboolean invert) { if (!opengl32) loadWGL(); ::wgl_glSampleCoverage(value, invert); };
void (* const glScissor)(GLint, GLint, GLsizei, GLsizei) = [](GLint x, GLint y, GLsizei width, GLsizei height) { if (!opengl32) loadWGL(); ::wgl_glScissor(x, y, width, height); };
void (* const glShaderBinary)(GLsizei, const GLuint*, GLenum, const GLvoid*, GLsizei) = [](GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length) { if (!opengl32) loadWGL(); ::wgl_glShaderBinary(n, shaders, binaryformat, binary, length); };
void (* const glShaderSource)(GLuint, GLsizei, const GLchar* const*, const GLint*) = [](GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length) { if (!opengl32) loadWGL(); ::wgl_glShaderSource(shader, count, string, length); };
void (* const glStencilFunc)(GLenum, GLint, GLuint) = [](GLenum func, GLint ref, GLuint mask) { if (!opengl32) loadWGL(); ::wgl_glStencilFunc(func, ref, mask); };
void (* const glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = [](GLenum face, GLenum func, GLint ref, GLuint mask) { if (!opengl32) loadWGL(); ::wgl_glStencilFuncSeparate(face, func, ref, mask); };
@@ -481,6 +714,115 @@ void (* const glVertexAttrib4fv)(GLuint, const GLfloat*) = [](GLuint index, cons
void (* const glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const void*) = [](GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer) { if (!opengl32) loadWGL(); ::wgl_glVertexAttribPointer(index, size, type, normalized, stride, pointer); };
void (* const glViewport)(GLint, GLint, GLsizei, GLsizei) = [](GLint x, GLint y, GLsizei width, GLsizei height) { if (!opengl32) loadWGL(); ::wgl_glViewport(x, y, width, height); };
/* OpenGL ES 3.0 */
void (* const glReadBuffer)(GLenum) = [](GLenum mode) { if (!opengl32) loadWGL(); ::wgl_glReadBuffer(mode); };
void (* const glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*) = [](GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices) { if (!opengl32) loadWGL(); ::wgl_glDrawRangeElements(mode, start, end, count, type, indices); };
void (* const glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*) = [](GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels) { if (!opengl32) loadWGL(); ::wgl_glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels); };
void (* const glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*) = [](GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels) { if (!opengl32) loadWGL(); ::wgl_glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); };
void (* const glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = [](GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) { if (!opengl32) loadWGL(); ::wgl_glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height); };
void (* const glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*) = [](GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) { if (!opengl32) loadWGL(); ::wgl_glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data); };
void (* const glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*) = [](GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) { if (!opengl32) loadWGL(); ::wgl_glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); };
void (* const glGenQueries)(GLsizei, GLuint*) = [](GLsizei n, GLuint* ids) { if (!opengl32) loadWGL(); ::wgl_glGenQueries(n, ids); };
void (* const glDeleteQueries)(GLsizei, const GLuint*) = [](GLsizei n, const GLuint* ids) { if (!opengl32) loadWGL(); ::wgl_glDeleteQueries(n, ids); };
GLboolean (* const glIsQuery)(GLuint) = [](GLuint id) { if (!opengl32) loadWGL(); return ::wgl_glIsQuery(id); };
void (* const glBeginQuery)(GLenum, GLuint) = [](GLenum target, GLuint id) { if (!opengl32) loadWGL(); ::wgl_glBeginQuery(target, id); };
void (* const glEndQuery)(GLenum) = [](GLenum target) { if (!opengl32) loadWGL(); ::wgl_glEndQuery(target); };
void (* const glGetQueryiv)(GLenum, GLenum, GLint*) = [](GLenum target, GLenum pname, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetQueryiv(target, pname, params); };
void (* const glGetQueryObjectuiv)(GLuint, GLenum, GLuint*) = [](GLuint id, GLenum pname, GLuint* params) { if (!opengl32) loadWGL(); ::wgl_glGetQueryObjectuiv(id, pname, params); };
GLboolean (* const glUnmapBuffer)(GLenum) = [](GLenum target) { if (!opengl32) loadWGL(); return ::wgl_glUnmapBuffer(target); };
void (* const glGetBufferPointerv)(GLenum, GLenum, GLvoid**) = [](GLenum target, GLenum pname, GLvoid** params) { if (!opengl32) loadWGL(); ::wgl_glGetBufferPointerv(target, pname, params); };
void (* const glDrawBuffers)(GLsizei, const GLenum*) = [](GLsizei n, const GLenum* bufs) { if (!opengl32) loadWGL(); ::wgl_glDrawBuffers(n, bufs); };
void (* const glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { if (!opengl32) loadWGL(); ::wgl_glUniformMatrix2x3fv(location, count, transpose, value); };
void (* const glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { if (!opengl32) loadWGL(); ::wgl_glUniformMatrix3x2fv(location, count, transpose, value); };
void (* const glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { if (!opengl32) loadWGL(); ::wgl_glUniformMatrix2x4fv(location, count, transpose, value); };
void (* const glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { if (!opengl32) loadWGL(); ::wgl_glUniformMatrix4x2fv(location, count, transpose, value); };
void (* const glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { if (!opengl32) loadWGL(); ::wgl_glUniformMatrix3x4fv(location, count, transpose, value); };
void (* const glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat*) = [](GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { if (!opengl32) loadWGL(); ::wgl_glUniformMatrix4x3fv(location, count, transpose, value); };
void (* const glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = [](GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { if (!opengl32) loadWGL(); ::wgl_glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); };
void (* const glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = [](GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { if (!opengl32) loadWGL(); ::wgl_glRenderbufferStorageMultisample(target, samples, internalformat, width, height); };
void (* const glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = [](GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) { if (!opengl32) loadWGL(); ::wgl_glFramebufferTextureLayer(target, attachment, texture, level, layer); };
GLvoid* (* const glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = [](GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) { if (!opengl32) loadWGL(); return ::wgl_glMapBufferRange(target, offset, length, access); };
void (* const glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = [](GLenum target, GLintptr offset, GLsizeiptr length) { if (!opengl32) loadWGL(); ::wgl_glFlushMappedBufferRange(target, offset, length); };
void (* const glBindVertexArray)(GLuint) = [](GLuint array) { if (!opengl32) loadWGL(); ::wgl_glBindVertexArray(array); };
void (* const glDeleteVertexArrays)(GLsizei, const GLuint*) = [](GLsizei n, const GLuint* arrays) { if (!opengl32) loadWGL(); ::wgl_glDeleteVertexArrays(n, arrays); };
void (* const glGenVertexArrays)(GLsizei, GLuint*) = [](GLsizei n, GLuint* arrays) { if (!opengl32) loadWGL(); ::wgl_glGenVertexArrays(n, arrays); };
GLboolean (* const glIsVertexArray)(GLuint) = [](GLuint array) { if (!opengl32) loadWGL(); return ::wgl_glIsVertexArray(array); };
void (* const glGetIntegeri_v)(GLenum, GLuint, GLint*) = [](GLenum target, GLuint index, GLint* data) { if (!opengl32) loadWGL(); ::wgl_glGetIntegeri_v(target, index, data); };
void (* const glBeginTransformFeedback)(GLenum) = [](GLenum primitiveMode) { if (!opengl32) loadWGL(); ::wgl_glBeginTransformFeedback(primitiveMode); };
void (* const glEndTransformFeedback)() = []() { if (!opengl32) loadWGL(); ::wgl_glEndTransformFeedback(); };
void (* const glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = [](GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) { if (!opengl32) loadWGL(); ::wgl_glBindBufferRange(target, index, buffer, offset, size); };
void (* const glBindBufferBase)(GLenum, GLuint, GLuint) = [](GLenum target, GLuint index, GLuint buffer) { if (!opengl32) loadWGL(); ::wgl_glBindBufferBase(target, index, buffer); };
void (* const glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar* const*, GLenum) = [](GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode) { if (!opengl32) loadWGL(); ::wgl_glTransformFeedbackVaryings(program, count, varyings, bufferMode); };
void (* const glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) = [](GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name) { if (!opengl32) loadWGL(); ::wgl_glGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name); };
void (* const glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid*) = [](GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) { if (!opengl32) loadWGL(); ::wgl_glVertexAttribIPointer(index, size, type, stride, pointer); };
void (* const glGetVertexAttribIiv)(GLuint, GLenum, GLint*) = [](GLuint index, GLenum pname, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetVertexAttribIiv(index, pname, params); };
void (* const glGetVertexAttribIuiv)(GLuint, GLenum, GLuint*) = [](GLuint index, GLenum pname, GLuint* params) { if (!opengl32) loadWGL(); ::wgl_glGetVertexAttribIuiv(index, pname, params); };
void (* const glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = [](GLuint index, GLint x, GLint y, GLint z, GLint w) { if (!opengl32) loadWGL(); ::wgl_glVertexAttribI4i(index, x, y, z, w); };
void (* const glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = [](GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) { if (!opengl32) loadWGL(); ::wgl_glVertexAttribI4ui(index, x, y, z, w); };
void (* const glVertexAttribI4iv)(GLuint, const GLint*) = [](GLuint index, const GLint* v) { if (!opengl32) loadWGL(); ::wgl_glVertexAttribI4iv(index, v); };
void (* const glVertexAttribI4uiv)(GLuint, const GLuint*) = [](GLuint index, const GLuint* v) { if (!opengl32) loadWGL(); ::wgl_glVertexAttribI4uiv(index, v); };
void (* const glGetUniformuiv)(GLuint, GLint, GLuint*) = [](GLuint program, GLint location, GLuint* params) { if (!opengl32) loadWGL(); ::wgl_glGetUniformuiv(program, location, params); };
GLint (* const glGetFragDataLocation)(GLuint, const GLchar*) = [](GLuint program, const GLchar* name) { if (!opengl32) loadWGL(); return ::wgl_glGetFragDataLocation(program, name); };
void (* const glUniform1ui)(GLint, GLuint) = [](GLint location, GLuint v0) { if (!opengl32) loadWGL(); ::wgl_glUniform1ui(location, v0); };
void (* const glUniform2ui)(GLint, GLuint, GLuint) = [](GLint location, GLuint v0, GLuint v1) { if (!opengl32) loadWGL(); ::wgl_glUniform2ui(location, v0, v1); };
void (* const glUniform3ui)(GLint, GLuint, GLuint, GLuint) = [](GLint location, GLuint v0, GLuint v1, GLuint v2) { if (!opengl32) loadWGL(); ::wgl_glUniform3ui(location, v0, v1, v2); };
void (* const glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = [](GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { if (!opengl32) loadWGL(); ::wgl_glUniform4ui(location, v0, v1, v2, v3); };
void (* const glUniform1uiv)(GLint, GLsizei, const GLuint*) = [](GLint location, GLsizei count, const GLuint* value) { if (!opengl32) loadWGL(); ::wgl_glUniform1uiv(location, count, value); };
void (* const glUniform2uiv)(GLint, GLsizei, const GLuint*) = [](GLint location, GLsizei count, const GLuint* value) { if (!opengl32) loadWGL(); ::wgl_glUniform2uiv(location, count, value); };
void (* const glUniform3uiv)(GLint, GLsizei, const GLuint*) = [](GLint location, GLsizei count, const GLuint* value) { if (!opengl32) loadWGL(); ::wgl_glUniform3uiv(location, count, value); };
void (* const glUniform4uiv)(GLint, GLsizei, const GLuint*) = [](GLint location, GLsizei count, const GLuint* value) { if (!opengl32) loadWGL(); ::wgl_glUniform4uiv(location, count, value); };
void (* const glClearBufferiv)(GLenum, GLint, const GLint*) = [](GLenum buffer, GLint drawbuffer, const GLint* value) { if (!opengl32) loadWGL(); ::wgl_glClearBufferiv(buffer, drawbuffer, value); };
void (* const glClearBufferuiv)(GLenum, GLint, const GLuint*) = [](GLenum buffer, GLint drawbuffer, const GLuint* value) { if (!opengl32) loadWGL(); ::wgl_glClearBufferuiv(buffer, drawbuffer, value); };
void (* const glClearBufferfv)(GLenum, GLint, const GLfloat*) = [](GLenum buffer, GLint drawbuffer, const GLfloat* value) { if (!opengl32) loadWGL(); ::wgl_glClearBufferfv(buffer, drawbuffer, value); };
void (* const glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = [](GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { if (!opengl32) loadWGL(); ::wgl_glClearBufferfi(buffer, drawbuffer, depth, stencil); };
const GLubyte* (* const glGetStringi)(GLenum, GLuint) = [](GLenum name, GLuint index) { if (!opengl32) loadWGL(); return ::wgl_glGetStringi(name, index); };
void (* const glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = [](GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) { if (!opengl32) loadWGL(); ::wgl_glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size); };
void (* const glGetUniformIndices)(GLuint, GLsizei, const GLchar* const*, GLuint*) = [](GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices) { if (!opengl32) loadWGL(); ::wgl_glGetUniformIndices(program, uniformCount, uniformNames, uniformIndices); };
void (* const glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint*, GLenum, GLint*) = [](GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params); };
GLuint (* const glGetUniformBlockIndex)(GLuint, const GLchar*) = [](GLuint program, const GLchar* uniformBlockName) { if (!opengl32) loadWGL(); return ::wgl_glGetUniformBlockIndex(program, uniformBlockName); };
void (* const glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint*) = [](GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params); };
void (* const glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei*, GLchar*) = [](GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) { if (!opengl32) loadWGL(); ::wgl_glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName); };
void (* const glUniformBlockBinding)(GLuint, GLuint, GLuint) = [](GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) { if (!opengl32) loadWGL(); ::wgl_glUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding); };
void (* const glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = [](GLenum mode, GLint first, GLsizei count, GLsizei instancecount) { if (!opengl32) loadWGL(); ::wgl_glDrawArraysInstanced(mode, first, count, instancecount); };
void (* const glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid*, GLsizei) = [](GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instancecount) { if (!opengl32) loadWGL(); ::wgl_glDrawElementsInstanced(mode, count, type, indices, instancecount); };
GLsync (* const glFenceSync)(GLenum, GLbitfield) = [](GLenum condition, GLbitfield flags) { if (!opengl32) loadWGL(); return ::wgl_glFenceSync(condition, flags); };
GLboolean (* const glIsSync)(GLsync) = [](GLsync sync) { if (!opengl32) loadWGL(); return ::wgl_glIsSync(sync); };
void (* const glDeleteSync)(GLsync) = [](GLsync sync) { if (!opengl32) loadWGL(); ::wgl_glDeleteSync(sync); };
GLenum (* const glClientWaitSync)(GLsync, GLbitfield, GLuint64) = [](GLsync sync, GLbitfield flags, GLuint64 timeout) { if (!opengl32) loadWGL(); return ::wgl_glClientWaitSync(sync, flags, timeout); };
void (* const glWaitSync)(GLsync, GLbitfield, GLuint64) = [](GLsync sync, GLbitfield flags, GLuint64 timeout) { if (!opengl32) loadWGL(); ::wgl_glWaitSync(sync, flags, timeout); };
void (* const glGetInteger64v)(GLenum, GLint64*) = [](GLenum pname, GLint64* params) { if (!opengl32) loadWGL(); ::wgl_glGetInteger64v(pname, params); };
void (* const glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei*, GLint*) = [](GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) { if (!opengl32) loadWGL(); ::wgl_glGetSynciv(sync, pname, bufSize, length, values); };
void (* const glGetInteger64i_v)(GLenum, GLuint, GLint64*) = [](GLenum target, GLuint index, GLint64* data) { if (!opengl32) loadWGL(); ::wgl_glGetInteger64i_v(target, index, data); };
void (* const glGetBufferParameteri64v)(GLenum, GLenum, GLint64*) = [](GLenum target, GLenum pname, GLint64* params) { if (!opengl32) loadWGL(); ::wgl_glGetBufferParameteri64v(target, pname, params); };
void (* const glGenSamplers)(GLsizei, GLuint*) = [](GLsizei count, GLuint* samplers) { if (!opengl32) loadWGL(); ::wgl_glGenSamplers(count, samplers); };
void (* const glDeleteSamplers)(GLsizei, const GLuint*) = [](GLsizei count, const GLuint* samplers) { if (!opengl32) loadWGL(); ::wgl_glDeleteSamplers(count, samplers); };
GLboolean (* const glIsSampler)(GLuint) = [](GLuint sampler) { if (!opengl32) loadWGL(); return ::wgl_glIsSampler(sampler); };
void (* const glBindSampler)(GLuint, GLuint) = [](GLuint unit, GLuint sampler) { if (!opengl32) loadWGL(); ::wgl_glBindSampler(unit, sampler); };
void (* const glSamplerParameteri)(GLuint, GLenum, GLint) = [](GLuint sampler, GLenum pname, GLint param) { if (!opengl32) loadWGL(); ::wgl_glSamplerParameteri(sampler, pname, param); };
void (* const glSamplerParameteriv)(GLuint, GLenum, const GLint*) = [](GLuint sampler, GLenum pname, const GLint* param) { if (!opengl32) loadWGL(); ::wgl_glSamplerParameteriv(sampler, pname, param); };
void (* const glSamplerParameterf)(GLuint, GLenum, GLfloat) = [](GLuint sampler, GLenum pname, GLfloat param) { if (!opengl32) loadWGL(); ::wgl_glSamplerParameterf(sampler, pname, param); };
void (* const glSamplerParameterfv)(GLuint, GLenum, const GLfloat*) = [](GLuint sampler, GLenum pname, const GLfloat* param) { if (!opengl32) loadWGL(); ::wgl_glSamplerParameterfv(sampler, pname, param); };
void (* const glGetSamplerParameteriv)(GLuint, GLenum, GLint*) = [](GLuint sampler, GLenum pname, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetSamplerParameteriv(sampler, pname, params); };
void (* const glGetSamplerParameterfv)(GLuint, GLenum, GLfloat*) = [](GLuint sampler, GLenum pname, GLfloat* params) { if (!opengl32) loadWGL(); ::wgl_glGetSamplerParameterfv(sampler, pname, params); };
void (* const glVertexAttribDivisor)(GLuint, GLuint) = [](GLuint index, GLuint divisor) { if (!opengl32) loadWGL(); ::wgl_glVertexAttribDivisor(index, divisor); };
void (* const glBindTransformFeedback)(GLenum, GLuint) = [](GLenum target, GLuint id) { if (!opengl32) loadWGL(); ::wgl_glBindTransformFeedback(target, id); };
void (* const glDeleteTransformFeedbacks)(GLsizei, const GLuint*) = [](GLsizei n, const GLuint* ids) { if (!opengl32) loadWGL(); ::wgl_glDeleteTransformFeedbacks(n, ids); };
void (* const glGenTransformFeedbacks)(GLsizei, GLuint*) = [](GLsizei n, GLuint* ids) { if (!opengl32) loadWGL(); ::wgl_glGenTransformFeedbacks(n, ids); };
GLboolean (* const glIsTransformFeedback)(GLuint) = [](GLuint id) { if (!opengl32) loadWGL(); return ::wgl_glIsTransformFeedback(id); };
void (* const glPauseTransformFeedback)() = []() { if (!opengl32) loadWGL(); ::wgl_glPauseTransformFeedback(); };
void (* const glResumeTransformFeedback)() = []() { if (!opengl32) loadWGL(); ::wgl_glResumeTransformFeedback(); };
void (* const glGetProgramBinary)(GLuint, GLsizei, GLsizei*, GLenum*, GLvoid*) = [](GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary) { if (!opengl32) loadWGL(); ::wgl_glGetProgramBinary(program, bufSize, length, binaryFormat, binary); };
void (* const glProgramBinary)(GLuint, GLenum, const GLvoid*, GLsizei) = [](GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length) { if (!opengl32) loadWGL(); ::wgl_glProgramBinary(program, binaryFormat, binary, length); };
void (* const glProgramParameteri)(GLuint, GLenum, GLint) = [](GLuint program, GLenum pname, GLint value) { if (!opengl32) loadWGL(); ::wgl_glProgramParameteri(program, pname, value); };
void (* const glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum*) = [](GLenum target, GLsizei numAttachments, const GLenum* attachments) { if (!opengl32) loadWGL(); ::wgl_glInvalidateFramebuffer(target, numAttachments, attachments); };
void (* const glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum*, GLint, GLint, GLsizei, GLsizei) = [](GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) { if (!opengl32) loadWGL(); ::wgl_glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height); };
void (* const glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = [](GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { if (!opengl32) loadWGL(); ::wgl_glTexStorage2D(target, levels, internalformat, width, height); };
void (* const glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = [](GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { if (!opengl32) loadWGL(); ::wgl_glTexStorage3D(target, levels, internalformat, width, height, depth); };
void (* const glGetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint*) = [](GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) { if (!opengl32) loadWGL(); ::wgl_glGetInternalformativ(target, internalformat, pname, bufSize, params); };
/* OpenGL Windows Extensions */
BOOL(* const wglChoosePixelFormatARB)(HDC, const int*, const FLOAT*, UINT, int*, UINT*) = [](HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats) { if (!opengl32) loadWGL(); return ::wgl_wglChoosePixelFormatARB(hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats); };
HGLRC(* const wglCreateContextAttribsARB)(HDC, HGLRC, const int*) = [](HDC hDC, HGLRC hShareContext, const int* attribList) { if (!opengl32) loadWGL(); return ::wgl_wglCreateContextAttribsARB(hDC, hShareContext, attribList); };
const char* (* const wglGetExtensionsStringARB)(HDC) = [](HDC hdc) { if (!opengl32) loadWGL(); return ::wgl_wglGetExtensionsStringARB(hdc); };

View File

@@ -12,6 +12,8 @@
namespace mbgl {
namespace platform {
/* OpenGL ES 2.0 */
void (* const glActiveTexture)(GLenum) = ::glActiveTexture;
void (* const glAttachShader)(GLuint, GLuint) = ::glAttachShader;
void (* const glBindAttribLocation)(GLuint, GLuint, const GLchar *) = ::glBindAttribLocation;
@@ -81,6 +83,7 @@ void (* const glGetProgramiv)(GLuint, GLenum, GLint *) = ::glGetProgramiv;
void (* const glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *) = ::glGetRenderbufferParameteriv;
void (* const glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderInfoLog;
void (* const glGetShaderiv)(GLuint, GLenum, GLint *) = ::glGetShaderiv;
void (* const glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *) = ::glGetShaderPrecisionFormat;
void (* const glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetShaderSource;
const GLubyte *(* const glGetString)(GLenum) = ::glGetString;
void (* const glGetTexParameterfv)(GLenum, GLenum, GLfloat *) = ::glGetTexParameterfv;
@@ -104,9 +107,11 @@ void (* const glLinkProgram)(GLuint) = ::glLinkProgram;
void (* const glPixelStorei)(GLenum, GLint) = ::glPixelStorei;
void (* const glPolygonOffset)(GLfloat, GLfloat) = ::glPolygonOffset;
void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void *) = ::glReadPixels;
void (* const glReleaseShaderCompiler)() = ::glReleaseShaderCompiler;
void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorage;
void (* const glSampleCoverage)(GLfloat, GLboolean) = ::glSampleCoverage;
void (* const glScissor)(GLint, GLint, GLsizei, GLsizei) = ::glScissor;
void (* const glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei) = ::glShaderBinary;
void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = ::glShaderSource;
void (* const glStencilFunc)(GLenum, GLint, GLuint) = ::glStencilFunc;
void (* const glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = ::glStencilFuncSeparate;
@@ -152,5 +157,112 @@ void (* const glVertexAttrib4fv)(GLuint, const GLfloat *) = ::glVertexAttrib4fv;
void (* const glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const void *) = ::glVertexAttribPointer;
void (* const glViewport)(GLint, GLint, GLsizei, GLsizei) = ::glViewport;
/* OpenGL ES 3.0 */
void (* const glReadBuffer)(GLenum) = ::glReadBuffer;
void (* const glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *) = ::glDrawRangeElements;
void (* const glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = ::glTexImage3D;
void (* const glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = ::glTexSubImage3D;
void (* const glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = ::glCopyTexSubImage3D;
void (* const glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = ::glCompressedTexImage3D;
void (* const glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = ::glCompressedTexSubImage3D;
void (* const glGenQueries)(GLsizei, GLuint *) = ::glGenQueries;
void (* const glDeleteQueries)(GLsizei, const GLuint *) = ::glDeleteQueries;
GLboolean (* const glIsQuery)(GLuint) = ::glIsQuery;
void (* const glBeginQuery)(GLenum, GLuint) = ::glBeginQuery;
void (* const glEndQuery)(GLenum) = ::glEndQuery;
void (* const glGetQueryiv)(GLenum, GLenum, GLint *) = ::glGetQueryiv;
void (* const glGetQueryObjectuiv)(GLuint, GLenum, GLuint *) = ::glGetQueryObjectuiv;
GLboolean (* const glUnmapBuffer)(GLenum) = ::glUnmapBuffer;
void (* const glGetBufferPointerv)(GLenum, GLenum, GLvoid **) = ::glGetBufferPointerv;
void (* const glDrawBuffers)(GLsizei, const GLenum *) = ::glDrawBuffers;
void (* const glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x3fv;
void (* const glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x2fv;
void (* const glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix2x4fv;
void (* const glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x2fv;
void (* const glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix3x4fv;
void (* const glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = ::glUniformMatrix4x3fv;
void (* const glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = ::glBlitFramebuffer;
void (* const glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorageMultisample;
void (* const glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = ::glFramebufferTextureLayer;
GLvoid* (* const glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = ::glMapBufferRange;
void (* const glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = ::glFlushMappedBufferRange;
void (* const glBindVertexArray)(GLuint) = ::glBindVertexArray;
void (* const glDeleteVertexArrays)(GLsizei, const GLuint *) = ::glDeleteVertexArrays;
void (* const glGenVertexArrays)(GLsizei, GLuint *) = ::glGenVertexArrays;
GLboolean (* const glIsVertexArray)(GLuint) = ::glIsVertexArray;
void (* const glGetIntegeri_v)(GLenum, GLuint, GLint *) = ::glGetIntegeri_v;
void (* const glBeginTransformFeedback)(GLenum) = ::glBeginTransformFeedback;
void (* const glEndTransformFeedback)() = ::glEndTransformFeedback;
void (* const glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = ::glBindBufferRange;
void (* const glBindBufferBase)(GLenum, GLuint, GLuint) = ::glBindBufferBase;
void (* const glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar * const*, GLenum) = ::glTransformFeedbackVaryings;
void (* const glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *) = ::glGetTransformFeedbackVarying;
void (* const glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = ::glVertexAttribIPointer;
void (* const glGetVertexAttribIiv)(GLuint, GLenum, GLint *) = ::glGetVertexAttribIiv;
void (* const glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *) = ::glGetVertexAttribIuiv;
void (* const glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = ::glVertexAttribI4i;
void (* const glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = ::glVertexAttribI4ui;
void (* const glVertexAttribI4iv)(GLuint, const GLint *) = ::glVertexAttribI4iv;
void (* const glVertexAttribI4uiv)(GLuint, const GLuint *) = ::glVertexAttribI4uiv;
void (* const glGetUniformuiv)(GLuint, GLint, GLuint *) = ::glGetUniformuiv;
GLint (* const glGetFragDataLocation)(GLuint, const GLchar *) = ::glGetFragDataLocation;
void (* const glUniform1ui)(GLint, GLuint) = ::glUniform1ui;
void (* const glUniform2ui)(GLint, GLuint, GLuint) = ::glUniform2ui;
void (* const glUniform3ui)(GLint, GLuint, GLuint, GLuint) = ::glUniform3ui;
void (* const glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = ::glUniform4ui;
void (* const glUniform1uiv)(GLint, GLsizei, const GLuint *) = ::glUniform1uiv;
void (* const glUniform2uiv)(GLint, GLsizei, const GLuint *) = ::glUniform2uiv;
void (* const glUniform3uiv)(GLint, GLsizei, const GLuint *) = ::glUniform3uiv;
void (* const glUniform4uiv)(GLint, GLsizei, const GLuint *) = ::glUniform4uiv;
void (* const glClearBufferiv)(GLenum, GLint, const GLint *) = ::glClearBufferiv;
void (* const glClearBufferuiv)(GLenum, GLint, const GLuint *) = ::glClearBufferuiv;
void (* const glClearBufferfv)(GLenum, GLint, const GLfloat *) = ::glClearBufferfv;
void (* const glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = ::glClearBufferfi;
const GLubyte* (* const glGetStringi)(GLenum, GLuint) = ::glGetStringi;
void (* const glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = ::glCopyBufferSubData;
void (* const glGetUniformIndices)(GLuint, GLsizei, const GLchar * const*, GLuint *) = ::glGetUniformIndices;
void (* const glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *) = ::glGetActiveUniformsiv;
GLuint (* const glGetUniformBlockIndex)(GLuint, const GLchar *) = ::glGetUniformBlockIndex;
void (* const glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *) = ::glGetActiveUniformBlockiv;
void (* const glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = ::glGetActiveUniformBlockName;
void (* const glUniformBlockBinding)(GLuint, GLuint, GLuint) = ::glUniformBlockBinding;
void (* const glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = ::glDrawArraysInstanced;
void (* const glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei) = ::glDrawElementsInstanced;
GLsync (* const glFenceSync)(GLenum, GLbitfield) = ::glFenceSync;
GLboolean (* const glIsSync)(GLsync) = ::glIsSync;
void (* const glDeleteSync)(GLsync) = ::glDeleteSync;
GLenum (* const glClientWaitSync)(GLsync, GLbitfield, GLuint64) = ::glClientWaitSync;
void (* const glWaitSync)(GLsync, GLbitfield, GLuint64) = ::glWaitSync;
void (* const glGetInteger64v)(GLenum, GLint64 *) = ::glGetInteger64v;
void (* const glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *) = ::glGetSynciv;
void (* const glGetInteger64i_v)(GLenum, GLuint, GLint64 *) = ::glGetInteger64i_v;
void (* const glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *) = ::glGetBufferParameteri64v;
void (* const glGenSamplers)(GLsizei, GLuint *) = ::glGenSamplers;
void (* const glDeleteSamplers)(GLsizei, const GLuint *) = ::glDeleteSamplers;
GLboolean (* const glIsSampler)(GLuint) = ::glIsSampler;
void (* const glBindSampler)(GLuint, GLuint) = ::glBindSampler;
void (* const glSamplerParameteri)(GLuint, GLenum, GLint) = ::glSamplerParameteri;
void (* const glSamplerParameteriv)(GLuint, GLenum, const GLint *) = ::glSamplerParameteriv;
void (* const glSamplerParameterf)(GLuint, GLenum, GLfloat) = ::glSamplerParameterf;
void (* const glSamplerParameterfv)(GLuint, GLenum, const GLfloat *) = ::glSamplerParameterfv;
void (* const glGetSamplerParameteriv)(GLuint, GLenum, GLint *) = ::glGetSamplerParameteriv;
void (* const glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *) = ::glGetSamplerParameterfv;
void (* const glVertexAttribDivisor)(GLuint, GLuint) = ::glVertexAttribDivisor;
void (* const glBindTransformFeedback)(GLenum, GLuint) = ::glBindTransformFeedback;
void (* const glDeleteTransformFeedbacks)(GLsizei, const GLuint *) = ::glDeleteTransformFeedbacks;
void (* const glGenTransformFeedbacks)(GLsizei, GLuint *) = ::glGenTransformFeedbacks;
GLboolean (* const glIsTransformFeedback)(GLuint) = ::glIsTransformFeedback;
void (* const glPauseTransformFeedback)() = ::glPauseTransformFeedback;
void (* const glResumeTransformFeedback)() = ::glResumeTransformFeedback;
void (* const glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *) = ::glGetProgramBinary;
void (* const glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei) = ::glProgramBinary;
void (* const glProgramParameteri)(GLuint, GLenum, GLint) = ::glProgramParameteri;
void (* const glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *) = ::glInvalidateFramebuffer;
void (* const glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei) = ::glInvalidateSubFramebuffer;
void (* const glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = ::glTexStorage2D;
void (* const glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = ::glTexStorage3D;
void (* const glGetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint *) = ::glGetInternalformativ;
} // namespace platform
} // namespace mbgl