diff options
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/OutputGLSLBase.h | 122 |
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_ |