1 //
2 // Copyright 2002 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_TRANSLATORESSL_H_
8 #define COMPILER_TRANSLATOR_TRANSLATORESSL_H_
9 
10 #include "compiler/translator/Compiler.h"
11 
12 namespace sh
13 {
14 
15 class TranslatorESSL : public TCompiler
16 {
17   public:
18     TranslatorESSL(sh::GLenum type, ShShaderSpec spec);
19 
20   protected:
21     void initBuiltInFunctionEmulator(BuiltInFunctionEmulator *emu,
22                                      ShCompileOptions compileOptions) override;
23 
24     ANGLE_NO_DISCARD bool translate(TIntermBlock *root,
25                                     ShCompileOptions compileOptions,
26                                     PerformanceDiagnostics *perfDiagnostics) override;
27     bool shouldFlattenPragmaStdglInvariantAll() override;
28 
29   private:
30     void writeExtensionBehavior(ShCompileOptions compileOptions);
31 };
32 
33 }  // namespace sh
34 
35 #endif  // COMPILER_TRANSLATOR_TRANSLATORESSL_H_
36