diff options
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/VariableInfo.h')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/VariableInfo.h | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/VariableInfo.h b/src/3rdparty/angle/src/compiler/translator/VariableInfo.h index 3771819c8b..5ac4c46baa 100644 --- a/src/3rdparty/angle/src/compiler/translator/VariableInfo.h +++ b/src/3rdparty/angle/src/compiler/translator/VariableInfo.h @@ -7,22 +7,27 @@ #ifndef COMPILER_VARIABLE_INFO_H_ #define COMPILER_VARIABLE_INFO_H_ -#include "compiler/translator/intermediate.h" -#include "common/shadervars.h" +#include <GLSLANG/ShaderLang.h> + +#include "compiler/translator/IntermNode.h" + +namespace sh +{ // Traverses intermediate tree to collect all attributes, uniforms, varyings. class CollectVariables : public TIntermTraverser { public: - CollectVariables(std::vector<sh::Attribute> *attribs, - std::vector<sh::Attribute> *outputVariables, - std::vector<sh::Uniform> *uniforms, - std::vector<sh::Varying> *varyings, - std::vector<sh::InterfaceBlock> *interfaceBlocks, + CollectVariables(std::vector<Attribute> *attribs, + std::vector<Attribute> *outputVariables, + std::vector<Uniform> *uniforms, + std::vector<Varying> *varyings, + std::vector<InterfaceBlock> *interfaceBlocks, ShHashFunction64 hashFunction); virtual void visitSymbol(TIntermSymbol *symbol); virtual bool visitAggregate(Visit, TIntermAggregate *node); + virtual bool visitBinary(Visit visit, TIntermBinary *binaryNode); private: template <typename VarT> @@ -31,13 +36,13 @@ class CollectVariables : public TIntermTraverser template <typename VarT> void visitInfoList(const TIntermSequence &sequence, std::vector<VarT> *infoList) const; - std::vector<sh::Attribute> *mAttribs; - std::vector<sh::Attribute> *mOutputVariables; - std::vector<sh::Uniform> *mUniforms; - std::vector<sh::Varying> *mVaryings; - std::vector<sh::InterfaceBlock> *mInterfaceBlocks; + std::vector<Attribute> *mAttribs; + std::vector<Attribute> *mOutputVariables; + std::vector<Uniform> *mUniforms; + std::vector<Varying> *mVaryings; + std::vector<InterfaceBlock> *mInterfaceBlocks; - std::map<std::string, sh::InterfaceBlockField *> mInterfaceBlockFields; + std::map<std::string, InterfaceBlockField *> mInterfaceBlockFields; bool mPointCoordAdded; bool mFrontFacingAdded; @@ -47,8 +52,10 @@ class CollectVariables : public TIntermTraverser }; // Expand struct variables to flattened lists of split variables -// Implemented for sh::Varying and sh::Uniform. template <typename VarT> -void ExpandVariables(const std::vector<VarT> &compact, std::vector<VarT> *expanded); +void ExpandVariables(const std::vector<VarT> &compact, + std::vector<ShaderVariable> *expanded); + +} #endif // COMPILER_VARIABLE_INFO_H_ |