UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMeshMaterialShader Class Reference

#include <MeshMaterialShader.h>

+ Inheritance diagram for FMeshMaterialShader:

Public Types

using FPermutationParameters = FMeshMaterialShaderPermutationParameters
 
using ShaderMetaType = FMeshMaterialShaderType
 
- Public Types inherited from FMaterialShader
using FPermutationParameters = FMaterialShaderPermutationParameters
 
using ShaderMetaType = FMaterialShaderType
 
- Public Types inherited from FShader
using FPermutationDomain = FShaderPermutationNone
 
using FPermutationParameters = FShaderPermutationParameters
 
using CompiledShaderInitializerType = FShaderCompiledShaderInitializerType
 
using ShaderMetaType = FShaderType
 
using ShaderStatKeyType = FMemoryImageName
 
using FShaderStatisticMap = TMemoryImageMap< ShaderStatKeyType, FShaderStatVariant >
 

Public Member Functions

 FMeshMaterialShader ()
 
RENDERER_API FMeshMaterialShader (const FMeshMaterialShaderType::CompiledShaderInitializerType &Initializer)
 
RENDERER_API void GetShaderBindings (const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const FMeshMaterialShaderElementData &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
 
RENDERER_API void GetElementShaderBindings (const FShaderMapPointerTable &PointerTable, const FScene *Scene, const FSceneView *ViewIfDynamicMeshCommand, const FVertexFactory *VertexFactory, const EVertexInputStreamType InputStreamType, const FStaticFeatureLevel FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMeshBatch &MeshBatch, const FMeshBatchElement &BatchElement, const FMeshMaterialShaderElementData &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings, FVertexInputStreamArray &VertexStreams) const
 
- Public Member Functions inherited from FMaterialShader
RENDERER_API FMaterialShader ()
 
RENDERER_API FMaterialShader (const FMaterialShaderType::CompiledShaderInitializerType &Initializer)
 
RENDERER_API FRHIUniformBufferGetParameterCollectionBuffer (const FGuid &Id, const FSceneInterface *SceneInterface) const
 
RENDERER_API void SetViewParameters (FRHIBatchedShaderParameters &BatchedParameters, const FSceneView &View, const TUniformBufferRef< FViewUniformShaderParameters > &ViewUniformBuffer)
 
template<typename ShaderRHIParamRef , typename TRHICommandList >
void SetViewParameters (TRHICommandList &RHICmdList, const ShaderRHIParamRef ShaderRHI, const FSceneView &View, const TUniformBufferRef< FViewUniformShaderParameters > &ViewUniformBuffer)
 
RENDERER_API void SetParameters (FRHIBatchedShaderParameters &BatchedParameters, const FMaterialRenderProxy *MaterialRenderProxy, const FMaterial &Material, const FSceneView &View)
 
RENDERER_API void SetParameters (FRHIBatchedShaderParameters &BatchedParameters, const FMaterialRenderProxy *MaterialRenderProxy, const FMaterial &Material, const FSceneInterface *Scene)
 
template<typename TRHIShader , typename TRHICommandList >
void SetParameters (TRHICommandList &RHICmdList, TRHIShader *ShaderRHI, const FMaterialRenderProxy *MaterialRenderProxy, const FMaterial &Material, const FSceneView &View)
 
RENDERER_API void GetShaderBindings (const FSceneInterface *Scene, ERHIFeatureLevel::Type FeatureLevel, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, FMeshDrawSingleShaderBindings &ShaderBindings) const
 
- Public Member Functions inherited from FShader
RENDERCORE_API FShader ()
 
RENDERCORE_API FShader (const CompiledShaderInitializerType &Initializer)
 
RENDERCORE_API ~FShader ()
 
RENDERCORE_API const FSHAHashGetHash () const
 
RENDERCORE_API const FSHAHashGetVertexFactoryHash () const
 
RENDERCORE_API const FSHAHashGetOutputHash () const
 
uint32 GetSortKey () const
 
RENDERCORE_API void Finalize (const FShaderMapResourceCode *Code)
 
FShaderTypeGetType (const FShaderMapPointerTable &InPointerTable) const
 
FShaderTypeGetType (const FPointerTableBase *InPointerTable) const
 
FVertexFactoryTypeGetVertexFactoryType (const FShaderMapPointerTable &InPointerTable) const
 
FVertexFactoryTypeGetVertexFactoryType (const FPointerTableBase *InPointerTable) const
 
FShaderTypeGetTypeUnfrozen () const
 
int32 GetResourceIndex () const
 
EShaderPlatform GetShaderPlatform () const
 
EShaderFrequency GetFrequency () const
 
const FShaderTarget GetTarget () const
 
bool IsFrozen () const
 
uint32 GetNumInstructions () const
 
uint32 GetNumTextureSamplers () const
 
uint32 GetCodeSize () const
 
void SetNumInstructions (uint32 Value)
 
template<typename UniformBufferStructType >
const TShaderUniformBufferParameter< UniformBufferStructType > & GetUniformBufferParameter () const
 
const FShaderUniformBufferParameterGetUniformBufferParameter (const FShaderParametersMetadata *SearchStruct) const
 
const FShaderUniformBufferParameterGetUniformBufferParameter (const FHashedName SearchName) const
 
RENDERCORE_API const FShaderParametersMetadataFindAutomaticallyBoundUniformBufferStruct (int32 BaseIndex) const
 
RENDERCORE_API void DumpDebugInfo (const FShaderMapPointerTable &InPtrTable)
 
 LAYOUT_FIELD (FShaderParameterBindings, Bindings)
 
 LAYOUT_FIELD (FShaderParameterMapInfo, ParameterMapInfo)
 

Static Public Member Functions

template<typename ShaderType , typename PointerTableType , typename ShaderElementDataType >
static void GetElementShaderBindings (const TShaderRefBase< ShaderType, PointerTableType > &Shader, const FScene *Scene, const FSceneView *ViewIfDynamicMeshCommand, const FVertexFactory *VertexFactory, const EVertexInputStreamType InputStreamType, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMeshBatch &MeshBatch, const FMeshBatchElement &BatchElement, const ShaderElementDataType &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings, FVertexInputStreamArray &VertexStreams)
 
- Static Public Member Functions inherited from FShader
static void ModifyCompilationEnvironment (const FShaderPermutationParameters &, FShaderCompilerEnvironment &)
 
static const FShaderBindingLayoutGetShaderBindingLayout (const FShaderPermutationParameters &)
 
static bool ShouldCompilePermutation (const FShaderPermutationParameters &)
 
static EShaderPermutationPrecacheRequest ShouldPrecachePermutation (const FShaderPermutationParameters &Parameters)
 
static bool ValidateCompiledResult (EShaderPlatform InPlatform, const FShaderParameterMap &InParameterMap, TArray< FString > &OutError)
 
static EShaderCompileJobPriority GetOverrideJobPriority ()
 
static ERayTracingPayloadType GetRayTracingPayloadType (const int32 PermutationId)
 
static const FShaderParametersMetadataGetRootParametersMetadata ()
 

Protected Member Functions

 LAYOUT_FIELD (FShaderUniformBufferParameter, PassUniformBuffer)
 
- Protected Member Functions inherited from FMaterialShader
 LAYOUT_FIELD_EDITORONLY (FDebugUniformExpressionSet, DebugUniformExpressionSet)
 
 LAYOUT_FIELD_EDITORONLY (FRHIUniformBufferLayoutInitializer, DebugUniformExpressionUBLayout)
 
 LAYOUT_FIELD_EDITORONLY (FMemoryImageString, DebugDescription)
 
- Protected Member Functions inherited from FShader
 LAYOUT_FIELD (TMemoryImageArray< FHashedName >, UniformBufferParameterStructs)
 
 LAYOUT_FIELD (TMemoryImageArray< FShaderUniformBufferParameter >, UniformBufferParameters)
 
 LAYOUT_FIELD_EDITORONLY (FSHAHash, OutputHash)
 
 LAYOUT_FIELD_EDITORONLY (FSHAHash, VFSourceHash)
 
 LAYOUT_FIELD_EDITORONLY (FSHAHash, SourceHash)
 

Additional Inherited Members

- Static Public Attributes inherited from FMaterialShader
static RENDERER_API FName UniformBufferLayoutName
 

Detailed Description

Base class of all shaders that need material and vertex factory parameters.

Member Typedef Documentation

◆ FPermutationParameters

◆ ShaderMetaType

Constructor & Destructor Documentation

◆ FMeshMaterialShader() [1/2]

FMeshMaterialShader::FMeshMaterialShader ( )
inline

◆ FMeshMaterialShader() [2/2]

FMeshMaterialShader::FMeshMaterialShader ( const FMeshMaterialShaderType::CompiledShaderInitializerType Initializer)

Member Function Documentation

◆ GetElementShaderBindings() [1/2]

void FMeshMaterialShader::GetElementShaderBindings ( const FShaderMapPointerTable PointerTable,
const FScene Scene,
const FSceneView ViewIfDynamicMeshCommand,
const FVertexFactory VertexFactory,
const EVertexInputStreamType  InputStreamType,
const FStaticFeatureLevel  FeatureLevel,
const FPrimitiveSceneProxy PrimitiveSceneProxy,
const FMeshBatch MeshBatch,
const FMeshBatchElement BatchElement,
const FMeshMaterialShaderElementData ShaderElementData,
FMeshDrawSingleShaderBindings ShaderBindings,
FVertexInputStreamArray VertexStreams 
) const

◆ GetElementShaderBindings() [2/2]

static void FMeshMaterialShader::GetElementShaderBindings ( const TShaderRefBase< ShaderType, PointerTableType > &  Shader,
const FScene Scene,
const FSceneView ViewIfDynamicMeshCommand,
const FVertexFactory VertexFactory,
const EVertexInputStreamType  InputStreamType,
ERHIFeatureLevel::Type  FeatureLevel,
const FPrimitiveSceneProxy PrimitiveSceneProxy,
const FMeshBatch MeshBatch,
const FMeshBatchElement BatchElement,
const ShaderElementDataType ShaderElementData,
FMeshDrawSingleShaderBindings ShaderBindings,
FVertexInputStreamArray VertexStreams 
)
inlinestatic

◆ GetShaderBindings()

void FMeshMaterialShader::GetShaderBindings ( const FScene Scene,
ERHIFeatureLevel::Type  FeatureLevel,
const FPrimitiveSceneProxy PrimitiveSceneProxy,
const FMaterialRenderProxy MaterialRenderProxy,
const FMaterial Material,
const FMeshMaterialShaderElementData ShaderElementData,
FMeshDrawSingleShaderBindings ShaderBindings 
) const

◆ LAYOUT_FIELD()

FMeshMaterialShader::LAYOUT_FIELD ( FShaderUniformBufferParameter  ,
PassUniformBuffer   
)
protected

The documentation for this class was generated from the following files: