1*8975f5c5SAndroid Build Coastguard Worker // 2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2002 The ANGLE Project Authors. All rights reserved. 3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker // 6*8975f5c5SAndroid Build Coastguard Worker // CollectVariables.h: Collect lists of shader interface variables based on the AST. 7*8975f5c5SAndroid Build Coastguard Worker 8*8975f5c5SAndroid Build Coastguard Worker #ifndef COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ 9*8975f5c5SAndroid Build Coastguard Worker #define COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ 10*8975f5c5SAndroid Build Coastguard Worker 11*8975f5c5SAndroid Build Coastguard Worker #include <GLSLANG/ShaderLang.h> 12*8975f5c5SAndroid Build Coastguard Worker 13*8975f5c5SAndroid Build Coastguard Worker #include "compiler/translator/ExtensionBehavior.h" 14*8975f5c5SAndroid Build Coastguard Worker 15*8975f5c5SAndroid Build Coastguard Worker namespace sh 16*8975f5c5SAndroid Build Coastguard Worker { 17*8975f5c5SAndroid Build Coastguard Worker 18*8975f5c5SAndroid Build Coastguard Worker class TIntermBlock; 19*8975f5c5SAndroid Build Coastguard Worker class TSymbolTable; 20*8975f5c5SAndroid Build Coastguard Worker 21*8975f5c5SAndroid Build Coastguard Worker void CollectVariables(TIntermBlock *root, 22*8975f5c5SAndroid Build Coastguard Worker std::vector<ShaderVariable> *attributes, 23*8975f5c5SAndroid Build Coastguard Worker std::vector<ShaderVariable> *outputVariables, 24*8975f5c5SAndroid Build Coastguard Worker std::vector<ShaderVariable> *uniforms, 25*8975f5c5SAndroid Build Coastguard Worker std::vector<ShaderVariable> *inputVaryings, 26*8975f5c5SAndroid Build Coastguard Worker std::vector<ShaderVariable> *outputVaryings, 27*8975f5c5SAndroid Build Coastguard Worker std::vector<ShaderVariable> *sharedVariables, 28*8975f5c5SAndroid Build Coastguard Worker std::vector<InterfaceBlock> *uniformBlocks, 29*8975f5c5SAndroid Build Coastguard Worker std::vector<InterfaceBlock> *shaderStorageBlocks, 30*8975f5c5SAndroid Build Coastguard Worker ShHashFunction64 hashFunction, 31*8975f5c5SAndroid Build Coastguard Worker TSymbolTable *symbolTable, 32*8975f5c5SAndroid Build Coastguard Worker GLenum shaderType, 33*8975f5c5SAndroid Build Coastguard Worker const TExtensionBehavior &extensionBehavior, 34*8975f5c5SAndroid Build Coastguard Worker const ShBuiltInResources &resources, 35*8975f5c5SAndroid Build Coastguard Worker int tessControlShaderOutputVertices); 36*8975f5c5SAndroid Build Coastguard Worker } // namespace sh 37*8975f5c5SAndroid Build Coastguard Worker 38*8975f5c5SAndroid Build Coastguard Worker #endif // COMPILER_TRANSLATOR_COLLECTVARIABLES_H_ 39