44 return Lhs.
Min == Rhs.Min && Lhs.
Max == Rhs.Max;
217 if (Lhs.
ValueType != Rhs.ValueType)
return false;
238 return !Rhs.IsStruct() && Lhs == Rhs.ValueType;
502 if (
Component.IsValidIndex(ComponentIndex))
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_INTRINSIC_TYPE_LAYOUT(T)
Definition MemoryLayout.h:760
const bool
Definition NetworkReplayStreaming.h:178
Definition NameTypes.h:617
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
Definition UnrealString.h.inl:34
Definition ShaderTypes.h:297
const FStructType * FindType(uint64 Hash) const
Definition ShaderValue.cpp:913
const FStructType * NewExternalType(FStringView Name)
Definition ShaderValue.cpp:897
void EmitDeclarationsCode(FStringBuilderBase &OutCode) const
Definition ShaderValue.cpp:764
const FStructType * NewType(const FStructTypeInitializer &Initializer)
Definition ShaderValue.cpp:813
Definition Texture.h:1219
Definition SparseVolumeTexture.h:19
bool IsLWCType(EValueComponentType Type)
Definition ShaderTypes.h:91
EValueType MinInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1897
EValueType FracInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1802
EValueType FmodInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1907
EValueType FloorInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1777
FValue Cast(const FValue &Value, EValueType Type)
Definition ShaderValue.cpp:1738
EValueType ModuloInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1912
bool IsWithinBounds(FComponentBounds Lhs, FComponentBounds Rhs)
Definition ShaderTypes.h:53
EValueType MakeDerivativeType(EValueType Type)
Definition ShaderValue.cpp:749
uint32 GetTypeHash(const FType &Type)
Definition ShaderValue.cpp:1358
EValueType AsinInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1862
EValueType Log2InPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1837
bool IsNumericScalarType(EValueType Type)
Definition ShaderTypes.h:164
EComponentBound MaxBound(EComponentBound Lhs, EComponentBound Rhs)
Definition ShaderTypes.h:32
EValueType SqrtInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1812
EValueType RcpInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1817
EValueType CeilInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1782
EValueType AcosInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1867
EValueType NegInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1762
EValueType AtanInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1872
bool IsNumericVectorType(EValueType Type)
Definition ShaderTypes.h:169
EValueType SinInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1847
EValueType MakeValueType(EValueComponentType ComponentType, int32 NumComponents)
Definition ShaderValue.cpp:644
EValueType SubInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1882
constexpr int32 NumValueTypes
Definition ShaderTypes.h:140
EValueType
Definition ShaderTypes.h:94
bool operator!=(const FComponentBounds &Lhs, const FComponentBounds &Rhs)
Definition ShaderTypes.h:46
EValueType AddInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1877
EValueComponentType CombineComponentTypes(EValueComponentType Lhs, EValueComponentType Rhs)
Definition ShaderValue.cpp:530
EValueType FractionalInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1807
EValueType Atan2InPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1917
const TCHAR * GetComponentTypeName(EValueComponentType Type)
Definition ShaderTypes.h:81
bool IsComponentTypeWithinBounds(EValueComponentType Type, FComponentBounds Bounds)
Definition ShaderTypes.h:84
EValueType MulInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1887
bool IsNumericMatrixType(EValueType Type)
Definition ShaderTypes.h:174
EValueType SaturateInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1772
EValueComponentType
Definition ShaderTypes.h:56
EValueType TanInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1857
EValueType Log10InPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1842
FValueComponentTypeDescription GetValueComponentTypeDescription(EValueComponentType Type)
Definition ShaderValue.cpp:516
EValueType MaxInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1902
bool IsNumericType(EValueComponentType Type)
Definition ShaderTypes.h:83
EComponentBound MinBound(EComponentBound Lhs, EComponentBound Rhs)
Definition ShaderTypes.h:31
EValueType DivInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1892
EValueType MakeConcreteType(EValueType Type)
Definition ShaderValue.cpp:738
EValueType Exp2InPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1827
EValueType TruncInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1792
EValueType MakeNonLWCType(EValueType Type)
Definition ShaderValue.cpp:727
EValueType SignInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1797
EValueType FindValueType(FName Name)
Definition ShaderValue.cpp:630
EComponentBound
Definition ShaderTypes.h:19
bool operator==(const FValue &Lhs, const FValue &Rhs)
Definition ShaderValue.cpp:1340
EValueStringFormat
Definition ShaderTypes.h:329
EValueType CosInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1852
EValueType MakeValueTypeWithRequestedNumComponents(EValueType BaseType, int8 RequestedNumComponents)
Definition ShaderValue.cpp:721
EValueType ExpInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1822
uint32 GetComponentTypeSizeInBytes(EValueComponentType Type)
Definition ShaderTypes.h:82
const FValueTypeDescription & GetValueTypeDescription(EValueType Type)
Definition ShaderValue.cpp:66
FType CombineTypes(const FType &Lhs, const FType &Rhs, bool bMergeMatrixTypes)
Definition ShaderValue.cpp:174
EValueType AppendInPlace(EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > Component, int32 &OutComponentsConsumed)
Definition ShaderValue.cpp:1922
EValueType RoundInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1787
EValueType LogInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1832
EValueType AbsInPlace(EValueType Type, TArrayView< FValueComponent > Component)
Definition ShaderValue.cpp:1767
bool IsGenericType(EValueComponentType Type)
Definition ShaderTypes.h:90
float v
Definition radaudio_mdct.cpp:62
U16 Index
Definition radfft.cpp:71
Definition ShaderTypes.h:35
EComponentBound Min
Definition ShaderTypes.h:39
FComponentBounds()=default
EComponentBound Max
Definition ShaderTypes.h:40
FComponentBounds(EComponentBound InMin, EComponentBound InMax)
Definition ShaderTypes.h:37
Definition ShaderTypes.h:335
uint8 Bytes[MaxSize]
Definition ShaderTypes.h:337
uint32 Size
Definition ShaderTypes.h:338
static const uint32 MaxSize
Definition ShaderTypes.h:336
Definition ShaderTypes.h:281
FStructFieldInitializer(const FStringView &InName, const FType &InType)
Definition ShaderTypes.h:283
FType Type
Definition ShaderTypes.h:286
FStructFieldInitializer()=default
FStringView Name
Definition ShaderTypes.h:285
Definition ShaderTypes.h:248
int32 FlatFieldIndex
Definition ShaderTypes.h:252
const TCHAR * Name
Definition ShaderTypes.h:249
FType Type
Definition ShaderTypes.h:250
int32 ComponentIndex
Definition ShaderTypes.h:251
int32 GetNumComponents() const
Definition ShaderTypes.h:254
Definition ShaderTypes.h:290
TArrayView< const FStructFieldInitializer > Fields
Definition ShaderTypes.h:292
FStringView Name
Definition ShaderTypes.h:291
bool bIsDerivativeType
Definition ShaderTypes.h:293
Definition ShaderTypes.h:258
const FStructType * DerivativeType
Definition ShaderTypes.h:261
TArrayView< const FStructField > Fields
Definition ShaderTypes.h:262
int32 GetNumComponents() const
Definition ShaderTypes.h:275
TArrayView< const EValueType > FlatFieldTypes
Definition ShaderTypes.h:272
bool IsExternal() const
Definition ShaderTypes.h:274
TArrayView< const EValueComponentType > ComponentTypes
Definition ShaderTypes.h:267
const FStructField * FindFieldByName(const TCHAR *InName) const
Definition ShaderValue.cpp:208
const TCHAR * Name
Definition ShaderTypes.h:260
uint64 Hash
Definition ShaderTypes.h:259
Definition ShaderTypes.h:181
bool IsNumericLWC() const
Definition ShaderTypes.h:200
FType GetNonLWCType() const
Definition ShaderTypes.h:189
int32 GetNumComponents() const
Definition ShaderValue.cpp:104
EValueType ValueType
Definition ShaderTypes.h:212
FType(FName InObjectType)
Definition ShaderTypes.h:185
bool IsNumericScalar() const
Definition ShaderTypes.h:197
FType GetDerivativeType() const
Definition ShaderValue.cpp:88
const TCHAR * GetName() const
Definition ShaderValue.cpp:74
EValueType GetFlatFieldType(int32 Index) const
Definition ShaderValue.cpp:161
bool IsNumericMatrix() const
Definition ShaderTypes.h:199
const FStructType * StructType
Definition ShaderTypes.h:210
bool IsNumericVector() const
Definition ShaderTypes.h:198
bool operator!() const
Definition ShaderTypes.h:208
bool IsGeneric() const
Definition ShaderTypes.h:195
int32 GetNumFlatFields() const
Definition ShaderValue.cpp:121
FType GetConcreteType() const
Definition ShaderTypes.h:190
bool IsAny() const
Definition ShaderTypes.h:194
bool IsObject() const
Definition ShaderTypes.h:193
bool IsStruct() const
Definition ShaderTypes.h:192
FName ObjectType
Definition ShaderTypes.h:211
EValueComponentType GetComponentType(int32 Index) const
Definition ShaderValue.cpp:133
FType(const FStructType *InStruct)
Definition ShaderTypes.h:184
FType(EValueType InValueType)
Definition ShaderTypes.h:183
FType()
Definition ShaderTypes.h:182
bool IsVoid() const
Definition ShaderTypes.h:191
bool IsNumeric() const
Definition ShaderTypes.h:196
Definition ShaderTypes.h:71
FValueComponentTypeDescription()=default
FValueComponentTypeDescription(const TCHAR *InName, uint32_t InSizeInBytes, EComponentBound InMin, EComponentBound InMax)
Definition ShaderTypes.h:73
FComponentBounds Bounds
Definition ShaderTypes.h:77
uint32_t SizeInBytes
Definition ShaderTypes.h:76
const TCHAR * Name
Definition ShaderTypes.h:75
Definition ShaderTypes.h:143
int8 NumComponents
Definition ShaderTypes.h:147
EValueComponentType ComponentType
Definition ShaderTypes.h:146
const TCHAR * Name
Definition ShaderTypes.h:144
int8 ComponentSizeInBytes
Definition ShaderTypes.h:148
EValueType ValueType
Definition ShaderTypes.h:145
Definition ShaderTypes.h:368
FValueComponent GetComponent(int32 Index) const
Definition ShaderTypes.h:498
FLinearColor AsLinearColor() const
Definition ShaderValue.cpp:453
bool IsZero() const
Definition ShaderValue.cpp:499
FValue(double X, double Y, double Z, double W)
Definition ShaderTypes.h:425
FValue(double X, double Y)
Definition ShaderTypes.h:412
FValue(const FVector3d &Value)
Definition ShaderTypes.h:454
FValue(const FVector2f &Value)
Definition ShaderTypes.h:441
FValue(float X, float Y)
Definition ShaderTypes.h:386
const FType & GetType() const
Definition ShaderTypes.h:495
FIntValue AsInt() const
Definition ShaderValue.cpp:465
FValue(EValueComponentType InComponentType, int8 InNumComponents)
Definition ShaderTypes.h:376
FDoubleValue AsDouble() const
Definition ShaderValue.cpp:446
FFloatValue AsFloat() const
Definition ShaderValue.cpp:439
FValue(float v)
Definition ShaderTypes.h:381
FVector4d AsVector4d() const
Definition ShaderValue.cpp:459
FValue(int32 v)
Definition ShaderTypes.h:490
FValue(float X, float Y, float Z)
Definition ShaderTypes.h:392
FValue(double v)
Definition ShaderTypes.h:407
FValue(bool X, bool Y, bool Z, bool W)
Definition ShaderTypes.h:482
FValue(const FVector4d &Value)
Definition ShaderTypes.h:469
TArray< FValueComponent, TInlineAllocator< 16 > > Component
Definition ShaderTypes.h:527
FType Type
Definition ShaderTypes.h:526
FValue(double X, double Y, double Z)
Definition ShaderTypes.h:418
FValue(float X, float Y, float Z, float W)
Definition ShaderTypes.h:399
FValue(bool v)
Definition ShaderTypes.h:477
FValue(const FType &InType)
Definition ShaderTypes.h:371
FValue(const FVector3f &Value)
Definition ShaderTypes.h:447
FBoolValue AsBool() const
Definition ShaderValue.cpp:472
static FValue FromMemoryImage(EValueType Type, const void *Data, uint32 *OutSizeInBytes=nullptr)
Definition ShaderValue.cpp:395
FValue(const FVector4f &Value)
Definition ShaderTypes.h:461
float AsFloatScalar() const
Definition ShaderValue.cpp:479
FMemoryImageValue AsMemoryImage() const
Definition ShaderValue.cpp:418
FValue(const FLinearColor &Value)
Definition ShaderTypes.h:433
bool AsBoolScalar() const
Definition ShaderValue.cpp:486
int32 GetNumComponents() const
Definition ShaderTypes.h:496
Definition ShaderTypes.h:317
T Component[4]
Definition ShaderTypes.h:321
const T & operator[](int32 i) const
Definition ShaderTypes.h:319
T & operator[](int32 i)
Definition ShaderTypes.h:318
Definition ShaderTypes.h:343
double Double
Definition ShaderTypes.h:356
FValueComponent(int32 InValue)
Definition ShaderTypes.h:347
FValueComponent(bool InValue)
Definition ShaderTypes.h:348
float Float
Definition ShaderTypes.h:357
FValueComponent(float InValue)
Definition ShaderTypes.h:345
bool AsBool() const
Definition ShaderTypes.h:351
uint8 Bool
Definition ShaderTypes.h:359
FValueComponent()
Definition ShaderTypes.h:344
uint64 Packed
Definition ShaderTypes.h:355
int32 Int
Definition ShaderTypes.h:358
FValueComponent(double InValue)
Definition ShaderTypes.h:346