webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
TIntermBinary Class Reference

#include <IntermNode.h>

Inheritance diagram for TIntermBinary:
TIntermOperator TIntermTyped TIntermNode angle::NonCopyable

Public Member Functions

 TIntermBinary (TOperator op, TIntermTyped *left, TIntermTyped *right)
 
TIntermTyped * deepCopy () const override
 
TIntermBinary * getAsBinaryNode () override
 
void traverse (TIntermTraverser *it) override
 
bool replaceChildNode (TIntermNode *original, TIntermNode *replacement) override
 
bool hasSideEffects () const override
 
TIntermTyped * getLeft () const
 
TIntermTyped * getRight () const
 
TIntermTyped * fold (TDiagnostics *diagnostics)
 
void setAddIndexClamp ()
 
bool getAddIndexClamp ()
 
- Public Member Functions inherited from TIntermOperator
TOperator getOp () const
 
bool isAssignment () const
 
bool isMultiplication () const
 
bool isConstructor () const
 
- Public Member Functions inherited from TIntermTyped
 TIntermTyped (const TType &t)
 
TIntermTyped * getAsTyped () override
 
void setType (const TType &t)
 
void setTypePreservePrecision (const TType &t)
 
const TType & getType () const
 
TType * getTypePointer ()
 
TBasicType getBasicType () const
 
TQualifier getQualifier () const
 
TPrecision getPrecision () const
 
int getCols () const
 
int getRows () const
 
int getNominalSize () const
 
int getSecondarySize () const
 
bool isInterfaceBlock () const
 
bool isMatrix () const
 
bool isArray () const
 
bool isVector () const
 
bool isScalar () const
 
bool isScalarInt () const
 
const char * getBasicString () const
 
TString getCompleteString () const
 
unsigned int getArraySize () const
 
bool isConstructorWithOnlyConstantUnionParameters ()
 
- Public Member Functions inherited from TIntermNode
 POOL_ALLOCATOR_NEW_DELETE ()
 
 TIntermNode ()
 
virtual ~TIntermNode ()
 
const TSourceLoc & getLine () const
 
void setLine (const TSourceLoc &l)
 
virtual TIntermConstantUnion * getAsConstantUnion ()
 
virtual TIntermFunctionDefinition * getAsFunctionDefinition ()
 
virtual TIntermAggregate * getAsAggregate ()
 
virtual TIntermBlock * getAsBlock ()
 
virtual TIntermSwizzle * getAsSwizzleNode ()
 
virtual TIntermUnary * getAsUnaryNode ()
 
virtual TIntermTernary * getAsTernaryNode ()
 
virtual TIntermIfElse * getAsIfElseNode ()
 
virtual TIntermSwitch * getAsSwitchNode ()
 
virtual TIntermCase * getAsCaseNode ()
 
virtual TIntermSymbol * getAsSymbolNode ()
 
virtual TIntermLoop * getAsLoopNode ()
 
virtual TIntermRaw * getAsRawNode ()
 
virtual TIntermBranch * getAsBranchNode ()
 

Static Public Member Functions

static TOperator GetMulOpBasedOnOperands (const TType &left, const TType &right)
 
static TOperator GetMulAssignOpBasedOnOperands (const TType &left, const TType &right)
 
static TQualifier GetCommaQualifier (int shaderVersion, const TIntermTyped *left, const TIntermTyped *right)
 
- Static Public Member Functions inherited from TIntermTyped
static TIntermTyped * CreateIndexNode (int index)
 
static TIntermTyped * CreateZero (const TType &type)
 

Protected Attributes

TIntermTyped * mLeft
 
TIntermTyped * mRight
 
bool mAddIndexClamp
 
- Protected Attributes inherited from TIntermOperator
TOperator mOp
 
- Protected Attributes inherited from TIntermTyped
TType mType
 
- Protected Attributes inherited from TIntermNode
TSourceLoc mLine
 

Additional Inherited Members

- Protected Member Functions inherited from TIntermOperator
 TIntermOperator (TOperator op)
 
 TIntermOperator (TOperator op, const TType &type)
 
 TIntermOperator (const TIntermOperator &)=default
 
- Protected Member Functions inherited from TIntermTyped
 TIntermTyped (const TIntermTyped &node)
 

Constructor & Destructor Documentation

◆ TIntermBinary()

TIntermBinary::TIntermBinary ( TOperator  op,
TIntermTyped *  left,
TIntermTyped *  right 
)

Member Function Documentation

◆ deepCopy()

TIntermTyped* TIntermBinary::deepCopy ( ) const
inlineoverridevirtual

Implements TIntermTyped.

◆ fold()

TIntermTyped * TIntermBinary::fold ( TDiagnostics *  diagnostics)

◆ getAddIndexClamp()

bool TIntermBinary::getAddIndexClamp ( )
inline

◆ getAsBinaryNode()

TIntermBinary* TIntermBinary::getAsBinaryNode ( )
inlineoverridevirtual

Reimplemented from TIntermNode.

◆ GetCommaQualifier()

TQualifier TIntermBinary::GetCommaQualifier ( int  shaderVersion,
const TIntermTyped *  left,
const TIntermTyped *  right 
)
static

◆ getLeft()

TIntermTyped* TIntermBinary::getLeft ( ) const
inline

◆ GetMulAssignOpBasedOnOperands()

TOperator TIntermBinary::GetMulAssignOpBasedOnOperands ( const TType &  left,
const TType &  right 
)
static

◆ GetMulOpBasedOnOperands()

TOperator TIntermBinary::GetMulOpBasedOnOperands ( const TType &  left,
const TType &  right 
)
static

◆ getRight()

TIntermTyped* TIntermBinary::getRight ( ) const
inline

◆ hasSideEffects()

bool TIntermBinary::hasSideEffects ( ) const
inlineoverridevirtual

Reimplemented from TIntermOperator.

◆ replaceChildNode()

bool TIntermBinary::replaceChildNode ( TIntermNode *  original,
TIntermNode *  replacement 
)
overridevirtual

Implements TIntermNode.

◆ setAddIndexClamp()

void TIntermBinary::setAddIndexClamp ( )
inline

◆ traverse()

void TIntermBinary::traverse ( TIntermTraverser *  it)
overridevirtual

Implements TIntermNode.

Member Data Documentation

◆ mAddIndexClamp

bool TIntermBinary::mAddIndexClamp
protected

◆ mLeft

TIntermTyped* TIntermBinary::mLeft
protected

◆ mRight

TIntermTyped* TIntermBinary::mRight
protected

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