Browse Source

glsl: asst. clean-ups in set_program_uniform()

Remove redunant type check for samplers (assert instead).
Move some local vars.  Update comments.
tags/mesa_7_6_rc1
Brian Paul 16 years ago
parent
commit
6df38e6f5a
1 changed files with 7 additions and 14 deletions
  1. 7
    14
      src/mesa/shader/shader_api.c

+ 7
- 14
src/mesa/shader/shader_api.c View File

@@ -1612,10 +1612,8 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program,
GLenum type, GLsizei count, GLint elems,
const void *values)
{
struct gl_program_parameter *param =
const struct gl_program_parameter *param =
&program->Parameters->Parameters[index];
const GLboolean isUniformBool = is_boolean_type(param->DataType);
const GLboolean areIntValues = is_integer_type(type);

assert(offset >= 0);
assert(elems >= 1);
@@ -1635,17 +1633,10 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program,
/* This controls which texture unit which is used by a sampler */
GLint i;

/* data type for setting samplers must be int */
if (type != GL_INT) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glUniform(only glUniform1i can be used "
"to set sampler uniforms)");
return;
}
/* this should have been caught by the compatible_types() check */
ASSERT(type == GL_INT);

/* XXX arrays of samplers haven't been tested much, but it's not a
* common thing...
*/
/* loop over number of samplers to change */
for (i = 0; i < count; i++) {
GLuint sampler =
(GLuint) program->Parameters->ParameterValues[index + offset + i][0];
@@ -1674,9 +1665,11 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program,
}
else {
/* ordinary uniform variable */
GLsizei k, i;
const GLboolean isUniformBool = is_boolean_type(param->DataType);
const GLboolean areIntValues = is_integer_type(type);
const GLint slots = (param->Size + 3) / 4;
const GLint typeSize = sizeof_glsl_type(param->DataType);
GLsizei k, i;

if (param->Size > typeSize) {
/* an array */

Loading…
Cancel
Save