diff options
-rw-r--r-- | src/graphicsmanager.cpp | 11 | ||||
-rw-r--r-- | src/render/mgl.cpp | 6 | ||||
-rw-r--r-- | src/render/mgl.h | 13 |
3 files changed, 30 insertions, 0 deletions
diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index 66e352c2b..324337871 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -885,6 +885,17 @@ void GraphicsManager::initOpenGLFunctions() assignFunction(glPopGroupMarker, "glPopGroupMarker"); } + if (checkGLVersion(3, 0) || supportExtension("GL_ARB_vertex_array_object")) + { + assignFunction(glGenVertexArrays, "glGenVertexArrays"); + assignFunction(glBindVertexArray, "glBindVertexArray"); + assignFunction(glDeleteVertexArrays, "glDeleteVertexArrays"); + assignFunction(glVertexAttribPointer, "glVertexAttribPointer"); + assignFunction(glEnableVertexAttribArray, "glEnableVertexAttribArray"); + assignFunction(glDisableVertexAttribArray, + "glDisableVertexAttribArray"); + } + #ifdef WIN32 assignFunction(wglGetExtensionsString, "wglGetExtensionsStringARB"); #endif diff --git a/src/render/mgl.cpp b/src/render/mgl.cpp index 429afe9eb..efa2f736a 100644 --- a/src/render/mgl.cpp +++ b/src/render/mgl.cpp @@ -48,6 +48,12 @@ defName(glGetObjectLabel); defName(glInsertEventMarker); defName(glPushGroupMarker); defName(glPopGroupMarker); +defName(glGenVertexArrays); +defName(glBindVertexArray); +defName(glDeleteVertexArrays); +defName(glVertexAttribPointer); +defName(glEnableVertexAttribArray); +defName(glDisableVertexAttribArray); #ifdef WIN32 defName(wglGetExtensionsString); diff --git a/src/render/mgl.h b/src/render/mgl.h index b612c5e03..b762eed94 100644 --- a/src/render/mgl.h +++ b/src/render/mgl.h @@ -118,6 +118,13 @@ typedef void (APIENTRY *glInsertEventMarker_t) typedef void (APIENTRY *glPushGroupMarker_t) (GLsizei length, const char *marker); typedef void (APIENTRY *glPopGroupMarker_t) (void); +typedef void (APIENTRY *glGenVertexArrays_t) (GLsizei n, GLuint *arrays); +typedef void (APIENTRY *glBindVertexArray_t) (GLuint array); +typedef void (APIENTRY *glDeleteVertexArrays_t) (GLsizei n, GLuint *arrays); +typedef void (APIENTRY *glVertexAttribPointer_t) (GLuint index, GLint size, + GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRY *glEnableVertexAttribArray_t) (GLuint index); +typedef void (APIENTRY *glDisableVertexAttribArray_t) (GLuint index); // callback typedef void (APIENTRY *GLDEBUGPROC_t) (GLenum source, GLenum type, GLuint id, @@ -148,6 +155,12 @@ defNameE(glGetObjectLabel); defNameE(glInsertEventMarker); defNameE(glPushGroupMarker); defNameE(glPopGroupMarker); +defNameE(glGenVertexArrays); +defNameE(glBindVertexArray); +defNameE(glDeleteVertexArrays); +defNameE(glVertexAttribPointer); +defNameE(glEnableVertexAttribArray); +defNameE(glDisableVertexAttribArray); #ifdef WIN32 typedef const char* (APIENTRY * wglGetExtensionsString_t) (HDC hdc); |