summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h')
-rw-r--r--src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h122
1 files changed, 0 insertions, 122 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h b/src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h
deleted file mode 100644
index 592a310be4..0000000000
--- a/src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Copyright (c) 2002-2013 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.
-//
-
-#ifndef COMPILER_TRANSLATOR_OUTPUTGLSLBASE_H_
-#define COMPILER_TRANSLATOR_OUTPUTGLSLBASE_H_
-
-#include <set>
-
-#include "compiler/translator/HashNames.h"
-#include "compiler/translator/InfoSink.h"
-#include "compiler/translator/IntermTraverse.h"
-
-namespace sh
-{
-
-class TOutputGLSLBase : public TIntermTraverser
-{
- public:
- TOutputGLSLBase(TInfoSinkBase &objSink,
- ShArrayIndexClampingStrategy clampingStrategy,
- ShHashFunction64 hashFunction,
- NameMap &nameMap,
- TSymbolTable *symbolTable,
- sh::GLenum shaderType,
- int shaderVersion,
- ShShaderOutput output,
- ShCompileOptions compileOptions);
-
- ShShaderOutput getShaderOutput() const { return mOutput; }
-
- // Return the original name if hash function pointer is NULL;
- // otherwise return the hashed name. Has special handling for internal names, which are not
- // hashed.
- TString hashName(const TName &name);
-
- protected:
- TInfoSinkBase &objSink() { return mObjSink; }
- void writeFloat(TInfoSinkBase &out, float f);
- void writeTriplet(Visit visit, const char *preStr, const char *inStr, const char *postStr);
- virtual void writeLayoutQualifier(TIntermTyped *variable);
- void writeInvariantQualifier(const TType &type);
- void writeVariableType(const TType &type);
- virtual bool writeVariablePrecision(TPrecision precision) = 0;
- void writeFunctionParameters(const TIntermSequence &args);
- const TConstantUnion *writeConstantUnion(const TType &type, const TConstantUnion *pConstUnion);
- void writeConstructorTriplet(Visit visit, const TType &type);
- TString getTypeName(const TType &type);
-
- void visitSymbol(TIntermSymbol *node) override;
- void visitConstantUnion(TIntermConstantUnion *node) override;
- bool visitSwizzle(Visit visit, TIntermSwizzle *node) override;
- bool visitBinary(Visit visit, TIntermBinary *node) override;
- bool visitUnary(Visit visit, TIntermUnary *node) override;
- bool visitTernary(Visit visit, TIntermTernary *node) override;
- bool visitIfElse(Visit visit, TIntermIfElse *node) override;
- bool visitSwitch(Visit visit, TIntermSwitch *node) override;
- bool visitCase(Visit visit, TIntermCase *node) override;
- bool visitFunctionPrototype(Visit visit, TIntermFunctionPrototype *node) override;
- bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override;
- bool visitAggregate(Visit visit, TIntermAggregate *node) override;
- bool visitBlock(Visit visit, TIntermBlock *node) override;
- bool visitInvariantDeclaration(Visit visit, TIntermInvariantDeclaration *node) override;
- bool visitDeclaration(Visit visit, TIntermDeclaration *node) override;
- bool visitLoop(Visit visit, TIntermLoop *node) override;
- bool visitBranch(Visit visit, TIntermBranch *node) override;
-
- void visitCodeBlock(TIntermBlock *node);
-
- // Same as hashName(), but without hashing built-in variables.
- TString hashVariableName(const TName &name);
- // Same as hashName(), but without hashing internal functions or "main".
- TString hashFunctionNameIfNeeded(const TFunctionSymbolInfo &info);
- // Used to translate function names for differences between ESSL and GLSL
- virtual TString translateTextureFunction(const TString &name) { return name; }
-
- private:
- bool structDeclared(const TStructure *structure) const;
- void declareStruct(const TStructure *structure);
-
- void declareInterfaceBlockLayout(const TInterfaceBlock *interfaceBlock);
- void declareInterfaceBlock(const TInterfaceBlock *interfaceBlock);
-
- void writeBuiltInFunctionTriplet(Visit visit, TOperator op, bool useEmulatedFunction);
-
- const char *mapQualifierToString(TQualifier qialifier);
-
- TInfoSinkBase &mObjSink;
- bool mDeclaringVariable;
-
- // This set contains all the ids of the structs from every scope.
- std::set<int> mDeclaredStructs;
-
- ShArrayIndexClampingStrategy mClampingStrategy;
-
- // name hashing.
- ShHashFunction64 mHashFunction;
-
- NameMap &mNameMap;
-
- sh::GLenum mShaderType;
-
- const int mShaderVersion;
-
- ShShaderOutput mOutput;
-
- ShCompileOptions mCompileOptions;
-};
-
-void WriteGeometryShaderLayoutQualifiers(TInfoSinkBase &out,
- sh::TLayoutPrimitiveType inputPrimitive,
- int invocations,
- sh::TLayoutPrimitiveType outputPrimitive,
- int maxVertices);
-
-bool NeedsToWriteLayoutQualifier(const TType &type);
-
-} // namespace sh
-
-#endif // COMPILER_TRANSLATOR_OUTPUTGLSLBASE_H_