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 // 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<ShaderVariable> *attributes, 23 std::vector<ShaderVariable> *outputVariables, 24 std::vector<ShaderVariable> *uniforms, 25 std::vector<ShaderVariable> *inputVaryings, 26 std::vector<ShaderVariable> *outputVaryings, 27 std::vector<ShaderVariable> *sharedVariables, 28 std::vector<InterfaceBlock> *uniformBlocks, 29 std::vector<InterfaceBlock> *shaderStorageBlocks, 30 std::vector<InterfaceBlock> *inBlocks, 31 ShHashFunction64 hashFunction, 32 TSymbolTable *symbolTable, 33 GLenum shaderType, 34 const TExtensionBehavior &extensionBehavior); 35 } // namespace sh 36 37 #endif // COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ 38