summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/compiler/translator/StructureHLSL.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/StructureHLSL.h')
-rw-r--r--src/3rdparty/angle/src/compiler/translator/StructureHLSL.h98
1 files changed, 0 insertions, 98 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/StructureHLSL.h b/src/3rdparty/angle/src/compiler/translator/StructureHLSL.h
deleted file mode 100644
index daced8f8d1..0000000000
--- a/src/3rdparty/angle/src/compiler/translator/StructureHLSL.h
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// StructureHLSL.h:
-// HLSL translation of GLSL constructors and structures.
-//
-
-#ifndef COMPILER_TRANSLATOR_STRUCTUREHLSL_H_
-#define COMPILER_TRANSLATOR_STRUCTUREHLSL_H_
-
-#include "compiler/translator/Common.h"
-#include "compiler/translator/IntermNode.h"
-
-#include <set>
-
-class TInfoSinkBase;
-class TScopeBracket;
-
-namespace sh
-{
-
-// This helper class assists structure and interface block definitions in determining
-// how to pack std140 structs within HLSL's packing rules.
-class Std140PaddingHelper
-{
- public:
- explicit Std140PaddingHelper(const std::map<TString, int> &structElementIndexes,
- unsigned int *uniqueCounter);
- Std140PaddingHelper(const Std140PaddingHelper &other);
- Std140PaddingHelper &operator=(const Std140PaddingHelper &other);
-
- int elementIndex() const { return mElementIndex; }
- int prePadding(const TType &type);
- TString prePaddingString(const TType &type);
- TString postPaddingString(const TType &type, bool useHLSLRowMajorPacking);
-
- private:
- TString next();
-
- unsigned *mPaddingCounter;
- int mElementIndex;
- const std::map<TString, int> *mStructElementIndexes;
-};
-
-class StructureHLSL : angle::NonCopyable
-{
- public:
- StructureHLSL();
-
- // Returns the name of the constructor function.
- TString addStructConstructor(const TStructure &structure);
- TString addBuiltInConstructor(const TType &type, const TIntermSequence *parameters);
-
- static TString defineNameless(const TStructure &structure);
- void ensureStructDefined(const TStructure &structure);
-
- std::string structsHeader() const;
-
- Std140PaddingHelper getPaddingHelper();
-
- private:
- unsigned mUniquePaddingCounter;
-
- std::map<TString, int> mStd140StructElementIndexes;
-
- struct TStructProperties : public angle::NonCopyable
- {
- POOL_ALLOCATOR_NEW_DELETE();
-
- TStructProperties() {}
-
- // Constructor is an empty string in case the struct doesn't have a constructor yet.
- TString constructor;
- };
-
- // Map from struct name to struct properties.
- typedef std::map<TString, TStructProperties *> DefinedStructs;
- DefinedStructs mDefinedStructs;
-
- // Struct declarations need to be kept in a vector instead of having them inside mDefinedStructs
- // since maintaining the original order is necessary for nested structs.
- typedef std::vector<TString> StructDeclarations;
- StructDeclarations mStructDeclarations;
-
- typedef std::set<TString> BuiltInConstructors;
- BuiltInConstructors mBuiltInConstructors;
-
- void storeStd140ElementIndex(const TStructure &structure, bool useHLSLRowMajorPacking);
- TString defineQualified(const TStructure &structure,
- bool useHLSLRowMajorPacking,
- bool useStd140Packing);
- DefinedStructs::iterator defineVariants(const TStructure &structure, const TString &name);
-};
-}
-
-#endif // COMPILER_TRANSLATOR_STRUCTUREHLSL_H_