Flutter Engine
The Flutter Engine
|
Public Member Functions | |
VectorType (std::string_view name, const char *abbrev, const Type &componentType, int8_t columns) | |
const ScalarType & | componentType () const override |
int | columns () const override |
int | rows () const override |
int | bitWidth () const override |
bool | isVector () const override |
bool | isAllowedInES2 () const override |
bool | isAllowedInUniform (Position *errorPosition) const override |
size_t | slotCount () const override |
const Type & | slotType (size_t n) const override |
Public Member Functions inherited from SkSL::Type | |
Type (const Type &other)=delete | |
std::string | getArrayName (int arraySize) const |
template<typename T > | |
bool | is () const |
template<typename T > | |
const T & | as () const |
template<typename T > | |
T & | as () |
const Type * | clone (const Context &context, SymbolTable *symbolTable) const |
virtual bool | isBuiltin () const |
std::string | displayName () const |
std::string | description () const override |
bool | isAllowedInES2 (const Context &context) const |
virtual bool | isAllowedInES2 () const |
virtual bool | isAllowedInUniform (Position *errorPosition=nullptr) const |
virtual const Type & | resolve () const |
bool | matches (const Type &other) const |
const char * | abbreviatedName () const |
TypeKind | typeKind () const |
virtual NumberKind | numberKind () const |
bool | isBoolean () const |
bool | isNumber () const |
bool | isFloat () const |
bool | isSigned () const |
bool | isUnsigned () const |
bool | isInteger () const |
bool | isOpaque () const |
bool | isStorageTexture () const |
virtual int | priority () const |
bool | canCoerceTo (const Type &other, bool allowNarrowing) const |
CoercionCost | coercionCost (const Type &other) const |
virtual const Type & | componentType () const |
const Type & | columnType (const Context &context) const |
virtual const Type & | textureType () const |
virtual int | columns () const |
virtual int | rows () const |
virtual double | minimumValue () const |
virtual double | maximumValue () const |
virtual size_t | slotCount () const |
virtual const Type & | slotType (size_t) const |
virtual SkSpan< const Field > | fields () const |
virtual SkSpan< const Type *const > | coercibleTypes () const |
virtual SpvDim_ | dimensions () const |
virtual bool | isDepth () const |
virtual bool | isArrayedTexture () const |
bool | isVoid () const |
bool | isGeneric () const |
bool | isSampler () const |
bool | isAtomic () const |
virtual bool | isScalar () const |
virtual bool | isLiteral () const |
virtual const Type & | scalarTypeForLiteral () const |
virtual bool | isVector () const |
virtual bool | isMatrix () const |
virtual bool | isArray () const |
virtual bool | isUnsizedArray () const |
virtual bool | isStruct () const |
virtual bool | isInterfaceBlock () const |
bool | isEffectChild () const |
virtual bool | isMultisampled () const |
virtual TextureAccess | textureAccess () const |
bool | hasPrecision () const |
bool | highPrecision () const |
virtual int | bitWidth () const |
virtual bool | isOrContainsArray () const |
virtual bool | isOrContainsUnsizedArray () const |
virtual bool | isOrContainsAtomic () const |
const Type & | toCompound (const Context &context, int columns, int rows) const |
const Type * | applyQualifiers (const Context &context, ModifierFlags *modifierFlags, Position pos) const |
std::unique_ptr< Expression > | coerceExpression (std::unique_ptr< Expression > expr, const Context &context) const |
bool | checkForOutOfRangeLiteral (const Context &context, const Expression &expr) const |
bool | checkForOutOfRangeLiteral (const Context &context, double value, Position pos) const |
bool | checkIfUsableInArray (const Context &context, Position arrayPos) const |
SKSL_INT | convertArraySize (const Context &context, Position arrayPos, std::unique_ptr< Expression > size) const |
SKSL_INT | convertArraySize (const Context &context, Position arrayPos, Position sizePos, SKSL_INT size) const |
Public Member Functions inherited from SkSL::Symbol | |
Symbol (Position pos, Kind kind, std::string_view name, const Type *type=nullptr) | |
~Symbol () override | |
std::unique_ptr< Expression > | instantiate (const Context &context, Position pos) const |
const Type & | type () const |
Kind | kind () const |
std::string_view | name () const |
void | setName (std::string_view newName) |
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 Attributes | |
static constexpr TypeKind | kTypeKind = TypeKind::kVector |
Static Public Attributes inherited from SkSL::Type | |
static constexpr Kind | kIRNodeKind = Kind::kType |
static constexpr int | kMaxAbbrevLength = 3 |
static constexpr int | kUnsizedArray = -1 |
Additional Inherited Members | |
Public Types inherited from SkSL::Type | |
enum class | TypeKind : int8_t { kArray , kAtomic , kGeneric , kLiteral , kMatrix , kOther , kSampler , kSeparateSampler , kScalar , kStruct , kTexture , kVector , kVoid , kColorFilter , kShader , kBlender } |
enum class | NumberKind : int8_t { kFloat , kSigned , kUnsigned , kBoolean , kNonnumeric } |
enum class | TextureAccess : int8_t { kSample , kRead , kWrite , kReadWrite } |
Public Types inherited from SkSL::Symbol | |
using | Kind = SymbolKind |
Static Public Member Functions inherited from SkSL::Type | |
static std::unique_ptr< Type > | MakeArrayType (const Context &context, std::string_view name, const Type &componentType, int columns) |
static std::unique_ptr< Type > | MakeAliasType (std::string_view name, const Type &targetType) |
static std::unique_ptr< Type > | MakeGenericType (const char *name, SkSpan< const Type *const > types, const Type *slotType) |
static std::unique_ptr< Type > | MakeLiteralType (const char *name, const Type &scalarType, int8_t priority) |
static std::unique_ptr< Type > | MakeMatrixType (std::string_view name, const char *abbrev, const Type &componentType, int columns, int8_t rows) |
static std::unique_ptr< Type > | MakeSamplerType (const char *name, const Type &textureType) |
static std::unique_ptr< Type > | MakeScalarType (std::string_view name, const char *abbrev, Type::NumberKind numberKind, int8_t priority, int8_t bitWidth) |
static std::unique_ptr< Type > | MakeSpecialType (const char *name, const char *abbrev, Type::TypeKind typeKind) |
static std::unique_ptr< Type > | MakeStructType (const Context &context, Position pos, std::string_view name, skia_private::TArray< Field > fields, bool interfaceBlock=false) |
static std::unique_ptr< Type > | MakeTextureType (const char *name, SpvDim_ dimensions, bool isDepth, bool isArrayedTexture, bool isMultisampled, TextureAccess textureAccess) |
static std::unique_ptr< Type > | MakeVectorType (std::string_view name, const char *abbrev, const Type &componentType, int columns) |
static std::unique_ptr< Type > | MakeAtomicType (std::string_view name, const char *abbrev) |
Static Public Member Functions inherited from SkSL::Poolable | |
static void * | operator new (const size_t size) |
static void | operator delete (void *ptr) |
Public Attributes inherited from SkSL::IRNode | |
Position | fPosition |
Protected Member Functions inherited from SkSL::Type | |
Type (std::string_view name, const char *abbrev, TypeKind kind, Position pos=Position()) | |
const Type * | applyPrecisionQualifiers (const Context &context, ModifierFlags *modifierFlags, Position pos) const |
const Type * | applyAccessQualifiers (const Context &context, ModifierFlags *modifierFlags, Position pos) const |
bool | isInRootSymbolTable () const |
virtual int | structNestingDepth () const |
Protected Member Functions inherited from SkSL::IRNode | |
IRNode (Position position, int kind) | |
Protected Attributes inherited from SkSL::IRNode | |
int | fKind |
Definition at line 700 of file SkSLType.cpp.
|
inline |
Definition at line 704 of file SkSLType.cpp.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
For matrices and vectors, returns the number of columns (e.g. both mat3 and float3 return 3). For scalars, returns 1. For arrays, returns either the size of the array (if known) or -1. For all other types, causes an assertion failure.
Reimplemented from SkSL::Type.
Definition at line 716 of file SkSLType.cpp.
|
inlineoverridevirtual |
For matrices and vectors, returns the type of individual cells (e.g. mat2 has a component type of Float). For arrays, returns the base type. For all other types, returns the type itself.
Reimplemented from SkSL::Type.
Definition at line 712 of file SkSLType.cpp.
|
inlineoverridevirtual |
Returns true if this type is legal to use in a strict-ES2 program.
Reimplemented from SkSL::Type.
Definition at line 732 of file SkSLType.cpp.
|
inlineoverridevirtual |
Returns true if this type is legal to use as a uniform. If false is returned, the errorPosition
field may be populated; if it is, this position can be used to emit an extra diagnostic "caused by: <a field>" for nested types. Note that runtime effects enforce additional, much stricter rules about uniforms; these limitations are not handled here.
Reimplemented from SkSL::Type.
Definition at line 736 of file SkSLType.cpp.
|
inlineoverridevirtual |
Reimplemented from SkSL::Type.
Definition at line 728 of file SkSLType.cpp.
|
inlineoverridevirtual |
For matrices, returns the number of rows (e.g. mat2x4 returns 4). For vectors and scalars, returns 1. For all other types, causes an assertion failure.
Reimplemented from SkSL::Type.
Definition at line 720 of file SkSLType.cpp.
|
inlineoverridevirtual |
Returns the number of scalars needed to hold this type.
Reimplemented from SkSL::Type.
Definition at line 740 of file SkSLType.cpp.
|
inlineoverridevirtual |
Returns the type of the value in the nth slot. For scalar, vector and matrix types, should always match componentType()
.
Reimplemented from SkSL::Type.
Definition at line 744 of file SkSLType.cpp.
|
inlinestaticconstexpr |
Definition at line 702 of file SkSLType.cpp.