Flutter Engine
The Flutter Engine
|
Public Member Functions | |
virtual | ~LValue ()=default |
virtual bool | isWritable () const =0 |
virtual SlotRange | fixedSlotRange (Generator *gen)=0 |
virtual AutoStack * | dynamicSlotRange ()=0 |
virtual SkSpan< const int8_t > | swizzle () |
virtual bool | push (Generator *gen, SlotRange fixedOffset, AutoStack *dynamicOffset, SkSpan< const int8_t > swizzle)=0 |
virtual bool | store (Generator *gen, SlotRange fixedOffset, AutoStack *dynamicOffset, SkSpan< const int8_t > swizzle)=0 |
Public Attributes | |
std::unique_ptr< Expression > | fScratchExpression |
Definition at line 673 of file SkSLRasterPipelineCodeGenerator.cpp.
|
virtualdefault |
|
pure virtual |
Returns a stack which holds a single integer, representing the dynamic offset of the lvalue. This value does not incorporate the fixed offset. If null is returned, the lvalue doesn't have a dynamic offset. evaluateDynamicIndices
must be called before this is used.
Implemented in SkSL::RP::ScratchLValue, SkSL::RP::VariableLValue, SkSL::RP::ImmutableLValue, SkSL::RP::SwizzleLValue, SkSL::RP::UnownedLValueSlice, and SkSL::RP::DynamicIndexLValue.
Returns the fixed slot range of the lvalue, after it is winnowed down to the selected field/index. The range is calculated assuming every dynamic index will evaluate to zero.
Implemented in SkSL::RP::ScratchLValue, SkSL::RP::VariableLValue, SkSL::RP::ImmutableLValue, SkSL::RP::SwizzleLValue, SkSL::RP::UnownedLValueSlice, and SkSL::RP::DynamicIndexLValue.
|
pure virtual |
Returns true if this lvalue is actually writable–temporaries and uniforms are not.
Implemented in SkSL::RP::ScratchLValue, SkSL::RP::VariableLValue, SkSL::RP::ImmutableLValue, SkSL::RP::SwizzleLValue, SkSL::RP::UnownedLValueSlice, and SkSL::RP::DynamicIndexLValue.
|
pure virtual |
Pushes values directly onto the stack.
Implemented in SkSL::RP::ScratchLValue, SkSL::RP::VariableLValue, SkSL::RP::ImmutableLValue, SkSL::RP::SwizzleLValue, SkSL::RP::UnownedLValueSlice, and SkSL::RP::DynamicIndexLValue.
|
pure virtual |
Stores topmost values from the stack directly into the lvalue.
Implemented in SkSL::RP::ScratchLValue, SkSL::RP::VariableLValue, SkSL::RP::ImmutableLValue, SkSL::RP::SwizzleLValue, SkSL::RP::UnownedLValueSlice, and SkSL::RP::DynamicIndexLValue.
|
inlinevirtual |
Returns the swizzle components of the lvalue, or an empty span for non-swizzle LValues.
Reimplemented in SkSL::RP::SwizzleLValue.
Definition at line 694 of file SkSLRasterPipelineCodeGenerator.cpp.
std::unique_ptr<Expression> SkSL::RP::LValue::fScratchExpression |
Some lvalues refer to a temporary expression; these temps can be held in the scratch-expression field to ensure that they exist for the lifetime of the lvalue.
Definition at line 711 of file SkSLRasterPipelineCodeGenerator.cpp.