summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h')
-rw-r--r--src/3rdparty/angle/src/compiler/translator/FlagStd140Structs.h37
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_