| // |
| // Copyright 2018 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. |
| // |
| // SeparateStructFromUniformDeclarations: Separate struct declarations from uniform declarations. |
| // It necessarily gives nameless uniform structs internal names. |
| // |
| // For example: |
| // uniform struct { int a; } uni; |
| // becomes: |
| // struct s1 { int a; }; |
| // uniform s1 uni; |
| // |
| // And: |
| // uniform struct S { int a; } uni; |
| // becomes: |
| // struct S { int a; }; |
| // uniform S uni; |
| // |
| // |
| |
| #ifndef COMPILER_TRANSLATOR_TREEOPS_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_ |
| #define COMPILER_TRANSLATOR_TREEOPS_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_ |
| |
| #include "common/angleutils.h" |
| |
| namespace sh |
| { |
| class TCompiler; |
| class TIntermBlock; |
| class TSymbolTable; |
| |
| [[nodiscard]] bool SeparateStructFromUniformDeclarations(TCompiler *compiler, |
| TIntermBlock *root, |
| TSymbolTable *symbolTable); |
| } // namespace sh |
| |
| #endif // COMPILER_TRANSLATOR_TREEOPS_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_ |