Add support for std140 uniform block layout for basic types.

This support does not include structures.

TRAC #23083

Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Authored-by: Jamie Madill
diff --git a/src/compiler/OutputHLSL.h b/src/compiler/OutputHLSL.h
index 6fa8bca..2b7bce3 100644
--- a/src/compiler/OutputHLSL.h
+++ b/src/compiler/OutputHLSL.h
@@ -173,6 +173,7 @@
     int mUniformRegister;
     int mInterfaceBlockRegister;
     int mSamplerRegister;
+    int mPaddingCounter;
 
     TString registerString(TIntermSymbol *operand);
     int samplerRegister(TIntermSymbol *sampler);
@@ -185,9 +186,11 @@
     TString interfaceBlockStructName(const TType &interfaceBlockType);
     TString interfaceBlockInstanceString(const TType& interfaceBlockType, unsigned int arrayIndex);
     TString interfaceBlockMemberTypeString(const TType &memberType);
-    TString interfaceBlockMemberString(const TTypeList &typeList);
+    TString interfaceBlockMemberString(const TTypeList &typeList, TLayoutBlockStorage blockStorage);
     TString interfaceBlockStructString(const TType &interfaceBlockType);
     TString interfaceBlockString(const TType &interfaceBlockType, unsigned int registerIndex, unsigned int arrayIndex);
+    TString std140PrePaddingString(const TType &type, int *elementIndex);
+    TString std140PostPaddingString(const TType &type);
     
     static GLenum glVariableType(const TType &type);
     static GLenum glVariablePrecision(const TType &type);