Mesa (master): progs/util: added ValidateShaderProgram() to shaderutil.c
Brian Paul
brianp at kemper.freedesktop.org
Tue Aug 25 23:54:15 UTC 2009
Module: Mesa
Branch: master
Commit: fa6299cb31b62ff2418138cbb789b900d19a0bca
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa6299cb31b62ff2418138cbb789b900d19a0bca
Author: Brian Paul <brianp at vmware.com>
Date: Tue Aug 25 17:36:28 2009 -0600
progs/util: added ValidateShaderProgram() to shaderutil.c
---
progs/util/shaderutil.c | 20 ++++++++++++++++++++
progs/util/shaderutil.h | 3 +++
2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/progs/util/shaderutil.c b/progs/util/shaderutil.c
index c58c249..4db9500 100644
--- a/progs/util/shaderutil.c
+++ b/progs/util/shaderutil.c
@@ -140,6 +140,25 @@ LinkShaders(GLuint vertShader, GLuint fragShader)
}
+GLboolean
+ValidateShaderProgram(GLuint program)
+{
+ GLint stat;
+ glValidateProgramARB(program);
+ glGetProgramiv(program, GL_VALIDATE_STATUS, &stat);
+
+ if (!stat) {
+ GLchar log[1000];
+ GLsizei len;
+ glGetProgramInfoLog(program, 1000, &len, log);
+ fprintf(stderr, "Program validation error:\n%s\n", log);
+ return 0;
+ }
+
+ return (GLboolean) stat;
+}
+
+
GLdouble
GetShaderCompileTime(void)
{
@@ -170,6 +189,7 @@ SetUniformValues(GLuint program, struct uniform_info uniforms[])
case GL_SAMPLER_3D:
case GL_SAMPLER_CUBE:
case GL_SAMPLER_2D_RECT_ARB:
+ assert(uniforms[i].value[0] >= 0.0F);
glUniform1i(uniforms[i].location,
(GLint) uniforms[i].value[0]);
break;
diff --git a/progs/util/shaderutil.h b/progs/util/shaderutil.h
index 91c0d40..98c7181 100644
--- a/progs/util/shaderutil.h
+++ b/progs/util/shaderutil.h
@@ -36,6 +36,9 @@ CompileShaderFile(GLenum shaderType, const char *filename);
extern GLuint
LinkShaders(GLuint vertShader, GLuint fragShader);
+extern GLboolean
+ValidateShaderProgram(GLuint program);
+
extern GLdouble
GetShaderCompileTime(void);
More information about the mesa-commit
mailing list