Browse Source

Check that texture units/samplers specified with glUniform1i() are legal.

tags/mesa_7_0
Brian 18 years ago
parent
commit
3e4302fe3b
1 changed files with 9 additions and 1 deletions
  1. 9
    1
      src/mesa/shader/shader_api.c

+ 9
- 1
src/mesa/shader/shader_api.c View File

@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
* Version: 6.5.3
* Version: 7.0
*
* Copyright (C) 2004-2007 Brian Paul All Rights Reserved.
*
@@ -1072,12 +1072,20 @@ _mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
* If we're setting a sampler, we must use glUniformi1()!
*/
if (shProg->Uniforms->Parameters[location].Type == PROGRAM_SAMPLER) {
GLint unit;
if (type != GL_INT || count != 1) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glUniform(only glUniform1i can be used "
"to set sampler uniforms)");
return;
}
/* check that the sampler (tex unit index) is legal */
unit = ((GLint *) values)[0];
if (unit >= ctx->Const.MaxTextureImageUnits) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glUniform1(invalid sampler/tex unit index)");
return;
}
}

if (count < 0) {

Loading…
Cancel
Save