API links for OpenGL ES 3.0 (#1007)
Co-authored-by: mwilsnd <mwilsnd@gmail.com>
This commit is contained in:
@@ -947,7 +947,6 @@ if(MBGL_WITH_OPENGL)
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/gl/value.hpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/gl/vertex_array.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/gl/vertex_array.hpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/gl/vertex_array_extension.hpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/gl/vertex_buffer_resource.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/gl/vertex_buffer_resource.hpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/location_indicator_layer_factory.cpp
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstddef>
|
||||
#include <stdint.h>
|
||||
|
||||
// Pointers to OpenGL ES 2.0 functions. They must be
|
||||
// Pointers to OpenGL ES functions. They must be
|
||||
// initialized by the platform at linking time.
|
||||
|
||||
#ifndef NDEBUG
|
||||
@@ -11,6 +12,8 @@
|
||||
#define MBGL_CHECK_ERROR(cmd) (cmd)
|
||||
#endif
|
||||
|
||||
struct __GLsync;
|
||||
|
||||
namespace mbgl {
|
||||
namespace platform {
|
||||
|
||||
@@ -25,6 +28,9 @@ using GLsizei = int;
|
||||
using GLubyte = unsigned char;
|
||||
using GLuint = unsigned int;
|
||||
using GLvoid = void;
|
||||
using GLint64 = int64_t;
|
||||
using GLuint64 = uint64_t;
|
||||
using GLsync = ::__GLsync *;
|
||||
|
||||
#if defined(_WIN32)
|
||||
using GLintptr = long long;
|
||||
@@ -34,6 +40,8 @@ using GLintptr = long;
|
||||
using GLsizeiptr = long;
|
||||
#endif
|
||||
|
||||
/* OpenGL ES 2.0 */
|
||||
|
||||
/// Pointer to glActiveTexture OpenGL function.
|
||||
extern void (* const glActiveTexture)(GLenum);
|
||||
/// Pointer to glAttachShader OpenGL function.
|
||||
@@ -172,6 +180,8 @@ extern void (* const glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *);
|
||||
extern void (* const glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *);
|
||||
/// Pointer to glGetShaderiv OpenGL function.
|
||||
extern void (* const glGetShaderiv)(GLuint, GLenum, GLint *);
|
||||
/// Pointer to glGetShaderPrecisionFormat OpenGL function.
|
||||
extern void (* const glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *);
|
||||
/// Pointer to glGetShaderSource OpenGL function.
|
||||
extern void (* const glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *);
|
||||
/// Pointer to glGetString OpenGL function.
|
||||
@@ -218,12 +228,16 @@ extern void (* const glPixelStorei)(GLenum, GLint);
|
||||
extern void (* const glPolygonOffset)(GLfloat, GLfloat);
|
||||
/// Pointer to glReadPixels OpenGL function.
|
||||
extern void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void *);
|
||||
/// Pointer to glReleaseShaderCompiler OpenGL function.
|
||||
extern void (* const glReleaseShaderCompiler)();
|
||||
/// Pointer to glRenderbufferStorage OpenGL function.
|
||||
extern void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei);
|
||||
/// Pointer to glSampleCoverage OpenGL function.
|
||||
extern void (* const glSampleCoverage)(GLfloat, GLboolean);
|
||||
/// Pointer to glScissor OpenGL function.
|
||||
extern void (* const glScissor)(GLint, GLint, GLsizei, GLsizei);
|
||||
/// Pointer to glShaderBinary OpenGL function.
|
||||
extern void (* const glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei);
|
||||
/// Pointer to glShaderSource OpenGL function.
|
||||
extern void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *);
|
||||
/// Pointer to glStencilFunc OpenGL function.
|
||||
@@ -313,6 +327,217 @@ extern void (* const glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GL
|
||||
/// Pointer to glViewport OpenGL function.
|
||||
extern void (* const glViewport)(GLint, GLint, GLsizei, GLsizei);
|
||||
|
||||
/* OpenGL ES 3.0 */
|
||||
|
||||
/// Pointer to glReadBuffer OpenGL function.
|
||||
extern void (* const glReadBuffer)(GLenum);
|
||||
/// Pointer to glDrawRangeElements OpenGL function.
|
||||
extern void (* const glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
|
||||
/// Pointer to glTexImage3D OpenGL function.
|
||||
extern void (* const glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
|
||||
/// Pointer to glTexSubImage3D OpenGL function.
|
||||
extern void (* const glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
|
||||
/// Pointer to glCopyTexSubImage3D OpenGL function.
|
||||
extern void (* const glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
|
||||
/// Pointer to glCompressedTexImage3D OpenGL function.
|
||||
extern void (* const glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
|
||||
/// Pointer to glCompressedTexSubImage3D OpenGL function.
|
||||
extern void (* const glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
|
||||
/// Pointer to glGenQueries OpenGL function.
|
||||
extern void (* const glGenQueries)(GLsizei, GLuint *);
|
||||
/// Pointer to glDeleteQueries OpenGL function.
|
||||
extern void (* const glDeleteQueries)(GLsizei, const GLuint *);
|
||||
/// Pointer to glIsQuery OpenGL function.
|
||||
extern GLboolean (* const glIsQuery)(GLuint);
|
||||
/// Pointer to glBeginQuery OpenGL function.
|
||||
extern void (* const glBeginQuery)(GLenum, GLuint);
|
||||
/// Pointer to glEndQuery OpenGL function.
|
||||
extern void (* const glEndQuery)(GLenum);
|
||||
/// Pointer to glGetQueryiv OpenGL function.
|
||||
extern void (* const glGetQueryiv)(GLenum, GLenum, GLint *);
|
||||
/// Pointer to glGetQueryObjectuiv OpenGL function.
|
||||
extern void (* const glGetQueryObjectuiv)(GLuint, GLenum, GLuint *);
|
||||
/// Pointer to glUnmapBuffer OpenGL function.
|
||||
extern GLboolean (* const glUnmapBuffer)(GLenum);
|
||||
/// Pointer to glGetBufferPointerv OpenGL function.
|
||||
extern void (* const glGetBufferPointerv)(GLenum, GLenum, GLvoid **);
|
||||
/// Pointer to glDrawBuffers OpenGL function.
|
||||
extern void (* const glDrawBuffers)(GLsizei, const GLenum *);
|
||||
/// Pointer to glUniformMatrix2x3fv OpenGL function.
|
||||
extern void (* const glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
|
||||
/// Pointer to glUniformMatrix3x2fv OpenGL function.
|
||||
extern void (* const glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
|
||||
/// Pointer to glUniformMatrix2x4fv OpenGL function.
|
||||
extern void (* const glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
|
||||
/// Pointer to glUniformMatrix4x2fv OpenGL function.
|
||||
extern void (* const glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
|
||||
/// Pointer to glUniformMatrix3x4fv OpenGL function.
|
||||
extern void (* const glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
|
||||
/// Pointer to glUniformMatrix4x3fv OpenGL function.
|
||||
extern void (* const glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
|
||||
/// Pointer to glBlitFramebuffer OpenGL function.
|
||||
extern void (* const glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
|
||||
/// Pointer to glRenderbufferStorageMultisample OpenGL function.
|
||||
extern void (* const glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
|
||||
/// Pointer to glFramebufferTextureLayer OpenGL function.
|
||||
extern void (* const glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint);
|
||||
/// Pointer to glMapBufferRange OpenGL function.
|
||||
extern GLvoid* (* const glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield);
|
||||
/// Pointer to glMapBufferRange OpenGL function.
|
||||
extern void (* const glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr);
|
||||
/// Pointer to glBindVertexArray OpenGL function.
|
||||
extern void (* const glBindVertexArray)(GLuint);
|
||||
/// Pointer to glDeleteVertexArrays OpenGL function.
|
||||
extern void (* const glDeleteVertexArrays)(GLsizei, const GLuint *);
|
||||
/// Pointer to glGenVertexArrays OpenGL function.
|
||||
extern void (* const glGenVertexArrays)(GLsizei, GLuint *);
|
||||
/// Pointer to glIsVertexArray OpenGL function.
|
||||
extern GLboolean (* const glIsVertexArray)(GLuint);
|
||||
/// Pointer to glGetIntegeri_v OpenGL function.
|
||||
extern void (* const glGetIntegeri_v)(GLenum, GLuint, GLint *);
|
||||
/// Pointer to glBeginTransformFeedback OpenGL function.
|
||||
extern void (* const glBeginTransformFeedback)(GLenum);
|
||||
/// Pointer to glEndTransformFeedback OpenGL function.
|
||||
extern void (* const glEndTransformFeedback)();
|
||||
/// Pointer to glBindBufferRange OpenGL function.
|
||||
extern void (* const glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
|
||||
/// Pointer to glBindBufferBase OpenGL function.
|
||||
extern void (* const glBindBufferBase)(GLenum, GLuint, GLuint);
|
||||
/// Pointer to glTransformFeedbackVaryings OpenGL function.
|
||||
extern void (* const glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar * const*, GLenum);
|
||||
/// Pointer to glGetTransformFeedbackVarying OpenGL function.
|
||||
extern void (* const glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
|
||||
/// Pointer to glVertexAttribIPointer OpenGL function.
|
||||
extern void (* const glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *);
|
||||
/// Pointer to glGetVertexAttribIiv OpenGL function.
|
||||
extern void (* const glGetVertexAttribIiv)(GLuint, GLenum, GLint *);
|
||||
/// Pointer to glGetVertexAttribIiv OpenGL function.
|
||||
extern void (* const glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *);
|
||||
/// Pointer to glVertexAttribI4i OpenGL function.
|
||||
extern void (* const glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint);
|
||||
/// Pointer to glVertexAttribI4ui OpenGL function.
|
||||
extern void (* const glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint);
|
||||
/// Pointer to glVertexAttribI4iv OpenGL function.
|
||||
extern void (* const glVertexAttribI4iv)(GLuint, const GLint *);
|
||||
/// Pointer to glVertexAttribI4uiv OpenGL function.
|
||||
extern void (* const glVertexAttribI4uiv)(GLuint, const GLuint *);
|
||||
/// Pointer to glGetUniformuiv OpenGL function.
|
||||
extern void (* const glGetUniformuiv)(GLuint, GLint, GLuint *);
|
||||
/// Pointer to glGetFragDataLocation OpenGL function.
|
||||
extern GLint (* const glGetFragDataLocation)(GLuint, const GLchar *);
|
||||
/// Pointer to glUniform1ui OpenGL function.
|
||||
extern void (* const glUniform1ui)(GLint, GLuint);
|
||||
/// Pointer to glUniform2ui OpenGL function.
|
||||
extern void (* const glUniform2ui)(GLint, GLuint, GLuint);
|
||||
/// Pointer to glUniform3ui OpenGL function.
|
||||
extern void (* const glUniform3ui)(GLint, GLuint, GLuint, GLuint);
|
||||
/// Pointer to glUniform4ui OpenGL function.
|
||||
extern void (* const glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint);
|
||||
/// Pointer to glUniform1uiv OpenGL function.
|
||||
extern void (* const glUniform1uiv)(GLint, GLsizei, const GLuint *);
|
||||
/// Pointer to glUniform2uiv OpenGL function.
|
||||
extern void (* const glUniform2uiv)(GLint, GLsizei, const GLuint *);
|
||||
/// Pointer to glUniform3uiv OpenGL function.
|
||||
extern void (* const glUniform3uiv)(GLint, GLsizei, const GLuint *);
|
||||
/// Pointer to glUniform4uiv OpenGL function.
|
||||
extern void (* const glUniform4uiv)(GLint, GLsizei, const GLuint *);
|
||||
/// Pointer to glClearBufferiv OpenGL function.
|
||||
extern void (* const glClearBufferiv)(GLenum, GLint, const GLint *);
|
||||
/// Pointer to glClearBufferuiv OpenGL function.
|
||||
extern void (* const glClearBufferuiv)(GLenum, GLint, const GLuint *);
|
||||
/// Pointer to glClearBufferfv OpenGL function.
|
||||
extern void (* const glClearBufferfv)(GLenum, GLint, const GLfloat *);
|
||||
/// Pointer to glClearBufferfi OpenGL function.
|
||||
extern void (* const glClearBufferfi)(GLenum, GLint, GLfloat, GLint);
|
||||
/// Pointer to glGetStringi OpenGL function.
|
||||
extern const GLubyte* (* const glGetStringi)(GLenum, GLuint);
|
||||
/// Pointer to glCopyBufferSubData OpenGL function.
|
||||
extern void (* const glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
|
||||
/// Pointer to glGetUniformIndices OpenGL function.
|
||||
extern void (* const glGetUniformIndices)(GLuint, GLsizei, const GLchar * const*, GLuint *);
|
||||
/// Pointer to glGetActiveUniformsiv OpenGL function.
|
||||
extern void (* const glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *);
|
||||
/// Pointer to glGetUniformBlockIndex OpenGL function.
|
||||
extern GLuint (* const glGetUniformBlockIndex)(GLuint, const GLchar *);
|
||||
/// Pointer to glGetActiveUniformBlockiv OpenGL function.
|
||||
extern void (* const glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *);
|
||||
/// Pointer to glGetActiveUniformBlockName OpenGL function.
|
||||
extern void (* const glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
|
||||
/// Pointer to glUniformBlockBinding OpenGL function.
|
||||
extern void (* const glUniformBlockBinding)(GLuint, GLuint, GLuint);
|
||||
/// Pointer to glDrawArraysInstanced OpenGL function.
|
||||
extern void (* const glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei);
|
||||
/// Pointer to glDrawElementsInstanced OpenGL function.
|
||||
extern void (* const glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
|
||||
/// Pointer to glFenceSync OpenGL function.
|
||||
extern GLsync (* const glFenceSync)(GLenum, GLbitfield);
|
||||
/// Pointer to glIsSync OpenGL function.
|
||||
extern GLboolean (* const glIsSync)(GLsync);
|
||||
/// Pointer to glDeleteSync OpenGL function.
|
||||
extern void (* const glDeleteSync)(GLsync);
|
||||
/// Pointer to glClientWaitSync OpenGL function.
|
||||
extern GLenum (* const glClientWaitSync)(GLsync, GLbitfield, GLuint64);
|
||||
/// Pointer to glWaitSync OpenGL function.
|
||||
extern void (* const glWaitSync)(GLsync, GLbitfield, GLuint64);
|
||||
/// Pointer to glGetInteger64v OpenGL function.
|
||||
extern void (* const glGetInteger64v)(GLenum, GLint64 *);
|
||||
/// Pointer to glGetSynciv OpenGL function.
|
||||
extern void (* const glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *);
|
||||
/// Pointer to glGetInteger64i_v OpenGL function.
|
||||
extern void (* const glGetInteger64i_v)(GLenum, GLuint, GLint64 *);
|
||||
/// Pointer to glGetBufferParameteri64v OpenGL function.
|
||||
extern void (* const glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *);
|
||||
/// Pointer to glGenSamplers OpenGL function.
|
||||
extern void (* const glGenSamplers)(GLsizei, GLuint *);
|
||||
/// Pointer to glDeleteSamplers OpenGL function.
|
||||
extern void (* const glDeleteSamplers)(GLsizei, const GLuint *);
|
||||
/// Pointer to glIsSampler OpenGL function.
|
||||
extern GLboolean (* const glIsSampler)(GLuint);
|
||||
/// Pointer to glBindSampler OpenGL function.
|
||||
extern void (* const glBindSampler)(GLuint, GLuint);
|
||||
/// Pointer to glSamplerParameteri OpenGL function.
|
||||
extern void (* const glSamplerParameteri)(GLuint, GLenum, GLint);
|
||||
/// Pointer to glSamplerParameteriv OpenGL function.
|
||||
extern void (* const glSamplerParameteriv)(GLuint, GLenum, const GLint *);
|
||||
/// Pointer to glSamplerParameterf OpenGL function.
|
||||
extern void (* const glSamplerParameterf)(GLuint, GLenum, GLfloat);
|
||||
/// Pointer to glSamplerParameterfv OpenGL function.
|
||||
extern void (* const glSamplerParameterfv)(GLuint, GLenum, const GLfloat *);
|
||||
/// Pointer to glGetSamplerParameteriv OpenGL function.
|
||||
extern void (* const glGetSamplerParameteriv)(GLuint, GLenum, GLint *);
|
||||
/// Pointer to glGetSamplerParameterfv OpenGL function.
|
||||
extern void (* const glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *);
|
||||
/// Pointer to glVertexAttribDivisor OpenGL function.
|
||||
extern void (* const glVertexAttribDivisor)(GLuint, GLuint);
|
||||
/// Pointer to glBindTransformFeedback OpenGL function.
|
||||
extern void (* const glBindTransformFeedback)(GLenum, GLuint);
|
||||
/// Pointer to glDeleteTransformFeedbacks OpenGL function.
|
||||
extern void (* const glDeleteTransformFeedbacks)(GLsizei, const GLuint *);
|
||||
/// Pointer to glGenTransformFeedbacks OpenGL function.
|
||||
extern void (* const glGenTransformFeedbacks)(GLsizei, GLuint *);
|
||||
/// Pointer to glIsTransformFeedback OpenGL function.
|
||||
extern GLboolean (* const glIsTransformFeedback)(GLuint);
|
||||
/// Pointer to glPauseTransformFeedback OpenGL function.
|
||||
extern void (* const glPauseTransformFeedback)();
|
||||
/// Pointer to glResumeTransformFeedback OpenGL function.
|
||||
extern void (* const glResumeTransformFeedback)();
|
||||
/// Pointer to glGetProgramBinary OpenGL function.
|
||||
extern void (* const glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *);
|
||||
/// Pointer to glProgramBinary OpenGL function.
|
||||
extern void (* const glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei);
|
||||
/// Pointer to glProgramParameteri OpenGL function.
|
||||
extern void (* const glProgramParameteri)(GLuint, GLenum, GLint);
|
||||
/// Pointer to glInvalidateFramebuffer OpenGL function.
|
||||
extern void (* const glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *);
|
||||
/// Pointer to glInvalidateSubFramebuffer OpenGL function.
|
||||
extern void (* const glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei);
|
||||
/// Pointer to glTexStorage2D OpenGL function.
|
||||
extern void (* const glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
|
||||
/// Pointer to glTexStorage3D OpenGL function.
|
||||
extern void (* const glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei);
|
||||
/// Pointer to glGetInternalformativ OpenGL function.
|
||||
extern void (* const glGetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint *);
|
||||
|
||||
#ifndef NDEBUG
|
||||
/// Check for GL errors and print on the console.
|
||||
void glCheckError(const char *cmd, const char *file, int line);
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -40,7 +40,9 @@
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#if !defined(__APPLE__)
|
||||
#define GLFW_INCLUDE_ES3
|
||||
#endif
|
||||
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GLFW/glfw3.h>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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); };
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <mbgl/gl/offscreen_texture.hpp>
|
||||
#include <mbgl/gl/command_encoder.hpp>
|
||||
#include <mbgl/gl/debugging_extension.hpp>
|
||||
#include <mbgl/gl/vertex_array_extension.hpp>
|
||||
#include <mbgl/gl/defines.hpp>
|
||||
#include <mbgl/util/traits.hpp>
|
||||
#include <mbgl/util/std.hpp>
|
||||
#include <mbgl/util/logging.hpp>
|
||||
@@ -93,23 +93,6 @@ void Context::initializeExtensions(const std::function<gl::ProcAddress(const cha
|
||||
&& renderer.find("Direct3D") != std::string::npos)) {
|
||||
debugging = std::make_unique<extension::Debugging>(fn);
|
||||
}
|
||||
|
||||
// Block Adreno 2xx, 3xx as it crashes on glBuffer(Sub)Data
|
||||
// Block Adreno 4xx as it crashes in a driver when VBOs are destructed (Android 5.1.1)
|
||||
// Block ARM Mali-T720 (in some MT8163 chipsets) as it crashes on glBindVertexArray
|
||||
// Block ANGLE on Direct3D as the combination of Qt + Windows + ANGLE leads to crashes
|
||||
if (renderer.find("Adreno (TM) 2") == std::string::npos &&
|
||||
renderer.find("Adreno (TM) 3") == std::string::npos &&
|
||||
renderer.find("Adreno (TM) 4") == std::string::npos &&
|
||||
(!(renderer.find("ANGLE") != std::string::npos && renderer.find("Direct3D") != std::string::npos)) &&
|
||||
renderer.find("Mali-T720") == std::string::npos && renderer.find("Sapphire 650") == std::string::npos &&
|
||||
!disableVAOExtension) {
|
||||
vertexArray = std::make_unique<extension::VertexArray>(fn);
|
||||
}
|
||||
|
||||
if (!supportsVertexArrays()) {
|
||||
Log::Warning(Event::OpenGL, "Not using Vertex Array Objects");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,25 +189,12 @@ UniqueTexture Context::createUniqueTexture() {
|
||||
return UniqueTexture{std::move(id), {this}};
|
||||
}
|
||||
|
||||
bool Context::supportsVertexArrays() const {
|
||||
return vertexArray &&
|
||||
vertexArray->genVertexArrays &&
|
||||
vertexArray->bindVertexArray &&
|
||||
vertexArray->deleteVertexArrays;
|
||||
}
|
||||
|
||||
VertexArray Context::createVertexArray() {
|
||||
if (supportsVertexArrays()) {
|
||||
VertexArrayID id = 0;
|
||||
MBGL_CHECK_ERROR(vertexArray->genVertexArrays(1, &id));
|
||||
// NOLINTNEXTLINE(performance-move-const-arg)
|
||||
UniqueVertexArray vao(std::move(id), { this });
|
||||
return { UniqueVertexArrayState(new VertexArrayState(std::move(vao)), VertexArrayStateDeleter { true })};
|
||||
} else {
|
||||
// On GL implementations which do not support vertex arrays, attribute bindings are global state.
|
||||
// So return a VertexArray which shares our global state tracking and whose deleter is a no-op.
|
||||
return { UniqueVertexArrayState(&globalVertexArrayState, VertexArrayStateDeleter { false }) };
|
||||
}
|
||||
VertexArrayID id = 0;
|
||||
MBGL_CHECK_ERROR(glGenVertexArrays(1, &id));
|
||||
// NOLINTNEXTLINE(performance-move-const-arg)
|
||||
UniqueVertexArray vao(std::move(id), { this });
|
||||
return { UniqueVertexArrayState(new VertexArrayState(std::move(vao)), VertexArrayStateDeleter { true })};
|
||||
}
|
||||
|
||||
UniqueFramebuffer Context::createFramebuffer() {
|
||||
@@ -650,14 +620,12 @@ void Context::performCleanup() {
|
||||
}
|
||||
|
||||
if (!abandonedVertexArrays.empty()) {
|
||||
assert(supportsVertexArrays());
|
||||
for (const auto id : abandonedVertexArrays) {
|
||||
if (bindVertexArray == id) {
|
||||
bindVertexArray.setDirty();
|
||||
}
|
||||
}
|
||||
MBGL_CHECK_ERROR(vertexArray->deleteVertexArrays(int(abandonedVertexArrays.size()),
|
||||
abandonedVertexArrays.data()));
|
||||
MBGL_CHECK_ERROR(glDeleteVertexArrays(int(abandonedVertexArrays.size()), abandonedVertexArrays.data()));
|
||||
abandonedVertexArrays.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -115,10 +115,6 @@ public:
|
||||
return debugging.get();
|
||||
}
|
||||
|
||||
extension::VertexArray* getVertexArrayExtension() const {
|
||||
return vertexArray.get();
|
||||
}
|
||||
|
||||
void setCleanupOnDestruction(bool cleanup) {
|
||||
cleanupOnDestruction = cleanup;
|
||||
}
|
||||
@@ -129,7 +125,6 @@ private:
|
||||
|
||||
gfx::RenderingStats stats;
|
||||
std::unique_ptr<extension::Debugging> debugging;
|
||||
std::unique_ptr<extension::VertexArray> vertexArray;
|
||||
|
||||
public:
|
||||
State<value::ActiveTextureUnit> activeTextureUnit;
|
||||
@@ -140,7 +135,7 @@ public:
|
||||
State<value::Program> program;
|
||||
State<value::BindVertexBuffer> vertexBuffer;
|
||||
|
||||
State<value::BindVertexArray, const Context&> bindVertexArray { *this };
|
||||
State<value::BindVertexArray> bindVertexArray;
|
||||
VertexArrayState globalVertexArrayState { UniqueVertexArray(0, { const_cast<Context*>(this) }) };
|
||||
|
||||
State<value::PixelStorePack> pixelStorePack;
|
||||
@@ -182,7 +177,6 @@ private:
|
||||
std::unique_ptr<uint8_t[]> readFramebuffer(Size, gfx::TexturePixelType, bool flip);
|
||||
|
||||
VertexArray createVertexArray();
|
||||
bool supportsVertexArrays() const;
|
||||
|
||||
friend detail::ProgramDeleter;
|
||||
friend detail::ShaderDeleter;
|
||||
@@ -203,9 +197,6 @@ private:
|
||||
std::vector<RenderbufferID> abandonedRenderbuffers;
|
||||
|
||||
public:
|
||||
// For testing
|
||||
bool disableVAOExtension = false;
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
public:
|
||||
void visualizeStencilBuffer() override;
|
||||
|
||||
@@ -1,167 +1,731 @@
|
||||
#pragma once
|
||||
|
||||
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
|
||||
#define GL_ACTIVE_ATTRIBUTES 0x8B89
|
||||
#define GL_ACTIVE_TEXTURE 0x84E0
|
||||
#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
|
||||
#define GL_ACTIVE_UNIFORMS 0x8B86
|
||||
#define GL_ALPHA 0x1906
|
||||
#define GL_ALWAYS 0x0207
|
||||
#define GL_ARRAY_BUFFER 0x8892
|
||||
#define GL_ARRAY_BUFFER_BINDING 0x8894
|
||||
#define GL_BACK 0x0405
|
||||
#define GL_BLEND 0x0BE2
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
#define GL_BLEND_DST_ALPHA 0x80CA
|
||||
#define GL_BLEND_EQUATION_RGB 0x8009
|
||||
#define GL_BLEND_SRC_ALPHA 0x80CB
|
||||
#define GL_BOOL 0x8B56
|
||||
#define GL_BOOL_VEC2 0x8B57
|
||||
#define GL_BOOL_VEC3 0x8B58
|
||||
#define GL_BOOL_VEC4 0x8B59
|
||||
#define GL_BYTE 0x1400
|
||||
#define GL_CCW 0x0901
|
||||
#define GL_CLAMP_TO_EDGE 0x812F
|
||||
#define GL_COLOR_ATTACHMENT0 0x8CE0
|
||||
#define GL_COLOR_BUFFER_BIT 0x00004000
|
||||
#define GL_COLOR_CLEAR_VALUE 0x0C22
|
||||
#define GL_COLOR_WRITEMASK 0x0C23
|
||||
#define GL_COMPILE_STATUS 0x8B81
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_CULL_FACE 0x0B44
|
||||
#define GL_CULL_FACE_MODE 0x0B45
|
||||
#define GL_CURRENT_PROGRAM 0x8B8D
|
||||
#define GL_CW 0x0900
|
||||
#define GL_DECR 0x1E03
|
||||
#define GL_DECR_WRAP 0x8508
|
||||
#define GL_DEPTH24_STENCIL8_OES 0x88F0
|
||||
#define GL_DEPTH_ATTACHMENT 0x8D00
|
||||
#define GL_DEPTH_BUFFER_BIT 0x00000100
|
||||
#define GL_DEPTH_CLEAR_VALUE 0x0B73
|
||||
#define GL_DEPTH_COMPONENT 0x1902
|
||||
#define GL_DEPTH_COMPONENT16 0x81A5
|
||||
#define GL_DEPTH_FUNC 0x0B74
|
||||
#define GL_DEPTH_RANGE 0x0B70
|
||||
#define GL_DEPTH_TEST 0x0B71
|
||||
#define GL_DEPTH_WRITEMASK 0x0B72
|
||||
#define GL_DONT_CARE 0x1100
|
||||
#define GL_DST_ALPHA 0x0304
|
||||
#define GL_DST_COLOR 0x0306
|
||||
#define GL_DYNAMIC_DRAW 0x88E8
|
||||
#define GL_ELEMENT_ARRAY_BUFFER 0x8893
|
||||
#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
|
||||
#define GL_EQUAL 0x0202
|
||||
#define GL_EXTENSIONS 0x1F03
|
||||
#define GL_FALSE 0
|
||||
#define GL_FLOAT 0x1406
|
||||
#define GL_FLOAT_MAT2 0x8B5A
|
||||
#define GL_FLOAT_MAT3 0x8B5B
|
||||
#define GL_FLOAT_MAT4 0x8B5C
|
||||
#define GL_FLOAT_VEC2 0x8B50
|
||||
#define GL_FLOAT_VEC3 0x8B51
|
||||
#define GL_FLOAT_VEC4 0x8B52
|
||||
#define GL_FRAGMENT_SHADER 0x8B30
|
||||
#define GL_FRAMEBUFFER 0x8D40
|
||||
#define GL_FRAMEBUFFER_BINDING 0x8CA6
|
||||
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
|
||||
#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
|
||||
#define GL_FRONT 0x0404
|
||||
#define GL_FRONT_AND_BACK 0x0408
|
||||
#define GL_FRONT_FACE 0x0B46
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_GEQUAL 0x0206
|
||||
#define GL_GREATER 0x0204
|
||||
#define GL_INCR 0x1E02
|
||||
#define GL_INCR_WRAP 0x8507
|
||||
#define GL_INFO_LOG_LENGTH 0x8B84
|
||||
#define GL_INT 0x1404
|
||||
#define GL_INT_VEC2 0x8B53
|
||||
#define GL_INT_VEC3 0x8B54
|
||||
#define GL_INT_VEC4 0x8B55
|
||||
#define GL_INVALID_ENUM 0x0500
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
#define GL_INVALID_OPERATION 0x0502
|
||||
#define GL_INVALID_VALUE 0x0501
|
||||
#define GL_INVERT 0x150A
|
||||
#define GL_KEEP 0x1E00
|
||||
#define GL_LEQUAL 0x0203
|
||||
#define GL_LESS 0x0201
|
||||
#define GL_LINEAR 0x2601
|
||||
#define GL_LINEAR_MIPMAP_NEAREST 0x2701
|
||||
#define GL_LINEAR_MIPMAP_LINEAR 0x2703
|
||||
#define GL_LINE_LOOP 0x0002
|
||||
#define GL_LINES 0x0001
|
||||
#define GL_LINE_STRIP 0x0003
|
||||
#define GL_LINE_WIDTH 0x0B21
|
||||
#define GL_LINK_STATUS 0x8B82
|
||||
#define GL_LUMINANCE 0x1909
|
||||
#define GL_MAX_VERTEX_ATTRIBS 0x8869
|
||||
#define GL_NEAREST 0x2600
|
||||
#define GL_NEAREST_MIPMAP_NEAREST 0x2700
|
||||
#define GL_NEAREST_MIPMAP_LINEAR 0x2702
|
||||
#define GL_NEVER 0x0200
|
||||
#define GL_NO_ERROR 0
|
||||
#define GL_NOTEQUAL 0x0205
|
||||
#define GL_ONE 1
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_ONE_MINUS_DST_ALPHA 0x0305
|
||||
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
||||
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
||||
#define GL_ONE_MINUS_SRC_COLOR 0x0301
|
||||
#define GL_OUT_OF_MEMORY 0x0505
|
||||
#define GL_PACK_ALIGNMENT 0x0D05
|
||||
#define GL_POINTS 0x0000
|
||||
#define GL_RENDERBUFFER 0x8D41
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_RENDERER 0x1F01
|
||||
#define GL_REPEAT 0x2901
|
||||
#define GL_REPLACE 0x1E01
|
||||
#define GL_RGBA 0x1908
|
||||
#define GL_RGBA8_OES 0x8058
|
||||
#define GL_SAMPLER_2D 0x8B5E
|
||||
#define GL_SAMPLER_CUBE 0x8B60
|
||||
#define GL_SCISSOR_TEST 0x0C11
|
||||
#define GL_SHORT 0x1402
|
||||
#define GL_SRC_ALPHA 0x0302
|
||||
#define GL_SRC_ALPHA_SATURATE 0x0308
|
||||
#define GL_SRC_COLOR 0x0300
|
||||
#define GL_STATIC_DRAW 0x88E4
|
||||
#define GL_STENCIL_ATTACHMENT 0x8D20
|
||||
#define GL_STENCIL_BUFFER_BIT 0x00000400
|
||||
#define GL_STENCIL_CLEAR_VALUE 0x0B91
|
||||
#define GL_STENCIL_FAIL 0x0B94
|
||||
#define GL_STENCIL_FUNC 0x0B92
|
||||
#define GL_STENCIL_INDEX 0x1901
|
||||
#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
|
||||
#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
|
||||
#define GL_STENCIL_REF 0x0B97
|
||||
#define GL_STENCIL_TEST 0x0B90
|
||||
#define GL_STENCIL_VALUE_MASK 0x0B93
|
||||
#define GL_STENCIL_WRITEMASK 0x0B98
|
||||
#define GL_STREAM_DRAW 0x88E0
|
||||
#define GL_TEXTURE0 0x84C0
|
||||
#define GL_TEXTURE_2D 0x0DE1
|
||||
#define GL_TEXTURE_BINDING_2D 0x8069
|
||||
#define GL_TEXTURE_MAG_FILTER 0x2800
|
||||
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
|
||||
#define GL_TEXTURE_MIN_FILTER 0x2801
|
||||
#define GL_TEXTURE_WRAP_S 0x2802
|
||||
#define GL_TEXTURE_WRAP_T 0x2803
|
||||
#define GL_TRIANGLE_FAN 0x0006
|
||||
#define GL_TRIANGLES 0x0004
|
||||
#define GL_TRIANGLE_STRIP 0x0005
|
||||
#define GL_TRUE 1
|
||||
#define GL_UNPACK_ALIGNMENT 0x0CF5
|
||||
#define GL_UNSIGNED_BYTE 0x1401
|
||||
#define GL_UNSIGNED_INT 0x1405
|
||||
#define GL_UNSIGNED_SHORT 0x1403
|
||||
#define GL_VERTEX_SHADER 0x8B31
|
||||
#define GL_VIEWPORT 0x0BA2
|
||||
#define GL_ZERO 0
|
||||
#define GL_HALF_FLOAT 0x8D61
|
||||
/* OpenGL ES 2.0 */
|
||||
|
||||
/* ClearBufferMask */
|
||||
#define GL_DEPTH_BUFFER_BIT 0x00000100
|
||||
#define GL_STENCIL_BUFFER_BIT 0x00000400
|
||||
#define GL_COLOR_BUFFER_BIT 0x00004000
|
||||
|
||||
/* Boolean */
|
||||
#define GL_FALSE 0
|
||||
#define GL_TRUE 1
|
||||
|
||||
/* BeginMode */
|
||||
#define GL_POINTS 0x0000
|
||||
#define GL_LINES 0x0001
|
||||
#define GL_LINE_LOOP 0x0002
|
||||
#define GL_LINE_STRIP 0x0003
|
||||
#define GL_TRIANGLES 0x0004
|
||||
#define GL_TRIANGLE_STRIP 0x0005
|
||||
#define GL_TRIANGLE_FAN 0x0006
|
||||
|
||||
/* BlendingFactorDest */
|
||||
#define GL_ZERO 0
|
||||
#define GL_ONE 1
|
||||
#define GL_SRC_COLOR 0x0300
|
||||
#define GL_ONE_MINUS_SRC_COLOR 0x0301
|
||||
#define GL_SRC_ALPHA 0x0302
|
||||
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
||||
#define GL_DST_ALPHA 0x0304
|
||||
#define GL_ONE_MINUS_DST_ALPHA 0x0305
|
||||
|
||||
/* BlendingFactorSrc */
|
||||
/* GL_ZERO */
|
||||
/* GL_ONE */
|
||||
#define GL_DST_COLOR 0x0306
|
||||
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
||||
#define GL_SRC_ALPHA_SATURATE 0x0308
|
||||
/* GL_SRC_ALPHA */
|
||||
/* GL_ONE_MINUS_SRC_ALPHA */
|
||||
/* GL_DST_ALPHA */
|
||||
/* GL_ONE_MINUS_DST_ALPHA */
|
||||
|
||||
/* BlendEquationSeparate */
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */
|
||||
#define GL_BLEND_EQUATION_ALPHA 0x883D
|
||||
|
||||
/* BlendSubtract */
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
|
||||
/* Separate Blend Functions */
|
||||
#define GL_BLEND_DST_RGB 0x80C8
|
||||
#define GL_BLEND_SRC_RGB 0x80C9
|
||||
#define GL_BLEND_DST_ALPHA 0x80CA
|
||||
#define GL_BLEND_SRC_ALPHA 0x80CB
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
|
||||
/* Buffer Objects */
|
||||
#define GL_ARRAY_BUFFER 0x8892
|
||||
#define GL_ELEMENT_ARRAY_BUFFER 0x8893
|
||||
#define GL_ARRAY_BUFFER_BINDING 0x8894
|
||||
#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
|
||||
|
||||
#define GL_STREAM_DRAW 0x88E0
|
||||
#define GL_STATIC_DRAW 0x88E4
|
||||
#define GL_DYNAMIC_DRAW 0x88E8
|
||||
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
|
||||
#define GL_CURRENT_VERTEX_ATTRIB 0x8626
|
||||
|
||||
/* CullFaceMode */
|
||||
#define GL_FRONT 0x0404
|
||||
#define GL_BACK 0x0405
|
||||
#define GL_FRONT_AND_BACK 0x0408
|
||||
|
||||
/* DepthFunction */
|
||||
/* GL_NEVER */
|
||||
/* GL_LESS */
|
||||
/* GL_EQUAL */
|
||||
/* GL_LEQUAL */
|
||||
/* GL_GREATER */
|
||||
/* GL_NOTEQUAL */
|
||||
/* GL_GEQUAL */
|
||||
/* GL_ALWAYS */
|
||||
|
||||
/* EnableCap */
|
||||
#define GL_TEXTURE_2D 0x0DE1
|
||||
#define GL_CULL_FACE 0x0B44
|
||||
#define GL_BLEND 0x0BE2
|
||||
#define GL_DITHER 0x0BD0
|
||||
#define GL_STENCIL_TEST 0x0B90
|
||||
#define GL_DEPTH_TEST 0x0B71
|
||||
#define GL_SCISSOR_TEST 0x0C11
|
||||
#define GL_POLYGON_OFFSET_FILL 0x8037
|
||||
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
|
||||
#define GL_SAMPLE_COVERAGE 0x80A0
|
||||
|
||||
/* ErrorCode */
|
||||
#define GL_NO_ERROR 0
|
||||
#define GL_INVALID_ENUM 0x0500
|
||||
#define GL_INVALID_VALUE 0x0501
|
||||
#define GL_INVALID_OPERATION 0x0502
|
||||
#define GL_OUT_OF_MEMORY 0x0505
|
||||
|
||||
/* FrontFaceDirection */
|
||||
#define GL_CW 0x0900
|
||||
#define GL_CCW 0x0901
|
||||
|
||||
/* GetPName */
|
||||
#define GL_LINE_WIDTH 0x0B21
|
||||
#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
|
||||
#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
|
||||
#define GL_CULL_FACE_MODE 0x0B45
|
||||
#define GL_FRONT_FACE 0x0B46
|
||||
#define GL_DEPTH_RANGE 0x0B70
|
||||
#define GL_DEPTH_WRITEMASK 0x0B72
|
||||
#define GL_DEPTH_CLEAR_VALUE 0x0B73
|
||||
#define GL_DEPTH_FUNC 0x0B74
|
||||
#define GL_STENCIL_CLEAR_VALUE 0x0B91
|
||||
#define GL_STENCIL_FUNC 0x0B92
|
||||
#define GL_STENCIL_FAIL 0x0B94
|
||||
#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
|
||||
#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
|
||||
#define GL_STENCIL_REF 0x0B97
|
||||
#define GL_STENCIL_VALUE_MASK 0x0B93
|
||||
#define GL_STENCIL_WRITEMASK 0x0B98
|
||||
#define GL_STENCIL_BACK_FUNC 0x8800
|
||||
#define GL_STENCIL_BACK_FAIL 0x8801
|
||||
#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
|
||||
#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
|
||||
#define GL_STENCIL_BACK_REF 0x8CA3
|
||||
#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
|
||||
#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
|
||||
#define GL_VIEWPORT 0x0BA2
|
||||
#define GL_SCISSOR_BOX 0x0C10
|
||||
/* GL_SCISSOR_TEST */
|
||||
#define GL_COLOR_CLEAR_VALUE 0x0C22
|
||||
#define GL_COLOR_WRITEMASK 0x0C23
|
||||
#define GL_UNPACK_ALIGNMENT 0x0CF5
|
||||
#define GL_PACK_ALIGNMENT 0x0D05
|
||||
#define GL_MAX_TEXTURE_SIZE 0x0D33
|
||||
#define GL_MAX_VIEWPORT_DIMS 0x0D3A
|
||||
#define GL_SUBPIXEL_BITS 0x0D50
|
||||
#define GL_RED_BITS 0x0D52
|
||||
#define GL_GREEN_BITS 0x0D53
|
||||
#define GL_BLUE_BITS 0x0D54
|
||||
#define GL_ALPHA_BITS 0x0D55
|
||||
#define GL_DEPTH_BITS 0x0D56
|
||||
#define GL_STENCIL_BITS 0x0D57
|
||||
#define GL_POLYGON_OFFSET_UNITS 0x2A00
|
||||
/* GL_POLYGON_OFFSET_FILL */
|
||||
#define GL_POLYGON_OFFSET_FACTOR 0x8038
|
||||
#define GL_TEXTURE_BINDING_2D 0x8069
|
||||
#define GL_SAMPLE_BUFFERS 0x80A8
|
||||
#define GL_SAMPLES 0x80A9
|
||||
#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
|
||||
#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
|
||||
|
||||
/* GetTextureParameter */
|
||||
/* GL_TEXTURE_MAG_FILTER */
|
||||
/* GL_TEXTURE_MIN_FILTER */
|
||||
/* GL_TEXTURE_WRAP_S */
|
||||
/* GL_TEXTURE_WRAP_T */
|
||||
|
||||
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
|
||||
#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
|
||||
|
||||
/* HintMode */
|
||||
#define GL_DONT_CARE 0x1100
|
||||
#define GL_FASTEST 0x1101
|
||||
#define GL_NICEST 0x1102
|
||||
|
||||
/* HintTarget */
|
||||
#define GL_GENERATE_MIPMAP_HINT 0x8192
|
||||
|
||||
/* DataType */
|
||||
#define GL_BYTE 0x1400
|
||||
#define GL_UNSIGNED_BYTE 0x1401
|
||||
#define GL_SHORT 0x1402
|
||||
#define GL_UNSIGNED_SHORT 0x1403
|
||||
#define GL_INT 0x1404
|
||||
#define GL_UNSIGNED_INT 0x1405
|
||||
#define GL_FLOAT 0x1406
|
||||
#define GL_FIXED 0x140C
|
||||
|
||||
/* PixelFormat */
|
||||
#define GL_STENCIL_INDEX 0x1901
|
||||
#define GL_DEPTH_COMPONENT 0x1902
|
||||
#define GL_ALPHA 0x1906
|
||||
#define GL_RGB 0x1907
|
||||
#define GL_RGBA 0x1908
|
||||
#define GL_LUMINANCE 0x1909
|
||||
#define GL_LUMINANCE_ALPHA 0x190A
|
||||
|
||||
/* PixelType */
|
||||
/* GL_UNSIGNED_BYTE */
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
|
||||
#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
|
||||
#define GL_UNSIGNED_SHORT_5_6_5 0x8363
|
||||
|
||||
/* Shaders */
|
||||
#define GL_FRAGMENT_SHADER 0x8B30
|
||||
#define GL_VERTEX_SHADER 0x8B31
|
||||
#define GL_MAX_VERTEX_ATTRIBS 0x8869
|
||||
#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
|
||||
#define GL_MAX_VARYING_VECTORS 0x8DFC
|
||||
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
|
||||
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
|
||||
#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
|
||||
#define GL_SHADER_TYPE 0x8B4F
|
||||
#define GL_DELETE_STATUS 0x8B80
|
||||
#define GL_LINK_STATUS 0x8B82
|
||||
#define GL_VALIDATE_STATUS 0x8B83
|
||||
#define GL_ATTACHED_SHADERS 0x8B85
|
||||
#define GL_ACTIVE_UNIFORMS 0x8B86
|
||||
#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
|
||||
#define GL_ACTIVE_ATTRIBUTES 0x8B89
|
||||
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
|
||||
#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
|
||||
#define GL_CURRENT_PROGRAM 0x8B8D
|
||||
|
||||
/* StencilFunction */
|
||||
#define GL_NEVER 0x0200
|
||||
#define GL_LESS 0x0201
|
||||
#define GL_EQUAL 0x0202
|
||||
#define GL_LEQUAL 0x0203
|
||||
#define GL_GREATER 0x0204
|
||||
#define GL_NOTEQUAL 0x0205
|
||||
#define GL_GEQUAL 0x0206
|
||||
#define GL_ALWAYS 0x0207
|
||||
|
||||
/* StencilOp */
|
||||
/* GL_ZERO */
|
||||
#define GL_KEEP 0x1E00
|
||||
#define GL_REPLACE 0x1E01
|
||||
#define GL_INCR 0x1E02
|
||||
#define GL_DECR 0x1E03
|
||||
#define GL_INVERT 0x150A
|
||||
#define GL_INCR_WRAP 0x8507
|
||||
#define GL_DECR_WRAP 0x8508
|
||||
|
||||
/* StringName */
|
||||
#define GL_VENDOR 0x1F00
|
||||
#define GL_RENDERER 0x1F01
|
||||
#define GL_VERSION 0x1F02
|
||||
#define GL_EXTENSIONS 0x1F03
|
||||
|
||||
/* TextureMagFilter */
|
||||
#define GL_NEAREST 0x2600
|
||||
#define GL_LINEAR 0x2601
|
||||
|
||||
/* TextureMinFilter */
|
||||
/* GL_NEAREST */
|
||||
/* GL_LINEAR */
|
||||
#define GL_NEAREST_MIPMAP_NEAREST 0x2700
|
||||
#define GL_LINEAR_MIPMAP_NEAREST 0x2701
|
||||
#define GL_NEAREST_MIPMAP_LINEAR 0x2702
|
||||
#define GL_LINEAR_MIPMAP_LINEAR 0x2703
|
||||
|
||||
/* TextureParameterName */
|
||||
#define GL_TEXTURE_MAG_FILTER 0x2800
|
||||
#define GL_TEXTURE_MIN_FILTER 0x2801
|
||||
#define GL_TEXTURE_WRAP_S 0x2802
|
||||
#define GL_TEXTURE_WRAP_T 0x2803
|
||||
|
||||
/* TextureTarget */
|
||||
/* GL_TEXTURE_2D */
|
||||
#define GL_TEXTURE 0x1702
|
||||
|
||||
#define GL_TEXTURE_CUBE_MAP 0x8513
|
||||
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
|
||||
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
|
||||
|
||||
/* TextureUnit */
|
||||
#define GL_TEXTURE0 0x84C0
|
||||
#define GL_TEXTURE1 0x84C1
|
||||
#define GL_TEXTURE2 0x84C2
|
||||
#define GL_TEXTURE3 0x84C3
|
||||
#define GL_TEXTURE4 0x84C4
|
||||
#define GL_TEXTURE5 0x84C5
|
||||
#define GL_TEXTURE6 0x84C6
|
||||
#define GL_TEXTURE7 0x84C7
|
||||
#define GL_TEXTURE8 0x84C8
|
||||
#define GL_TEXTURE9 0x84C9
|
||||
#define GL_TEXTURE10 0x84CA
|
||||
#define GL_TEXTURE11 0x84CB
|
||||
#define GL_TEXTURE12 0x84CC
|
||||
#define GL_TEXTURE13 0x84CD
|
||||
#define GL_TEXTURE14 0x84CE
|
||||
#define GL_TEXTURE15 0x84CF
|
||||
#define GL_TEXTURE16 0x84D0
|
||||
#define GL_TEXTURE17 0x84D1
|
||||
#define GL_TEXTURE18 0x84D2
|
||||
#define GL_TEXTURE19 0x84D3
|
||||
#define GL_TEXTURE20 0x84D4
|
||||
#define GL_TEXTURE21 0x84D5
|
||||
#define GL_TEXTURE22 0x84D6
|
||||
#define GL_TEXTURE23 0x84D7
|
||||
#define GL_TEXTURE24 0x84D8
|
||||
#define GL_TEXTURE25 0x84D9
|
||||
#define GL_TEXTURE26 0x84DA
|
||||
#define GL_TEXTURE27 0x84DB
|
||||
#define GL_TEXTURE28 0x84DC
|
||||
#define GL_TEXTURE29 0x84DD
|
||||
#define GL_TEXTURE30 0x84DE
|
||||
#define GL_TEXTURE31 0x84DF
|
||||
#define GL_ACTIVE_TEXTURE 0x84E0
|
||||
|
||||
/* TextureWrapMode */
|
||||
#define GL_REPEAT 0x2901
|
||||
#define GL_CLAMP_TO_EDGE 0x812F
|
||||
#define GL_MIRRORED_REPEAT 0x8370
|
||||
|
||||
/* Uniform Types */
|
||||
#define GL_FLOAT_VEC2 0x8B50
|
||||
#define GL_FLOAT_VEC3 0x8B51
|
||||
#define GL_FLOAT_VEC4 0x8B52
|
||||
#define GL_INT_VEC2 0x8B53
|
||||
#define GL_INT_VEC3 0x8B54
|
||||
#define GL_INT_VEC4 0x8B55
|
||||
#define GL_BOOL 0x8B56
|
||||
#define GL_BOOL_VEC2 0x8B57
|
||||
#define GL_BOOL_VEC3 0x8B58
|
||||
#define GL_BOOL_VEC4 0x8B59
|
||||
#define GL_FLOAT_MAT2 0x8B5A
|
||||
#define GL_FLOAT_MAT3 0x8B5B
|
||||
#define GL_FLOAT_MAT4 0x8B5C
|
||||
#define GL_SAMPLER_2D 0x8B5E
|
||||
#define GL_SAMPLER_CUBE 0x8B60
|
||||
|
||||
/* Vertex Arrays */
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
|
||||
|
||||
/* Read Format */
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
|
||||
|
||||
/* Shader Source */
|
||||
#define GL_COMPILE_STATUS 0x8B81
|
||||
#define GL_INFO_LOG_LENGTH 0x8B84
|
||||
#define GL_SHADER_SOURCE_LENGTH 0x8B88
|
||||
#define GL_SHADER_COMPILER 0x8DFA
|
||||
|
||||
/* Shader Binary */
|
||||
#define GL_SHADER_BINARY_FORMATS 0x8DF8
|
||||
#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
|
||||
|
||||
/* Shader Precision-Specified Types */
|
||||
#define GL_LOW_FLOAT 0x8DF0
|
||||
#define GL_MEDIUM_FLOAT 0x8DF1
|
||||
#define GL_HIGH_FLOAT 0x8DF2
|
||||
#define GL_LOW_INT 0x8DF3
|
||||
#define GL_MEDIUM_INT 0x8DF4
|
||||
#define GL_HIGH_INT 0x8DF5
|
||||
|
||||
/* Framebuffer Object. */
|
||||
#define GL_FRAMEBUFFER 0x8D40
|
||||
#define GL_RENDERBUFFER 0x8D41
|
||||
|
||||
#define GL_RGBA4 0x8056
|
||||
#define GL_RGB5_A1 0x8057
|
||||
#define GL_RGB565 0x8D62
|
||||
#define GL_DEPTH_COMPONENT16 0x81A5
|
||||
#define GL_STENCIL_INDEX8 0x8D48
|
||||
|
||||
#define GL_RENDERBUFFER_WIDTH 0x8D42
|
||||
#define GL_RENDERBUFFER_HEIGHT 0x8D43
|
||||
#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
|
||||
#define GL_RENDERBUFFER_RED_SIZE 0x8D50
|
||||
#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
|
||||
#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
|
||||
#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
|
||||
#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
|
||||
#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
|
||||
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
|
||||
|
||||
#define GL_COLOR_ATTACHMENT0 0x8CE0
|
||||
#define GL_DEPTH_ATTACHMENT 0x8D00
|
||||
#define GL_STENCIL_ATTACHMENT 0x8D20
|
||||
|
||||
#define GL_NONE 0
|
||||
|
||||
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
|
||||
#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
|
||||
|
||||
#define GL_FRAMEBUFFER_BINDING 0x8CA6
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
|
||||
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
|
||||
/* OpenGL ES 3.0 */
|
||||
|
||||
#define GL_READ_BUFFER 0x0C02
|
||||
#define GL_UNPACK_ROW_LENGTH 0x0CF2
|
||||
#define GL_UNPACK_SKIP_ROWS 0x0CF3
|
||||
#define GL_UNPACK_SKIP_PIXELS 0x0CF4
|
||||
#define GL_PACK_ROW_LENGTH 0x0D02
|
||||
#define GL_PACK_SKIP_ROWS 0x0D03
|
||||
#define GL_PACK_SKIP_PIXELS 0x0D04
|
||||
#define GL_COLOR 0x1800
|
||||
#define GL_DEPTH 0x1801
|
||||
#define GL_STENCIL 0x1802
|
||||
#define GL_RED 0x1903
|
||||
#define GL_RGB8 0x8051
|
||||
#define GL_RGBA8 0x8058
|
||||
#define GL_RGB10_A2 0x8059
|
||||
#define GL_TEXTURE_BINDING_3D 0x806A
|
||||
#define GL_UNPACK_SKIP_IMAGES 0x806D
|
||||
#define GL_UNPACK_IMAGE_HEIGHT 0x806E
|
||||
#define GL_TEXTURE_3D 0x806F
|
||||
#define GL_TEXTURE_WRAP_R 0x8072
|
||||
#define GL_MAX_3D_TEXTURE_SIZE 0x8073
|
||||
#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
|
||||
#define GL_MAX_ELEMENTS_VERTICES 0x80E8
|
||||
#define GL_MAX_ELEMENTS_INDICES 0x80E9
|
||||
#define GL_TEXTURE_MIN_LOD 0x813A
|
||||
#define GL_TEXTURE_MAX_LOD 0x813B
|
||||
#define GL_TEXTURE_BASE_LEVEL 0x813C
|
||||
#define GL_TEXTURE_MAX_LEVEL 0x813D
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
#define GL_DEPTH_COMPONENT24 0x81A6
|
||||
#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
|
||||
#define GL_TEXTURE_COMPARE_MODE 0x884C
|
||||
#define GL_TEXTURE_COMPARE_FUNC 0x884D
|
||||
#define GL_CURRENT_QUERY 0x8865
|
||||
#define GL_QUERY_RESULT 0x8866
|
||||
#define GL_QUERY_RESULT_AVAILABLE 0x8867
|
||||
#define GL_BUFFER_MAPPED 0x88BC
|
||||
#define GL_BUFFER_MAP_POINTER 0x88BD
|
||||
#define GL_STREAM_READ 0x88E1
|
||||
#define GL_STREAM_COPY 0x88E2
|
||||
#define GL_STATIC_READ 0x88E5
|
||||
#define GL_STATIC_COPY 0x88E6
|
||||
#define GL_DYNAMIC_READ 0x88E9
|
||||
#define GL_DYNAMIC_COPY 0x88EA
|
||||
#define GL_MAX_DRAW_BUFFERS 0x8824
|
||||
#define GL_DRAW_BUFFER0 0x8825
|
||||
#define GL_DRAW_BUFFER1 0x8826
|
||||
#define GL_DRAW_BUFFER2 0x8827
|
||||
#define GL_DRAW_BUFFER3 0x8828
|
||||
#define GL_DRAW_BUFFER4 0x8829
|
||||
#define GL_DRAW_BUFFER5 0x882A
|
||||
#define GL_DRAW_BUFFER6 0x882B
|
||||
#define GL_DRAW_BUFFER7 0x882C
|
||||
#define GL_DRAW_BUFFER8 0x882D
|
||||
#define GL_DRAW_BUFFER9 0x882E
|
||||
#define GL_DRAW_BUFFER10 0x882F
|
||||
#define GL_DRAW_BUFFER11 0x8830
|
||||
#define GL_DRAW_BUFFER12 0x8831
|
||||
#define GL_DRAW_BUFFER13 0x8832
|
||||
#define GL_DRAW_BUFFER14 0x8833
|
||||
#define GL_DRAW_BUFFER15 0x8834
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
|
||||
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
|
||||
#define GL_SAMPLER_3D 0x8B5F
|
||||
#define GL_SAMPLER_2D_SHADOW 0x8B62
|
||||
#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
|
||||
#define GL_PIXEL_PACK_BUFFER 0x88EB
|
||||
#define GL_PIXEL_UNPACK_BUFFER 0x88EC
|
||||
#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
|
||||
#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
|
||||
#define GL_FLOAT_MAT2x3 0x8B65
|
||||
#define GL_FLOAT_MAT2x4 0x8B66
|
||||
#define GL_FLOAT_MAT3x2 0x8B67
|
||||
#define GL_FLOAT_MAT3x4 0x8B68
|
||||
#define GL_FLOAT_MAT4x2 0x8B69
|
||||
#define GL_FLOAT_MAT4x3 0x8B6A
|
||||
#define GL_SRGB 0x8C40
|
||||
#define GL_SRGB8 0x8C41
|
||||
#define GL_SRGB8_ALPHA8 0x8C43
|
||||
#define GL_COMPARE_REF_TO_TEXTURE 0x884E
|
||||
#define GL_MAJOR_VERSION 0x821B
|
||||
#define GL_MINOR_VERSION 0x821C
|
||||
#define GL_NUM_EXTENSIONS 0x821D
|
||||
#define GL_RGBA32F 0x8814
|
||||
#define GL_RGB32F 0x8815
|
||||
#define GL_RGBA16F 0x881A
|
||||
#define GL_RGB16F 0x881B
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
|
||||
#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
|
||||
#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
|
||||
#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
|
||||
#define GL_MAX_VARYING_COMPONENTS 0x8B4B
|
||||
#define GL_TEXTURE_2D_ARRAY 0x8C1A
|
||||
#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
|
||||
#define GL_R11F_G11F_B10F 0x8C3A
|
||||
#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
|
||||
#define GL_RGB9_E5 0x8C3D
|
||||
#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
|
||||
#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
|
||||
#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
|
||||
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
|
||||
#define GL_RASTERIZER_DISCARD 0x8C89
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
|
||||
#define GL_INTERLEAVED_ATTRIBS 0x8C8C
|
||||
#define GL_SEPARATE_ATTRIBS 0x8C8D
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
|
||||
#define GL_RGBA32UI 0x8D70
|
||||
#define GL_RGB32UI 0x8D71
|
||||
#define GL_RGBA16UI 0x8D76
|
||||
#define GL_RGB16UI 0x8D77
|
||||
#define GL_RGBA8UI 0x8D7C
|
||||
#define GL_RGB8UI 0x8D7D
|
||||
#define GL_RGBA32I 0x8D82
|
||||
#define GL_RGB32I 0x8D83
|
||||
#define GL_RGBA16I 0x8D88
|
||||
#define GL_RGB16I 0x8D89
|
||||
#define GL_RGBA8I 0x8D8E
|
||||
#define GL_RGB8I 0x8D8F
|
||||
#define GL_RED_INTEGER 0x8D94
|
||||
#define GL_RGB_INTEGER 0x8D98
|
||||
#define GL_RGBA_INTEGER 0x8D99
|
||||
#define GL_SAMPLER_2D_ARRAY 0x8DC1
|
||||
#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
|
||||
#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
|
||||
#define GL_UNSIGNED_INT_VEC2 0x8DC6
|
||||
#define GL_UNSIGNED_INT_VEC3 0x8DC7
|
||||
#define GL_UNSIGNED_INT_VEC4 0x8DC8
|
||||
#define GL_INT_SAMPLER_2D 0x8DCA
|
||||
#define GL_INT_SAMPLER_3D 0x8DCB
|
||||
#define GL_INT_SAMPLER_CUBE 0x8DCC
|
||||
#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
|
||||
#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
|
||||
#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
|
||||
#define GL_BUFFER_ACCESS_FLAGS 0x911F
|
||||
#define GL_BUFFER_MAP_LENGTH 0x9120
|
||||
#define GL_BUFFER_MAP_OFFSET 0x9121
|
||||
#define GL_DEPTH_COMPONENT32F 0x8CAC
|
||||
#define GL_DEPTH32F_STENCIL8 0x8CAD
|
||||
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
|
||||
#define GL_FRAMEBUFFER_DEFAULT 0x8218
|
||||
#define GL_FRAMEBUFFER_UNDEFINED 0x8219
|
||||
#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
|
||||
#define GL_DEPTH_STENCIL 0x84F9
|
||||
#define GL_UNSIGNED_INT_24_8 0x84FA
|
||||
#define GL_DEPTH24_STENCIL8 0x88F0
|
||||
#define GL_UNSIGNED_NORMALIZED 0x8C17
|
||||
#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING
|
||||
#define GL_READ_FRAMEBUFFER 0x8CA8
|
||||
#define GL_DRAW_FRAMEBUFFER 0x8CA9
|
||||
#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
|
||||
#define GL_RENDERBUFFER_SAMPLES 0x8CAB
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
|
||||
#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
|
||||
#define GL_COLOR_ATTACHMENT1 0x8CE1
|
||||
#define GL_COLOR_ATTACHMENT2 0x8CE2
|
||||
#define GL_COLOR_ATTACHMENT3 0x8CE3
|
||||
#define GL_COLOR_ATTACHMENT4 0x8CE4
|
||||
#define GL_COLOR_ATTACHMENT5 0x8CE5
|
||||
#define GL_COLOR_ATTACHMENT6 0x8CE6
|
||||
#define GL_COLOR_ATTACHMENT7 0x8CE7
|
||||
#define GL_COLOR_ATTACHMENT8 0x8CE8
|
||||
#define GL_COLOR_ATTACHMENT9 0x8CE9
|
||||
#define GL_COLOR_ATTACHMENT10 0x8CEA
|
||||
#define GL_COLOR_ATTACHMENT11 0x8CEB
|
||||
#define GL_COLOR_ATTACHMENT12 0x8CEC
|
||||
#define GL_COLOR_ATTACHMENT13 0x8CED
|
||||
#define GL_COLOR_ATTACHMENT14 0x8CEE
|
||||
#define GL_COLOR_ATTACHMENT15 0x8CEF
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
|
||||
#define GL_MAX_SAMPLES 0x8D57
|
||||
#define GL_HALF_FLOAT 0x140B
|
||||
#define GL_MAP_READ_BIT 0x0001
|
||||
#define GL_MAP_WRITE_BIT 0x0002
|
||||
#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
|
||||
#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
|
||||
#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
|
||||
#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
|
||||
#define GL_RG 0x8227
|
||||
#define GL_RG_INTEGER 0x8228
|
||||
#define GL_R8 0x8229
|
||||
#define GL_RG8 0x822B
|
||||
#define GL_R16F 0x822D
|
||||
#define GL_R32F 0x822E
|
||||
#define GL_RG16F 0x822F
|
||||
#define GL_RG32F 0x8230
|
||||
#define GL_R8I 0x8231
|
||||
#define GL_R8UI 0x8232
|
||||
#define GL_R16I 0x8233
|
||||
#define GL_R16UI 0x8234
|
||||
#define GL_R32I 0x8235
|
||||
#define GL_R32UI 0x8236
|
||||
#define GL_RG8I 0x8237
|
||||
#define GL_RG8UI 0x8238
|
||||
#define GL_RG16I 0x8239
|
||||
#define GL_RG16UI 0x823A
|
||||
#define GL_RG32I 0x823B
|
||||
#define GL_RG32UI 0x823C
|
||||
#define GL_VERTEX_ARRAY_BINDING 0x85B5
|
||||
#define GL_R8_SNORM 0x8F94
|
||||
#define GL_RG8_SNORM 0x8F95
|
||||
#define GL_RGB8_SNORM 0x8F96
|
||||
#define GL_RGBA8_SNORM 0x8F97
|
||||
#define GL_SIGNED_NORMALIZED 0x8F9C
|
||||
#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
|
||||
#define GL_COPY_READ_BUFFER 0x8F36
|
||||
#define GL_COPY_WRITE_BUFFER 0x8F37
|
||||
#define GL_COPY_READ_BUFFER_BINDING GL_COPY_READ_BUFFER
|
||||
#define GL_COPY_WRITE_BUFFER_BINDING GL_COPY_WRITE_BUFFER
|
||||
#define GL_UNIFORM_BUFFER 0x8A11
|
||||
#define GL_UNIFORM_BUFFER_BINDING 0x8A28
|
||||
#define GL_UNIFORM_BUFFER_START 0x8A29
|
||||
#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
|
||||
#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
|
||||
#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
|
||||
#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
|
||||
#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
|
||||
#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
|
||||
#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
|
||||
#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
|
||||
#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
|
||||
#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
|
||||
#define GL_UNIFORM_TYPE 0x8A37
|
||||
#define GL_UNIFORM_SIZE 0x8A38
|
||||
#define GL_UNIFORM_NAME_LENGTH 0x8A39
|
||||
#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
|
||||
#define GL_UNIFORM_OFFSET 0x8A3B
|
||||
#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
|
||||
#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
|
||||
#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
|
||||
#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
|
||||
#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
|
||||
#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
|
||||
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
|
||||
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
|
||||
#define GL_INVALID_INDEX 0xFFFFFFFFu
|
||||
#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
|
||||
#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
|
||||
#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
|
||||
#define GL_OBJECT_TYPE 0x9112
|
||||
#define GL_SYNC_CONDITION 0x9113
|
||||
#define GL_SYNC_STATUS 0x9114
|
||||
#define GL_SYNC_FLAGS 0x9115
|
||||
#define GL_SYNC_FENCE 0x9116
|
||||
#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
|
||||
#define GL_UNSIGNALED 0x9118
|
||||
#define GL_SIGNALED 0x9119
|
||||
#define GL_ALREADY_SIGNALED 0x911A
|
||||
#define GL_TIMEOUT_EXPIRED 0x911B
|
||||
#define GL_CONDITION_SATISFIED 0x911C
|
||||
#define GL_WAIT_FAILED 0x911D
|
||||
#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
|
||||
#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
|
||||
#define GL_ANY_SAMPLES_PASSED 0x8C2F
|
||||
#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
|
||||
#define GL_SAMPLER_BINDING 0x8919
|
||||
#define GL_RGB10_A2UI 0x906F
|
||||
#define GL_TEXTURE_SWIZZLE_R 0x8E42
|
||||
#define GL_TEXTURE_SWIZZLE_G 0x8E43
|
||||
#define GL_TEXTURE_SWIZZLE_B 0x8E44
|
||||
#define GL_TEXTURE_SWIZZLE_A 0x8E45
|
||||
#define GL_GREEN 0x1904
|
||||
#define GL_BLUE 0x1905
|
||||
#define GL_INT_2_10_10_10_REV 0x8D9F
|
||||
#define GL_TRANSFORM_FEEDBACK 0x8E22
|
||||
#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
|
||||
#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
|
||||
#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
|
||||
#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
|
||||
#define GL_PROGRAM_BINARY_LENGTH 0x8741
|
||||
#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
|
||||
#define GL_PROGRAM_BINARY_FORMATS 0x87FF
|
||||
#define GL_COMPRESSED_R11_EAC 0x9270
|
||||
#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
|
||||
#define GL_COMPRESSED_RG11_EAC 0x9272
|
||||
#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
|
||||
#define GL_COMPRESSED_RGB8_ETC2 0x9274
|
||||
#define GL_COMPRESSED_SRGB8_ETC2 0x9275
|
||||
#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
|
||||
#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
|
||||
#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
|
||||
#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
|
||||
#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
|
||||
#define GL_MAX_ELEMENT_INDEX 0x8D6B
|
||||
#define GL_NUM_SAMPLE_COUNTS 0x9380
|
||||
#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
|
||||
|
||||
/* OpenGL ES Extensions */
|
||||
|
||||
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
|
||||
|
||||
@@ -286,9 +286,9 @@ platform::GLenum Enum<gfx::TextureChannelDataType>::to(const gfx::TextureChannel
|
||||
template <>
|
||||
gfx::RenderbufferPixelType Enum<gfx::RenderbufferPixelType>::from(const platform::GLint value) {
|
||||
switch (value) {
|
||||
case GL_RGBA8_OES: return gfx::RenderbufferPixelType::RGBA;
|
||||
case GL_RGBA8: return gfx::RenderbufferPixelType::RGBA;
|
||||
case GL_DEPTH_COMPONENT16: return gfx::RenderbufferPixelType::Depth;
|
||||
case GL_DEPTH24_STENCIL8_OES: return gfx::RenderbufferPixelType::DepthStencil;
|
||||
case GL_DEPTH24_STENCIL8: return gfx::RenderbufferPixelType::DepthStencil;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
@@ -296,9 +296,9 @@ gfx::RenderbufferPixelType Enum<gfx::RenderbufferPixelType>::from(const platform
|
||||
template <>
|
||||
platform::GLenum Enum<gfx::RenderbufferPixelType>::to(const gfx::RenderbufferPixelType value) {
|
||||
switch (value) {
|
||||
case gfx::RenderbufferPixelType::RGBA: return GL_RGBA8_OES;
|
||||
case gfx::RenderbufferPixelType::RGBA: return GL_RGBA8;
|
||||
case gfx::RenderbufferPixelType::Depth: return GL_DEPTH_COMPONENT16;
|
||||
case gfx::RenderbufferPixelType::DepthStencil: return GL_DEPTH24_STENCIL8_OES;
|
||||
case gfx::RenderbufferPixelType::DepthStencil: return GL_DEPTH24_STENCIL8;
|
||||
}
|
||||
return GL_INVALID_ENUM;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <mbgl/gl/value.hpp>
|
||||
#include <mbgl/gl/context.hpp>
|
||||
#include <mbgl/gl/vertex_buffer_resource.hpp>
|
||||
#include <mbgl/gl/vertex_array_extension.hpp>
|
||||
#include <mbgl/gl/defines.hpp>
|
||||
#include <mbgl/gl/enum.hpp>
|
||||
|
||||
namespace mbgl {
|
||||
@@ -378,27 +378,13 @@ BindElementBuffer::Type BindElementBuffer::Get() {
|
||||
|
||||
const constexpr BindVertexArray::Type BindVertexArray::Default;
|
||||
|
||||
void BindVertexArray::Set(const Type& value, const Context& context) {
|
||||
if (auto vertexArray = context.getVertexArrayExtension()) {
|
||||
if (vertexArray->bindVertexArray) {
|
||||
MBGL_CHECK_ERROR(vertexArray->bindVertexArray(value));
|
||||
}
|
||||
}
|
||||
void BindVertexArray::Set(const Type& value) {
|
||||
MBGL_CHECK_ERROR(glBindVertexArray(value));
|
||||
}
|
||||
|
||||
BindVertexArray::Type BindVertexArray::Get(const Context& context) {
|
||||
BindVertexArray::Type BindVertexArray::Get() {
|
||||
GLint binding = 0;
|
||||
if (context.getVertexArrayExtension()) {
|
||||
#ifdef GL_VERTEX_ARRAY_BINDING
|
||||
MBGL_CHECK_ERROR(glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &binding));
|
||||
#elif GL_VERTEX_ARRAY_BINDING_OES
|
||||
MBGL_CHECK_ERROR(glGetIntegerv(GL_VERTEX_ARRAY_BINDING_OES, &binding));
|
||||
#elif GL_VERTEX_ARRAY_BINDING_ARB
|
||||
MBGL_CHECK_ERROR(glGetIntegerv(GL_VERTEX_ARRAY_BINDING_ARB, &binding));
|
||||
#elif GLVERTEX_ARRAY_BINDING_APPLE
|
||||
MBGL_CHECK_ERROR(glGetIntegerv(GLVERTEX_ARRAY_BINDING_APPLE, &binding));
|
||||
#endif
|
||||
}
|
||||
MBGL_CHECK_ERROR(glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &binding));
|
||||
return binding;
|
||||
}
|
||||
|
||||
|
||||
@@ -259,8 +259,8 @@ struct BindElementBuffer {
|
||||
struct BindVertexArray {
|
||||
using Type = gl::VertexArrayID;
|
||||
static const constexpr Type Default = 0;
|
||||
static void Set(const Type&, const Context&);
|
||||
static Type Get(const Context&);
|
||||
static void Set(const Type&);
|
||||
static Type Get();
|
||||
};
|
||||
|
||||
struct VertexAttribute {
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <mbgl/gl/extension.hpp>
|
||||
#include <mbgl/gl/defines.hpp>
|
||||
#include <mbgl/platform/gl_functions.hpp>
|
||||
|
||||
namespace mbgl {
|
||||
namespace gl {
|
||||
namespace extension {
|
||||
|
||||
class VertexArray {
|
||||
public:
|
||||
template <typename Fn>
|
||||
VertexArray(const Fn& loadExtension)
|
||||
: bindVertexArray(
|
||||
loadExtension({ { "GL_ARB_vertex_array_object", "glBindVertexArray" },
|
||||
{ "GL_OES_vertex_array_object", "glBindVertexArrayOES" },
|
||||
{ "GL_APPLE_vertex_array_object", "glBindVertexArrayAPPLE" } })),
|
||||
deleteVertexArrays(
|
||||
loadExtension({ { "GL_ARB_vertex_array_object", "glDeleteVertexArrays" },
|
||||
{ "GL_OES_vertex_array_object", "glDeleteVertexArraysOES" },
|
||||
{ "GL_APPLE_vertex_array_object", "glDeleteVertexArraysAPPLE" } })),
|
||||
genVertexArrays(
|
||||
loadExtension({ { "GL_ARB_vertex_array_object", "glGenVertexArrays" },
|
||||
{ "GL_OES_vertex_array_object", "glGenVertexArraysOES" },
|
||||
{ "GL_APPLE_vertex_array_object", "glGenVertexArraysAPPLE" } })) {
|
||||
}
|
||||
|
||||
const ExtensionFunction<void(platform::GLuint array)> bindVertexArray;
|
||||
|
||||
const ExtensionFunction<void(platform::GLsizei n, const platform::GLuint* arrays)> deleteVertexArrays;
|
||||
|
||||
const ExtensionFunction<void(platform::GLsizei n, platform::GLuint* arrays)> genVertexArrays;
|
||||
};
|
||||
|
||||
} // namespace extension
|
||||
} // namespace gl
|
||||
} // namespace mbgl
|
||||
BIN
test/fixtures/map/no_vao/expected.png
vendored
BIN
test/fixtures/map/no_vao/expected.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 9.6 KiB |
@@ -5,6 +5,9 @@
|
||||
using namespace mbgl::platform;
|
||||
|
||||
TEST(GLFunctions, OpenGLES) {
|
||||
|
||||
/* OpenGL ES 2.0 */
|
||||
|
||||
EXPECT_NE(glActiveTexture, nullptr);
|
||||
EXPECT_NE(glAttachShader, nullptr);
|
||||
EXPECT_NE(glBindAttribLocation, nullptr);
|
||||
@@ -74,6 +77,7 @@ TEST(GLFunctions, OpenGLES) {
|
||||
EXPECT_NE(glGetRenderbufferParameteriv, nullptr);
|
||||
EXPECT_NE(glGetShaderInfoLog, nullptr);
|
||||
EXPECT_NE(glGetShaderiv, nullptr);
|
||||
EXPECT_NE(glGetShaderPrecisionFormat, nullptr);
|
||||
EXPECT_NE(glGetShaderSource, nullptr);
|
||||
EXPECT_NE(glGetString, nullptr);
|
||||
EXPECT_NE(glGetTexParameterfv, nullptr);
|
||||
@@ -97,9 +101,11 @@ TEST(GLFunctions, OpenGLES) {
|
||||
EXPECT_NE(glPixelStorei, nullptr);
|
||||
EXPECT_NE(glPolygonOffset, nullptr);
|
||||
EXPECT_NE(glReadPixels, nullptr);
|
||||
EXPECT_NE(glReleaseShaderCompiler, nullptr);
|
||||
EXPECT_NE(glRenderbufferStorage, nullptr);
|
||||
EXPECT_NE(glSampleCoverage, nullptr);
|
||||
EXPECT_NE(glScissor, nullptr);
|
||||
EXPECT_NE(glShaderBinary, nullptr);
|
||||
EXPECT_NE(glShaderSource, nullptr);
|
||||
EXPECT_NE(glStencilFunc, nullptr);
|
||||
EXPECT_NE(glStencilFuncSeparate, nullptr);
|
||||
@@ -144,4 +150,111 @@ TEST(GLFunctions, OpenGLES) {
|
||||
EXPECT_NE(glVertexAttrib4fv, nullptr);
|
||||
EXPECT_NE(glVertexAttribPointer, nullptr);
|
||||
EXPECT_NE(glViewport, nullptr);
|
||||
|
||||
/* OpenGL ES 3.0 */
|
||||
|
||||
EXPECT_NE(glReadBuffer, nullptr);
|
||||
EXPECT_NE(glDrawRangeElements, nullptr);
|
||||
EXPECT_NE(glTexImage3D, nullptr);
|
||||
EXPECT_NE(glTexSubImage3D, nullptr);
|
||||
EXPECT_NE(glCopyTexSubImage3D, nullptr);
|
||||
EXPECT_NE(glCompressedTexImage3D, nullptr);
|
||||
EXPECT_NE(glCompressedTexSubImage3D, nullptr);
|
||||
EXPECT_NE(glGenQueries, nullptr);
|
||||
EXPECT_NE(glDeleteQueries, nullptr);
|
||||
EXPECT_NE(glIsQuery, nullptr);
|
||||
EXPECT_NE(glBeginQuery, nullptr);
|
||||
EXPECT_NE(glEndQuery, nullptr);
|
||||
EXPECT_NE(glGetQueryiv, nullptr);
|
||||
EXPECT_NE(glGetQueryObjectuiv, nullptr);
|
||||
EXPECT_NE(glUnmapBuffer, nullptr);
|
||||
EXPECT_NE(glGetBufferPointerv, nullptr);
|
||||
EXPECT_NE(glDrawBuffers, nullptr);
|
||||
EXPECT_NE(glUniformMatrix2x3fv, nullptr);
|
||||
EXPECT_NE(glUniformMatrix3x2fv, nullptr);
|
||||
EXPECT_NE(glUniformMatrix2x4fv, nullptr);
|
||||
EXPECT_NE(glUniformMatrix4x2fv, nullptr);
|
||||
EXPECT_NE(glUniformMatrix3x4fv, nullptr);
|
||||
EXPECT_NE(glUniformMatrix4x3fv, nullptr);
|
||||
EXPECT_NE(glBlitFramebuffer, nullptr);
|
||||
EXPECT_NE(glRenderbufferStorageMultisample, nullptr);
|
||||
EXPECT_NE(glFramebufferTextureLayer, nullptr);
|
||||
EXPECT_NE(glMapBufferRange, nullptr);
|
||||
EXPECT_NE(glFlushMappedBufferRange, nullptr);
|
||||
EXPECT_NE(glBindVertexArray, nullptr);
|
||||
EXPECT_NE(glDeleteVertexArrays, nullptr);
|
||||
EXPECT_NE(glGenVertexArrays, nullptr);
|
||||
EXPECT_NE(glIsVertexArray, nullptr);
|
||||
EXPECT_NE(glGetIntegeri_v, nullptr);
|
||||
EXPECT_NE(glBeginTransformFeedback, nullptr);
|
||||
EXPECT_NE(glEndTransformFeedback, nullptr);
|
||||
EXPECT_NE(glBindBufferRange, nullptr);
|
||||
EXPECT_NE(glBindBufferBase, nullptr);
|
||||
EXPECT_NE(glTransformFeedbackVaryings, nullptr);
|
||||
EXPECT_NE(glGetTransformFeedbackVarying, nullptr);
|
||||
EXPECT_NE(glVertexAttribIPointer, nullptr);
|
||||
EXPECT_NE(glGetVertexAttribIiv, nullptr);
|
||||
EXPECT_NE(glGetVertexAttribIuiv, nullptr);
|
||||
EXPECT_NE(glVertexAttribI4i, nullptr);
|
||||
EXPECT_NE(glVertexAttribI4ui, nullptr);
|
||||
EXPECT_NE(glVertexAttribI4iv, nullptr);
|
||||
EXPECT_NE(glVertexAttribI4uiv, nullptr);
|
||||
EXPECT_NE(glGetUniformuiv, nullptr);
|
||||
EXPECT_NE(glGetFragDataLocation, nullptr);
|
||||
EXPECT_NE(glUniform1ui, nullptr);
|
||||
EXPECT_NE(glUniform2ui, nullptr);
|
||||
EXPECT_NE(glUniform3ui, nullptr);
|
||||
EXPECT_NE(glUniform4ui, nullptr);
|
||||
EXPECT_NE(glUniform1uiv, nullptr);
|
||||
EXPECT_NE(glUniform2uiv, nullptr);
|
||||
EXPECT_NE(glUniform3uiv, nullptr);
|
||||
EXPECT_NE(glUniform4uiv, nullptr);
|
||||
EXPECT_NE(glClearBufferiv, nullptr);
|
||||
EXPECT_NE(glClearBufferuiv, nullptr);
|
||||
EXPECT_NE(glClearBufferfv, nullptr);
|
||||
EXPECT_NE(glClearBufferfi, nullptr);
|
||||
EXPECT_NE(glGetStringi, nullptr);
|
||||
EXPECT_NE(glCopyBufferSubData, nullptr);
|
||||
EXPECT_NE(glGetUniformIndices, nullptr);
|
||||
EXPECT_NE(glGetActiveUniformsiv, nullptr);
|
||||
EXPECT_NE(glGetUniformBlockIndex, nullptr);
|
||||
EXPECT_NE(glGetActiveUniformBlockiv, nullptr);
|
||||
EXPECT_NE(glGetActiveUniformBlockName, nullptr);
|
||||
EXPECT_NE(glUniformBlockBinding, nullptr);
|
||||
EXPECT_NE(glDrawArraysInstanced, nullptr);
|
||||
EXPECT_NE(glDrawElementsInstanced, nullptr);
|
||||
EXPECT_NE(glFenceSync, nullptr);
|
||||
EXPECT_NE(glIsSync, nullptr);
|
||||
EXPECT_NE(glDeleteSync, nullptr);
|
||||
EXPECT_NE(glClientWaitSync, nullptr);
|
||||
EXPECT_NE(glWaitSync, nullptr);
|
||||
EXPECT_NE(glGetInteger64v, nullptr);
|
||||
EXPECT_NE(glGetSynciv, nullptr);
|
||||
EXPECT_NE(glGetInteger64i_v, nullptr);
|
||||
EXPECT_NE(glGetBufferParameteri64v, nullptr);
|
||||
EXPECT_NE(glGenSamplers, nullptr);
|
||||
EXPECT_NE(glDeleteSamplers, nullptr);
|
||||
EXPECT_NE(glIsSampler, nullptr);
|
||||
EXPECT_NE(glBindSampler, nullptr);
|
||||
EXPECT_NE(glSamplerParameteri, nullptr);
|
||||
EXPECT_NE(glSamplerParameteriv, nullptr);
|
||||
EXPECT_NE(glSamplerParameterf, nullptr);
|
||||
EXPECT_NE(glSamplerParameterfv, nullptr);
|
||||
EXPECT_NE(glGetSamplerParameteriv, nullptr);
|
||||
EXPECT_NE(glGetSamplerParameterfv, nullptr);
|
||||
EXPECT_NE(glVertexAttribDivisor, nullptr);
|
||||
EXPECT_NE(glBindTransformFeedback, nullptr);
|
||||
EXPECT_NE(glDeleteTransformFeedbacks, nullptr);
|
||||
EXPECT_NE(glGenTransformFeedbacks, nullptr);
|
||||
EXPECT_NE(glIsTransformFeedback, nullptr);
|
||||
EXPECT_NE(glPauseTransformFeedback, nullptr);
|
||||
EXPECT_NE(glResumeTransformFeedback, nullptr);
|
||||
EXPECT_NE(glGetProgramBinary, nullptr);
|
||||
EXPECT_NE(glProgramBinary, nullptr);
|
||||
EXPECT_NE(glProgramParameteri, nullptr);
|
||||
EXPECT_NE(glInvalidateFramebuffer, nullptr);
|
||||
EXPECT_NE(glInvalidateSubFramebuffer, nullptr);
|
||||
EXPECT_NE(glTexStorage2D, nullptr);
|
||||
EXPECT_NE(glTexStorage3D, nullptr);
|
||||
EXPECT_NE(glGetInternalformativ, nullptr);
|
||||
}
|
||||
|
||||
@@ -727,21 +727,6 @@ TEST(Map, AddLayer) {
|
||||
test::checkImage("test/fixtures/map/add_layer", test.frontend.render(test.map).image);
|
||||
}
|
||||
|
||||
TEST(Map, WithoutVAOExtension) {
|
||||
if (gfx::Backend::GetType() != gfx::Backend::Type::OpenGL) {
|
||||
return;
|
||||
}
|
||||
|
||||
MapTest<MainResourceLoader> test{":memory:", "test/fixtures/api/assets"};
|
||||
|
||||
gfx::BackendScope scope { *test.frontend.getBackend() };
|
||||
static_cast<gl::Context&>(test.frontend.getBackend()->getContext()).disableVAOExtension = true;
|
||||
|
||||
test.map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json"));
|
||||
|
||||
test::checkImage("test/fixtures/map/no_vao", test.frontend.render(test.map).image, 0.002);
|
||||
}
|
||||
|
||||
TEST(Map, RemoveLayer) {
|
||||
MapTest<> test;
|
||||
|
||||
@@ -1596,4 +1581,4 @@ TEST(Map, ObserveShaderRegistration) {
|
||||
observedRegistry = false;
|
||||
test.frontend.render(test.map);
|
||||
EXPECT_EQ(observedRegistry, false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user