Replace _mesa_parameter_longest_name() with _mesa_longest_parameter_name().
authorBrian <brian@yutani.localnet.net>
Wed, 18 Apr 2007 20:19:17 +0000 (14:19 -0600)
committerBrian <brian@yutani.localnet.net>
Wed, 18 Apr 2007 20:19:17 +0000 (14:19 -0600)
The later takes a type parameter so we can match uniforms or attributes/inputs.
Used by the GL_ACTIVE_ATTRIBUTE_MAX_LENGTH and GL_ACTIVE_UNIFORM_MAX_LENGTH
queries.  Fixes problem reported by Brad King in VTK.

src/mesa/shader/prog_parameter.c
src/mesa/shader/prog_parameter.h
src/mesa/shader/shader_api.c

index 2c8a3407634c625d6b688e88251a0b92cddd685c..fe90ca6d7bb6f12e439dead5086ee4de5ce89d5f 100644 (file)
@@ -586,18 +586,21 @@ _mesa_clone_parameter_list(const struct gl_program_parameter_list *list)
 
 
 /**
- * Find longest name of any parameter in list.
+ * Find longest name of all uniform parameters in list.
  */
 GLuint
-_mesa_parameter_longest_name(const struct gl_program_parameter_list *list)
+_mesa_longest_parameter_name(const struct gl_program_parameter_list *list,
+                             enum register_file type)
 {
    GLuint i, maxLen = 0;
    if (!list)
       return 0;
    for (i = 0; i < list->NumParameters; i++) {
-      GLuint len = _mesa_strlen(list->Parameters[i].Name);
-      if (len > maxLen)
-         maxLen = len;
+      if (list->Parameters[i].Type == type) {
+         GLuint len = _mesa_strlen(list->Parameters[i].Name);
+         if (len > maxLen)
+            maxLen = len;
+      }
    }
    return maxLen;
 }
index 3d32a64f383c419009e35dec041d14c8ebb9145b..879623b127ae261fcd85c3266a4446954de868e7 100644 (file)
@@ -131,6 +131,8 @@ _mesa_lookup_parameter_constant(const struct gl_program_parameter_list *list,
                                 GLint *posOut, GLuint *swizzleOut);
 
 extern GLuint
-_mesa_parameter_longest_name(const struct gl_program_parameter_list *list);
+_mesa_longest_parameter_name(const struct gl_program_parameter_list *list,
+                             enum register_file type);
+
 
 #endif /* PROG_PARAMETER_H */
index fc1ae287f4f95ffe741e684a8e5eddc6a26a3389..41646e7664db52c15dd00ffee1e0410e02542ebb 100644 (file)
@@ -763,13 +763,13 @@ _mesa_get_programiv(GLcontext *ctx, GLuint program,
       *params = shProg->Attributes ? shProg->Attributes->NumParameters : 0;
       break;
    case GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:
-      *params = _mesa_parameter_longest_name(shProg->Attributes);
+      *params = _mesa_longest_parameter_name(shProg->Attributes, PROGRAM_INPUT);
       break;
    case GL_ACTIVE_UNIFORMS:
       *params = shProg->Uniforms ? shProg->Uniforms->NumParameters : 0;
       break;
    case GL_ACTIVE_UNIFORM_MAX_LENGTH:
-      *params = _mesa_parameter_longest_name(shProg->Uniforms);
+      *params = _mesa_longest_parameter_name(shProg->Uniforms, PROGRAM_UNIFORM);
       break;
    default:
       _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramiv(pname)");