Add support for arrays of aggregates (aka structs) in uniform blocks.

TRAC #23018

Signed-off-by: Geoff Lang
Signed-off-by: Nicolas Capens
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2388 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/Uniform.cpp b/src/compiler/Uniform.cpp
index 917e08f..9a643ba 100644
--- a/src/compiler/Uniform.cpp
+++ b/src/compiler/Uniform.cpp
@@ -92,7 +92,17 @@
 {
     if (!uniform.fields.empty())
     {
-        getBlockLayoutInfo(uniform.fields, currentOffset);
+        if (uniform.arraySize > 0)
+        {
+            for (unsigned int arrayElement = 0; arrayElement < uniform.arraySize; arrayElement++)
+            {
+                getBlockLayoutInfo(uniform.fields, currentOffset);
+            }
+        }
+        else
+        {
+            getBlockLayoutInfo(uniform.fields, currentOffset);
+        }
         return false;
     }