UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SlateRHIRenderingPolicy.cpp File Reference

Classes

struct  FSlateSceneViewAllocateInputs
 
struct  FSlateSceneView
 
class  FSlateSceneViewAllocator
 
struct  FSlateClippingCreateContext
 
class  FSlateDrawShaderBindings
 
struct  FSlateRenderBatchOp
 
struct  FSlateRenderBatchCreateInputs
 
struct  FSlateRenderBatchDrawState
 
struct  FSlateRenderBatchDrawInputs
 
class  FSlateMaterialPSOCollector
 

Macros

#define WITH_SLATE_DRAW_EVENTS   !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
 
#define SLATE_DRAW_EVENT(RHICmdList, EventName)   SCOPED_CONDITIONAL_DRAW_EVENT( RHICmdList, EventName, (GSlateEnableDrawEvents != 0));
 
#define SLATE_DRAW_EVENTF(RHICmdList, EventName, Format, ...)   SCOPED_CONDITIONAL_DRAW_EVENTF(RHICmdList, EventName, (GSlateEnableDrawEvents != 0), Format, ##__VA_ARGS__);
 

Enumerations

enum class  ESlateClippingStencilAction : uint8 { None , Write , Clear }
 
enum class  ESlateRenderBatchType { CustomDrawer , PostProcess , Primitive , MAX }
 

Functions

void UpdateNoiseTextureParameters (FViewUniformShaderParameters &ViewUniformShaderParameters)
 
 DECLARE_CYCLE_STAT (TEXT("Update Buffers RT"), STAT_SlateUpdateBufferRTTime, STATGROUP_Slate)
 
 DECLARE_CYCLE_STAT (TEXT("Update Buffers RT"), STAT_SlateUpdateBufferRTTimeLambda, STATGROUP_Slate)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Num Layers"), STAT_SlateNumLayers, STATGROUP_Slate)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Num Batches"), STAT_SlateNumBatches, STATGROUP_Slate)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Num Vertices"), STAT_SlateVertexCount, STATGROUP_Slate)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Clips (Scissor)"), STAT_SlateScissorClips, STATGROUP_Slate)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Clips (Stencil)"), STAT_SlateStencilClips, STATGROUP_Slate)
 
TConstArrayView< FTextureLODGroupGetTextureLODGroups ()
 
ETextureSamplerFilter GetSamplerFilter (TConstArrayView< FTextureLODGroup > TextureLODGroups, const UTexture *Texture)
 
FRHISamplerStateGetSamplerState (ESlateBatchDrawFlag DrawFlags, ETextureSamplerFilter Filter)
 
TShaderRef< FSlateElementPSGetTexturePixelShader (FGlobalShaderMap *ShaderMap, ESlateShader ShaderType, ESlateDrawEffect DrawEffects, bool bUseTextureGrayscale, bool bIsVirtualTexture)
 
bool ChooseMaterialShaderTypes (ESlateShader ShaderType, bool bUseInstancing, FMaterialShaderTypes &OutShaderTypes)
 
EPrimitiveType GetRHIPrimitiveType (ESlateDrawPrimitive SlateType)
 
FRHIBlendStateGetMaterialBlendState (FSlateShaderResource *TextureMaskResource, const FMaterial *Material)
 
FSlateElementsBuffers BuildSlateElementsBuffers (FRDGBuilder &GraphBuilder, FSlateBatchData &BatchData)
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_SLOT (SlateView)
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FSlateViewUniformParameters, "SlateView", SlateView)
 
bool GetSlateClippingPipelineState (const FSlateClippingOp *ClippingStateOp, FRHIDepthStencilState *&OutDepthStencilState, uint8 &OutStencilRef)
 
void SetSlateClipping (FRHICommandList &RHICmdList, const FSlateClippingOp *ClippingStateOp, FIntRect ViewportRect)
 
const FSlateClippingOpCreateSlateClipping (FRDGBuilder &GraphBuilder, const FVector2f ElementsOffset, const FSlateClippingState *ClippingState, FSlateClippingCreateContext &Context)
 
ESlateRenderBatchType GetSlateRenderBatchType (const FSlateRenderBatch &DrawBatch)
 
FSlateRenderBatchOpCreateSlateRenderBatchOp (FRDGBuilder &GraphBuilder, const FSlateRenderBatchCreateInputs &Inputs, const FSlateRenderBatch *RenderBatch, const FSlateClippingOp *ClippingStateOp)
 
void DrawSlateRenderBatch (FRHICommandList &RHICmdList, FSlateRenderBatchDrawState &State, const FSlateRenderBatchDrawInputs &Inputs, const FSlateRenderBatchOp &RenderBatchOp)
 
