Add support to the HLSL translator to output interface blocks to constant buffers, using HLSL register packing rules.

TRAC #22930

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

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2344 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/OutputHLSL.h b/src/compiler/OutputHLSL.h
index 4e6e600..a4f8be9 100644
--- a/src/compiler/OutputHLSL.h
+++ b/src/compiler/OutputHLSL.h
@@ -33,6 +33,7 @@
 
     TInfoSinkBase &getBodyStream();
     const ActiveUniforms &getUniforms();
+    const ActiveInterfaceBlocks &getInterfaceBlocks() const;
 
     TString typeString(const TType &type);
     TString textureString(const TType &type);
@@ -84,6 +85,7 @@
 
     typedef std::map<TString, TIntermSymbol*> ReferencedSymbols;
     ReferencedSymbols mReferencedUniforms;
+    ReferencedSymbols mReferencedInterfaceBlocks;
     ReferencedSymbols mReferencedAttributes;
     ReferencedSymbols mReferencedVaryings;
 
@@ -163,6 +165,7 @@
     TIntermSymbol *mExcessiveLoopIndex;
 
     int mUniformRegister;
+    int mInterfaceBlockRegister;
     int mSamplerRegister;
 
     TString registerString(TIntermSymbol *operand);
@@ -178,6 +181,7 @@
     static bool isVarying(TQualifier qualifier);
 
     ActiveUniforms mActiveUniforms;
+    ActiveInterfaceBlocks mActiveInterfaceBlocks;
 };
 }