Pass varyings to the GLES API from the translator using a direct pointer.
Instead of parsing them indirectly from HLSL, the pointer will allow us to more flexibly
support new types, especially compound types such as structures.
TRAC #23754
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
diff --git a/src/compiler/OutputHLSL.h b/src/compiler/OutputHLSL.h
index 2d32dbc..2adfbef 100644
--- a/src/compiler/OutputHLSL.h
+++ b/src/compiler/OutputHLSL.h
@@ -36,6 +36,7 @@
const ActiveInterfaceBlocks &getInterfaceBlocks() const;
const std::vector<Attribute> &getOutputVariables() const;
const std::vector<Attribute> &getAttributes() const;
+ const std::vector<Varying> &getVaryings() const;
TString typeString(const TType &type);
TString textureString(const TType &type);
@@ -179,6 +180,7 @@
void declareInterfaceBlockField(const TType &type, const TString &name, std::vector<InterfaceBlockField>& output);
void declareUniformToList(const TType &type, const TString &name, int registerIndex, std::vector<Uniform>& output);
void declareUniform(const TType &type, const TString &name, int index);
+ void declareVaryingToList(const TType &type, const TString &name, std::vector<Varying>& fieldsOut);
TString interfaceBlockFieldString(const TInterfaceBlock &interfaceBlock, const TField &field);
TString decoratePrivate(const TString &privateText);
@@ -202,6 +204,7 @@
ActiveInterfaceBlocks mActiveInterfaceBlocks;
std::vector<Attribute> mActiveOutputVariables;
std::vector<Attribute> mActiveAttributes;
+ std::vector<Varying> mActiveVaryings;
std::map<TString, int> mStd140StructElementIndexes;
std::map<TIntermTyped*, TString> mFlaggedStructMappedNames;
std::map<TIntermTyped*, TString> mFlaggedStructOriginalNames;