1 | // |
2 | // Copyright (c) 2002-2011 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 | // CollectVariables.h: Collect lists of shader interface variables based on the AST. |
7 | |
8 | #ifndef COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ |
9 | #define COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ |
10 | |
11 | #include <GLSLANG/ShaderLang.h> |
12 | |
13 | #include "compiler/translator/ExtensionBehavior.h" |
14 | |
15 | namespace sh |
16 | { |
17 | |
18 | class TIntermBlock; |
19 | class TSymbolTable; |
20 | |
21 | void CollectVariables(TIntermBlock *root, |
22 | std::vector<Attribute> *attributes, |
23 | std::vector<OutputVariable> *outputVariables, |
24 | std::vector<Uniform> *uniforms, |
25 | std::vector<Varying> *inputVaryings, |
26 | std::vector<Varying> *outputVaryings, |
27 | std::vector<InterfaceBlock> *uniformBlocks, |
28 | std::vector<InterfaceBlock> *shaderStorageBlocks, |
29 | std::vector<InterfaceBlock> *inBlocks, |
30 | ShHashFunction64 hashFunction, |
31 | TSymbolTable *symbolTable, |
32 | GLenum shaderType, |
33 | const TExtensionBehavior &extensionBehavior); |
34 | } // namespace sh |
35 | |
36 | #endif // COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ |
37 | |