void AddSlateDrawElementsPass (FRDGBuilder &GraphBuilder, const FSlateRHIRenderingPolicy &RenderingPolicy, const FSlateDrawElementsPassInputs &Inputs, TConstArrayView< FSlateRenderBatch > RenderBatches, int32 FirstBatchIndex)
 
void AddSlatePSOInitializer (FRHIBlendState *BlendState, bool bInstanced, ESlateDrawPrimitive DrawPrimitiveType, FRHIVertexShader *VertexShaderRHI, FRHIPixelShader *PixelShaderRHI, const FSceneTexturesConfig &SceneTexturesConfig, int32 PSOCollectorIndex, TArray< FPSOPrecacheData > &PSOInitializers)
 
void SlateGlobalPSOCollector (const FSceneTexturesConfig &SceneTexturesConfig, int32 GlobalPSOCollectorIndex, TArray< FPSOPrecacheData > &PSOInitializers)
 
IPSOCollectorCreateSlateMaterialPSOCollector (ERHIFeatureLevel::Type FeatureLevel)
 

Variables

TAutoConsoleVariable< int32CVarShowSlateOverdraw
 
TAutoConsoleVariable< int32CVarShowSlateBatching
 
FRegisterGlobalPSOCollectorFunction RegisterSlateGlobalPSOCollectorSlateGlobalPSOCollector
 
FRegisterPSOCollectorCreateFunction RegisterSlateMaterialPSOCollectorCreateSlateMaterialPSOCollector
 

Macro Definition Documentation

◆ SLATE_DRAW_EVENT

#define SLATE_DRAW_EVENT (   RHICmdList,
  EventName 
)    SCOPED_CONDITIONAL_DRAW_EVENT( RHICmdList, EventName, (GSlateEnableDrawEvents != 0));

◆ SLATE_DRAW_EVENTF

#define SLATE_DRAW_EVENTF (   RHICmdList,
  EventName,
  Format,
  ... 
)    SCOPED_CONDITIONAL_DRAW_EVENTF(RHICmdList, EventName, (GSlateEnableDrawEvents != 0), Format, ##__VA_ARGS__);

◆ WITH_SLATE_DRAW_EVENTS

#define WITH_SLATE_DRAW_EVENTS   !(UE_BUILD_SHIPPING || UE_BUILD_TEST)

Enumeration Type Documentation

◆ ESlateClippingStencilAction

Enumerator
None 
Write 
Clear 

◆ ESlateRenderBatchType

Enumerator
CustomDrawer 
PostProcess 
Primitive 
MAX 

Function Documentation

◆ AddSlateDrawElementsPass()

void AddSlateDrawElementsPass ( FRDGBuilder GraphBuilder,
const FSlateRHIRenderingPolicy RenderingPolicy,
const FSlateDrawElementsPassInputs Inputs,
TConstArrayView< FSlateRenderBatch RenderBatches,
int32  FirstBatchIndex 
)

◆ AddSlatePSOInitializer()

void AddSlatePSOInitializer ( FRHIBlendState BlendState,
bool  bInstanced,
ESlateDrawPrimitive  DrawPrimitiveType,
FRHIVertexShader VertexShaderRHI,
FRHIPixelShader PixelShaderRHI,
const FSceneTexturesConfig SceneTexturesConfig,
int32  PSOCollectorIndex,
TArray< FPSOPrecacheData > &  PSOInitializers 
)

◆ BuildSlateElementsBuffers()

FSlateElementsBuffers BuildSlateElementsBuffers ( FRDGBuilder GraphBuilder,
FSlateBatchData BatchData 
)

◆ ChooseMaterialShaderTypes()

bool ChooseMaterialShaderTypes ( ESlateShader  ShaderType,
bool  bUseInstancing,
FMaterialShaderTypes OutShaderTypes 
)

◆ CreateSlateClipping()

const FSlateClippingOp * CreateSlateClipping ( FRDGBuilder GraphBuilder,
const FVector2f  ElementsOffset,
const FSlateClippingState ClippingState,
FSlateClippingCreateContext Context 
)

◆ CreateSlateMaterialPSOCollector()

IPSOCollector * CreateSlateMaterialPSOCollector ( ERHIFeatureLevel::Type  FeatureLevel)

◆ CreateSlateRenderBatchOp()

FSlateRenderBatchOp * CreateSlateRenderBatchOp ( FRDGBuilder GraphBuilder,
const FSlateRenderBatchCreateInputs Inputs,
const FSlateRenderBatch RenderBatch,
const FSlateClippingOp ClippingStateOp 
)

◆ DECLARE_CYCLE_STAT() [1/2]

DECLARE_CYCLE_STAT ( TEXT("Update Buffers RT" ,
STAT_SlateUpdateBufferRTTime  ,
STATGROUP_Slate   
)

◆ DECLARE_CYCLE_STAT() [2/2]

DECLARE_CYCLE_STAT ( TEXT("Update Buffers RT" ,
STAT_SlateUpdateBufferRTTimeLambda  ,
STATGROUP_Slate   
)

◆ DECLARE_DWORD_COUNTER_STAT() [1/5]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Clips (Scissor)")  ,
STAT_SlateScissorClips  ,
STATGROUP_Slate   
)

◆ DECLARE_DWORD_COUNTER_STAT() [2/5]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Clips (Stencil)")  ,
STAT_SlateStencilClips  ,
STATGROUP_Slate   
)

◆ DECLARE_DWORD_COUNTER_STAT() [3/5]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Num Batches" ,
STAT_SlateNumBatches  ,
STATGROUP_Slate   
)

