tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TranslatorGLSL.h (1280B)


      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_TRANSLATORGLSL_H_
      8 #define COMPILER_TRANSLATOR_TRANSLATORGLSL_H_
      9 
     10 #include "compiler/translator/Compiler.h"
     11 
     12 namespace sh
     13 {
     14 
     15 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                                     const ShCompileOptions &compileOptions) override;
     23 
     24    [[nodiscard]] bool translate(TIntermBlock *root,
     25                                 const ShCompileOptions &compileOptions,
     26                                 PerformanceDiagnostics *perfDiagnostics) override;
     27    bool shouldFlattenPragmaStdglInvariantAll() override;
     28    bool shouldCollectVariables(const ShCompileOptions &compileOptions) override;
     29 
     30  private:
     31    void writeVersion(TIntermNode *root);
     32    void writeExtensionBehavior(TIntermNode *root, const ShCompileOptions &compileOptions);
     33    void conditionallyOutputInvariantDeclaration(const char *builtinVaryingName);
     34 };
     35 
     36 }  // namespace sh
     37 
     38 #endif  // COMPILER_TRANSLATOR_TRANSLATORGLSL_H_