Allow the block encoder classes to encode types directly passed by value, instead of as a compound type.

TRAC #23754

Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
diff --git a/src/compiler/BlockLayoutEncoder.h b/src/compiler/BlockLayoutEncoder.h
index 01e611d..57a8d81 100644
--- a/src/compiler/BlockLayoutEncoder.h
+++ b/src/compiler/BlockLayoutEncoder.h
@@ -8,6 +8,9 @@
 #define TRANSLATOR_COMMON_BLOCKLAYOUTENCODER_H_
 
 #include <vector>
+#define GL_APICALL
+#include <GLES3/gl3.h>
+#include <GLES2/gl2.h>
 
 namespace sh
 {
@@ -22,6 +25,7 @@
 
     void encodeFields(const std::vector<Uniform> &fields);
     void encodeType(const Uniform &uniform);
+    void encodeType(GLenum type, unsigned int arraySize, bool isRowMajorMatrix);
     size_t getBlockSize() { return mCurrentOffset * ComponentSize; }
 
     static const size_t ComponentSize = 4u;
@@ -34,8 +38,8 @@
 
     virtual void enterAggregateType() = 0;
     virtual void exitAggregateType() = 0;
-    virtual void getBlockLayoutInfo(const Uniform &uniform, int *arrayStrideOut, int *matrixStrideOut) = 0;
-    virtual void advanceOffset(const Uniform &uniform, int arrayStride, int matrixStride) = 0;
+    virtual void getBlockLayoutInfo(GLenum type, unsigned int arraySize, bool isRowMajorMatrix, int *arrayStrideOut, int *matrixStrideOut) = 0;
+    virtual void advanceOffset(GLenum type, unsigned int arraySize, bool isRowMajorMatrix, int arrayStride, int matrixStride) = 0;
 
   private:
     std::vector<BlockMemberInfo> *mBlockInfoOut;
@@ -52,8 +56,8 @@
   protected:
     virtual void enterAggregateType();
     virtual void exitAggregateType();
-    virtual void getBlockLayoutInfo(const Uniform &uniform, int *arrayStrideOut, int *matrixStrideOut);
-    virtual void advanceOffset(const Uniform &uniform, int arrayStride, int matrixStride);
+    virtual void getBlockLayoutInfo(GLenum type, unsigned int arraySize, bool isRowMajorMatrix, int *arrayStrideOut, int *matrixStrideOut);
+    virtual void advanceOffset(GLenum type, unsigned int arraySize, bool isRowMajorMatrix, int arrayStride, int matrixStride);
 };
 
 }