1 // 2 // Copyright (c) 2002-2010 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 // UnfoldSelect is an AST traverser to output the select operator ?: as if-else statements 7 // 8 9 #ifndef COMPILER_UNFOLDSELECT_H_ 10 #define COMPILER_UNFOLDSELECT_H_ 11 12 #include "compiler/intermediate.h" 13 #include "compiler/ParseHelper.h" 14 15 namespace sh 16 { 17 class OutputHLSL; 18 19 class UnfoldSelect : public TIntermTraverser 20 { 21 public: 22 UnfoldSelect(TParseContext &context, OutputHLSL *outputHLSL); 23 24 void traverse(TIntermNode *node); 25 bool visitSelection(Visit visit, TIntermSelection *node); 26 27 int getTemporaryIndex(); 28 29 protected: 30 TParseContext &mContext; 31 OutputHLSL *const mOutputHLSL; 32 33 int mTemporaryIndex; 34 }; 35 } 36 37 #endif // COMPILER_UNFOLDSELECT_H_ 38