diff options
Diffstat (limited to 'gfx/angle/src/compiler/translator/InitializeVariables.h')
-rwxr-xr-x | gfx/angle/src/compiler/translator/InitializeVariables.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gfx/angle/src/compiler/translator/InitializeVariables.h b/gfx/angle/src/compiler/translator/InitializeVariables.h new file mode 100755 index 000000000..9a34245a5 --- /dev/null +++ b/gfx/angle/src/compiler/translator/InitializeVariables.h @@ -0,0 +1,31 @@ +// +// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +#ifndef COMPILER_TRANSLATOR_INITIALIZEVARIABLES_H_ +#define COMPILER_TRANSLATOR_INITIALIZEVARIABLES_H_ + +#include <GLSLANG/ShaderLang.h> + +namespace sh +{ +class TIntermNode; +class TSymbolTable; + +typedef std::vector<sh::ShaderVariable> InitVariableList; + +// Currently this function is only capable of initializing variables of basic types, +// array of basic types, or struct of basic types. +// For now it is used for the following two scenarios: +// 1. initializing gl_Position; +// 2. initializing ESSL 3.00 shaders' output variables (which might be structs). +// Specifically, it's not feasible to make it work for local variables because if their +// types are structs, we can't look into TSymbolTable to find the TType data. +void InitializeVariables(TIntermNode *root, + const InitVariableList &vars, + const TSymbolTable &symbolTable); +} // namespace sh + +#endif // COMPILER_TRANSLATOR_INITIALIZEVARIABLES_H_ |