◆ DECLARE_DWORD_COUNTER_STAT() [4/5]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Num Layers" ,
STAT_SlateNumLayers  ,
STATGROUP_Slate   
)

◆ DECLARE_DWORD_COUNTER_STAT() [5/5]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Num Vertices" ,
STAT_SlateVertexCount  ,
STATGROUP_Slate   
)

◆ DrawSlateRenderBatch()

void DrawSlateRenderBatch ( FRHICommandList RHICmdList,
FSlateRenderBatchDrawState State,
const FSlateRenderBatchDrawInputs Inputs,
const FSlateRenderBatchOp RenderBatchOp 
)

◆ GetMaterialBlendState()

FRHIBlendState * GetMaterialBlendState ( FSlateShaderResource TextureMaskResource,
const FMaterial Material 
)

◆ GetRHIPrimitiveType()

EPrimitiveType GetRHIPrimitiveType ( ESlateDrawPrimitive  SlateType)

◆ GetSamplerFilter()

ETextureSamplerFilter GetSamplerFilter ( TConstArrayView< FTextureLODGroup TextureLODGroups,
const UTexture Texture 
)

◆ GetSamplerState()

FRHISamplerState * GetSamplerState ( ESlateBatchDrawFlag  DrawFlags,
ETextureSamplerFilter  Filter 
)

◆ GetSlateClippingPipelineState()

bool GetSlateClippingPipelineState ( const FSlateClippingOp ClippingStateOp,
FRHIDepthStencilState *&  OutDepthStencilState,
uint8 OutStencilRef 
)

◆ GetSlateRenderBatchType()

ESlateRenderBatchType GetSlateRenderBatchType ( const FSlateRenderBatch DrawBatch)
inline

◆ GetTextureLODGroups()

TConstArrayView< FTextureLODGroup > GetTextureLODGroups ( )

◆ GetTexturePixelShader()

TShaderRef< FSlateElementPS > GetTexturePixelShader ( FGlobalShaderMap ShaderMap,
ESlateShader  ShaderType,
ESlateDrawEffect  DrawEffects,
bool  bUseTextureGrayscale,
bool  bIsVirtualTexture 
)

Returns the pixel shader that should be used for the specified ShaderType and DrawEffects

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_SLOT()

IMPLEMENT_STATIC_UNIFORM_BUFFER_SLOT ( SlateView  )

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT()

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FSlateViewUniformParameters  ,
"SlateView"  ,
SlateView   
)

◆ SetSlateClipping()

void SetSlateClipping ( FRHICommandList RHICmdList,
const FSlateClippingOp ClippingStateOp,
FIntRect  ViewportRect 
)

◆ SlateGlobalPSOCollector()

void SlateGlobalPSOCollector ( const FSceneTexturesConfig SceneTexturesConfig,
int32  GlobalPSOCollectorIndex,
TArray< FPSOPrecacheData > &  PSOInitializers 
)

◆ UpdateNoiseTextureParameters()

void UpdateNoiseTextureParameters ( FViewUniformShaderParameters ViewUniformShaderParameters)
extern

Variable Documentation

◆ CreateSlateMaterialPSOCollector

◆ CVarShowSlateBatching

TAutoConsoleVariable<int32> CVarShowSlateBatching
extern

◆ CVarShowSlateOverdraw

TAutoConsoleVariable<int32> CVarShowSlateOverdraw
extern

◆ SlateGlobalPSOCollector