UnfoldSelect.h revision a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579
1a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// 2a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. 3a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// Use of this source code is governed by a BSD-style license that can be 4a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// found in the LICENSE file. 5a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// 6a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 7a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#ifndef COMPILER_UNFOLDSELECT_H_ 8a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#define COMPILER_UNFOLDSELECT_H_ 9a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 10a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include "compiler/intermediate.h" 11a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include "compiler/ParseHelper.h" 12a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 13a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blocknamespace sh 14a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block{ 15a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockclass OutputHLSL; 16a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 17a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockclass UnfoldSelect : public TIntermTraverser 18a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block{ 19a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block public: 20a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block UnfoldSelect(TParseContext &context, OutputHLSL *outputHLSL); 21a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 22a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block void traverse(TIntermNode *node); 23a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block bool visitSelection(Visit visit, TIntermSelection *node); 24a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 25a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block int getTemporaryIndex(); 26a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 27a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block protected: 28a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block TParseContext &mContext; 29a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block OutputHLSL *const mOutputHLSL; 30a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 31a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block int mTemporaryIndex; 32a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block}; 33a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block} 34a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 35a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#endif // COMPILER_UNFOLDSELECT_H_ 36