summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-07-04 09:58:14 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-07-04 10:02:43 -0600
commit294b061256220960e7e29fbc8ecbd2ffce75de40 (patch)
treef2d68e42cb5cadcca70fdcbcfdcdd547fb15ada3
parentc4b6941e62f5e30a7c479b7b8d6521cc4dd92e3e (diff)
mesa: generate GL_INVALID_OPERATION in _mesa_get_uniform_location() if program isn't linked
-rw-r--r--src/mesa/shader/shader_api.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c
index 3e28d92fe1..182de37b50 100644
--- a/src/mesa/shader/shader_api.c
+++ b/src/mesa/shader/shader_api.c
@@ -1011,6 +1011,11 @@ _mesa_get_uniform_location(GLcontext *ctx, GLuint program, const GLchar *name)
if (!shProg)
return -1;
+ if (shProg->LinkStatus == GL_FALSE) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetUniformfv(program)");
+ return -1;
+ }
+
/* XXX we should return -1 if the uniform was declared, but not
* actually used.
*/