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 ShHashFunction64 hashFunction, 31 TSymbolTable *symbolTable, 32 GLenum shaderType, 33 const TExtensionBehavior &extensionBehavior, 34 const ShBuiltInResources &resources, 35 int tessControlShaderOutputVertices); 36 } // namespace sh 37 38 #endif // COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ 39