#ifndef COMPILER_TRANSLATOR_GLSL_OUTPUTGLSLBASE_H_
#define COMPILER_TRANSLATOR_GLSL_OUTPUTGLSLBASE_H_
#include <set>
#include "compiler/translator/ExtensionBehavior.h"
#include "compiler/translator/HashNames.h"
#include "compiler/translator/InfoSink.h"
#include "compiler/translator/Pragma.h"
#include "compiler/translator/tree_util/IntermTraverse.h"
namespace sh
{
class TCompiler;
class TOutputGLSLBase : public TIntermTraverser
{ … };
void WritePragma(TInfoSinkBase &out, const ShCompileOptions &compileOptions, const TPragma &pragma);
void WriteGeometryShaderLayoutQualifiers(TInfoSinkBase &out,
sh::TLayoutPrimitiveType inputPrimitive,
int invocations,
sh::TLayoutPrimitiveType outputPrimitive,
int maxVertices);
void WriteTessControlShaderLayoutQualifiers(TInfoSinkBase &out, int inputVertices);
void WriteTessEvaluationShaderLayoutQualifiers(TInfoSinkBase &out,
sh::TLayoutTessEvaluationType inputPrimitive,
sh::TLayoutTessEvaluationType inputVertexSpacing,
sh::TLayoutTessEvaluationType inputOrdering,
sh::TLayoutTessEvaluationType inputPoint);
void WriteFragmentShaderLayoutQualifiers(TInfoSinkBase &out,
const AdvancedBlendEquations &advancedBlendEquations);
void EmitEarlyFragmentTestsGLSL(const TCompiler &, TInfoSinkBase &sink);
void EmitWorkGroupSizeGLSL(const TCompiler &, TInfoSinkBase &sink);
void EmitMultiviewGLSL(const TCompiler &,
const ShCompileOptions &,
const TExtension,
const TBehavior,
TInfoSinkBase &sink);
}
#endif