From 98d8765769d809b060721bb071ca56887011a6b8 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 10 Aug 2014 01:25:12 +0300 Subject: Add support for OpenGL extension GL_ARB_clear_texture. --- src/graphicsmanager.cpp | 13 +++++++++++++ src/render/mgl.cpp | 2 ++ src/render/mgl.h | 2 ++ src/render/mgltypes.h | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index ed5983715..9b53de3e7 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -1065,14 +1065,26 @@ void GraphicsManager::initOpenGLFunctions() } if (is43 || supportExtension("GL_ARB_copy_image")) { + logger->log1("found GL_ARB_copy_image"); assignFunction(glCopyImageSubData); } else { logger->log1("GL_ARB_copy_image not found"); } + if (is44 || supportExtension("GL_ARB_clear_texture")) + { + logger->log1("found GL_ARB_clear_texture"); + assignFunction(glClearTexImage); + assignFunction(glClearTexSubImage); + } + else + { + logger->log1("GL_ARB_clear_texture not found"); + } if (is20 || supportExtension("GL_ARB_shader_objects")) { + logger->log1("found GL_ARB_shader_objects"); assignFunction(glCreateShader); assignFunction(glDeleteShader); assignFunction(glGetShaderiv); @@ -1100,6 +1112,7 @@ void GraphicsManager::initOpenGLFunctions() if (is30 || supportExtension("GL_EXT_gpu_shader4")) { + logger->log1("found GL_EXT_gpu_shader4"); assignFunction(glBindFragDataLocation); } else diff --git a/src/render/mgl.cpp b/src/render/mgl.cpp index c8de23997..27174a0c6 100644 --- a/src/render/mgl.cpp +++ b/src/render/mgl.cpp @@ -108,6 +108,8 @@ defName(glDeleteQueries); defName(glGetQueryObjectiv); defName(glGetQueryObjectui64v); defName(glTextureSubImage2D); +defName(glClearTexImage); +defName(glClearTexSubImage); #ifdef WIN32 defName(wglGetExtensionsString); diff --git a/src/render/mgl.h b/src/render/mgl.h index 705c66caa..d2ad570d9 100644 --- a/src/render/mgl.h +++ b/src/render/mgl.h @@ -111,6 +111,8 @@ defNameE(glDeleteQueries); defNameE(glGetQueryObjectiv); defNameE(glGetQueryObjectui64v); defNameE(glTextureSubImage2D); +defNameE(glClearTexImage); +defNameE(glClearTexSubImage); #ifdef WIN32 defNameE(wglGetExtensionsString); diff --git a/src/render/mgltypes.h b/src/render/mgltypes.h index 24f1e8ca8..48ffbc34d 100644 --- a/src/render/mgltypes.h +++ b/src/render/mgltypes.h @@ -175,6 +175,11 @@ typedef void (APIENTRY *glGetQueryObjectui64v_t) (GLuint id, typedef void (APIENTRY *glTextureSubImage2D_t) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRY *glClearTexImage_t) (GLuint texture, GLint level, + GLenum format, GLenum type, const void * data); +typedef void (APIENTRY *glClearTexSubImage_t) (GLuint texture, GLint level, + GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, + GLsizei depth, GLenum format, GLenum type, const void * data); // callback typedef void (APIENTRY *GLDEBUGPROC_t) (GLenum source, GLenum type, GLuint id, -- cgit v1.2.3-70-g09d2