glsl2: Store the gl_type of the array's element type in the array.
authorEric Anholt <eric@anholt.net>
Mon, 12 Jul 2010 21:02:59 +0000 (14:02 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 12 Jul 2010 21:05:20 +0000 (14:05 -0700)
Fixes glsl-fs-uniform-array-1, glsl-vs-uniform-array-1, and the -2
tests on software.

src/glsl/glsl_types.cpp

index 806b71495dec71885eb5de2f5e929749a46b1ae5..d6799cf4283de680e8fe6b626caa7ed7b70cd96d 100644 (file)
@@ -285,6 +285,11 @@ glsl_type::glsl_type(void *ctx, const glsl_type *array, unsigned length) :
    name(NULL), length(length)
 {
    this->fields.array = array;
+   /* Inherit the gl type of the base. The GL type is used for
+    * uniform/statevar handling in Mesa and the arrayness of the type
+    * is represented by the size rather than the type.
+    */
+   this->gl_type = array->gl_type;
 
    /* Allow a maximum of 10 characters for the array size.  This is enough
     * for 32-bits of ~0.  The extra 3 are for the '[', ']', and terminating