zenilib
0.5.3.0
|
#include <UnfoldShortCircuit.h>
Inherits TIntermTraverser.
Public Member Functions | |
UnfoldShortCircuit (TParseContext &context, OutputHLSL *outputHLSL) | |
int | getNextTemporaryIndex () |
void | traverse (TIntermNode *node) |
bool | visitBinary (Visit visit, TIntermBinary *) |
bool | visitLoop (Visit visit, TIntermLoop *node) |
bool | visitSelection (Visit visit, TIntermSelection *node) |
![]() | |
TIntermTraverser (bool preVisit=true, bool inVisit=false, bool postVisit=false, bool rightToLeft=false) | |
virtual | ~TIntermTraverser () |
void | decrementDepth () |
int | getMaxDepth () const |
void | incrementDepth () |
POOL_ALLOCATOR_NEW_DELETE () | |
virtual bool | visitAggregate (Visit visit, TIntermAggregate *) |
virtual bool | visitBranch (Visit visit, TIntermBranch *) |
virtual void | visitConstantUnion (TIntermConstantUnion *) |
virtual void | visitSymbol (TIntermSymbol *) |
virtual bool | visitUnary (Visit visit, TIntermUnary *) |
Protected Attributes | |
TParseContext & | mContext |
OutputHLSL *const | mOutputHLSL |
int | mTemporaryIndex |
![]() | |
int | depth |
int | maxDepth |
Additional Inherited Members | |
![]() | |
static TString | hash (const TString &name, ShHashFunction64 hashFunction) |
![]() | |
const bool | inVisit |
const bool | postVisit |
const bool | preVisit |
const bool | rightToLeft |
Definition at line 19 of file UnfoldShortCircuit.h.
sh::UnfoldShortCircuit::UnfoldShortCircuit | ( | TParseContext & | context, |
OutputHLSL * | outputHLSL | ||
) |
Definition at line 18 of file UnfoldShortCircuit.cpp.
References mTemporaryIndex.
int sh::UnfoldShortCircuit::getNextTemporaryIndex | ( | ) |
Definition at line 172 of file UnfoldShortCircuit.cpp.
References mTemporaryIndex.
Referenced by sh::OutputHLSL::visitBinary(), and sh::OutputHLSL::visitSelection().
void sh::UnfoldShortCircuit::traverse | ( | TIntermNode * | node | ) |
Definition at line 23 of file UnfoldShortCircuit.cpp.
References mTemporaryIndex, and TIntermNode::traverse().
Referenced by sh::OutputHLSL::traverseStatements(), and sh::OutputHLSL::visitSelection().
|
virtual |
Reimplemented from TIntermTraverser.
Definition at line 30 of file UnfoldShortCircuit.cpp.
References EOpLogicalAnd, EOpLogicalOr, sh::OutputHLSL::getBodyStream(), TIntermBinary::getLeft(), TIntermOperator::getOp(), TIntermBinary::getRight(), i, mOutputHLSL, mTemporaryIndex, and TIntermNode::traverse().
|
virtual |
Reimplemented from TIntermTraverser.
Definition at line 148 of file UnfoldShortCircuit.cpp.
References TIntermLoop::getCondition(), TIntermLoop::getExpression(), TIntermLoop::getInit(), mTemporaryIndex, and TIntermNode::traverse().
|
virtual |
Reimplemented from TIntermTraverser.
Definition at line 103 of file UnfoldShortCircuit.cpp.
References sh::OutputHLSL::getBodyStream(), TIntermSelection::getCondition(), TIntermSelection::getFalseBlock(), TIntermSelection::getTrueBlock(), TIntermTyped::getType(), i, mOutputHLSL, mTemporaryIndex, TIntermNode::traverse(), sh::OutputHLSL::typeString(), and TIntermSelection::usesTernaryOperator().
|
protected |
Definition at line 32 of file UnfoldShortCircuit.h.
|
protected |
Definition at line 33 of file UnfoldShortCircuit.h.
Referenced by visitBinary(), and visitSelection().
|
protected |
Definition at line 35 of file UnfoldShortCircuit.h.
Referenced by getNextTemporaryIndex(), traverse(), UnfoldShortCircuit(), visitBinary(), visitLoop(), and visitSelection().