45#define DECLARE_MATERIALUNIFORMEXPRESSION_TYPE(Name) \
47 static FMaterialUniformExpressionType StaticType; \
48 virtual FMaterialUniformExpressionType* GetType() const { return &StaticType; }
50#define IMPLEMENT_MATERIALUNIFORMEXPRESSION_TYPE(Name) \
51 FMaterialUniformExpressionType Name::StaticType(TEXT(#Name));
109#if WITH_EDITORONLY_DATA
128#if WITH_EDITORONLY_DATA
199 return ParameterInfo.
GetName();
204 return ParameterInfo;
293 OutData.
Write(ConstantValue);
335 OutData.
Write(Value);
376 return ParameterInfo;
381 return ParameterInfo.
GetName();
395 int32 ParameterIndex;
427 return ParameterInfo;
432 return ParameterInfo.
GetName();
450template<
typename TextureType>
478 if (ReferencedTextureCollections.
IsValidIndex(TextureCollectionIndex))
538 return ParameterInfo.
GetName();
543 return ParameterInfo;
558 int32 ParameterIndex;
597 return ParameterName;
1911 switch (TextureProperty)
1938 int8 TextureProperty;
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ESamplerSourceMode
Definition EngineTypes.h:281
EMaterialSamplerType
Definition EngineTypes.h:936
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
EMaterialExposedTextureProperty
Definition MaterialExpressionTextureProperty.h:17
@ MCT_Float2
Definition MaterialValueType.h:22
@ MCT_Float4
Definition MaterialValueType.h:24
@ MCT_Float1
Definition MaterialValueType.h:21
@ MCT_Float
Definition MaterialValueType.h:89
@ MCT_Float3
Definition MaterialValueType.h:23
Definition MaterialShared.h:589
Definition MaterialShared.h:568
Definition MaterialShared.h:544
Definition MaterialUniformExpressions.h:212
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:2031
FGuid ResolveExternalTextureGUID(const FMaterialRenderContext &Context, TOptional< FName > ParameterName=TOptional< FName >()) const
Definition MaterialUniformExpressions.cpp:2042
int32 GetSourceTextureIndex() const
Definition MaterialUniformExpressions.h:222
FGuid ExternalTextureGuid
Definition MaterialUniformExpressions.h:232
int32 SourceTextureIndex
Definition MaterialUniformExpressions.h:230
virtual bool IsConstant() const override
Definition MaterialUniformExpressions.h:219
Definition MaterialUniformExpressions.h:1968
virtual void WriteNumberOpcodes(UE::Shader::FPreshaderData &OutData) const override
Definition MaterialUniformExpressions.cpp:2142
TOptional< FName > ParameterName
Definition MaterialUniformExpressions.h:1983
FMaterialUniformExpressionExternalTextureCoordinateOffset(const FGuid &InGuid)
Definition MaterialUniformExpressions.h:1973
FMaterialUniformExpressionExternalTextureCoordinateOffset()
Definition MaterialUniformExpressions.h:1972
FMaterialUniformExpressionExternalTextureBase Super
Definition MaterialUniformExpressions.h:1980
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:2131
FMaterialUniformExpressionExternalTextureCoordinateOffset(int32 InSourceTextureIndex, TOptional< FName > InParameterName)
Definition MaterialUniformExpressions.h:1974
Definition MaterialUniformExpressions.h:1946
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:2114
FMaterialUniformExpressionExternalTextureBase Super
Definition MaterialUniformExpressions.h:1958
virtual void WriteNumberOpcodes(UE::Shader::FPreshaderData &OutData) const override
Definition MaterialUniformExpressions.cpp:2125
FMaterialUniformExpressionExternalTextureCoordinateScaleRotation()
Definition MaterialUniformExpressions.h:1950
FMaterialUniformExpressionExternalTextureCoordinateScaleRotation(const FGuid &InGuid)
Definition MaterialUniformExpressions.h:1951
FMaterialUniformExpressionExternalTextureCoordinateScaleRotation(int32 InSourceTextureIndex, TOptional< FName > InParameterName)
Definition MaterialUniformExpressions.h:1952
TOptional< FName > ParameterName
Definition MaterialUniformExpressions.h:1961
Definition MaterialUniformExpressions.h:583
FMaterialUniformExpressionExternalTextureParameter()
Definition MaterialUniformExpressions.cpp:2053
virtual void GetExternalTextureParameterInfo(FMaterialExternalTextureParameterInfo &OutParameter) const override
Definition MaterialUniformExpressions.cpp:2061
FName GetParameterName() const
Definition MaterialUniformExpressions.h:595
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:2067
virtual FMaterialUniformExpressionExternalTextureParameter * GetExternalTextureParameterUniformExpression() override
Definition MaterialUniformExpressions.h:593
Definition MaterialUniformExpressions.h:239
virtual class FMaterialUniformExpressionExternalTextureParameter * GetExternalTextureParameterUniformExpression()
Definition MaterialUniformExpressions.h:248
FMaterialUniformExpressionExternalTexture(int32 InSourceTextureIndex=INDEX_NONE)
Definition MaterialUniformExpressions.h:243
FMaterialUniformExpressionExternalTexture(const FGuid &InGuid)
Definition MaterialUniformExpressions.h:244
virtual FMaterialUniformExpressionExternalTexture * GetExternalTextureUniformExpression() override
Definition MaterialUniformExpressions.h:247
virtual void GetExternalTextureParameterInfo(FMaterialExternalTextureParameterInfo &OutParameter) const
Definition MaterialUniformExpressions.cpp:2047
Definition MaterialUniformExpressions.h:565
virtual bool IsConstant() const
Definition MaterialUniformExpressions.h:572
FMaterialUniformExpressionFlipBookTextureParameter()
Definition MaterialUniformExpressions.h:570
Definition MaterialUniformExpressions.h:1990
int32 TextureIndex
Definition MaterialUniformExpressions.h:2012
virtual bool IsConstant() const override
Definition MaterialUniformExpressions.h:2001
FHashedMaterialParameterInfo ParameterInfo
Definition MaterialUniformExpressions.h:2010
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:2170
virtual void WriteNumberOpcodes(UE::Shader::FPreshaderData &OutData) const override
Definition MaterialUniformExpressions.cpp:2181
bool bParameter
Definition MaterialUniformExpressions.h:2008
FMaterialUniformExpressionRuntimeVirtualTextureUniform()
Definition MaterialUniformExpressions.cpp:2148
int32 VectorIndex
Definition MaterialUniformExpressions.h:2014
Definition MaterialUniformExpressions.h:2021
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:2209
virtual bool IsConstant() const override
Definition MaterialUniformExpressions.h:2032
FHashedMaterialParameterInfo ParameterInfo
Definition MaterialUniformExpressions.h:2041
bool bParameter
Definition MaterialUniformExpressions.h:2039
virtual void WriteNumberOpcodes(UE::Shader::FPreshaderData &OutData) const override
Definition MaterialUniformExpressions.cpp:2220
int32 VectorIndex
Definition MaterialUniformExpressions.h:2045
FMaterialUniformExpressionSparseVolumeTextureUniform()
Definition MaterialUniformExpressions.cpp:2187
int32 TextureIndex
Definition MaterialUniformExpressions.h:2043
Definition MaterialUniformExpressions.h:180
FName GetParameterName() const
Definition MaterialUniformExpressions.h:197
virtual bool IsConstant() const override
Definition MaterialUniformExpressions.cpp:2003
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:1992
virtual void GetTextureCollectionParameterInfo(FMaterialTextureCollectionParameterInfo &OutParameter) const override
Definition MaterialUniformExpressions.cpp:2013
virtual FMaterialUniformExpressionTextureCollectionParameter * GetTextureCollectionParameterUniformExpression() final
Definition MaterialUniformExpressions.cpp:2008
const FHashedMaterialParameterInfo & GetParameterInfo() const
Definition MaterialUniformExpressions.h:202
Definition MaterialUniformExpressions.h:139
bool IsVirtualCollection() const
Definition MaterialUniformExpressions.h:168
int32 GetTextureCollectionTypePrefixIndex() const
Definition MaterialUniformExpressions.h:163
void SetTextureCollectionTypePrefixIndex(uint32 InPrefix)
Definition MaterialUniformExpressions.h:158
int32 GetTextureCollectionIndex() const
Definition MaterialUniformExpressions.h:153
int32 TextureCollectionTypePrefixIndex
Definition MaterialUniformExpressions.h:175
virtual void GetTextureCollectionParameterInfo(FMaterialTextureCollectionParameterInfo &OutParameter) const
Definition MaterialUniformExpressions.cpp:1978
int32 TextureCollectionIndex
Definition MaterialUniformExpressions.h:174
virtual class FMaterialUniformExpressionTextureCollection * GetTextureCollectionUniformExpression() final
Definition MaterialUniformExpressions.h:146
virtual class FMaterialUniformExpressionTextureCollectionParameter * GetTextureCollectionParameterUniformExpression()
Definition MaterialUniformExpressions.cpp:1973
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.cpp:1962
bool bIsVirtualCollection
Definition MaterialUniformExpressions.h:176
Definition MaterialUniformExpressions.h:500
FMaterialUniformExpressionTextureParameter(const FMaterialParameterInfo &InParameterInfo, int32 InTextureIndex, EMaterialSamplerType InSamplerType)
Definition MaterialUniformExpressions.h:517
FMaterialUniformExpressionTextureParameter(const FMaterialParameterInfo &InParameterInfo, int32 InTextureIndex, int32 InTextureLayerIndex, int32 InPageTableLayerIndex, EMaterialSamplerType InSamplerType)
Definition MaterialUniformExpressions.h:512
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const
Definition MaterialUniformExpressions.h:546
FName GetParameterName() const
Definition MaterialUniformExpressions.h:536
FMaterialUniformExpressionTextureParameter()
Definition MaterialUniformExpressions.h:505
FMaterialUniformExpressionTextureParameter(const FMaterialParameterInfo &InParameterInfo, int32 InTextureIndex, EMaterialSamplerType InSamplerType, ESamplerSourceMode InSourceMode, bool InVirtualTexture)
Definition MaterialUniformExpressions.h:507
virtual bool IsConstant() const
Definition MaterialUniformExpressions.h:531
virtual void GetTextureParameterInfo(FMaterialTextureParameterInfo &OutParameter) const override
Definition MaterialUniformExpressions.h:525
virtual class FMaterialUniformExpressionTextureParameter * GetTextureParameterUniformExpression() override
Definition MaterialUniformExpressions.h:523
const FHashedMaterialParameterInfo & GetParameterInfo() const
Definition MaterialUniformExpressions.h:541
Definition MaterialUniformExpressions.h:1894
FMaterialUniformExpressionTextureProperty()
Definition MaterialUniformExpressions.h:1898
virtual void WriteNumberOpcodes(UE::Shader::FPreshaderData &OutData) const override
Definition MaterialUniformExpressions.h:1905
FMaterialUniformExpressionTextureProperty(FMaterialUniformExpressionTexture *InTextureExpression, EMaterialExposedTextureProperty InTextureProperty)
Definition MaterialUniformExpressions.h:1899
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const override
Definition MaterialUniformExpressions.h:1919
Definition MaterialUniformExpressions.h:85
int32 GetMaterialCacheTagIndex() const
Definition MaterialUniformExpressions.h:104
virtual class FMaterialUniformExpressionTextureParameter * GetTextureParameterUniformExpression()
Definition MaterialUniformExpressions.h:96
virtual void GetTextureParameterInfo(FMaterialTextureParameterInfo &OutParameter) const
Definition MaterialUniformExpressions.cpp:1931
int32 GetTextureLayerIndex() const
Definition MaterialUniformExpressions.h:103
virtual bool IsIdentical(const FMaterialUniformExpression *OtherExpression) const
Definition MaterialUniformExpressions.cpp:1938
int16 TextureLayerIndex
Definition MaterialUniformExpressions.h:123
int32 GetPageTableLayerIndex() const
Definition MaterialUniformExpressions.h:106
FMaterialUniformExpressionTexture()
Definition MaterialUniformExpressions.cpp:1878
bool bVirtualTexture
Definition MaterialUniformExpressions.h:135
int16 PageTableLayerIndex
Definition MaterialUniformExpressions.h:127
int16 MaterialCacheTagIndex
Definition MaterialUniformExpressions.h:125
void SetMaterialCacheTagIndex(uint32 InMaterialCacheTagIndex)
Definition MaterialUniformExpressions.h:107
int32 TextureIndex
Definition MaterialUniformExpressions.h:121
int32 GetTextureIndex() const
Definition MaterialUniformExpressions.h:101
ESamplerSourceMode GetSamplerSource() const
Definition MaterialUniformExpressions.h:115
ESamplerSourceMode SamplerSource
Definition MaterialUniformExpressions.h:133
virtual class FMaterialUniformExpressionTexture * GetTextureUniformExpression()
Definition MaterialUniformExpressions.h:95
Definition MaterialShared.h:2058
Definition NameTypes.h:617
Definition RefCounting.h:252
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
UE_FORCEINLINE_HINT constexpr bool IsValidIndex(SizeType Index) const
Definition ArrayView.h:359
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
Definition Preshader.h:98
FPreshaderData & WriteOpcode(EPreshaderOpcode Op)
Definition Preshader.h:148
FPreshaderData & Write(const T &Value)
Definition Preshader.h:130
Definition TextureCollection.h:47
EPreshaderOpcode
Definition Preshader.h:20
Definition MaterialParameters.h:33
Definition MaterialShared.h:349
Definition MaterialParameters.h:96
FName GetName() const
Definition MaterialParameters.h:123
Definition Optional.h:131
Definition ShaderTypes.h:368
FLinearColor AsLinearColor() const
Definition ShaderValue.cpp:453
FType Type
Definition ShaderTypes.h:526