Edit

kc3-lang/angle/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h

Branch :

  • Show log

    Commit

  • Author : Tim Van Patten
    Date : 2019-09-04 15:39:58
    Hash : 90a58622
    Message : Refactor ShaderVariable to Remove Specializations The following structs are being refactored and moved into the parent struct ShaderVariable: VariableWithLocation Uniform Attribute OutputVariable InterfaceBlockField Varying Bug: angleproject:3899 Test: CQ Change-Id: I389eb3ab4ed44a360e09fca75ecc78d64a277f83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1785877 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>

  • src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h
  • //
    // Copyright 2019 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.
    //
    // EmulateGLDrawID is an AST traverser to convert the gl_DrawID builtin
    // to a uniform int
    //
    // EmulateGLBaseVertexBaseInstance is an AST traverser to convert the gl_BaseVertex and
    // gl_BaseInstance builtin to uniform ints
    //
    // EmulateGLBaseInstance is an AST traverser to convert the gl_BaseInstance builtin
    // to a uniform int
    //
    
    #ifndef COMPILER_TRANSLATOR_TREEOPS_EMULATEMULTIDRAWSHADERBUILTINS_H_
    #define COMPILER_TRANSLATOR_TREEOPS_EMULATEMULTIDRAWSHADERBUILTINS_H_
    
    #include <GLSLANG/ShaderLang.h>
    #include <vector>
    
    #include "common/angleutils.h"
    #include "compiler/translator/HashNames.h"
    
    namespace sh
    {
    struct ShaderVariable;
    class TCompiler;
    class TIntermBlock;
    class TSymbolTable;
    
    ANGLE_NO_DISCARD bool EmulateGLDrawID(TCompiler *compiler,
                                          TIntermBlock *root,
                                          TSymbolTable *symbolTable,
                                          std::vector<sh::ShaderVariable> *uniforms,
                                          bool shouldCollect);
    
    ANGLE_NO_DISCARD bool EmulateGLBaseVertexBaseInstance(TCompiler *compiler,
                                                          TIntermBlock *root,
                                                          TSymbolTable *symbolTable,
                                                          std::vector<sh::ShaderVariable> *uniforms,
                                                          bool shouldCollect,
                                                          bool addBaseVertexToVertexID);
    
    }  // namespace sh
    
    #endif  // COMPILER_TRANSLATOR_TREEOPS_EMULATEMULTIDRAWSHADERBUILTINS_H_