From fa6299cb31b62ff2418138cbb789b900d19a0bca Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 25 Aug 2009 17:36:28 -0600 Subject: progs/util: added ValidateShaderProgram() to shaderutil.c --- progs/util/shaderutil.c | 20 ++++++++++++++++++++ progs/util/shaderutil.h | 3 +++ 2 files changed, 23 insertions(+) (limited to 'progs') diff --git a/progs/util/shaderutil.c b/progs/util/shaderutil.c index c58c249831..4db950016b 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 91c0d4094f..98c7181156 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); -- cgit v1.2.3