zenilib: TIntermConstantUnion 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
TIntermConstantUnion Class Reference

`#include <intermediate.h>`

Inherits TIntermTyped.

## Public Member Functions

| TIntermConstantUnion (ConstantUnion *unionPointer, const TType &t)
TIntermTyped * | fold (TOperator, TIntermTyped *, TInfoSink &)
virtual TIntermConstantUnion * | getAsConstantUnion ()
bool | getBConst (int index) const
float | getFConst (int index) const
int | getIConst (int index) const
ConstantUnion * | getUnionArrayPointer () const
virtual void | traverse (TIntermTraverser *)
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 TIntermBinary * | getAsBinaryNode ()
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

ConstantUnion * | unionArrayPointer
Protected Attributes inherited from TIntermTyped
TType | type
Protected Attributes inherited from TIntermNode
TSourceLoc | line

## Detailed Description

Definition at line 365 of file intermediate.h.

## Constructor & Destructor Documentation

TIntermConstantUnion::TIntermConstantUnion | ( | ConstantUnion * | unionPointer,
|  | const TType & | t
| ) |  |

inline

Definition at line 367 of file intermediate.h.

Referenced by fold().

## Member Function Documentation

TIntermTyped * TIntermConstantUnion::fold | ( | TOperator | op,
|  | TIntermTyped * | constantNode,
|  | TInfoSink & | infoSink
| ) |  |

Definition at line 1069 of file Intermediate.cpp.

References assert, CompareStructure(), EbpUndefined, EbtBool, EbtFloat, EbtInt, EbtStruct, EOpAdd, EOpDiv, EOpEqual, EOpGreaterThan, EOpGreaterThanEqual, EOpLessThan, EOpLessThanEqual, EOpLogicalAnd, EOpLogicalNot, EOpLogicalOr, EOpLogicalXor, EOpMatrixTimesMatrix, EOpMatrixTimesScalar, EOpMatrixTimesVector, EOpMul, EOpNegative, EOpNotEqual, EOpSub, EOpVectorTimesMatrix, EOpVectorTimesScalar, EPrefixInternalError, EPrefixWarning, EvqConst, TIntermNode::getAsConstantUnion(), TIntermTyped::getBasicType(), ConstantUnion::getBConst(), getBConst(), getFConst(), getIConst(), TIntermNode::getLine(), TIntermTyped::getNominalSize(), TType::getObjectSize(), TIntermTyped::getType(), getUnionArrayPointer(), i, TInfoSink::info, j, TInfoSinkBase::message(), ConstantUnion::setBConst(), ConstantUnion::setFConst(), ConstantUnion::setIConst(), TIntermNode::setLine(), and TIntermConstantUnion().

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

virtual TIntermConstantUnion* TIntermConstantUnion::getAsConstantUnion | ( |  | ) |

inlinevirtual

Reimplemented from TIntermNode.

Definition at line 375 of file intermediate.h.

Referenced by ForLoopUnroll::FillLoopIndexInfo(), TOutputGLSLBase::visitBinary(), and sh::OutputHLSL::visitBinary().

bool TIntermConstantUnion::getBConst | ( | int | index | ) | const

inline

Definition at line 373 of file intermediate.h.

References ConstantUnion::getBConst(), and unionArrayPointer.

Referenced by TIntermediate::addSelection(), fold(), and TIntermediate::promoteConstantUnion().

float TIntermConstantUnion::getFConst | ( | int | index | ) | const

inline

Definition at line 372 of file intermediate.h.

References ConstantUnion::getFConst(), and unionArrayPointer.

Referenced by fold(), and TIntermediate::promoteConstantUnion().

int TIntermConstantUnion::getIConst | ( | int | index | ) | const

inline

Definition at line 371 of file intermediate.h.

References ConstantUnion::getIConst(), and unionArrayPointer.

Referenced by TParseContext::addIndexExpression(), TParseContext::arraySizeErrorCheck(), fold(), sh::OutputHLSL::handleExcessiveLoop(), TParseContext::lValueErrorCheck(), TIntermediate::promoteConstantUnion(), TOutputGLSLBase::visitBinary(), and sh::OutputHLSL::visitBinary().

ConstantUnion* TIntermConstantUnion::getUnionArrayPointer | ( |  | ) | const

inline

Definition at line 369 of file intermediate.h.

References unionArrayPointer.

Referenced by TParseContext::addConstArrayNode(), TParseContext::addConstMatrixNode(), TParseContext::addConstStruct(), TParseContext::addConstVectorNode(), TParseContext::addIndexExpression(), TParseContext::executeInitializer(), fold(), TOutputGLSLBase::visitBinary(), TOutputGLSLBase::visitConstantUnion(), and sh::OutputHLSL::visitConstantUnion().

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

virtual

Implements TIntermNode.

Definition at line 31 of file IntermTraverse.cpp.

References TIntermTraverser::visitConstantUnion().

## Member Data Documentation

ConstantUnion* TIntermConstantUnion::unionArrayPointer

protected

Definition at line 381 of file intermediate.h.

Referenced by getBConst(), getFConst(), getIConst(), and getUnionArrayPointer().

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