Flutter Engine
The Flutter Engine
|
Public Member Functions | |
StructType (Position pos, std::string_view name, TArray< Field > fields, int nestingDepth, bool interfaceBlock, bool isBuiltin) | |
SkSpan< const Field > | fields () const override |
bool | isStruct () const override |
bool | isInterfaceBlock () const override |
bool | isBuiltin () const override |
bool | isAllowedInES2 () const override |
bool | isAllowedInUniform (Position *errorPosition) const override |
bool | isOrContainsArray () const override |
bool | isOrContainsUnsizedArray () const override |
bool | isOrContainsAtomic () const override |
size_t | slotCount () const override |
int | structNestingDepth () 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::kStruct |
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 593 of file SkSLType.cpp.
|
inline |
Definition at line 597 of file SkSLType.cpp.
Reimplemented from SkSL::Type.
Definition at line 624 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 640 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 644 of file SkSLType.cpp.
|
inlineoverridevirtual |
Returns true if this type is known to come from BuiltinTypes, or is declared in a module. If this returns true, the Type will always be available in the root SymbolTable and never needs to be copied to migrate an Expression from one location to another. If it returns false, the Type might not exist in a separate SymbolTable and you'll need to consider cloning it.
Reimplemented from SkSL::Type.
Definition at line 636 of file SkSLType.cpp.
|
inlineoverridevirtual |
Reimplemented from SkSL::Type.
Definition at line 632 of file SkSLType.cpp.
|
inlineoverridevirtual |
Reimplemented from SkSL::Type.
Definition at line 651 of file SkSLType.cpp.
|
inlineoverridevirtual |
Reimplemented from SkSL::Type.
Definition at line 659 of file SkSLType.cpp.
|
inlineoverridevirtual |
Reimplemented from SkSL::Type.
Definition at line 655 of file SkSLType.cpp.
|
inlineoverridevirtual |
Reimplemented from SkSL::Type.
Definition at line 628 of file SkSLType.cpp.
|
inlineoverridevirtual |
Returns the number of scalars needed to hold this type.
Reimplemented from SkSL::Type.
Definition at line 663 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 672 of file SkSLType.cpp.
|
inlineoverridevirtual |
If the type is a struct, returns the depth of the struct's most deeply-nested field.
Reimplemented from SkSL::Type.
Definition at line 668 of file SkSLType.cpp.
|
inlinestaticconstexpr |
Definition at line 595 of file SkSLType.cpp.