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

#include <BasePassRendering.h>

+ Inheritance diagram for FBasePassMeshProcessor:

Public Types

enum class  EFlags { None = 0 , CanUseDepthStencil = (1 << 0) , bRequires128bitRT = (1 << 1) }
 

Public Member Functions

 FBasePassMeshProcessor (EMeshPass::Type InMeshPassType, const FScene *InScene, ERHIFeatureLevel::Type InFeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, const FMeshPassProcessorRenderState &InDrawRenderState, FMeshPassDrawListContext *InDrawListContext, EFlags Flags, ETranslucencyPass::Type InTranslucencyPassType=ETranslucencyPass::TPT_MAX)
 
virtual void AddMeshBatch (const FMeshBatch &RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, int32 StaticMeshId=-1) override final
 
virtual void CollectPSOInitializers (const FSceneTexturesConfig &SceneTexturesConfig, const FMaterial &Material, const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FPSOPrecacheParams &PreCacheParams, TArray< FPSOPrecacheData > &PSOInitializers) override final
 
FORCEINLINE_DEBUGGABLE void Set128BitRequirement (const bool Required)
 
FORCEINLINE_DEBUGGABLE bool Get128BitRequirement () const
 
- Public Member Functions inherited from FMeshPassProcessor
 FMeshPassProcessor (const FScene *InScene, ERHIFeatureLevel::Type InFeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
RENDERER_API FMeshPassProcessor (EMeshPass::Type InMeshPassType, const FScene *InScene, ERHIFeatureLevel::Type InFeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
RENDERER_API FMeshPassProcessor (const TCHAR *InMeshPassName, const FScene *InScene, ERHIFeatureLevel::Type InFeatureLevel, const FSceneView *InViewIfDynamicMeshCommand, FMeshPassDrawListContext *InDrawListContext)
 
virtual ~FMeshPassProcessor ()
 
void SetDrawListContext (FMeshPassDrawListContext *InDrawListContext)
 
template<typename PassShadersType , typename ShaderElementDataType >
void BuildMeshDrawCommands (const FMeshBatch &RESTRICT MeshBatch, uint64 BatchElementMask, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, const FMaterialRenderProxy &RESTRICT MaterialRenderProxy, const FMaterial &RESTRICT MaterialResource, const FMeshPassProcessorRenderState &RESTRICT DrawRenderState, const PassShadersType &PassShaders, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, FMeshDrawCommandSortKey SortKey, EMeshPassFeatures MeshPassFeatures, const ShaderElementDataType &ShaderElementData)
 
template<typename PassShadersType >
void AddGraphicsPipelineStateInitializer (const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FMaterial &RESTRICT MaterialResource, const FMeshPassProcessorRenderState &RESTRICT DrawRenderState, const FGraphicsPipelineRenderTargetsInfo &RESTRICT RenderTargetsInfo, const PassShadersType &PassShaders, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, EPrimitiveType PrimitiveType, EMeshPassFeatures MeshPassFeatures, bool bRequired, TArray< FPSOPrecacheData > &PSOInitializers)
 
- Public Member Functions inherited from IPSOCollector
 IPSOCollector (int32 InPSOCollectorIndex)
 
virtual ~IPSOCollector ()
 
void CollectPSOInitializers (const FSceneTexturesConfig &SceneTexturesConfig, const FMaterial &Material, const FVertexFactoryType *VertexFactoryType, const FPSOPrecacheParams &PreCacheParams, TArray< FPSOPrecacheData > &PSOInitializers)
 

Static Public Member Functions

static ELightMapPolicyType GetUniformLightMapPolicyType (ERHIFeatureLevel::Type FeatureLevelconst, const FScene *Scene, const FLightCacheInterface *LCI, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy, const FMaterial &Material)
 
static TArray< ELightMapPolicyType, TInlineAllocator< 2 > > GetUniformLightMapPolicyTypeForPSOCollection (ERHIFeatureLevel::Type FeatureLevel, const FMaterial &Material)
 
template<typename PassShadersType >
static void AddBasePassGraphicsPipelineStateInitializer (ERHIFeatureLevel::Type InFeatureLevel, const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FMaterial &RESTRICT MaterialResource, const FMeshPassProcessorRenderState &RESTRICT DrawRenderState, const FGraphicsPipelineRenderTargetsInfo &RESTRICT RenderTargetsInfo, const PassShadersType &PassShaders, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, EPrimitiveType PrimitiveType, bool bPrecacheAlphaColorChannel, int InPSOCollectorIndex, TArray< FPSOPrecacheData > &PSOInitializers)
 
- Static Public Member Functions inherited from TConcurrentLinearObject< ObjectType, BlockAllocationTag >
static voidoperator new (size_t Size)
 
static voidoperator new (size_t Size, void *Object)
 
static voidoperator new[] (size_t Size)
 
static voidoperator new (size_t Size, std::align_val_t Align)
 
static voidoperator new[] (size_t Size, std::align_val_t Align)
 
static UE_FORCEINLINE_HINT void operator delete (void *Ptr)
 
static UE_FORCEINLINE_HINT void operator delete[] (void *Ptr)
 
- Static Public Member Functions inherited from FMeshPassProcessor
static FORCEINLINE_DEBUGGABLE ERasterizerCullMode InverseCullMode (ERasterizerCullMode CullMode)
 
static RENDERER_API FMeshDrawingPolicyOverrideSettings ComputeMeshOverrideSettings (const FPSOPrecacheParams &PrecachePSOParams)
 
static RENDERER_API FMeshDrawingPolicyOverrideSettings ComputeMeshOverrideSettings (const FMeshBatch &Mesh)
 
static RENDERER_API ERasterizerFillMode ComputeMeshFillMode (const FMaterial &InMaterialResource, const FMeshDrawingPolicyOverrideSettings &InOverrideSettings)
 
static RENDERER_API ERasterizerCullMode ComputeMeshCullMode (const FMaterial &InMaterialResource, const FMeshDrawingPolicyOverrideSettings &InOverrideSettings)
 
template<typename PassShadersType >
static void AddGraphicsPipelineStateInitializer (const FPSOPrecacheVertexFactoryData &VertexFactoryData, const FMaterial &RESTRICT MaterialResource, const FMeshPassProcessorRenderState &RESTRICT DrawRenderState, const FGraphicsPipelineRenderTargetsInfo &RESTRICT RenderTargetsInfo, const PassShadersType &PassShaders, ERasterizerFillMode MeshFillMode, ERasterizerCullMode MeshCullMode, EPrimitiveType PrimitiveType, EMeshPassFeatures MeshPassFeatures, ESubpassHint SubpassHint, uint8 SubpassIndex, bool bRequired, int32 PSOCollectorIndex, TArray< FPSOPrecacheData > &PSOInitializers)
 

Public Attributes

FMeshPassProcessorRenderState PassDrawRenderState
 
- Public Attributes inherited from FMeshPassProcessor
EMeshPass::Type MeshPassType
 
const FScene *RESTRICT Scene
 
ERHIFeatureLevel::Type FeatureLevel
 
const FSceneViewViewIfDynamicMeshCommand
 
FMeshPassDrawListContextDrawListContext
 
- Public Attributes inherited from IPSOCollector
int32 PSOCollectorIndex = INDEX_NONE
 

Additional Inherited Members

- Protected Member Functions inherited from FMeshPassProcessor
RENDERER_API FMeshDrawCommandPrimitiveIdInfo GetDrawCommandPrimitiveId (const FPrimitiveSceneInfo *RESTRICT PrimitiveSceneInfo, const FMeshBatchElement &BatchElement) const
 
RENDERER_API bool ShouldSkipMeshDrawCommand (const FMeshBatch &RESTRICT MeshBatch, const FPrimitiveSceneProxy *RESTRICT PrimitiveSceneProxy) const
 
RENDERER_API bool PipelineVariableRateShadingEnabled () const
 
RENDERER_API bool HardwareVariableRateShadingSupportedByScene () const
 

Member Enumeration Documentation

◆ EFlags

Enumerator
None 
CanUseDepthStencil 
bRequires128bitRT 

Constructor & Destructor Documentation

◆ FBasePassMeshProcessor()

FBasePassMeshProcessor::FBasePassMeshProcessor ( EMeshPass::Type  InMeshPassType,
const FScene InScene,
ERHIFeatureLevel::Type  InFeatureLevel,
const FSceneView InViewIfDynamicMeshCommand,
const FMeshPassProcessorRenderState InDrawRenderState,
FMeshPassDrawListContext InDrawListContext,
EFlags  Flags,
ETranslucencyPass::Type  InTranslucencyPassType = ETranslucencyPass::TPT_MAX 
)

Member Function Documentation

◆ AddBasePassGraphicsPipelineStateInitializer()

static void FBasePassMeshProcessor::AddBasePassGraphicsPipelineStateInitializer ( ERHIFeatureLevel::Type  InFeatureLevel,
const FPSOPrecacheVertexFactoryData VertexFactoryData,
const FMaterial &RESTRICT  MaterialResource,
const FMeshPassProcessorRenderState &RESTRICT  DrawRenderState,
const FGraphicsPipelineRenderTargetsInfo &RESTRICT  RenderTargetsInfo,
const PassShadersType PassShaders,
ERasterizerFillMode  MeshFillMode,
ERasterizerCullMode  MeshCullMode,
EPrimitiveType  PrimitiveType,
bool  bPrecacheAlphaColorChannel,
int  InPSOCollectorIndex,
TArray< FPSOPrecacheData > &  PSOInitializers 
)
inlinestatic

◆ AddMeshBatch()

void FBasePassMeshProcessor::AddMeshBatch ( const FMeshBatch &RESTRICT  MeshBatch,
uint64  BatchElementMask,
const FPrimitiveSceneProxy *RESTRICT  PrimitiveSceneProxy,
int32  StaticMeshId = -1 
)
finaloverridevirtual

Implements FMeshPassProcessor.

◆ CollectPSOInitializers()

void FBasePassMeshProcessor::CollectPSOInitializers ( const FSceneTexturesConfig SceneTexturesConfig,
const FMaterial Material,
const FPSOPrecacheVertexFactoryData VertexFactoryData,
const FPSOPrecacheParams PreCacheParams,
TArray< FPSOPrecacheData > &  PSOInitializers 
)
finaloverridevirtual

Reimplemented from FMeshPassProcessor.

◆ Get128BitRequirement()

FORCEINLINE_DEBUGGABLE bool FBasePassMeshProcessor::Get128BitRequirement ( ) const
inline

◆ GetUniformLightMapPolicyType()

ELightMapPolicyType FBasePassMeshProcessor::GetUniformLightMapPolicyType ( ERHIFeatureLevel::Type  FeatureLevelconst,
const FScene Scene,
const FLightCacheInterface LCI,
const FPrimitiveSceneProxy *RESTRICT  PrimitiveSceneProxy,
const FMaterial Material 
)
static

◆ GetUniformLightMapPolicyTypeForPSOCollection()

TArray< ELightMapPolicyType, TInlineAllocator< 2 > > FBasePassMeshProcessor::GetUniformLightMapPolicyTypeForPSOCollection ( ERHIFeatureLevel::Type  FeatureLevel,
const FMaterial Material 
)
static

◆ Set128BitRequirement()

FORCEINLINE_DEBUGGABLE void FBasePassMeshProcessor::Set128BitRequirement ( const bool  Required)
inline

Member Data Documentation

◆ PassDrawRenderState

FMeshPassProcessorRenderState FBasePassMeshProcessor::PassDrawRenderState

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