2 // Copyright (c) 2002-2013 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.
7 #ifndef COMPILER_INITIALIZE_VARIABLES_H_
8 #define COMPILER_INITIALIZE_VARIABLES_H_
10 #include "compiler/translator/intermediate.h"
12 class InitializeVariables : public TIntermTraverser
15 struct InitVariableInfo
20 InitVariableInfo(const TString &_name, const TType &_type)
26 typedef TVector<InitVariableInfo> InitVariableInfoList;
28 InitializeVariables(const InitVariableInfoList &vars)
29 : mCodeInserted(false),
35 virtual bool visitBinary(Visit, TIntermBinary *node) { return false; }
36 virtual bool visitUnary(Visit, TIntermUnary *node) { return false; }
37 virtual bool visitSelection(Visit, TIntermSelection *node) { return false; }
38 virtual bool visitLoop(Visit, TIntermLoop *node) { return false; }
39 virtual bool visitBranch(Visit, TIntermBranch *node) { return false; }
41 virtual bool visitAggregate(Visit visit, TIntermAggregate* node);
44 void insertInitCode(TIntermSequence *sequence);
46 InitVariableInfoList mVariables;
50 #endif // COMPILER_INITIALIZE_VARIABLES_H_