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 |
Public Member Functions inherited from SkSL::SingleArgumentConstructor | |
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 |
Public Member Functions inherited from SkSL::AnyConstructor | |
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 |
Public Member Functions inherited from SkSL::Expression | |
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 |
Public Member Functions inherited from SkSL::IRNode | |
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 Public Member Functions inherited from SkSL::Poolable | |
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 | |
Public Types inherited from SkSL::Expression | |
enum class | ComparisonResult { kUnknown = -1 , kNotEqual , kEqual } |
using | Kind = ExpressionKind |
Public Attributes inherited from SkSL::IRNode | |
Position | fPosition |
Protected Member Functions inherited from SkSL::IRNode | |
IRNode (Position position, int kind) | |
Protected Attributes inherited from SkSL::IRNode | |
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.