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 15namespace sh 16{ 17class OutputHLSL; 18 19class 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