13#define IMPLEMENT_MATERIAL_SHADER_TYPE(TemplatePrefix,ShaderClass,SourceFilename,FunctionName,Frequency) \
14 IMPLEMENT_SHADER_TYPE( \
143 const FString& DebugGroupName,
144 const TCHAR* DebugDescription,
145 const TCHAR* DebugExtension
158 const FString& DebugGroupName,
159 const TCHAR* DebugDescription,
160 const TCHAR* DebugExtension
170 const FSHAHash& MaterialShaderMapHash,
214 template<
typename ShaderType>
239 template<
typename ShaderType>
256 template<
typename ShaderType>
#define checkSlow(expr)
Definition AssertionMacros.h:332
#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_DELEGATE_RetVal_OneParam(ReturnValueType, DelegateName, Param1Type)
Definition DelegateCombinations.h:54
EBlendMode
Definition EngineTypes.h:245
EMaterialShadingModel
Definition EngineTypes.h:705
void UpdateMaterialShaderCompilingStats(const FMaterial *Material)
Definition MaterialShader.cpp:725
ENGINE_API void DumpMaterialStats(EShaderPlatform Platform)
Definition MaterialShader.cpp:4159
ENGINE_API FString GetBlendModeString(EBlendMode BlendMode)
Definition MaterialShader.cpp:205
ENGINE_API FString GetShadingModelFieldString(FMaterialShadingModelField ShadingModels, const FShadingModelToStringDelegate &Delegate, const FString &Delimiter=" ")
Definition MaterialShader.cpp:177
FString GetShadingModelString(EMaterialShadingModel ShadingModel)
Definition MaterialShader.cpp:123
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_Compute
Definition RHIDefinitions.h:208
@ SF_NumFrequencies
Definition RHIDefinitions.h:216
@ SF_Vertex
Definition RHIDefinitions.h:203
@ SF_Mesh
Definition RHIDefinitions.h:204
@ SF_Geometry
Definition RHIDefinitions.h:207
@ SF_Pixel
Definition RHIDefinitions.h:206
EShaderCompileJobPriority
Definition ShaderCore.h:803
EShaderPermutationFlags
Definition ShaderPermutation.h:19
Definition GlobalShader.h:87
Definition MaterialShared.h:1194
Definition MaterialShared.h:1518
Definition MaterialShaderType.h:95
static bool ShouldCompilePipeline(const FShaderPipelineType *ShaderPipelineType, EShaderPlatform Platform, const FMaterialShaderParameters &MaterialParameters, EShaderPermutationFlags Flags)
Definition MaterialShader.cpp:1970
bool ShouldCompilePermutation(EShaderPlatform Platform, const FMaterialShaderParameters &MaterialParameters, int32 PermutationId, EShaderPermutationFlags Flags) const
Definition MaterialShader.cpp:1965
IMPLEMENT_SHADER_TYPE_CONSTRUCTOR(FMaterialShaderType, EShaderTypeForDynamicCast::Material, TEXT("material shader"))
Definition MaterialShared.h:2058
Definition SecureHash.h:226
Definition ShaderCompilerJobTypes.h:152
Definition ShaderCompilerJobTypes.h:331
Definition ShaderKeyGenerator.h:29
EShaderFrequency GetFrequency() const
Definition Shader.h:1460
Definition VertexFactory.h:314
Definition RefCounting.h:454
Definition MaterialShared.h:1181
Definition MaterialShaderType.h:98
const FUniformExpressionSet & UniformExpressionSet
Definition MaterialShaderType.h:99
CompiledShaderInitializerType(const FShaderType *InType, int32 InPermutationId, const FShaderCompilerOutput &CompilerOutput, const FUniformExpressionSet &InUniformExpressionSet, const FSHAHash &InMaterialShaderMapHash, const FShaderPipelineType *InShaderPipeline, const FVertexFactoryType *InVertexFactoryType, const FString &InDebugDescription)
Definition MaterialShaderType.h:102
const FString DebugDescription
Definition MaterialShaderType.h:100
Definition MaterialShaderType.h:198
const FShaderType * AddShaderType(int32 InPermutationId=0)
Definition MaterialShaderType.h:215
const FShaderType * ShaderType[SF_NumFrequencies]
Definition MaterialShaderType.h:200
FMaterialShaderTypes()
Definition MaterialShaderType.h:203
const FShaderType * AddShaderType(const FShaderType *InType, int32 InPermutationId=0)
Definition MaterialShaderType.h:205
const FShaderPipelineType * PipelineType
Definition MaterialShaderType.h:199
int32 PermutationId[SF_NumFrequencies]
Definition MaterialShaderType.h:201
Definition MaterialShaderType.h:222
bool TryGetPixelShader(TShaderRef< ShaderType > &OutShader) const
Definition MaterialShaderType.h:275
bool TryGetVertexShader(TShaderRef< ShaderType > *OutShader) const
Definition MaterialShaderType.h:280
bool TryGetPipeline(FShaderPipelineRef &OutPipeline) const
Definition MaterialShaderType.h:229
FMaterialShaders()
Definition MaterialShaderType.h:227
bool TryGetPixelShader(TShaderRef< ShaderType > *OutShader) const
Definition MaterialShaderType.h:281
bool TryGetGeometryShader(TShaderRef< ShaderType > &OutShader) const
Definition MaterialShaderType.h:276
bool TryGetComputeShader(TShaderRef< ShaderType > *OutShader) const
Definition MaterialShaderType.h:284
bool TryGetShader(EShaderFrequency InFrequency, TShaderRef< ShaderType > *OutShader) const
Definition MaterialShaderType.h:257
bool TryGetGeometryShader(TShaderRef< ShaderType > *OutShader) const
Definition MaterialShaderType.h:282
bool TryGetMeshShader(TShaderRef< ShaderType > &OutShader) const
Definition MaterialShaderType.h:277
bool TryGetMeshShader(TShaderRef< ShaderType > *OutShader) const
Definition MaterialShaderType.h:283
bool TryGetShader(EShaderFrequency InFrequency, TShaderRef< ShaderType > &OutShader) const
Definition MaterialShaderType.h:240
FShaderPipeline * Pipeline
Definition MaterialShaderType.h:224
bool TryGetVertexShader(TShaderRef< ShaderType > &OutShader) const
Definition MaterialShaderType.h:274
FShader * Shaders[SF_NumFrequencies]
Definition MaterialShaderType.h:225
const FShaderMapBase * ShaderMap
Definition MaterialShaderType.h:223
bool TryGetComputeShader(TShaderRef< ShaderType > &OutShader) const
Definition MaterialShaderType.h:278
Definition EngineTypes.h:732
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition ShaderCore.h:544
Definition ShaderCompilerCore.h:491
Definition ShaderCore.h:731