Only glUniform1i() can be used to set sampler uniforms. Generate error otherwise.

This commit is contained in:
Brian 2007-02-02 18:05:43 -07:00
parent a90e4c3ddf
commit fee9bbe475

View file

@ -891,8 +891,22 @@ _mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
/*
* If we're setting a sampler, we must use glUniformi1()!
*/
if (shProg->Uniforms->Parameters[location].Type == PROGRAM_SAMPLER) {
if (type != GL_INT || count != 1) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glUniform(only glUniform1i can be used "
"to set sampler uniforms)");
return;
}
}
uniformVal = shProg->Uniforms->ParameterValues[location];
/* XXX obey 'count' parameter! */
if (type == GL_INT ||
type == GL_INT_VEC2 ||
type == GL_INT_VEC3 ||