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;
};
}