summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/graphicsmanager.cpp8
-rw-r--r--src/render/mgl.cpp4
-rw-r--r--src/render/mgl.h4
-rw-r--r--src/render/mgltypes.h8
4 files changed, 24 insertions, 0 deletions
diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp
index ed9768473..c7e4777e1 100644
--- a/src/graphicsmanager.cpp
+++ b/src/graphicsmanager.cpp
@@ -1021,6 +1021,14 @@ void GraphicsManager::initOpenGLFunctions()
{
logger->log1("GL_ARB_separate_shader_objects not supported");
}
+ if (checkGLVersion(4, 1)
+ || supportExtension("GL_ARB_separate_shader_objects"))
+ {
+ assignFunction(glProgramUniform1f, "glProgramUniform1f");
+ assignFunction(glProgramUniform2f, "glProgramUniform2f");
+ assignFunction(glProgramUniform3f, "glProgramUniform3f");
+ assignFunction(glProgramUniform4f, "glProgramUniform4f");
+ }
}
else
{
diff --git a/src/render/mgl.cpp b/src/render/mgl.cpp
index d18763051..fc67c36cd 100644
--- a/src/render/mgl.cpp
+++ b/src/render/mgl.cpp
@@ -84,6 +84,10 @@ defName(glUniform3f);
defName(glUniform4f);
defName(glCheckFramebufferStatus);
defName(glGetProgramInfoLog);
+defName(glProgramUniform1f);
+defName(glProgramUniform2f);
+defName(glProgramUniform3f);
+defName(glProgramUniform4f);
#ifdef WIN32
defName(wglGetExtensionsString);
diff --git a/src/render/mgl.h b/src/render/mgl.h
index a72ef0331..2bc275629 100644
--- a/src/render/mgl.h
+++ b/src/render/mgl.h
@@ -87,6 +87,10 @@ defNameE(glUniform3f);
defNameE(glUniform4f);
defNameE(glCheckFramebufferStatus);
defNameE(glGetProgramInfoLog);
+defNameE(glProgramUniform1f);
+defNameE(glProgramUniform2f);
+defNameE(glProgramUniform3f);
+defNameE(glProgramUniform4f);
#ifdef WIN32
defNameE(wglGetExtensionsString);
diff --git a/src/render/mgltypes.h b/src/render/mgltypes.h
index 321739845..b4b300a96 100644
--- a/src/render/mgltypes.h
+++ b/src/render/mgltypes.h
@@ -123,6 +123,14 @@ typedef void (APIENTRY *glUniform4f_t) (GLint location,
typedef GLenum (APIENTRY *glCheckFramebufferStatus_t) (GLenum target);
typedef void (APIENTRY *glGetProgramInfoLog_t) (GLuint program,
GLsizei maxLength, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRY *glProgramUniform1f_t) (GLuint program,
+ GLint location, GLfloat v0);
+typedef void (APIENTRY *glProgramUniform2f_t) (GLuint program,
+ GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRY *glProgramUniform3f_t) (GLuint program,
+ GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRY *glProgramUniform4f_t) (GLuint program,
+ GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
// callback
typedef void (APIENTRY *GLDEBUGPROC_t) (GLenum source, GLenum type, GLuint id,