![]() |
Flutter Engine
The Flutter Engine
|
#include <SkSLConstructorArrayCast.h>
Public Member Functions | |
ConstructorArrayCast (Position pos, const Type &type, std::unique_ptr< Expression > arg) | |
std::unique_ptr< Expression > | clone (Position pos) const override |
![]() | |
SingleArgumentConstructor (Position pos, Kind kind, const Type *type, std::unique_ptr< Expression > argument) | |
std::unique_ptr< Expression > & | argument () |
const std::unique_ptr< Expression > & | argument () const |
SkSpan< std::unique_ptr< Expression > > | argumentSpan () final |
SkSpan< const std::unique_ptr< Expression > > | argumentSpan () const final |
![]() | |
AnyConstructor (Position pos, Kind kind, const Type *type) | |
virtual SkSpan< std::unique_ptr< Expression > > | argumentSpan ()=0 |
virtual SkSpan< const std::unique_ptr< Expression > > | argumentSpan () const =0 |
std::string | description (OperatorPrecedence) const override |
const Type & | componentType () const |
bool | supportsConstantValues () const override |
std::optional< double > | getConstantValue (int n) const override |
ComparisonResult | compareConstant (const Expression &other) const override |
![]() | |
Expression (Position pos, Kind kind, const Type *type) | |
Kind | kind () const |
const Type & | type () const |
bool | isAnyConstructor () const |
bool | isIntLiteral () const |
bool | isFloatLiteral () const |
bool | isBoolLiteral () const |
AnyConstructor & | asAnyConstructor () |
const AnyConstructor & | asAnyConstructor () const |
bool | isIncomplete (const Context &context) const |
virtual ComparisonResult | compareConstant (const Expression &other) const |
CoercionCost | coercionCost (const Type &target) const |
virtual bool | supportsConstantValues () const |
virtual std::optional< double > | getConstantValue (int n) const |
virtual std::unique_ptr< Expression > | clone (Position pos) const =0 |
std::unique_ptr< Expression > | clone () const |
std::string | description () const final |
virtual std::string | description (OperatorPrecedence parentPrecedence) const =0 |
![]() | |
virtual | ~IRNode () |
virtual std::string | description () const =0 |
IRNode (const IRNode &)=delete | |
IRNode & | operator= (const IRNode &)=delete |
Position | position () const |
void | setPosition (Position p) |
template<typename T > | |
bool | is () const |
template<typename T > | |
const T & | as () const |
template<typename T > | |
T & | as () |
Static Public Member Functions | |
static std::unique_ptr< Expression > | Make (const Context &context, Position pos, const Type &type, std::unique_ptr< Expression > arg) |
![]() | |
static void * | operator new (const size_t size) |
static void | operator delete (void *ptr) |
Static Public Attributes | |
static constexpr Kind | kIRNodeKind = Kind::kConstructorArrayCast |
Additional Inherited Members | |
![]() | |
enum class | ComparisonResult { kUnknown = -1 , kNotEqual , kEqual } |
using | Kind = ExpressionKind |
![]() | |
Position | fPosition |
![]() | |
IRNode (Position position, int kind) | |
![]() | |
int | fKind |
Represents the typecasting of an array. Arrays cannot be directly casted in SkSL (or GLSL), but type narrowing can cause an array to be implicitly casted. For instance, the expression myHalf2Array == float[2](a, b)
should be allowed when narrowing conversions are enabled; this constructor allows the necessary array-type conversion to be represented in IR.
These always contain exactly 1 array of matching size, and are never constant.
Definition at line 32 of file SkSLConstructorArrayCast.h.
|
inline |
Definition at line 36 of file SkSLConstructorArrayCast.h.
|
inlineoverridevirtual |
Implements SkSL::Expression.
Definition at line 44 of file SkSLConstructorArrayCast.h.
|
static |
Definition at line 46 of file SkSLConstructorArrayCast.cpp.
|
inlinestaticconstexpr |
Definition at line 34 of file SkSLConstructorArrayCast.h.