Home | History | Annotate | Download | only in compiler
      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