Declare structures before uniform definitions and support varying arrays
TRAC #11809
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch

Author:    Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@217 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Program.cpp b/src/libGLESv2/Program.cpp
index 838638d..a9086fb 100644
--- a/src/libGLESv2/Program.cpp
+++ b/src/libGLESv2/Program.cpp
@@ -928,12 +928,20 @@
         char varyingType[256];
         char varyingName[256];
         unsigned int semanticIndex;
+
         int matches = sscanf(input, "    %s %s : TEXCOORD%d;", varyingType, varyingName, &semanticIndex);
 
         if (matches == 3)
         {
             ASSERT(semanticIndex <= 9);   // Single character
 
+            char *array = strstr(varyingName, "[");
+
+            if (array)
+            {
+                *array = '\0';
+            }
+
             varyings.push_back(Varying(varyingName, input));
         }