glsl: asst. clean-ups in set_program_uniform()
authorBrian Paul <brianp@vmware.com>
Wed, 26 Aug 2009 20:35:45 +0000 (14:35 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 26 Aug 2009 20:35:45 +0000 (14:35 -0600)
Remove redunant type check for samplers (assert instead).
Move some local vars.  Update comments.

src/mesa/shader/shader_api.c

index 1b604f0713c4cce73685d70acb07881e71167b32..23aca3000e91a75473bff610a2dea93a55cc2bf1 100644 (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 */