26#include "Misc/Optional.h"
46#include "MaterialShared.generated.h"
99 class FODSCClientData;
104#define ME_CAPTION_HEIGHT 18
105#define ME_STD_VPADDING 16
106#define ME_STD_HPADDING 32
107#define ME_STD_BORDER 8
108#define ME_STD_THUMBNAIL_SZ 96
109#define ME_PREV_THUMBNAIL_SZ 256
110#define ME_STD_LABEL_PAD 16
111#define ME_STD_TAB_HEIGHT 21
114#define ALLOW_SHADERMAP_DEBUG_DATA (!(UE_BUILD_SHIPPING || (UE_BUILD_TEST && !PLATFORM_DESKTOP)))
117#define UE_CHECK_FMATERIAL_LIFETIME PLATFORM_WINDOWS
142UE_DEPRECATED(5.7,
"Please use AllowDitheredLODTransition with a EShaderPlatform argument")
275 default:
return Type;
288 default:
return Type;
420 if (Lhs.PreallocatedStackTextureIndex != Rhs.PreallocatedStackTextureIndex || Lhs.NumLayers != Rhs.NumLayers)
424 for (
uint32 i = 0u; i < Lhs.NumLayers; ++i)
426 if (Lhs.LayerUniformExpressionIndices[i] != Rhs.LayerUniformExpressionIndices[i])
454 return Lhs.TagGuid != Rhs.TagGuid;
493 return Lhs.OpcodeOffset == Rhs.OpcodeOffset &&
494 Lhs.OpcodeSize == Rhs.OpcodeSize &&
495 Lhs.FieldIndex == Rhs.FieldIndex &&
496 Lhs.NumFields == Rhs.NumFields;
516 return Lhs.ParameterInfo == Rhs.ParameterInfo && Lhs.ParameterType == Rhs.ParameterType && Lhs.DefaultValueOffset == Rhs.DefaultValueOffset;
549 return Lhs.ParameterInfo == Rhs.ParameterInfo && Lhs.TextureIndex == Rhs.TextureIndex && Lhs.SamplerSource == Rhs.SamplerSource && Lhs.VirtualTextureLayerIndex == Rhs.VirtualTextureLayerIndex;
573 return Lhs.ParameterInfo == Rhs.ParameterInfo && Lhs.TextureCollectionIndex == Rhs.TextureCollectionIndex && Lhs.bIsVirtualCollection == Rhs.bIsVirtualCollection;
594 return Lhs.SourceTextureIndex == Rhs.SourceTextureIndex && Lhs.ExternalTextureGuid == Rhs.ExternalTextureGuid && Lhs.ParameterName == Rhs.ParameterName;
620 struct FNumericParameterKey
625 friend inline bool operator==(
const FNumericParameterKey& Lhs,
const FNumericParameterKey& Rhs)
627 return Lhs.ParameterInfo == Rhs.ParameterInfo && Lhs.ParameterType == Rhs.ParameterType;
629 friend inline bool operator!=(
const FNumericParameterKey& Lhs,
const FNumericParameterKey& Rhs)
631 return !operator==(Lhs, Rhs);
633 friend inline uint32 GetTypeHash(
const FNumericParameterKey&
Value)
641 struct FTextureParameterKey
646 friend inline bool operator==(
const FTextureParameterKey& Lhs,
const FTextureParameterKey& Rhs)
648 return Lhs.ParameterInfo == Rhs.ParameterInfo && Lhs.TextureIndex == Rhs.TextureIndex;
650 friend inline bool operator!=(
const FTextureParameterKey& Lhs,
const FTextureParameterKey& Rhs)
652 return !operator==(Lhs, Rhs);
654 friend inline uint32 GetTypeHash(
const FTextureParameterKey&
Value)
813 EstimatedNumTextureSamplesVS(0),
814 EstimatedNumTextureSamplesPS(0),
827 bUsesWorldPositionOffset(
false),
828 bUsesTemporalResponsiveness(
false),
829 bUsesMotionVectorWorldOffset(
false),
830 bUsesGlobalDistanceField(
false),
831 bUsesPixelDepthOffset(
false),
832 bUsesDistanceCullFade(
false),
834 bUsesVertexInterpolator(
false),
836 bUsesAnisotropy(
false),
837 bIsLightFunctionAtlasCompatible(
false),
838 bUsesDisplacement(
false),
839 bUsedWithNeuralNetworks(
false),
840 bUsesCustomizedUVs(
false)
862 int32 FindOrAddUserSceneTexture(
FName UserSceneTexture);
1277 FName PreferredShaderCodeFormat;
1296 , SubstrateCompilationConfig()
1323 return (CookedShaderMapIdHash !=
FSHAHash());
1330 return !Ref.IsCookedId() ? Ref.BaseMaterialId.A : (*(
uint32*)&Ref.CookedShaderMapIdHash.Hash[0]);
1333 return *(
uint32*)&Ref.CookedShaderMapIdHash.Hash[0];
1339 return sizeof(*this)
1379 bool IsContentValid()
const;
1427 const FSHAHash& MaterialShaderMapHash,
1463 uint32 NumShaders = Super::GetNumShaders();
1484 struct FProjectMeshShaderMapToKey
1493 void RemoveMeshShaderMap(
const FHashedName& VertexFactoryTypeName);
1547 virtual bool IsReady()
const = 0;
1570 FShader*
Shader = GetContent()->GetShader(ShaderType, PermutationId);
1638#if !UE_BUILD_SHIPPING
1705 bool IsFromODSC()
const {
return bIsFromODSC; }
1709#if WITH_EDITORONLY_DATA
1710 const TCHAR* GetFriendlyName()
const {
return *GetContent()->FriendlyName; }
1711 const TCHAR* GetDebugDescription()
const {
return *GetContent()->DebugDescription; }
1712 const TCHAR* GetMaterialPath()
const {
return *GetContent()->MaterialPath; }
1724 bool UsesDisplacement()
const {
return GetContent()->MaterialCompilationOutput.bUsesDisplacement; }
1725 bool NeedsGBuffer()
const {
return GetContent()->MaterialCompilationOutput.NeedsGBuffer(); }
1726 bool UsesEyeAdaptation()
const {
return GetContent()->MaterialCompilationOutput.bUsesEyeAdaptation; }
1732 bool UsesAnisotropy()
const {
return GetContent()->MaterialCompilationOutput.bUsesAnisotropy; }
1755 uint32 GetNumPreshaders()
const {
return GetContent()->MaterialCompilationOutput.UniformExpressionSet.UniformPreshaders.Num(); }
1772 const bool bValid = bCompiledSuccessfully && GetFrozenContentSize() > 0u;
1775 const bool bValid = GetFrozenContentSize() > 0u;
1777 checkf(bValid || !
bFailOnInvalid,
TEXT(
"FMaterialShaderMap %s invalid for rendering: bCompilationFinalized: %i, bCompiledSuccessfully: %i, bDeletedThroughDeferredCleanup: %i, FrozenContentSize: %d"), GetFriendlyName(),
1778 bCompilationFinalized, bCompiledSuccessfully, bDeletedThroughDeferredCleanup ? 1 : 0, GetFrozenContentSize());
1790 NumShaders = GetContent()->GetNumShaders();
1817 void PostFinalizeContent()
override;
1828#if ALLOW_SHADERMAP_DEBUG_DATA
1848#if ALLOW_SHADERMAP_DEBUG_DATA
1863 mutable int32 NumRefs;
1866 bool bDeletedThroughDeferredCleanup;
1875 uint32 bCompilationFinalized : 1;
1877 uint32 bCompiledSuccessfully : 1;
1880 uint32 bIsPersistent : 1;
1889#if WITH_EDITOR && ALLOW_SHADERMAP_DEBUG_DATA
1901 friend class UE::Cook::FODSCClientData;
1955 MaterialAttributeID(
FGuid(0,0,0,0)),
1956 bCompilingPreviousFrameKey(
false)
1969 return X.Expression ==
Y.Expression &&
X.OutputIndex ==
Y.OutputIndex &&
X.MaterialAttributeID ==
Y.MaterialAttributeID &&
X.bCompilingPreviousFrameKey ==
Y.bCompilingPreviousFrameKey;
1988 ClearSharedFunctionStates();
2008 SharedFunctionStates.Empty();
2013 ExpressionStack.Empty();
2014 ExpressionCodeMap.Empty();
2015 ClearSharedFunctionStates();
2034UE_DEPRECATED(5.8,
"Should call UMaterialExpression::IsAllowedIn on the Class' DefaultObject")
2060#if UE_CHECK_FMATERIAL_LIFETIME
2079 template<
typename TMaterial>
2097 template<
typename TMaterial>
2105 Material->PrepareDestroy_GameThread();
2118 RenderingThreadShaderMap(
NULL),
2124 bContainsInlineShaders(
false),
2125 bLoadedCookedShaderMapId(
false),
2126 bAllowPixelDepthOffset(
true)
2128#if UE_CHECK_FMATERIAL_LIFETIME
2142 ENGINE_API virtual bool PrepareDestroy_GameThread();
2147 ENGINE_API virtual void PrepareDestroy_RenderThread();
2153 UE_DEPRECATED(5.7,
"Call CacheShaders without EShaderPlatform as its now cached inside the FMaterial")
2171 UE_DEPRECATED(5.7,
"Call BeginCacheShaders without EShaderPlatform as its now cached inside the FMaterial")
2210 UE_DEPRECATED(5.7,
"Call CollectPSOs without ERHIFeatureLevel::Type as its now cached inside the FMaterial")
2222 void ClearPrecachedPSORequestIDs();
2248 void RegisterInlineShaderMap(
bool bLoadingCooked);
2251 void ReleaseShaderMap();
2254 void DiscardShaderMap();
2271 BuildShaderMapId(OutId, TargetPlatform);
2275 UE_DEPRECATED(5.7,
"Call BuildShaderMapId without EShaderPlatform as its now cached inside the FMaterial")
2279 BuildShaderMapId(OutId, TargetPlatform, IncludeFlags);
2285 BuildShaderMapIdOverride({
2286 .OutId = &OutId, .Platform = GetShaderPlatform(), .TargetPlatform = TargetPlatform, .IncludeFlags = IncludeFlags }
2294 ENGINE_API virtual void BuildShaderMapIdOverride(
const FBuildShaderMapIdArgs& Args)
const;
2298#if WITH_EDITORONLY_DATA
2299 UE_DEPRECATED(5.7,
"Call GetStaticParameterSet without EShaderPlatform as its now cached inside the FMaterial")
2374 UE_DEPRECATED(5.7,
"This is not longer valid since even when not plugged in, the default value on the root node can be used")
2375 virtual bool GetRootNodeOverridesDefaultRefraction() const = 0;
2377 virtual bool IsShadingModelFromMaterialExpression() const = 0;
2395 UE_DEPRECATED(5.7,
"Call IsDualBlendingEnabled without EShaderPlatform as its now cached inside the FMaterial")
2406 virtual bool IsSky()
const {
return false; }
2418 UE_DEPRECATED(5.7,
"Call GetUniqueAssetName without EShaderPlatform as its now cached inside the FMaterial")
2423 UE_DEPRECATED(5.7,
"Call GetUniqueAssetName without EShaderPlatform as its now cached inside the FMaterial")
2473 FName GetOwnerFName()
const;
2511 ENGINE_API virtual bool IsUsingNewHLSLGenerator()
const;
2525 ENGINE_API bool HasValidGameThreadShaderMap()
const;
2540 return QualityLevel;
2582 ENGINE_API bool RequiresSceneColorCopy_GameThread()
const;
2583 ENGINE_API bool RequiresSceneColorCopy_RenderThread()
const;
2587 ENGINE_API bool UsesGlobalDistanceField_GameThread()
const;
2590 ENGINE_API bool MaterialUsesWorldPositionOffset_RenderThread()
const;
2591 ENGINE_API bool MaterialUsesWorldPositionOffset_GameThread()
const;
2594 ENGINE_API bool MaterialUsesDisplacement_RenderThread()
const;
2595 ENGINE_API bool MaterialUsesDisplacement_GameThread()
const;
2598 ENGINE_API bool MaterialUsesPixelDepthOffset_RenderThread()
const;
2599 ENGINE_API bool MaterialUsesPixelDepthOffset_GameThread()
const;
2602 ENGINE_API bool MaterialUsesTemporalResponsiveness_RenderThread()
const;
2603 ENGINE_API bool MaterialUsesTemporalResponsiveness_GameThread()
const;
2606 ENGINE_API bool MaterialUsesMotionVectorWorldOffset_RenderThread()
const;
2607 ENGINE_API bool MaterialUsesMotionVectorWorldOffset_GameThread()
const;
2610 ENGINE_API bool MaterialModifiesMeshPosition_RenderThread()
const;
2611 ENGINE_API bool MaterialModifiesMeshPosition_GameThread()
const;
2614 ENGINE_API bool MaterialUsesDistanceCullFade_GameThread()
const;
2617 ENGINE_API bool MaterialUsesSceneDepthLookup_RenderThread()
const;
2618 ENGINE_API bool MaterialUsesSceneDepthLookup_GameThread()
const;
2624 ENGINE_API bool MaterialMayModifyMeshPosition()
const;
2627 ENGINE_API uint8 GetRuntimeVirtualTextureOutputAttibuteMask_GameThread()
const;
2628 ENGINE_API uint8 GetRuntimeVirtualTextureOutputAttibuteMask_RenderThread()
const;
2630 ENGINE_API bool MaterialUsesAnisotropy_GameThread()
const;
2631 ENGINE_API bool MaterialUsesAnisotropy_RenderThread()
const;
2634 ENGINE_API bool MaterialIsLightFunctionAtlasCompatible_GameThread()
const;
2635 ENGINE_API bool MaterialIsLightFunctionAtlasCompatible_RenderThread()
const;
2639 ENGINE_API uint8 MaterialGetSubstrateMaterialType_RenderThread()
const;
2643 ENGINE_API uint8 MaterialGetSubstrateClosureCount_RenderThread()
const;
2647 ENGINE_API uint8 MaterialGetSubstrateUintPerPixel_RenderThread()
const;
2660 return GameThreadShaderMap;
2665 ENGINE_API void UpdateInlineShaderMapIsComplete();
2672 return bGameThreadShaderMapIsComplete.load(std::memory_order_relaxed);
2678 return bRenderingThreadShaderMapIsComplete.load(std::memory_order_relaxed);
2692 template<
typename ShaderType>
2698 template <
typename ShaderType>
2710 UE_DEPRECATED(5.7,
"Call ShouldCacheShaders without EShaderPlatform as its now cached inside the FMaterial")
2744 UE_DEPRECATED(5.7,
"Call SetupExtraCompilationSettings without EShaderPlatform as its now cached inside the FMaterial")
2749 UE_DEPRECATED(5.7,
"Call SaveShaderStableKeys without EShaderPlatform as its now cached inside the FMaterial")
2762 UE_DEPRECATED(5.7,
"Call GetShaderTypes without EShaderPlatform as its now cached inside the FMaterial")
2796#if UE_CHECK_FMATERIAL_LIFETIME
2804#if WITH_EDITORONLY_DATA
2837 virtual bool CheckInValidStateForCompilation(
class FMaterialCompiler* Compiler)
const {
return true; }
2854 UE_DEPRECATED(5.7,
"Please use SetQualityLevelProperties with EShaderPlatform argument and not ERHIFeatureLevel::Type")
2883 UE_DEPRECATED(5.7,
"Call GetDependentShaderAndVFTypes without EShaderPlatform as its now cached inside the FMaterial")
2887 bool GetLoadedCookedShaderMapId()
const {
return bLoadedCookedShaderMapId; }
2907 void ReleaseRenderThreadCompilingShaderMap();
2931 FString DebugGroupName;
2937 mutable std::atomic<int8> RenderingThreadShaderMapSubmittedPriority { -1 };
2991 uint32 bContainsInlineShaders : 1;
2992 uint32 bLoadedCookedShaderMapId : 1;
2994 uint32 bAllowPixelDepthOffset : 1;
2996#if UE_CHECK_FMATERIAL_LIFETIME
3002 std::atomic<bool> bGameThreadShaderMapIsComplete{
false };
3003 std::atomic<bool> bRenderingThreadShaderMapIsComplete{
false };
3066 friend class FMaterialHLSLErrorHandler;
3067 friend class UE::Cook::FODSCClientData;
3103 ENGINE_API virtual FString GetMaterialUsageDescription()
const override;
3107 ENGINE_API virtual void BuildShaderMapIdOverride(
const FBuildShaderMapIdArgs& Args)
const override;
3109#if WITH_EDITORONLY_DATA
3117 ENGINE_API virtual bool IsTwoSided()
const override;
3118 ENGINE_API virtual bool IsThinSurface()
const override;
3119 ENGINE_API virtual bool IsDitheredLODTransition()
const override;
3120 ENGINE_API virtual bool IsTranslucencyWritingCustomDepth()
const override;
3121 ENGINE_API virtual bool IsTranslucencyWritingVelocity()
const override;
3122 ENGINE_API virtual bool IsTranslucencyVelocityFromDepth()
const override;
3123 ENGINE_API virtual bool IsTranslucencyWritingFrontLayerTransparency()
const override;
3124 ENGINE_API virtual bool IsTangentSpaceNormal()
const override;
3125 ENGINE_API virtual bool ShouldGenerateSphericalParticleNormals()
const override;
3126 ENGINE_API virtual bool ShouldDisableDepthTest()
const override;
3127 ENGINE_API virtual bool ShouldWriteOnlyAlpha()
const override;
3128 ENGINE_API virtual bool ShouldEnableResponsiveAA()
const override;
3129 ENGINE_API virtual bool ShouldDoSSR()
const override;
3130 ENGINE_API virtual bool ShouldDoContactShadows()
const override;
3131 ENGINE_API virtual bool HasPixelAnimation()
const override;
3132 ENGINE_API virtual bool UsesTemporalResponsiveness()
const override;
3133 ENGINE_API virtual bool UsesMotionVectorWorldOffset()
const override;
3134 ENGINE_API virtual bool IsLightFunction()
const override;
3135 ENGINE_API virtual bool IsUsedWithEditorCompositing()
const override;
3136 ENGINE_API virtual bool IsDeferredDecal()
const override;
3137 ENGINE_API virtual bool IsVolumetricPrimitive()
const override;
3138 ENGINE_API virtual bool IsWireframe()
const override;
3139 ENGINE_API virtual bool IsVariableRateShadingAllowed()
const override;
3141 ENGINE_API virtual bool IsUIMaterial()
const override;
3142 ENGINE_API virtual bool IsPostProcessMaterial()
const override;
3143 ENGINE_API virtual bool IsSpecialEngineMaterial()
const override;
3144 ENGINE_API virtual bool IsUsedWithSkeletalMesh()
const override;
3145 ENGINE_API virtual bool IsUsedWithLandscape()
const override;
3146 ENGINE_API virtual bool IsUsedWithParticleSystem()
const override;
3147 ENGINE_API virtual bool IsUsedWithParticleSprites()
const override;
3148 ENGINE_API virtual bool IsUsedWithBeamTrails()
const override;
3149 ENGINE_API virtual bool IsUsedWithMeshParticles()
const override;
3150 ENGINE_API virtual bool IsUsedWithNiagaraSprites()
const override;
3151 ENGINE_API virtual bool IsUsedWithNiagaraRibbons()
const override;
3152 ENGINE_API virtual bool IsUsedWithNiagaraMeshParticles()
const override;
3153 ENGINE_API virtual bool IsUsedWithStaticLighting()
const override;
3154 ENGINE_API virtual bool IsUsedWithMorphTargets()
const override;
3155 ENGINE_API virtual bool IsUsedWithSplineMeshes()
const override;
3156 ENGINE_API virtual bool IsUsedWithInstancedStaticMeshes()
const override;
3157 ENGINE_API virtual bool IsUsedWithGeometryCollections()
const override;
3158 ENGINE_API virtual bool IsUsedWithAPEXCloth()
const override;
3159 ENGINE_API virtual bool IsUsedWithGeometryCache()
const override;
3160 ENGINE_API virtual bool IsUsedWithWater()
const override;
3161 ENGINE_API virtual bool IsUsedWithHairStrands()
const override;
3162 ENGINE_API virtual bool IsUsedWithLidarPointCloud()
const override;
3163 ENGINE_API virtual bool IsUsedWithVirtualHeightfieldMesh()
const override;
3164 ENGINE_API virtual bool IsUsedWithNeuralNetworks()
const override;
3165 ENGINE_API virtual bool IsUsedWithNanite()
const override;
3166 ENGINE_API virtual bool IsUsedWithVoxels()
const override;
3167 ENGINE_API virtual bool IsUsedWithVolumetricCloud()
const override;
3168 ENGINE_API virtual bool IsUsedWithHeterogeneousVolumes()
const override;
3169 ENGINE_API virtual bool IsUsedWithStaticMesh()
const override;
3170 ENGINE_API virtual bool SamplesMaterialCache()
const override;
3171 ENGINE_API virtual bool HasMaterialCacheOutput()
const override;
3172 ENGINE_API virtual bool IsFullyRough()
const override;
3173 ENGINE_API virtual bool GetForceCompatibleWithLightFunctionAtlas()
const override;
3174 ENGINE_API virtual bool UseNormalCurvatureToRoughness()
const override;
3176 ENGINE_API virtual bool IsUsingAlphaToCoverage()
const override;
3177 ENGINE_API virtual bool IsUsingPreintegratedGFForSimpleIBL()
const override;
3178 ENGINE_API virtual bool IsUsingHQForwardReflections()
const override;
3179 ENGINE_API virtual bool GetForwardBlendsSkyLightCubemaps()
const override;
3180 ENGINE_API virtual bool IsUsingPlanarForwardReflections()
const override;
3181 ENGINE_API virtual bool IsNonmetal()
const override;
3182 ENGINE_API virtual bool UseLmDirectionality()
const override;
3185 UE_DEPRECATED(5.7,
"This is not longer valid since even when not plugged in, the default value on the root node can be used")
3272 ENGINE_API virtual bool IsUsingNewHLSLGenerator()
const override;
3276 ENGINE_API virtual FString GetFullPath()
const override;
3287 ENGINE_API virtual bool GetAllowDevelopmentShaderCompile()
const override;
3307#if WITH_EDITORONLY_DATA
3313 ENGINE_API virtual bool HasVertexPositionOffsetConnected()
const override;
3314 ENGINE_API virtual bool HasPixelDepthOffsetConnected()
const override;
3317 ENGINE_API virtual FString GetBaseMaterialPathName()
const override;
3318 ENGINE_API virtual FString GetDebugName()
const override;
3338 bool bSyncWithRenderingThread;
3348 ReregisterComponents = 0x1,
3354 SyncWithRenderingThread = 0x2,
3356 RecreateRenderStates = 0x4,
3358 Default = RecreateRenderStates | SyncWithRenderingThread,
3387#if WITH_EDITORONLY_DATA
3405 Ar <<
Loc.FeatureLevel;
3406 Ar <<
Loc.QualityLevel;
3430 Locs.AddUninitialized();
3431 int64 ResourceOffset = this->Tell();
3450 void SerializeToParentArchive();
3463 Ar->BeginSerializingMaterialResource();
3468 Ar->EndSerializingMaterialResource(Resource);
3485 const TCHAR* Filename,
3499 return InnerArchive.Tell() - OffsetToFirstResource;
3504 InnerArchive.Seek(OffsetToFirstResource +
InPos);
3513 int64 OffsetToFirstResource;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define NULL
Definition oodle2base.h:134
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
bool LoadFromCompactBinary(FCbFieldView Field, FAssetDependency &Dependency)
Definition AssetRegistry.cpp:10420
#define WITH_EDITOR
Definition Build.h:67
bool bSuccess
Definition ConvexDecomposition3.cpp:819
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FORCEINLINE void CopyAssignItems(ElementType *Dest, const ElementType *Source, SizeType Count)
Definition MemoryOps.h:137
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
D3D12_DESCRIPTOR_HEAP_TYPE Translate(ERHIDescriptorHeapType InHeapType)
Definition D3D12Descriptors.h:19
ERefractionMode
Definition EngineTypes.h:359
EMaterialFloatPrecisionMode
Definition EngineTypes.h:266
EMaterialShadingRate
Definition EngineTypes.h:981
EBlendMode
Definition EngineTypes.h:245
ERefractionCoverageMode
Definition EngineTypes.h:398
ETranslucencyLightingMode
Definition EngineTypes.h:314
EPixelDepthOffsetMode
Definition EngineTypes.h:416
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
return true
Definition ExternalRpcRegistry.cpp:601
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
EMaterialDomain
Definition MaterialDomain.h:13
EMaterialKeyInclude
Definition MaterialKeyIncludeEnum.h:14
EMaterialParameterType
Definition MaterialParameters.h:187
ESceneTextureId
Definition MaterialSceneTextureId.h:13
@ PPI_UserSceneTexture0
Definition MaterialSceneTextureId.h:80
EMaterialShaderPrecompileMode
Definition MaterialShaderPrecompileMode.h:7
void DumpMaterialStats(EShaderPlatform Platform)
Definition MaterialShader.cpp:4159
UE::Shader::FType GetShaderValueType(EMaterialParameterType Type)
Definition MaterialShared.cpp:5654
bool ShouldIncludeMaterialInDefaultOpaquePass(const FMaterial &Material)
Definition MaterialShared.h:3535
ENGINE_API bool DoesMaterialUseTexture(const UMaterialInterface *Material, const UTexture *CheckTexture)
Definition MaterialInterface.cpp:1455
ECompiledMaterialProperty
Definition MaterialShared.h:1920
@ CompiledMP_EmissiveColorCS
Definition MaterialShared.h:1921
@ CompiledMP_PrevWorldPositionOffset
Definition MaterialShared.h:1922
@ CompiledMP_MAX
Definition MaterialShared.h:1923
EMaterialValueType MakeNonLWCType(EMaterialValueType Type)
Definition MaterialShared.h:267
bool IsMaterialValueType(EMaterialValueType InType, EMaterialValueType InCompare)
Definition MaterialShared.h:235
EMaterialCommonBasis
Definition MaterialShared.h:312
@ MCB_Instance
Definition MaterialShared.h:320
@ MCB_Tangent
Definition MaterialShared.h:313
@ MCB_View
Definition MaterialShared.h:317
@ MCB_FirstPerson
Definition MaterialShared.h:322
@ MCB_Camera
Definition MaterialShared.h:318
@ MCB_TranslatedWorld
Definition MaterialShared.h:315
@ MCB_Local
Definition MaterialShared.h:314
@ MCB_MeshParticle
Definition MaterialShared.h:319
@ MCB_World
Definition MaterialShared.h:316
@ MCB_PeriodicWorld
Definition MaterialShared.h:321
@ MCB_MAX
Definition MaterialShared.h:323
ENGINE_API bool IsUsingNewMaterialTranslatorPrototype()
Definition MaterialShared.cpp:112
ENGINE_API bool IsMaskedBlendMode(EBlendMode BlendMode)
ENGINE_API bool CanConnectMaterialValueTypes(const uint32 InputType, const uint32 OutputType)
Definition MaterialExpressions.cpp:531
uint32 GetUseSubsurfaceProfileShadingModelMask()
Definition MaterialShared.h:137
ENGINE_API void GetMaterialValueTypeDescriptions(const uint32 MaterialValueType, TArray< FText > &OutDescriptions)
Definition MaterialExpressions.cpp:450
uint32 GetNumComponents(EMaterialValueType Type)
Definition MaterialShared.h:211
ELWCFunctionKind
Definition MaterialShared.h:294
bool IsSubsurfaceShadingModel(FMaterialShadingModelField ShadingModel)
Definition MaterialShared.h:125
EDeferredParamStrictness
Definition MaterialShared.h:328
bool IsUIntNumericType(EMaterialValueType InType)
Definition MaterialShared.h:250
ENGINE_API bool IsAdditiveBlendMode(EBlendMode BlendMode)
bool IsLWCType(EMaterialValueType InType)
Definition MaterialShared.h:240
bool IsPrimitiveType(EMaterialValueType InType)
Definition MaterialShared.h:261
bool IsNumericType(EMaterialValueType InType)
Definition MaterialShared.h:255
FName GetMaterialQualityLevelFName(EMaterialQualityLevel::Type InMaterialQualityLevel)
Definition MaterialShared.cpp:253
FArchive & operator<<(FArchive &Ar, FMaterialResourceLocOnDisk &Loc)
Definition MaterialShared.h:3402
bool IsFloatNumericType(EMaterialValueType InType)
Definition MaterialShared.h:245
ENGINE_API bool IsOpaqueBlendMode(EBlendMode BlendMode)
ENGINE_API bool IsModulateBlendMode(EBlendMode BlendMode)
ECompiledPartialDerivativeVariation
Definition MaterialShared.h:1932
@ CompiledPDV_MAX
Definition MaterialShared.h:1935
@ CompiledPDV_Analytic
Definition MaterialShared.h:1934
@ CompiledPDV_FiniteDifferences
Definition MaterialShared.h:1933
EMaterialValueType MakeLWCType(EMaterialValueType Type)
Definition MaterialShared.h:279
ENGINE_API void ConvertToMultilineToolTip(const FString &InToolTip, const int32 TargetLineLength, TArray< FString > &OutToolTip)
Definition MaterialExpressions.cpp:413
ENGINE_API bool IsTranslucentBlendMode(EBlendMode BlendMode)
bool UseSubsurfaceProfile(FMaterialShadingModelField ShadingModel)
Definition MaterialShared.h:132
ENGINE_API bool IsOpaqueOrMaskedBlendMode(EBlendMode BlendMode)
ENGINE_API bool AllowDitheredLODTransition(ERHIFeatureLevel::Type FeatureLevel)
Definition MaterialShared.cpp:220
void GetMaterialQualityLevelName(EMaterialQualityLevel::Type InMaterialQualityLevel, FString &OutName)
Definition MaterialShared.cpp:247
ENGINE_API bool IsAlphaHoldoutBlendMode(EBlendMode BlendMode)
ENGINE_API bool IsAllowedExpressionType(const UClass *Class, const bool bMaterialFunction)
Definition MaterialExpressions.cpp:405
constexpr uint32 NumMaterialTextureParameterTypes
Definition MaterialShared.h:541
ENGINE_API bool IsTranslucentOnlyBlendMode(EBlendMode BlendMode)
EMaterialTranslateValidationFlags
Definition MaterialShared.h:1906
@ Strict_RuntimeVirtualTexture
ENGINE_API uint8 GetRayTracingMaskFromMaterial(const EBlendMode BlendMode)
EMaterialTextureParameterType
Definition MaterialShared.h:530
ENGINE_API bool IsAlphaCompositeBlendMode(EBlendMode BlendMode)
EMaterialValueType
Definition MaterialValueType.h:15
@ MCT_Float2
Definition MaterialValueType.h:22
@ MCT_UInt
Definition MaterialValueType.h:90
@ MCT_Float4
Definition MaterialValueType.h:24
@ MCT_StaticBool
Definition MaterialValueType.h:35
@ MCT_UInt3
Definition MaterialValueType.h:64
@ MCT_Float1
Definition MaterialValueType.h:21
@ MCT_ShadingModel
Definition MaterialValueType.h:45
@ MCT_LWCType
Definition MaterialValueType.h:91
@ MCT_UInt1
Definition MaterialValueType.h:62
@ MCT_UInt4
Definition MaterialValueType.h:65
@ MCT_LWCVector3
Definition MaterialValueType.h:50
@ MCT_UInt2
Definition MaterialValueType.h:63
@ MCT_Bool
Definition MaterialValueType.h:59
@ MCT_Float
Definition MaterialValueType.h:89
@ MCT_LWCVector2
Definition MaterialValueType.h:49
@ MCT_LWCVector4
Definition MaterialValueType.h:51
@ MCT_Float3
Definition MaterialValueType.h:23
@ MCT_LWCScalar
Definition MaterialValueType.h:48
FInt32Point FIntPoint
Definition MathFwd.h:124
#define LAYOUT_FIELD(T, Name,...)
Definition MemoryLayout.h:471
#define LAYOUT_BITFIELD(T, Name, BitFieldSize,...)
Definition MemoryLayout.h:477
#define LAYOUT_ARRAY_EDITORONLY(T, Name, NumArray,...)
Definition MemoryLayout.h:489
#define LAYOUT_FIELD_INITIALIZED(T, Name, Value,...)
Definition MemoryLayout.h:473
#define LAYOUT_FIELD_EDITORONLY(T, Name,...)
Definition MemoryLayout.h:488
#define DECLARE_TYPE_LAYOUT(T, Interface)
Definition MemoryLayout.h:557
FORCEINLINE FName ScriptNameToName(FScriptName InName)
Definition NameTypes.h:1597
const bool
Definition NetworkReplayStreaming.h:178
#define UENUM(...)
Definition ObjectMacros.h:749
const U & ObjectPtrDecay(const T &Value)
Definition ObjectPtr.h:1744
uint32 FMaterialPSOPrecacheRequestID
Definition ParticleSystem.h:114
EPSOPrecachePriority
Definition PipelineStateCache.h:33
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_NumFrequencies
Definition RHIDefinitions.h:216
uint32 GetMaxTextureSamplers()
Definition RHIGlobals.h:950
EShaderPlatform GetFeatureLevelShaderPlatform_Checked(const FStaticFeatureLevel InFeatureLevel)
Definition RHIGlobals.h:966
ERHIFeatureLevel::Type GMaxRHIFeatureLevel
Definition RHI.cpp:1338
EShaderPlatform GMaxRHIShaderPlatform
Definition RHI.cpp:1335
EMaterialProperty
Definition SceneTypes.h:148
EShaderCompileJobPriority
Definition ShaderCore.h:803
EShaderPermutationFlags
Definition ShaderPermutation.h:19
EShaderPermutationFlags GetShaderPermutationFlags(const FPlatformTypeLayoutParameters &LayoutParams)
Definition Shader.cpp:2934
ESubstrateTileType
Definition SubstrateMaterialShared.h:67
FORCEINLINE ESubstrateTileType GetSubstrateTileTypeFromMaterialType(uint32 InMaterialType)
Definition SubstrateMaterialShared.h:83
ESubstrateBsdfFeature
Definition SubstrateMaterialShared.h:30
CORE_API bool IsInParallelRenderingThread()
Definition ThreadingBase.cpp:301
CORE_API bool IsInParallelGameThread()
Definition ThreadingBase.cpp:207
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
bool(* IsInAsyncLoadingThread)()
Definition ThreadingBase.cpp:357
uint32 PointerHash(const void *Key)
Definition TypeHash.h:91
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
#define VIRTUALTEXTURE_SPACE_MAXLAYERS
Definition VirtualTexturing.h:57
uint32 Offset
Definition VulkanMemory.cpp:4033
if(Failed) console_printf("Failed.\n")
Definition ArchiveProxy.h:19
Definition Archive.h:1208
Definition CompactBinary.h:610
Definition CompactBinaryWriter.h:68
Definition CustomVersion.h:111
Definition RenderDeferredCleanup.h:11
Definition MemoryImage.h:858
Definition MaterialShared.h:806
LAYOUT_FIELD(uint8, UsedPathTracingBufferTextures)
LAYOUT_FIELD(uint32, UsedSceneTextures)
void SetIsSceneTextureUsed(ESceneTextureId TexId)
Definition MaterialShared.h:851
void SetIsDBufferTextureLookupUsed(bool bValue)
Definition MaterialShared.h:873
LAYOUT_FIELD_EDITORONLY(uint16, EstimatedNumTextureSamplesPS)
static uint32 GetGBufferMask()
Definition MaterialShared.h:881
bool RequiresSceneColorCopy() const
Definition MaterialShared.h:878
LAYOUT_FIELD_EDITORONLY(uint16, EstimatedNumTextureSamplesVS)
FMaterialCompilationOutput()
Definition MaterialShared.h:809
void SetIsDBufferTextureUsed(int32 TextureIndex)
Definition MaterialShared.h:872
void SetIsPathTracingBufferTextureUsed(int32 TexId)
Definition MaterialShared.h:875
LAYOUT_FIELD(FUniformExpressionSet, UniformExpressionSet)
bool UsesSceneDepthLookup() const
Definition MaterialShared.h:912
bool UsesVelocitySceneTexture() const
Definition MaterialShared.h:915
bool NeedsGBuffer() const
Definition MaterialShared.h:906
bool IsSceneTextureUsed(ESceneTextureId TexId) const
Definition MaterialShared.h:849
LAYOUT_FIELD(TMemoryImageArray< FScriptName >, UserSceneTextureInputs)
Definition MaterialCompiler.h:109
Definition MaterialShared.h:1943
int32 OutputIndex
Definition MaterialShared.h:1946
FMaterialExpressionKey(UMaterialExpression *InExpression, int32 InOutputIndex, const FGuid &InMaterialAttributeID, bool bInCompilingPreviousFrameKey)
Definition MaterialShared.h:1959
friend bool operator==(const FMaterialExpressionKey &X, const FMaterialExpressionKey &Y)
Definition MaterialShared.h:1967
FMaterialExpressionKey(UMaterialExpression *InExpression, int32 InOutputIndex)
Definition MaterialShared.h:1952
bool bCompilingPreviousFrameKey
Definition MaterialShared.h:1950
FGuid MaterialAttributeID
Definition MaterialShared.h:1948
UMaterialExpression * Expression
Definition MaterialShared.h:1945
friend uint32 GetTypeHash(const FMaterialExpressionKey &ExpressionKey)
Definition MaterialShared.h:1972
Definition MaterialShared.h:589
LAYOUT_FIELD(FGuid, ExternalTextureGuid)
friend bool operator!=(const FMaterialExternalTextureParameterInfo &Lhs, const FMaterialExternalTextureParameterInfo &Rhs)
Definition MaterialShared.h:596
LAYOUT_FIELD(int32, SourceTextureIndex)
bool GetExternalTexture(const FMaterialRenderContext &Context, FTextureRHIRef &OutTextureRHI, FSamplerStateRHIRef &OutSamplerStateRHI) const
Definition MaterialUniformExpressions.cpp:2107
LAYOUT_FIELD(FScriptName, ParameterName)
friend bool operator==(const FMaterialExternalTextureParameterInfo &Lhs, const FMaterialExternalTextureParameterInfo &Rhs)
Definition MaterialShared.h:592
Definition MaterialShared.h:1980
FMaterialFunctionCompileState * FindOrAddSharedFunctionState(FMaterialExpressionKey &ExpressionKey, class UMaterialExpressionMaterialFunctionCall *SharedFunctionCall)
Definition MaterialShared.h:1991
void ClearSharedFunctionStates()
Definition MaterialShared.h:2000
class UMaterialExpressionMaterialFunctionCall * FunctionCall
Definition MaterialShared.h:2018
TArray< FMaterialExpressionKey > ExpressionStack
Definition MaterialShared.h:2021
TMap< FMaterialExpressionKey, int32 > ExpressionCodeMap
Definition MaterialShared.h:2024
void Reset()
Definition MaterialShared.h:2011
~FMaterialFunctionCompileState()
Definition MaterialShared.h:1986
TMap< UMaterialExpression *, int32 > ExecExpressionCodeMap
Definition MaterialShared.h:2026
FMaterialFunctionCompileState(UMaterialExpressionMaterialFunctionCall *InFunctionCall)
Definition MaterialShared.h:1982
Definition MaterialShared.h:510
LAYOUT_FIELD(FHashedMaterialParameterInfo, ParameterInfo)
LAYOUT_FIELD(EMaterialParameterType, ParameterType)
friend bool operator!=(const FMaterialNumericParameterInfo &Lhs, const FMaterialNumericParameterInfo &Rhs)
Definition MaterialShared.h:518
LAYOUT_FIELD(uint32, DefaultValueOffset)
friend bool operator==(const FMaterialNumericParameterInfo &Lhs, const FMaterialNumericParameterInfo &Rhs)
Definition MaterialShared.h:514
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:3411
virtual FString GetArchiveName() const override
Definition MaterialShared.h:3426
FMaterialResourceMemoryWriter(FMaterialResourceMemoryWriter &&)=delete
FMaterialResourceMemoryWriter(const FMaterialResourceMemoryWriter &)=delete
virtual const FCustomVersionContainer & GetCustomVersions() const override
Definition MaterialShared.h:3424
FMaterialResourceMemoryWriter & operator=(FMaterialResourceMemoryWriter &&)=delete
FMaterialResourceMemoryWriter & operator=(const FMaterialResourceMemoryWriter &)=delete
void BeginSerializingMaterialResource()
Definition MaterialShared.h:3428
void EndSerializingMaterialResource(const FMaterialResource &Resource)
Definition MaterialShared.h:3435
Definition MaterialShared.h:3477
virtual void Seek(int64 InPos) override
Definition MaterialShared.h:3502
FMaterialResourceProxyReader & operator=(FMaterialResourceProxyReader &&)=delete
FMaterialResourceProxyReader & operator=(const FMaterialResourceProxyReader &)=delete
virtual FString GetArchiveName() const override
Definition MaterialShared.h:3509
FMaterialResourceProxyReader(FMaterialResourceProxyReader &&)=delete
virtual int64 Tell() override
Definition MaterialShared.h:3497
FMaterialResourceProxyReader(const FMaterialResourceProxyReader &)=delete
Definition MaterialShared.h:3454
FMaterialResourceWriteScope(FMaterialResourceMemoryWriter *InAr, const FMaterialResource &InResource)
Definition MaterialShared.h:3456
~FMaterialResourceWriteScope()
Definition MaterialShared.h:3466
Definition MaterialShared.h:3076
virtual ENGINE_API UMaterialInterface * GetMaterialInterface() const override
Definition MaterialShared.cpp:2303
const UMaterialInstance * GetMaterialInstance() const
Definition MaterialShared.h:3290
TObjectPtr< UMaterialInstance > MaterialInstance
Definition MaterialShared.h:3298
TObjectPtr< UMaterial > Material
Definition MaterialShared.h:3297
void SetMaterial(UMaterial *InMaterial, UMaterialInstance *InInstance, EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type InQualityLevel=EMaterialQualityLevel::Num)
Definition MaterialShared.h:3082
const UMaterial * GetMaterial() const
Definition MaterialShared.h:3289
void SetMaterialInstance(UMaterialInstance *InMaterialInstance)
Definition MaterialShared.h:3292
FMaterialLayersFunctions MaterialLayersFunctions
Definition MaterialShared.h:3300
void SetMaterial(UMaterial *InMaterial)
Definition MaterialShared.h:3291
Definition MaterialShared.h:1452
uint32 GetNumShaderPipelines() const
Definition MaterialShared.h:1471
FMaterialShaderMapContent(EShaderPlatform InPlatform=EShaderPlatform::SP_NumPlatforms)
Definition MaterialShared.h:1458
uint32 GetNumShaders() const
Definition MaterialShared.h:1461
Definition MaterialShared.h:1194
bool operator==(const FMaterialShaderMapId &ReferenceSet) const
Definition MaterialShared.h:1368
FSHAHash CookedShaderMapIdHash
Definition MaterialShared.h:1196
bool IsCookedId() const
Definition MaterialShared.h:1309
FMaterialShaderMapId()
Definition MaterialShared.h:1289
~FMaterialShaderMapId()
Definition MaterialShared.h:1300
bool operator!=(const FMaterialShaderMapId &ReferenceSet) const
Definition MaterialShared.h:1373
ERHIFeatureLevel::Type FeatureLevel
Definition MaterialShared.h:1214
EMaterialQualityLevel::Type QualityLevel
Definition MaterialShared.h:1211
SIZE_T GetSizeBytes() const
Definition MaterialShared.h:1337
EShaderPermutationFlags GetPermutationFlags() const
Definition MaterialShared.h:1381
bool IsValid() const
Definition MaterialShared.h:1318
friend uint32 GetTypeHash(const FMaterialShaderMapId &Ref)
Definition MaterialShared.h:1327
FPlatformTypeLayoutParameters LayoutParams
Definition MaterialShared.h:1287
Definition MaterialShared.h:1518
ESubstrateBsdfFeature GetSubstrateMaterialBsdfFeatures() const
Definition MaterialShared.h:1739
int32 GetRefCount() const
Definition MaterialShared.h:1786
const FSHAHash & GetShaderContentHash() const
Definition MaterialShared.h:1687
uint32 GetNumVirtualTextureStacks() const
Definition MaterialShared.h:1757
const FMeshMaterialShaderMap * GetMeshShaderMap(const FHashedName &VertexFactoryTypeName) const
Definition MaterialShared.h:1683
bool UsesAnisotropy() const
Definition MaterialShared.h:1732
uint8 GetSubstrateClosureCount() const
Definition MaterialShared.h:1737
uint32 GetMaxNumInstructionsForShader(FShaderType *ShaderType) const
Definition MaterialShared.h:1582
bool IsValidForRendering(bool bFailOnInvalid=false) const
Definition MaterialShared.h:1767
const TCHAR * GetDebugDescription() const
Definition MaterialShared.h:1715
bool UsesPixelDepthOffset() const
Definition MaterialShared.h:1728
TShaderRef< ShaderType > GetShader(int32 PermutationId=0) const
Definition MaterialShared.h:1573
FScriptName GetResolutionRelativeToInput() const
Definition MaterialShared.h:1763
const FMaterialShaderMapId & GetShaderMapId() const
Definition MaterialShared.h:1686
const TCHAR * GetMaterialPath() const
Definition MaterialShared.h:1716
FIntPoint GetUserTextureDivisor() const
Definition MaterialShared.h:1762
bool UsesSceneTexture(uint32 TexId) const
Definition MaterialShared.h:1759
bool UsesGlobalDistanceField() const
Definition MaterialShared.h:1720
FScriptName GetUserSceneTextureOutput() const
Definition MaterialShared.h:1761
bool UsesEyeAdaptation() const
Definition MaterialShared.h:1726
ESubstrateTileType GetSubstrateTileType() const
Definition MaterialShared.h:1740
bool UsesDisplacement() const
Definition MaterialShared.h:1724
bool UsesPathTracingBufferTexture(uint32 TexId) const
Definition MaterialShared.h:1765
bool RequiresSceneColorCopy() const
Definition MaterialShared.h:1718
TShaderRef< FShader > GetShader(FShaderType *ShaderType, int32 PermutationId=0) const
Definition MaterialShared.h:1568
bool ModifiesMeshPosition() const
Definition MaterialShared.h:1727
uint8 GetSubstrateUintPerPixel() const
Definition MaterialShared.h:1738
FMeshMaterialShaderMap * AcquireMeshShaderMap(const FHashedName &VertexFactoryTypeName)
Definition MaterialShared.h:1685
bool UsesWorldPositionOffset() const
Definition MaterialShared.h:1721
const FUniformExpressionSet & GetUniformExpressionSet() const
Definition MaterialShared.h:1782
bool IsCompilationFinalized() const
Definition MaterialShared.h:1696
const FRHIUniformBufferLayout * GetUniformBufferLayout() const
Definition MaterialShared.h:1783
bool UsesSceneDepthLookup() const
Definition MaterialShared.h:1729
bool UsesVelocitySceneTexture() const
Definition MaterialShared.h:1730
FMeshMaterialShaderMap * AcquireMeshShaderMap(const FVertexFactoryType *VertexFactoryType)
Definition MaterialShared.h:1684
bool UsesMotionVectorWorldOffset() const
Definition MaterialShared.h:1723
const TCHAR * GetFriendlyName() const
Definition MaterialShared.h:1714
uint8 GetSubstrateMaterialType() const
Definition MaterialShared.h:1736
bool NeedsSceneTextures() const
Definition MaterialShared.h:1719
bool UsesTemporalResponsiveness() const
Definition MaterialShared.h:1722
int32 GetNumRefs() const
Definition MaterialShared.h:1785
bool UsesDistanceCullFade() const
Definition MaterialShared.h:1731
TShaderRef< ShaderType > GetShader(const typename ShaderType::FPermutationDomain &PermutationVector) const
Definition MaterialShared.h:1577
void CountNumShaders(int32 &NumShaders, int32 &NumPipelines) const
Definition MaterialShared.h:1788
uint8 GetRuntimeVirtualTextureOutputAttributeMask() const
Definition MaterialShared.h:1758
const FSubstrateMaterialCompilationOutput & GetSubstrateMaterialCompilationOutput() const
Definition MaterialShared.h:1735
bool CompiledSuccessfully() const
Definition MaterialShared.h:1697
const FMeshMaterialShaderMap * GetMeshShaderMap(const FVertexFactoryType *VertexFactoryType) const
Definition MaterialShared.h:1682
TConstArrayView< FScriptName > GetUserSceneTextureInputs() const
Definition MaterialShared.h:1760
bool IsLightFunctionAtlasCompatible() const
Definition MaterialShared.h:1733
bool NeedsGBuffer() const
Definition MaterialShared.h:1725
Definition MaterialShaderType.h:95
Definition MaterialShader.h:56
Definition MaterialShared.h:568
friend bool operator==(const FMaterialTextureCollectionParameterInfo &Lhs, const FMaterialTextureCollectionParameterInfo &Rhs)
Definition MaterialShared.h:571
ENGINE_API void GetGameThreadTextureCollectionValue(const UMaterialInterface *MaterialInterface, const FMaterial &Material, UTextureCollection *&OutValue) const
Definition MaterialUniformExpressions.cpp:2099
friend bool operator!=(const FMaterialTextureCollectionParameterInfo &Lhs, const FMaterialTextureCollectionParameterInfo &Rhs)
Definition MaterialShared.h:575
LAYOUT_FIELD(FHashedMaterialParameterInfo, ParameterInfo)
LAYOUT_FIELD(int32, TextureCollectionIndex)
void GetTextureCollection(const FMaterialRenderContext &Context, const UTextureCollection *&OutTextureCollection) const
Definition MaterialUniformExpressions.cpp:2094
LAYOUT_FIELD(bool, bIsVirtualCollection)
Definition MaterialShared.h:544
FName GetParameterName() const
Definition MaterialShared.h:556
friend bool operator!=(const FMaterialTextureParameterInfo &Lhs, const FMaterialTextureParameterInfo &Rhs)
Definition MaterialShared.h:551
LAYOUT_FIELD(TEnumAsByte< ESamplerSourceMode >, SamplerSource)
LAYOUT_FIELD_INITIALIZED(int32, TextureIndex, INDEX_NONE)
friend bool operator==(const FMaterialTextureParameterInfo &Lhs, const FMaterialTextureParameterInfo &Rhs)
Definition MaterialShared.h:547
ENGINE_API void GetGameThreadTextureValue(const UMaterialInterface *MaterialInterface, const FMaterial &Material, UTexture *&OutValue) const
Definition MaterialUniformExpressions.cpp:2078
LAYOUT_FIELD(FHashedMaterialParameterInfo, ParameterInfo)
LAYOUT_FIELD_INITIALIZED(uint8, VirtualTextureLayerIndex, 0u)
Definition MaterialUniformExpressions.h:85
Definition MaterialShared.h:3326
const TSet< UMaterialInterface * > & GetUpdatedMaterials() const
Definition MaterialShared.h:3377
Definition MaterialShared.h:383
uint32 GetNumLayers() const
Definition MaterialShared.h:395
bool IsPreallocatedStack() const
Definition MaterialShared.h:402
friend bool operator!=(const FMaterialVirtualTextureStack &Lhs, const FMaterialVirtualTextureStack &Rhs)
Definition MaterialShared.h:434
friend bool operator==(const FMaterialVirtualTextureStack &Lhs, const FMaterialVirtualTextureStack &Rhs)
Definition MaterialShared.h:418
void GetTextureValue(const FMaterialRenderContext &Context, const FUniformExpressionSet &UniformExpressionSet, const USparseVolumeTexture *&OutValue) const
FMaterialVirtualTextureStack()
Definition MaterialShared.cpp:4194
void GetTextureValues(const FMaterialRenderContext &Context, const FUniformExpressionSet &UniformExpressionSet, UTexture const **OutValues) const
Definition MaterialShared.cpp:4241
uint32 SetLayer(int32 LayerIndex, int32 UniformExpressionIndex)
Definition MaterialShared.cpp:4220
uint32 AddLayer()
Definition MaterialShared.cpp:4214
void GetTextureValue(const FMaterialRenderContext &Context, const FUniformExpressionSet &UniformExpressionSet, const URuntimeVirtualTexture *&OutValue) const
Definition MaterialShared.cpp:4257
void Serialize(FArchive &Ar)
Definition MaterialShared.cpp:4273
LAYOUT_ARRAY(int32, LayerUniformExpressionIndices, VIRTUALTEXTURE_SPACE_MAXLAYERS)
LAYOUT_FIELD(uint32, NumLayers)
int32 FindLayer(int32 UniformExpressionIndex) const
Definition MaterialShared.cpp:4229
bool AreLayersFull() const
Definition MaterialShared.h:397
LAYOUT_FIELD(int32, PreallocatedStackTextureIndex)
friend FArchive & operator<<(FArchive &Ar, FMaterialVirtualTextureStack &Stack)
Definition MaterialShared.h:412
Definition MaterialShared.h:2058
virtual bool AllowTranslucentLocalLightShadow() const
Definition MaterialShared.h:2408
virtual bool IsMasked() const =0
virtual bool GetBlendableOutputAlpha() const
Definition MaterialShared.h:2447
virtual bool GetAllowDevelopmentShaderCompile() const
Definition MaterialShared.h:2723
virtual uint32 GetStencilCompare() const
Definition MaterialShared.h:2451
TShaderRef< ShaderType > GetShader(FVertexFactoryType *VertexFactoryType, int32 PermutationId=0, bool bFatalIfMissing=true) const
Definition MaterialShared.h:2699
virtual bool IsUsedWithSplineMeshes() const
Definition MaterialShared.h:2340
virtual void GetShaderTags(TArray< FName > &OutShaderTags) const
Definition MaterialShared.h:2464
virtual bool IsDeferredDecal() const =0
const FStaticFeatureLevel GetFeatureLevel() const
Definition MaterialShared.h:2568
virtual FString GetBaseMaterialPathName() const
Definition MaterialShared.h:2851
virtual bool ShouldEnableResponsiveAA() const
Definition MaterialShared.h:2315
bool GetUsesDynamicParameter() const
Definition MaterialShared.h:2577
virtual bool IsUsedWithHairStrands() const
Definition MaterialShared.h:2353
virtual bool IsUsedWithAPEXCloth() const
Definition MaterialShared.h:2343
void BuildShaderMapId(FMaterialShaderMapId &OutId, const ITargetPlatform *TargetPlatform, EMaterialKeyInclude IncludeFlags=EMaterialKeyInclude::All) const
Definition MaterialShared.h:2282
virtual bool HasVertexPositionOffsetConnected() const
Definition MaterialShared.h:2427
bool AllowPixelDepthOffset() const
Definition MaterialShared.h:2901
virtual bool HasNormalConnected() const
Definition MaterialShared.h:2431
virtual bool HasRuntimeVirtualTextureOutput() const
Definition MaterialShared.h:2455
virtual bool SamplesMaterialCache() const
Definition MaterialShared.h:2348
virtual bool IsUsedWithEditorCompositing() const
Definition MaterialShared.h:2322
TArrayView< const FMaterialTextureParameterInfo > GetUniformVolumeTextureExpressions() const
Definition MaterialShared.h:2556
virtual bool HasAnisotropyConnected() const
Definition MaterialShared.h:2436
TArrayView< const FMaterialTextureParameterInfo > GetUniformCubeTextureExpressions() const
Definition MaterialShared.h:2554
virtual EMaterialShaderMapUsage::Type GetShaderMapUsage() const
Definition MaterialShared.h:2877
virtual bool ShouldApplyCloudFogging() const
Definition MaterialShared.h:2403
virtual ENGINE_API bool PrepareDestroy_GameThread()
Definition MaterialShared.cpp:2437
virtual bool RequiresSynchronousCompilation() const
Definition MaterialShared.h:2441
virtual float GetTranslucentShadowStartOffset() const
Definition MaterialShared.h:2400
virtual float GetOpacityMaskClipValue() const =0
virtual bool IsWireframe() const =0
virtual bool IsDistorted() const
Definition MaterialShared.h:2381
bool IsRenderingThreadShaderMapComplete() const
Definition MaterialShared.h:2675
virtual float GetTranslucentShadowDensityScale() const
Definition MaterialShared.h:2385
virtual bool HasDisplacementConnected() const
Definition MaterialShared.h:2439
virtual bool IsDualBlendingEnabled() const
Definition MaterialShared.h:2397
virtual bool IsDitheredLODTransition() const =0
virtual bool IsUsingHQForwardReflections() const
Definition MaterialShared.h:2364
virtual FString GetMaterialUsageDescription() const =0
virtual FGuid GetMaterialId() const =0
virtual bool IsUsedWithBeamTrails() const
Definition MaterialShared.h:2333
virtual bool HasMaterialCacheOutput() const
Definition MaterialShared.h:2349
virtual bool IsStencilTestEnabled() const
Definition MaterialShared.h:2449
virtual const FMaterialLayersFunctions * GetMaterialLayers() const
Definition MaterialShared.h:2818
virtual bool HasMaterialPropertyConnected(EMaterialProperty In) const
Definition MaterialShared.h:2438
virtual FString GetFriendlyName() const =0
virtual bool IsTangentSpaceNormal() const
Definition MaterialShared.h:2311
class FMaterialShaderMap * GetGameThreadShaderMap() const
Definition MaterialShared.h:2657
virtual ERefractionCoverageMode GetRefractionCoverageMode() const
Definition MaterialShared.h:2382
virtual bool IsPreview() const
Definition MaterialShared.h:2475
virtual EPixelDepthOffsetMode GetPixelDepthOffsetMode() const
Definition MaterialShared.h:2383
virtual float GetTranslucentSelfShadowSecondDensityScale() const
Definition MaterialShared.h:2387
virtual bool IsUsedWithMeshParticles() const
Definition MaterialShared.h:2334
virtual float GetTranslucentLocalLightShadowQuality() const
Definition MaterialShared.h:2409
virtual bool IsUsedWithInstancedStaticMeshes() const
Definition MaterialShared.h:2341
virtual bool IsDefaultMaterial() const
Definition MaterialShared.h:2442
virtual bool ComputeFogPerPixel() const
Definition MaterialShared.h:2405
virtual enum EBlendMode GetBlendMode() const =0
virtual bool IsVariableRateShadingAllowed() const
Definition MaterialShared.h:2463
virtual FString GetDebugName() const
Definition MaterialShared.h:2852
virtual bool IsUsedWithNeuralNetworks() const
Definition MaterialShared.h:2356
uint32 GetRefCount() const
Definition MaterialShared.h:2069
virtual bool IsUsingAlphaToCoverage() const
Definition MaterialShared.h:2362
virtual void SetupExtraCompilationSettings(const EShaderPlatform Platform, FExtraShaderCompilerSettings &Settings) const final
Definition MaterialShared.h:2745
virtual bool IsPersistent() const =0
virtual int32 GetNumCustomizedUVs() const
Definition MaterialShared.h:2443
virtual bool IsFullyRough() const
Definition MaterialShared.h:2358
virtual bool IsTessellationEnabled() const
Definition MaterialShared.h:2458
virtual bool ShouldGenerateSphericalParticleNormals() const
Definition MaterialShared.h:2312
TShaderRef< ShaderType > GetShader(FVertexFactoryType *VertexFactoryType, const typename ShaderType::FPermutationDomain &PermutationVector, bool bFatalIfMissing=true) const
Definition MaterialShared.h:2693
virtual FLinearColor GetTranslucentMultipleScatteringExtinction() const
Definition MaterialShared.h:2399
virtual FString GetAssetName() const
Definition MaterialShared.h:2413
virtual float GetTranslucencyDirectionalLightingIntensity() const
Definition MaterialShared.h:2384
virtual bool HasFirstPersonOutput() const
Definition MaterialShared.h:2456
virtual int32 CompilePropertyAndSetMaterialProperty(EMaterialProperty Property, class FMaterialCompiler *Compiler, EShaderFrequency OverrideShaderFrequency=SF_NumFrequencies, bool bUsePreviousFrameTime=false) const =0
virtual bool IsUsedWithSkeletalMesh() const
Definition MaterialShared.h:2329
virtual TConstArrayView< TObjectPtr< UTextureCollection > > GetReferencedTextureCollections() const =0
virtual bool HasMetallicConnected() const
Definition MaterialShared.h:2434
virtual bool HasAmbientOcclusionConnected() const
Definition MaterialShared.h:2437
virtual bool IsSubstrateMaterial() const
Definition MaterialShared.h:2440
virtual bool IsPostProcessMaterial() const
Definition MaterialShared.h:2327
virtual float GetTranslucentBackscatteringExponent() const
Definition MaterialShared.h:2389
virtual uint32 GetMaterialDecalResponse() const
Definition MaterialShared.h:2429
virtual uint32 GetStencilRefValue() const
Definition MaterialShared.h:2450
virtual bool GetForwardBlendsSkyLightCubemaps() const
Definition MaterialShared.h:2365
TArrayView< const FMaterialTextureParameterInfo > GetUniformVirtualTextureExpressions() const
Definition MaterialShared.h:2557
virtual bool IsUsedWithLidarPointCloud() const
Definition MaterialShared.h:2354
virtual bool IsTranslucencyWritingFrontLayerTransparency() const
Definition MaterialShared.h:2310
virtual bool IsUsedWithNiagaraRibbons() const
Definition MaterialShared.h:2336
virtual bool IsNonmetal() const
Definition MaterialShared.h:2367
virtual bool IsUsingPlanarForwardReflections() const
Definition MaterialShared.h:2366
virtual EMaterialShadingRate GetShadingRate() const
Definition MaterialShared.h:2461
virtual float GetRefractionDepthBiasValue() const
Definition MaterialShared.h:2401
virtual bool IsUIMaterial() const =0
virtual float GetTranslucentSelfShadowSecondOpacity() const
Definition MaterialShared.h:2388
virtual bool HasSubstrateRoughnessTracking() const
Definition MaterialShared.h:2407
virtual bool ShouldDisableDepthTest() const
Definition MaterialShared.h:2313
virtual FDisplacementFadeRange GetDisplacementFadeRange() const
Definition MaterialShared.h:2392
virtual bool IsUsedWithVirtualHeightfieldMesh() const
Definition MaterialShared.h:2355
virtual int32 GetNeuralProfileId() const
Definition MaterialShared.h:2462
virtual bool IsUsedWithVoxels() const
Definition MaterialShared.h:2345
virtual int32 GetBlendablePriority() const
Definition MaterialShared.h:2446
virtual bool IsUsedWithStaticLighting() const
Definition MaterialShared.h:2338
uint32 AddRef() const
Definition MaterialShared.h:2067
virtual bool IsUsedWithParticleSprites() const
Definition MaterialShared.h:2332
virtual bool UseLmDirectionality() const
Definition MaterialShared.h:2368
virtual FString GetFullPath() const
Definition MaterialShared.h:2789
virtual bool IsTranslucencyAfterDOFEnabled() const
Definition MaterialShared.h:2393
virtual bool IsUsedWithNanite() const
Definition MaterialShared.h:2344
void SetQualityLevelProperties(EShaderPlatform InShaderPlatform, EMaterialQualityLevel::Type InQualityLevel=EMaterialQualityLevel::Num)
Definition MaterialShared.h:2860
virtual bool IsUsedWithParticleSystem() const
Definition MaterialShared.h:2331
virtual void FeedbackMaterialLayersInstancedGraphFromCompilation(const FMaterialLayersFunctions *InLayers)
Definition MaterialShared.h:2817
virtual float GetTranslucentSelfShadowDensityScale() const
Definition MaterialShared.h:2386
TArrayView< const FMaterialTextureParameterInfo > GetUniformSparseVolumeTextureExpressions() const
Definition MaterialShared.h:2558
virtual bool HasRoughnessConnected() const
Definition MaterialShared.h:2432
virtual EMaterialShaderMapUsage::Type GetMaterialShaderMapUsage() const
Definition MaterialShared.h:2726
bool IsOwnerBeginDestroyed() const
Definition MaterialShared.h:2801
virtual bool IsUsedWithLandscape() const
Definition MaterialShared.h:2330
virtual bool ShouldAlwaysEvaluateWorldPositionOffset() const
Definition MaterialShared.h:2404
bool ShouldCastDynamicShadows() const
Definition MaterialShared.h:2528
static void DeferredDeleteArray(TArray< TRefCountPtr< TMaterial > > &Materials)
Definition MaterialShared.h:2080
virtual bool ShouldDoSSR() const
Definition MaterialShared.h:2316
virtual bool UsesMotionVectorWorldOffset() const
Definition MaterialShared.h:2320
virtual bool CastsRayTracedShadows() const
Definition MaterialShared.h:2457
virtual bool IsUsingPreintegratedGFForSimpleIBL() const
Definition MaterialShared.h:2363
virtual bool HasPixelDepthOffsetConnected() const
Definition MaterialShared.h:2428
virtual bool UseNormalCurvatureToRoughness() const
Definition MaterialShared.h:2360
virtual void SetupExtraCompilationSettings(FExtraShaderCompilerSettings &Settings) const
Definition MaterialShared.h:2746
FString GetUniqueAssetName(const FMaterialShaderMapId &ShaderMapId) const
Definition MaterialShared.h:2425
virtual bool IsUsedWithStaticMesh() const
Definition MaterialShared.h:2357
virtual bool IsVolumetricPrimitive() const =0
void SetOwnerBeginDestroyed()
Definition MaterialShared.h:2800
TArrayView< const FMaterialTextureParameterInfo > GetUniform2DTextureExpressions() const
Definition MaterialShared.h:2553
virtual int32 GetNumMaterialCacheTags() const
Definition MaterialShared.h:2444
virtual EMaterialDomain GetMaterialDomain() const =0
virtual bool IsTranslucencyWritingCustomDepth() const
Definition MaterialShared.h:2307
virtual UMaterialInterface * GetMaterialInterface() const
Definition MaterialShared.h:2471
virtual bool ShouldDoContactShadows() const
Definition MaterialShared.h:2317
virtual bool UsesTemporalResponsiveness() const
Definition MaterialShared.h:2319
virtual bool HasSpecularConnected() const
Definition MaterialShared.h:2433
virtual bool IsTwoSided() const =0
virtual bool IsTranslucencyWritingVelocity() const
Definition MaterialShared.h:2308
bool IsGameThreadShaderMapComplete() const
Definition MaterialShared.h:2669
const EShaderPlatform GetShaderPlatform() const
Definition MaterialShared.h:2569
virtual bool AllowNegativeEmissiveColor() const
Definition MaterialShared.h:2371
EMaterialQualityLevel::Type GetQualityLevel() const
Definition MaterialShared.h:2538
virtual float GetTranslucentDirectionalLightShadowQuality() const
Definition MaterialShared.h:2410
virtual bool HasPixelAnimation() const
Definition MaterialShared.h:2318
virtual bool IsThinSurface() const =0
virtual bool GetCastDynamicShadowAsMasked() const =0
virtual bool IsSpecialEngineMaterial() const =0
virtual bool IsTranslucencyVelocityFromDepth() const
Definition MaterialShared.h:2309
virtual bool IsMobileSeparateTranslucencyEnabled() const
Definition MaterialShared.h:2398
virtual bool IsUsedWithUI() const
Definition MaterialShared.h:2350
TArrayView< const FMaterialTextureParameterInfo > GetUniform2DArrayTextureExpressions() const
Definition MaterialShared.h:2555
virtual bool HasRenderTracePhysicalMaterialOutputs() const
Definition MaterialShared.h:2459
virtual bool HasBaseColorConnected() const
Definition MaterialShared.h:2430
virtual bool HasVertexInterpolator() const
Definition MaterialShared.h:2454
virtual bool ShouldApplyFogging() const
Definition MaterialShared.h:2402
virtual bool IsUsedWithGeometryCollections() const
Definition MaterialShared.h:2342
virtual bool IsDitherMasked() const
Definition MaterialShared.h:2370
uint32 Release() const
Definition MaterialShared.h:2068
virtual FDisplacementScaling GetDisplacementScaling() const
Definition MaterialShared.h:2390
virtual bool IsUsedWithHeterogeneousVolumes() const
Definition MaterialShared.h:2347
virtual bool IsUsedWithNiagaraSprites() const
Definition MaterialShared.h:2335
virtual int32 GetBlendableLocation() const
Definition MaterialShared.h:2445
virtual int32 CompileCustomAttribute(const FGuid &AttributeID, class FMaterialCompiler *Compiler) const
Definition MaterialShared.h:2848
virtual bool HasPerInstanceRandom() const
Definition MaterialShared.h:2453
virtual EMaterialTranslateValidationFlags GetMaterialTranslateValidationFlags() const
Definition MaterialShared.h:2465
virtual bool IsUsedWithMorphTargets() const
Definition MaterialShared.h:2339
virtual bool IsUsedWithGeometryCache() const
Definition MaterialShared.h:2351
virtual enum EMaterialFloatPrecisionMode GetMaterialFloatPrecisionMode() const
Definition MaterialShared.h:2361
virtual bool ShouldWriteOnlyAlpha() const
Definition MaterialShared.h:2314
virtual bool IsUsedWithNiagaraMeshParticles() const
Definition MaterialShared.h:2337
virtual bool IsUsedWithVolumetricCloud() const
Definition MaterialShared.h:2346
static void DeferredDeleteArray(TArray< TMaterial * > &Materials)
Definition MaterialShared.h:2098
virtual uint16 GetPreshaderGap() const
Definition MaterialShared.h:2460
virtual TArrayView< const TObjectPtr< UObject > > GetReferencedTextures() const =0
void SetAllowPixelDepthOffset(bool bEnable)
Definition MaterialShared.h:2900
FMaterial()
Definition MaterialShared.h:2117
virtual bool HasPerInstanceCustomData() const
Definition MaterialShared.h:2452
virtual bool GetForceCompatibleWithLightFunctionAtlas() const
Definition MaterialShared.h:2359
virtual bool GetDisablePreExposureScale() const
Definition MaterialShared.h:2448
virtual bool IsLightFunction() const =0
virtual bool IsDisplacementFadeEnabled() const
Definition MaterialShared.h:2391
virtual bool IsTranslucencyAfterMotionBlurEnabled() const
Definition MaterialShared.h:2394
virtual bool HasEmissiveColorConnected() const
Definition MaterialShared.h:2435
virtual bool IsUsedWithWater() const
Definition MaterialShared.h:2352
virtual bool IsSky() const
Definition MaterialShared.h:2406
Definition MemoryImage.h:743
Definition MemoryWriter.h:101
Definition MaterialShaderMapLayout.h:35
Definition MaterialShared.h:1417
FMeshMaterialShaderMap(EShaderPlatform InPlatform, const FHashedName &InVertexFactoryTypeName)
Definition MaterialShared.h:1420
const FHashedName & GetVertexFactoryTypeName() const
Definition MaterialShared.h:1433
Definition MeshMaterialShaderType.h:26
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition OutputDevice.h:133
Definition UObjectGlobals.h:2492
Definition SecureHash.h:226
Definition SceneView.h:1425
Definition ShaderCompilerJobTypes.h:152
Definition ShaderCompilerJobTypes.h:94
Definition ShaderCompilerJobTypes.h:331
Definition ShaderCompiler.h:894
Definition ShaderKeyGenerator.h:29
Definition MaterialShaderMapLayout.h:27
Definition ThreadSafeCounter.h:14
Definition VertexFactory.h:314
const FHashedName & GetHashedName() const
Definition VertexFactory.h:375
Definition TextureResource.h:175
Definition VirtualTexturing.h:374
Definition ArrayView.h:139
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
UE_NODEBUG UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize(void) const
Definition Array.h:1059
Definition EnumAsByte.h:22
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition MemoryImage.h:382
static TShaderRefBase< ShaderType, PointerTableType > Cast(const TShaderRefBase< OtherShaderType, OtherPointerTableType > &Rhs)
Definition Shader.h:1041
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition StaticArray.h:26
Definition FunctionFwd.h:19
Definition UniquePtr.h:107
Definition Preshader.h:98
Definition MaterialExpressionMaterialFunctionCall.h:81
Definition MaterialExpression.h:150
Definition MaterialInstance.h:627
Definition MaterialInterface.h:296
Definition Material.h:432
Definition RuntimeVirtualTexture.h:18
Definition SparseVolumeTexture.h:309
Definition SubsurfaceProfile.h:170
Definition Texture2D.h:26
Definition TextureCollection.h:47
Definition Texture.h:1219
void FinishCompilation(TFunctionRef< ICompilable &(int32 Index)> Getter, int32 Num, TFunctionRef< void(ICompilable *)> PostCompileSingle)
Definition AsyncCompilationHelpers.cpp:90
Definition DebugViewModeHelpers.h:17
Type
Definition SceneTypes.h:132
@ Num
Definition SceneTypes.h:137
Definition MaterialShared.h:1034
Type
Definition MaterialShared.h:1036
@ MaterialExportEmissive
Definition MaterialShared.h:1050
@ MaterialExportOpacity
Definition MaterialShared.h:1051
@ MaterialExportCustomOutput
Definition MaterialShared.h:1056
@ MaterialExportOpacityMask
Definition MaterialShared.h:1052
@ MaterialExportNormal
Definition MaterialShared.h:1044
@ MaterialExportMetallic
Definition MaterialShared.h:1046
@ MaterialExportSpecular
Definition MaterialShared.h:1043
@ MaterialExportBaseColor
Definition MaterialShared.h:1042
@ MaterialExportAO
Definition MaterialShared.h:1049
@ LightmassExportOpacity
Definition MaterialShared.h:1040
@ MaterialExportClearCoatRoughness
Definition MaterialShared.h:1055
@ MaterialExportRoughness
Definition MaterialShared.h:1047
@ MaterialExportTangent
Definition MaterialShared.h:1045
@ MaterialExportAnisotropy
Definition MaterialShared.h:1048
@ LightmassExportNormal
Definition MaterialShared.h:1041
@ MaterialExportClearCoat
Definition MaterialShared.h:1054
@ LightmassExportDiffuse
Definition MaterialShared.h:1039
@ MaterialExportSubSurfaceColor
Definition MaterialShared.h:1053
@ Default
Definition MaterialShared.h:1037
@ MaterialExportRefraction
Definition MaterialShared.h:1058
@ LightmassExportEmissive
Definition MaterialShared.h:1038
@ MaterialExportShadingModel
Definition MaterialShared.h:1057
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
@ Num
Definition RHIFeatureLevel.h:54
Definition FieldSystemNoiseAlgo.cpp:6
bool IsSubstrateEnabled()
Definition RenderUtils.cpp:2081
int
Definition TestServer.py:515
Definition CookOnTheFly.h:19
EValueType
Definition ShaderTypes.h:94
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition MaterialShared.h:1014
TArray< FShaderType * > ShaderTypes
Definition MaterialShared.h:1016
Definition MaterialShared.h:1020
TArray< FDebugShaderPipelineInfo > Pipelines
Definition MaterialShared.h:1023
TArray< FShaderType * > ShaderTypes
Definition MaterialShared.h:1022
Definition EngineTypes.h:3237
Definition EngineTypes.h:3204
static CORE_API const FLinearColor White
Definition Color.h:456
Definition MaterialCachedData.h:199
Definition MaterialShared.h:335
EShaderPlatform ShaderPlatform
Definition MaterialShared.h:340
ERHIFeatureLevel::Type FeatureLevel
Definition MaterialShared.h:341
const ITargetPlatform * TargetPlatform
Definition MaterialShared.h:342
FMaterialCompileTargetParameters(EShaderPlatform InShaderPlatform, ERHIFeatureLevel::Type InFeatureLevel, const ITargetPlatform *InTargetPlatform)
Definition MaterialShared.h:336
Definition MaterialLayersFunctions.h:221
Definition PSOPrecache.h:278
Definition MaterialParameters.h:33
Definition MaterialShared.h:1441
DECLARE_TYPE_LAYOUT(FMaterialProcessedSource, NonVirtual)
LAYOUT_FIELD(FMemoryImageString, Source)
FMaterialProcessedSource()
Definition MaterialShared.h:1444
FMaterialProcessedSource(const FHashedName &InName, const TCHAR *InSource)
Definition MaterialShared.h:1445
LAYOUT_FIELD(FHashedName, Name)
Definition MaterialShared.h:349
FMaterialRenderContext(const FMaterialRenderProxy *InMaterialRenderProxy, const FMaterial &InMaterial, bool bInShowSelection)
Definition MaterialShared.h:366
const FMaterial & Material
Definition MaterialShared.h:353
ENGINE_API FGuid GetExternalTextureGuid(const FGuid &ExternalTextureGuid, const FName &ParameterName, int32 SourceTextureIndex) const
Definition MaterialUniformExpressions.cpp:101
ENGINE_API void GetTextureCollectionParameterValue(const FHashedMaterialParameterInfo &ParameterInfo, int32 TextureCollectionIndex, const UTextureCollection *&OutValue) const
Definition MaterialUniformExpressions.cpp:153
const FMaterialRenderProxy * MaterialRenderProxy
Definition MaterialShared.h:351
ENGINE_API void GetTextureParameterValue(const FHashedMaterialParameterInfo &ParameterInfo, int32 TextureIndex, const UTexture *&OutValue) const
Definition MaterialUniformExpressions.cpp:129
bool bShowSelection
Definition MaterialShared.h:356
Definition MaterialShared.h:3393
uint8 FeatureLevel
Definition MaterialShared.h:3397
uint32 Offset
Definition MaterialShared.h:3395
uint8 QualityLevel
Definition MaterialShared.h:3399
Definition MaterialShared.h:1063
uint64 bIsUsedWithGeometryCache
Definition MaterialShared.h:1131
uint64 bIsUsedWithHeterogeneousVolumes
Definition MaterialShared.h:1153
uint64 bIsDistorted
Definition MaterialShared.h:1100
uint64 bIsUsedWithNiagaraRibbons
Definition MaterialShared.h:1124
uint64 bIsUsedWithBeamTrails
Definition MaterialShared.h:1126
uint64 bHasPixelDepthOffsetConnected
Definition MaterialShared.h:1117
uint64 bWritesEveryPixelShadowPass
Definition MaterialShared.h:1103
uint16 bUsesMotionVectorWorldOffset
Definition MaterialShared.h:1077
uint64 bIsTranslucencySurface
Definition MaterialShared.h:1149
uint64 bIsDitherMasked
Definition MaterialShared.h:1097
uint64 bHasVertexInterpolator
Definition MaterialShared.h:1141
uint64 bIsUsedWithVoxels
Definition MaterialShared.h:1147
uint64 bHasRoughnessConnected
Definition MaterialShared.h:1108
uint8 bHasMaterialCacheOutput
Definition MaterialShared.h:1159
uint64 bDisablePreExposureScale
Definition MaterialShared.h:1156
uint16 bUsesTemporalResponsiveness
Definition MaterialShared.h:1076
uint64 bIsUsedWithGeometryCollections
Definition MaterialShared.h:1132
EMaterialQualityLevel::Type QualityLevel
Definition MaterialShared.h:1082
uint64 bIsDitheredLODTransition
Definition MaterialShared.h:1137
uint64 bHasDiffuseAlbedoConnected
Definition MaterialShared.h:1104
uint16 bIsUsedWithStaticMesh
Definition MaterialShared.h:1072
uint64 bHasPerInstanceCustomData
Definition MaterialShared.h:1139
uint64 bIsUsedWithHairStrands
Definition MaterialShared.h:1133
uint64 bIsUsedWithVirtualHeightfieldMesh
Definition MaterialShared.h:1144
uint64 bIsUsedWithLidarPointCloud
Definition MaterialShared.h:1143
uint64 bIsUsedWithWater
Definition MaterialShared.h:1134
uint64 bIsUsedWithVolumetricCloud
Definition MaterialShared.h:1152
EMaterialDomain MaterialDomain
Definition MaterialShared.h:1064
uint64 PackedFlags
Definition MaterialShared.h:1091
uint16 bIsTranslucentSurfaceLighting
Definition MaterialShared.h:1073
uint64 bIsUsedWithStaticLighting
Definition MaterialShared.h:1119
uint64 bIsMasked
Definition MaterialShared.h:1096
uint64 bHasF0Connected
Definition MaterialShared.h:1105
uint64 bAllowVariableRateShading
Definition MaterialShared.h:1157
uint64 bIsUsedWithAPEXCloth
Definition MaterialShared.h:1130
uint64 bIsUsedWithLandscape
Definition MaterialShared.h:1125
uint64 bIsUsedWithMorphTargets
Definition MaterialShared.h:1129
uint16 bHasFirstPersonInterpolation
Definition MaterialShared.h:1074
uint16 PreshaderGap
Definition MaterialShared.h:1083
uint64 bIsUsedWithInstancedStaticMeshes
Definition MaterialShared.h:1138
uint16 bIsSubstrateMaterial
Definition MaterialShared.h:1075
uint64 bIsThinSurface
Definition MaterialShared.h:1099
uint64 bShouldDisableDepthTest
Definition MaterialShared.h:1150
uint64 bAlwaysEvaluateWorldPositionOffset
Definition MaterialShared.h:1155
uint64 bWritesEveryPixel
Definition MaterialShared.h:1102
int32 BlendableLocation
Definition MaterialShared.h:1084
uint64 bIsSpecialEngineMaterial
Definition MaterialShared.h:1095
uint64 bHasPerInstanceRandom
Definition MaterialShared.h:1140
uint64 bHasRuntimeVirtualTextureOutput
Definition MaterialShared.h:1142
uint64 bIsDefaultMaterial
Definition MaterialShared.h:1094
uint64 bHasDisplacementConnected
Definition MaterialShared.h:1115
uint8 bSamplesMaterialCache
Definition MaterialShared.h:1158
uint64 bIsStencilTestEnabled
Definition MaterialShared.h:1148
int8 NumMaterialCacheTags
Definition MaterialShared.h:1087
uint64 bIsUsedWithSplineMeshes
Definition MaterialShared.h:1127
uint64 bHasMetallicConnected
Definition MaterialShared.h:1110
uint64 bIsUsedWithSkeletalMesh
Definition MaterialShared.h:1128
ERHIFeatureLevel::Type FeatureLevel
Definition MaterialShared.h:1081
uint64 bHasEmissiveColorConnected
Definition MaterialShared.h:1111
uint64 bIsUsedWithNeuralNetworks
Definition MaterialShared.h:1145
uint64 bIsMobileSeparateTranslucencyEnabled
Definition MaterialShared.h:1154
uint32 StencilCompare
Definition MaterialShared.h:1086
FMaterialShadingModelField ShadingModels
Definition MaterialShared.h:1065
uint64 bIsTwoSided
Definition MaterialShared.h:1098
EBlendMode BlendMode
Definition MaterialShared.h:1080
int32 NumCustomizedUVs
Definition MaterialShared.h:1085
uint64 bIsUsedWithNanite
Definition MaterialShared.h:1146
uint64 bIsUsedWithNiagaraSprites
Definition MaterialShared.h:1122
uint64 bIsUsedWithNiagaraMeshParticles
Definition MaterialShared.h:1123
uint64 bHasAmbientOcclusionConnected
Definition MaterialShared.h:1112
uint64 bIsTranslucencyWritingVelocity
Definition MaterialShared.h:1135
uint64 bHasBaseColorConnected
Definition MaterialShared.h:1106
uint64 bIsTessellationEnabled
Definition MaterialShared.h:1114
uint64 bShouldCastDynamicShadows
Definition MaterialShared.h:1101
uint64 bHasNormalConnected
Definition MaterialShared.h:1107
uint64 bHasSpecularConnected
Definition MaterialShared.h:1109
uint64 bIsUsedWithParticleSprites
Definition MaterialShared.h:1120
uint16 PackedFlags16
Definition MaterialShared.h:1069
uint64 bHasVertexPositionOffsetConnected
Definition MaterialShared.h:1116
uint64 bHasRenderTracePhysicalMaterialOutput
Definition MaterialShared.h:1151
uint64 bMaterialMayModifyMeshPosition
Definition MaterialShared.h:1118
uint64 bHasAnisotropyConnected
Definition MaterialShared.h:1113
uint64 bIsTranslucencyWritingCustomDepth
Definition MaterialShared.h:1136
uint64 bIsUsedWithMeshParticles
Definition MaterialShared.h:1121
Definition MaterialShared.h:1181
TArray< FName > MaterialShaderTags
Definition MaterialShared.h:1189
Definition MaterialShaderType.h:198
Definition MaterialShaderType.h:222
Definition EngineTypes.h:732
Definition MaterialShared.h:3344
Type
Definition MaterialShared.h:3346
Definition MaterialShared.h:2259
Definition MaterialParameters.h:96
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition PSOPrecache.h:30
Definition ObjectVersion.h:762
Definition ResourceSize.h:31
Definition NameTypes.h:491
Definition ShaderCore.h:544
Definition ShaderSerialization.h:26
Definition ShaderCodeLibrary.h:118
Definition AndroidStaticFeatureLevel.inl:12
Definition StaticParameterSet.h:462
Definition MaterialParameters.h:503
Definition SubstrateMaterialShared.h:177
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition ShaderTypes.h:368
static FValue FromMemoryImage(EValueType Type, const void *Data, uint32 *OutSizeInBytes=nullptr)
Definition ShaderValue.cpp:395