diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
commit | 6630937e63ae5797487b86743a7733c8ae5cc42c (patch) | |
tree | 3d53dacf6430f9099e1fb20835881205de674961 /src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h | |
parent | 37ed6dae00640f9cc980ffda05347c12a7eb5d7e (diff) | |
parent | c7af193d2e49e9f10b86262e63d8d13abf72b5cf (diff) |
Merge commit 'dev' into 'wip/cmake-merge'
Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h b/src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h index cfcd775af7..f548d8b6ed 100644 --- a/src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h +++ b/src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h @@ -3,41 +3,28 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // +// FlagStd140Structs.h: Find structs in std140 blocks, where the padding added in the translator +// conflicts with the "natural" unpadded type. #ifndef COMPILER_TRANSLATOR_FLAGSTD140STRUCTS_H_ #define COMPILER_TRANSLATOR_FLAGSTD140STRUCTS_H_ -#include "compiler/translator/IntermNode.h" +#include <vector> namespace sh { -// This class finds references to nested structs of std140 blocks that access -// the nested struct "by value", where the padding added in the translator -// conflicts with the "natural" unpadded type. -class FlagStd140Structs : public TIntermTraverser -{ - public: - - FlagStd140Structs() - : TIntermTraverser(true, false, false) - { - } - - const std::vector<TIntermTyped *> getFlaggedNodes() const { return mFlaggedNodes; } +class TField; +class TIntermNode; +class TIntermSymbol; - protected: - bool visitBinary(Visit visit, TIntermBinary *binaryNode) override; - void visitSymbol(TIntermSymbol *symbol) override; - - private: - bool isInStd140InterfaceBlock(TIntermTyped *node) const; - - std::vector<TIntermTyped *> mFlaggedNodes; +struct MappedStruct +{ + TIntermSymbol *blockDeclarator; + TField *field; }; -std::vector<TIntermTyped *> FlagStd140ValueStructs(TIntermNode *node); - +std::vector<MappedStruct> FlagStd140Structs(TIntermNode *node); } -#endif // COMPILER_TRANSLATOR_FLAGSTD140STRUCTS_H_ +#endif // COMPILER_TRANSLATOR_FLAGSTD140STRUCTS_H_ |