zenilib: TIntermBinary Class Reference

zenilib 0.5.3.0

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
TIntermBinary Class Reference

`#include <intermediate.h>`

Inherits TIntermOperator.

## Public Member Functions

| TIntermBinary (TOperator o)
bool | getAddIndexClamp ()
virtual TIntermBinary * | getAsBinaryNode ()
TIntermTyped * | getLeft () const
TIntermTyped * | getRight () const
bool | promote (TInfoSink &)
void | setAddIndexClamp ()
void | setLeft (TIntermTyped *n)
void | setRight (TIntermTyped *n)
virtual void | traverse (TIntermTraverser *)
Public Member Functions inherited from TIntermOperator
TOperator | getOp () const
bool | isConstructor () const
bool | modifiesState () const
void | setOp (TOperator o)
Public Member Functions inherited from TIntermTyped
| TIntermTyped (const TType &t)
int | elementRegisterCount () const
int | getArraySize () const
virtual TIntermTyped * | getAsTyped ()
const char * | getBasicString () const
TBasicType | getBasicType () const
TString | getCompleteString () const
int | getNominalSize () const
TPrecision | getPrecision () const
TQualifier | getQualifier () const
const char * | getQualifierString () const
const TType & | getType () const
TType * | getTypePointer ()
bool | isArray () const
bool | isMatrix () const
bool | isScalar () const
bool | isVector () const
void | setType (const TType &t)
int | totalRegisterCount () const
Public Member Functions inherited from TIntermNode
| TIntermNode ()
virtual | ~TIntermNode ()
virtual TIntermAggregate * | getAsAggregate ()
virtual TIntermConstantUnion * | getAsConstantUnion ()
virtual TIntermLoop * | getAsLoopNode ()
virtual TIntermSelection * | getAsSelectionNode ()
virtual TIntermSymbol * | getAsSymbolNode ()
virtual TIntermUnary * | getAsUnaryNode ()
const TSourceLoc & | getLine () const
| POOL_ALLOCATOR_NEW_DELETE ()
void | setLine (const TSourceLoc &l)

## Protected Attributes

bool | addIndexClamp
TIntermTyped * | left
TIntermTyped * | right
Protected Attributes inherited from TIntermOperator
TOperator | op
Protected Attributes inherited from TIntermTyped
TType | type
Protected Attributes inherited from TIntermNode
TSourceLoc | line

## Additional Inherited Members

Protected Member Functions inherited from TIntermOperator
| TIntermOperator (TOperator o)
| TIntermOperator (TOperator o, TType &t)

## Detailed Description

Definition at line 404 of file intermediate.h.

## Constructor & Destructor Documentation

TIntermBinary::TIntermBinary | ( | TOperator | o | ) |

inline

Definition at line 406 of file intermediate.h.

## Member Function Documentation

bool TIntermBinary::getAddIndexClamp | ( |  | ) |

inline

Definition at line 418 of file intermediate.h.

References addIndexClamp.

Referenced by TOutputGLSLBase::visitBinary().

virtual TIntermBinary* TIntermBinary::getAsBinaryNode | ( |  | ) |

inlinevirtual

Reimplemented from TIntermNode.

Definition at line 408 of file intermediate.h.

TIntermTyped* TIntermBinary::getLeft | ( |  | ) | const

inline

Definition at line 413 of file intermediate.h.

References left.

Referenced by sh::OutputHLSL::handleExcessiveLoop(), TParseContext::lValueErrorCheck(), sh::UnfoldShortCircuit::visitBinary(), ValidateLimitations::visitBinary(), TOutputGLSLBase::visitBinary(), and sh::OutputHLSL::visitBinary().

TIntermTyped* TIntermBinary::getRight | ( |  | ) | const

inline

Definition at line 414 of file intermediate.h.

References right.

Referenced by ForLoopUnroll::FillLoopIndexInfo(), sh::OutputHLSL::handleExcessiveLoop(), TParseContext::lValueErrorCheck(), sh::UnfoldShortCircuit::visitBinary(), ValidateLimitations::visitBinary(), TOutputGLSLBase::visitBinary(), and sh::OutputHLSL::visitBinary().

bool TIntermBinary::promote | ( | TInfoSink & | infoSink | ) |

Definition at line 844 of file Intermediate.cpp.

References EbpUndefined, EbtBool, EOpAdd, EOpAddAssign, EOpAssign, EOpDiv, EOpDivAssign, EOpEqual, EOpGreaterThan, EOpGreaterThanEqual, EOpInitialize, EOpLessThan, EOpLessThanEqual, EOpLogicalAnd, EOpLogicalOr, EOpMatrixTimesMatrix, EOpMatrixTimesMatrixAssign, EOpMatrixTimesScalar, EOpMatrixTimesScalarAssign, EOpMatrixTimesVector, EOpMul, EOpMulAssign, EOpNotEqual, EOpSub, EOpSubAssign, EOpVectorTimesMatrix, EOpVectorTimesMatrixAssign, EOpVectorTimesScalar, EOpVectorTimesScalarAssign, EPrefixInternalError, EvqConst, EvqTemporary, GetHigherPrecision(), TIntermNode::getLine(), TIntermTyped::getTypePointer(), TInfoSink::info, max, TInfoSinkBase::message(), TIntermOperator::op, TType::setPrecision(), TType::setQualifier(), and TIntermTyped::setType().

Referenced by TIntermediate::addAssign(), and TIntermediate::addBinaryMath().

void TIntermBinary::setAddIndexClamp | ( |  | ) |

inline

Definition at line 417 of file intermediate.h.

References addIndexClamp.

void TIntermBinary::setLeft | ( | TIntermTyped * | n | ) |

inline

Definition at line 411 of file intermediate.h.

Referenced by TIntermediate::addAssign(), TIntermediate::addBinaryMath(), and TIntermediate::addIndex().

void TIntermBinary::setRight | ( | TIntermTyped * | n | ) |

inline

Definition at line 412 of file intermediate.h.

Referenced by TIntermediate::addAssign(), TIntermediate::addBinaryMath(), and TIntermediate::addIndex().

void TIntermBinary::traverse | ( | TIntermTraverser * | it | ) |

virtual

Implements TIntermNode.

Definition at line 39 of file IntermTraverse.cpp.

References TIntermTraverser::decrementDepth(), TIntermTraverser::incrementDepth(), InVisit, TIntermTraverser::inVisit, PostVisit, TIntermTraverser::postVisit, PreVisit, TIntermTraverser::preVisit, TIntermTraverser::rightToLeft, and TIntermTraverser::visitBinary().

## Member Data Documentation

bool TIntermBinary::addIndexClamp

protected

Definition at line 425 of file intermediate.h.

Referenced by getAddIndexClamp(), and setAddIndexClamp().

TIntermTyped* TIntermBinary::left

protected

Definition at line 421 of file intermediate.h.

Referenced by getLeft().

TIntermTyped* TIntermBinary::right

protected

Definition at line 422 of file intermediate.h.

Referenced by getRight().

The documentation for this class was generated from the following files:

- zenilib/jni/external/angle/src/compiler/intermediate.h
- zenilib/jni/external/angle/src/compiler/Intermediate.cpp
- zenilib/jni/external/angle/src/compiler/IntermTraverse.cpp