Line data Source code
1 : //
2 : // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3 : // Use of this source code is governed by a BSD-style license that can be
4 : // found in the LICENSE file.
5 : //
6 :
7 : #ifndef COMPILER_TRANSLATOR_TRANSLATORGLSL_H_
8 : #define COMPILER_TRANSLATOR_TRANSLATORGLSL_H_
9 :
10 : #include "compiler/translator/Compiler.h"
11 :
12 : namespace sh
13 : {
14 :
15 0 : class TranslatorGLSL : public TCompiler
16 : {
17 : public:
18 : TranslatorGLSL(sh::GLenum type, ShShaderSpec spec, ShShaderOutput output);
19 :
20 : protected:
21 : void initBuiltInFunctionEmulator(BuiltInFunctionEmulator *emu,
22 : ShCompileOptions compileOptions) override;
23 :
24 : void translate(TIntermNode *root, ShCompileOptions compileOptions) override;
25 : bool shouldFlattenPragmaStdglInvariantAll() override;
26 : bool shouldCollectVariables(ShCompileOptions compileOptions) override;
27 :
28 : private:
29 : void writeVersion(TIntermNode *root);
30 : void writeExtensionBehavior(TIntermNode *root);
31 : void conditionallyOutputInvariantDeclaration(const char *builtinVaryingName);
32 : };
33 :
34 : } // namespace sh
35 :
36 : #endif // COMPILER_TRANSLATOR_TRANSLATORGLSL_H_
|