• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2018 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 // SeparateStructFromUniformDeclarations: Separate struct declarations from uniform declarations.
7 // It necessarily gives nameless uniform structs internal names.
8 //
9 // For example:
10 //   uniform struct { int a; } uni;
11 // becomes:
12 //   struct s1 { int a; };
13 //   uniform s1 uni;
14 //
15 // And:
16 //   uniform struct S { int a; } uni;
17 // becomes:
18 //   struct S { int a; };
19 //   uniform S uni;
20 //
21 //
22 
23 #ifndef COMPILER_TRANSLATOR_TREEOPS_VULKAN_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_
24 #define COMPILER_TRANSLATOR_TREEOPS_VULKAN_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_
25 
26 #include "common/angleutils.h"
27 
28 namespace sh
29 {
30 class TCompiler;
31 class TIntermBlock;
32 class TSymbolTable;
33 
34 ANGLE_NO_DISCARD bool SeparateStructFromUniformDeclarations(TCompiler *compiler,
35                                                             TIntermBlock *root,
36                                                             TSymbolTable *symbolTable);
37 }  // namespace sh
38 
39 #endif  // COMPILER_TRANSLATOR_TREEOPS_VULKAN_SEPARATESTRUCTFROMUNIFORMDECLARATIONS_H_
40