UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RendererModule.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 RendererPrivate.h: Renderer interface private definitions.
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
10#include "RendererInterface.h"
11#include "Shader.h"
12
13class FHitProxyId;
15class FMaterial;
17class FSceneInterface;
18class FSceneView;
21class FViewInfo;
23struct FMeshBatch;
25struct FSceneTextures;
26
27template<class ResourceType, FRenderResource::EInitPhase> class TGlobalResource;
28
30
32class FRendererModule final : public IRendererModule
33{
34public:
36 virtual bool SupportsDynamicReloading() override { return true; }
37
38 virtual void StartupModule() override;
39 virtual void ShutdownModule() override;
40
41 virtual void BeginRenderingViewFamily(FCanvas* Canvas,FSceneViewFamily* ViewFamily) override;
42 virtual void CreateAndInitSingleView(FRHICommandListImmediate& RHICmdList, class FSceneViewFamily* ViewFamily, const struct FSceneViewInitOptions* ViewInitOptions) override;
44 virtual void RemoveScene(FSceneInterface* Scene) override;
45 virtual void UpdateStaticDrawLists() override;
48 virtual FSceneViewStateInterface* AllocateViewState(ERHIFeatureLevel::Type FeatureLevel, FSceneViewStateInterface* ShareOriginTarget) override;
49 virtual uint32 GetNumDynamicLightsAffectingPrimitive(const FPrimitiveSceneInfo* PrimitiveSceneInfo,const FLightCacheInterface* LCI) override;
50 virtual void OnWorldCleanup(UWorld* World, bool bSessionEnded, bool bCleanupResources, bool bWorldChanged) override;
51 virtual void InitializeSystemTextures(FRHICommandListImmediate& RHICmdList);
53 virtual FSceneUniformBuffer* CreateSinglePrimitiveSceneUniformBuffer(FRDGBuilder& GraphBuilder, const FViewInfo& SceneView, FMeshBatch& Mesh) override;
56 virtual void DrawTileMesh(FCanvasRenderContext& RenderContext, FMeshPassProcessorRenderState& DrawRenderState, const FSceneView& View, FMeshBatch& Mesh, bool bIsHitTesting, const FHitProxyId& HitProxyId, bool bUse128bitRT = false) override;
57 virtual void DebugLogOnCrash() override;
58 virtual void GPUBenchmark(FSynthBenchmarkResults& InOut, float WorkScale) override;
59 virtual void ExecVisualizeTextureCmd(const FString& Cmd) override;
61 virtual void DrawRectangle(
62 FRHICommandList& RHICmdList,
63 float X,
64 float Y,
65 float SizeX,
66 float SizeY,
67 float U,
68 float V,
69 float SizeU,
70 float SizeV,
71 FIntPoint TargetSize,
72 FIntPoint TextureSize,
75 ) override;
76
78 {
80 return AllocatedScenes;
81 }
82
83 virtual void RegisterCustomCullingImpl(ICustomCulling* impl) override;
84 virtual void UnregisterCustomCullingImpl(ICustomCulling* impl) override;
85
90
92 {
93 return PostResolvedSceneColorCallbacks;
94 }
95
96 virtual void PostRenderAllViewports() override;
97
98 virtual void PerFrameCleanupIfSkipRenderer() override;
99
101
103 virtual void DestroyVirtualTexture(IAllocatedVirtualTexture* AllocatedVT) override;
109 virtual uint32 RemoveAllVirtualTextureProducerDestroyedCallbacks(const void* Baton) override;
110 virtual void ReleaseVirtualTexturePendingResources() override;
116
117 virtual void LoadPendingVirtualTextureTiles(FRHICommandListImmediate& RHICmdList, ERHIFeatureLevel::Type FeatureLevel) override;
118 virtual void LockVirtualTextureTiles(FVirtualTextureProducerHandle ProducerHandle, int32 InMipLevel) override;
121 virtual void FlushVirtualTextureCache() override;
122 virtual void FlushVirtualTextureCache(IAllocatedVirtualTexture* AllocatedVT, const FVector2f& InUV0, const FVector2f& InUV1) override;
123 virtual void SyncVirtualTextureUpdates(FRHICommandListImmediate& RHICmdList, ERHIFeatureLevel::Type FeatureLevel) override;
124
125 virtual void SetNaniteRequestRecordBuffer(uint64 Handle) override;
128 virtual void PrefetchNaniteResource(const Nanite::FResources* Resource, uint32 NumFramesUntilRender) override;
129
131
133 FRDGBuilder& GraphBuilder,
135 const FSceneTextures& SceneTextures);
136
138 FRDGBuilder& GraphBuilder,
140 const FSceneTextures& SceneTextures);
141
142 void RenderPostResolvedSceneColorExtension(FRDGBuilder& GraphBuilder, const FSceneTextures& SceneTextures);
143
146
148
149 virtual void BeginRenderingViewFamilies(FCanvas* Canvas, TConstArrayView<FSceneViewFamily*> ViewFamilies) override;
150
151 virtual void ResetSceneTextureExtentHistory() override;
152
153 virtual const FViewMatrices& GetPreviousViewMatrices(const FSceneView& View) override;
155 virtual void RequestStaticMeshUpdate(FPrimitiveSceneInfo* Info) override;
157
158#if WITH_STATE_STREAM
160 virtual void FreeStateStream(IStateStreamManager* Manager) override;
161#endif
162
164
165private:
166 TSet<FSceneInterface*> AllocatedScenes;
167 FOnPostOpaqueRender PostOpaqueRenderDelegate;
168 FOnPostOpaqueRender OverlayRenderDelegate;
169 FOnResolvedSceneColor PostResolvedSceneColorCallbacks;
170 FDelegateHandle StopRenderingThreadDelegate;
171};
172
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
EShaderPlatform
Definition RHIShaderPlatform.h:11
FOnPostOpaqueRender::FDelegate FPostOpaqueRenderDelegate
Definition RendererInterface.h:569
EDrawRectangleFlags
Definition RendererInterface.h:540
@ EDRF_Default
Definition RendererInterface.h:542
ICustomCulling * GCustomCullingImpl
Definition Renderer.cpp:717
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
void() FVTProducerDestroyedFunction(const FVirtualTextureProducerHandle &InHandle, void *Baton)
Definition VirtualTexturing.h:194
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition CanvasRender.h:9
Definition CanvasTypes.h:211
Definition IDelegateInstance.h:14
Definition GPUScene.h:80
Definition GlobalDistanceFieldParameters.h:18
Definition HitProxies.h:86
Definition SceneManagement.h:820
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:2058
Definition PrimitiveSceneInfo.h:266
Definition RenderGraphBuilder.h:49
Definition RHICommandList.h:455
Definition RHICommandList.h:4626
Definition RHICommandList.h:3819
Definition RendererModule.h:33
virtual void RegisterCustomCullingImpl(ICustomCulling *impl) override
Definition Renderer.cpp:719
virtual const TSet< FSceneInterface * > & GetAllocatedScenes() override
Definition RendererModule.h:77
virtual void SetNaniteRequestRecordBuffer(uint64 Handle) override
Definition SceneRendering.cpp:5611
virtual uint32 RemoveAllVirtualTextureProducerDestroyedCallbacks(const void *Baton) override
Definition SceneRendering.cpp:5504
virtual void BeginRenderingViewFamilies(FCanvas *Canvas, TConstArrayView< FSceneViewFamily * > ViewFamilies) override
Definition SceneRendering.cpp:5039
virtual void AddMeshBatchToGPUScene(FGPUScenePrimitiveCollector *Collector, FMeshBatch &MeshBatch) override
Definition SceneRendering.cpp:5654
virtual void UpdateMapNeedsLightingFullyRebuiltState(UWorld *World) override
Definition SceneRendering.cpp:5266
virtual void DrawTileMesh(FCanvasRenderContext &RenderContext, FMeshPassProcessorRenderState &DrawRenderState, const FSceneView &View, FMeshBatch &Mesh, bool bIsHitTesting, const FHitProxyId &HitProxyId, bool bUse128bitRT=false) override
Definition Renderer.cpp:350
virtual uint64 GetVirtualTextureRequestRecordBuffer(TSet< uint64 > &OutPageRequests) override
Definition SceneRendering.cpp:5553
virtual IAdaptiveVirtualTexture * AllocateAdaptiveVirtualTexture(FRHICommandListBase &RHICmdList, const FAdaptiveVTDescription &AdaptiveVTDesc, const FAllocatedVTDescription &AllocatedVTDesc) override
Definition SceneRendering.cpp:5474
virtual void RemoveOverlayRenderDelegate(FDelegateHandle InOverlayRenderDelegate) override
Definition SceneRendering.cpp:5305
virtual void ReleaseVirtualTexturePendingResources() override
Definition SceneRendering.cpp:5494
virtual FSceneViewStateInterface * AllocateViewState(ERHIFeatureLevel::Type FeatureLevel) override
Definition RendererScene.cpp:6965
virtual void PrefetchNaniteResource(const Nanite::FResources *Resource, uint32 NumFramesUntilRender) override
Definition SceneRendering.cpp:5623
virtual void RemovePostOpaqueRenderDelegate(FDelegateHandle InPostOpaqueRenderDelegate) override
Definition SceneRendering.cpp:5295
virtual void InitializeSystemTextures(FRHICommandListImmediate &RHICmdList)
Definition Renderer.cpp:178
virtual bool SupportsDynamicReloading() override
Definition RendererModule.h:36
virtual void RequestNanitePages(TArrayView< uint32 > InRequestData) override
Definition SceneRendering.cpp:5618
virtual IMaterialCacheTagProvider * GetMaterialCacheTagProvider() override
Definition SceneRendering.cpp:5459
virtual FDelegateHandle RegisterPostOpaqueRenderDelegate(const FPostOpaqueRenderDelegate &InPostOpaqueRenderDelegate) override
Definition SceneRendering.cpp:5290
virtual IAllocatedVirtualTexture * AllocateVirtualTexture(FRHICommandListBase &RHICmdList, const FAllocatedVTDescription &Desc) override
Definition SceneRendering.cpp:5464
virtual uint64 GetNaniteRequestRecordBuffer(TArray< uint32 > &OutPageRequests) override
Definition SceneRendering.cpp:5602
virtual FDelegateHandle RegisterOverlayRenderDelegate(const FPostOpaqueRenderDelegate &InOverlayRenderDelegate) override
Definition SceneRendering.cpp:5300
virtual void StartupModule() override
Definition Renderer.cpp:79
virtual void LockVirtualTextureTiles(FVirtualTextureProducerHandle ProducerHandle, int32 InMipLevel) override
Definition SceneRendering.cpp:5541
virtual void ReleaseVirtualTextureProducer(const FVirtualTextureProducerHandle &Handle) override
Definition SceneRendering.cpp:5489
virtual void ShutdownModule() override
Definition Renderer.cpp:135
virtual void RemoveScene(FSceneInterface *Scene) override
Definition RendererScene.cpp:6854
virtual TUniquePtr< ISceneRenderBuilder > CreateSceneRenderBuilder(FSceneInterface *Scene) override
Definition RendererScene.cpp:6975
virtual void PerFrameCleanupIfSkipRenderer() override
Definition SceneRendering.cpp:5251
FRendererModule()
Definition SceneRendering.cpp:5011
virtual IScenePrimitiveRenderingContext * BeginScenePrimitiveRendering(FRDGBuilder &GraphBuilder, FSceneViewFamily *ViewFamily) override
Definition SceneRendering.cpp:5437
void RenderPostOpaqueExtensions(FRDGBuilder &GraphBuilder, TArrayView< const FViewInfo > Views, const FSceneTextures &SceneTextures)
Definition SceneRendering.cpp:5310
virtual void CreateAndInitSingleView(FRHICommandListImmediate &RHICmdList, class FSceneViewFamily *ViewFamily, const struct FSceneViewInitOptions *ViewInitOptions) override
Definition SceneRendering.cpp:5022
virtual void RequestStaticMeshUpdate(FPrimitiveSceneInfo *Info) override
Definition SceneRendering.cpp:5646
virtual void LoadPendingVirtualTextureTiles(FRHICommandListImmediate &RHICmdList, ERHIFeatureLevel::Type FeatureLevel) override
Definition SceneRendering.cpp:5534
virtual void DebugLogOnCrash() override
Definition Renderer.cpp:599
virtual void GPUBenchmark(FSynthBenchmarkResults &InOut, float WorkScale) override
Definition Renderer.cpp:626
virtual void UnregisterCustomCullingImpl(ICustomCulling *impl) override
Definition Renderer.cpp:725
virtual const FViewMatrices & GetPreviousViewMatrices(const FSceneView &View) override
Definition SceneRendering.cpp:5628
virtual void AddVirtualTextureProducerDestroyedCallback(const FVirtualTextureProducerHandle &Handle, FVTProducerDestroyedFunction *Function, void *Baton) override
Definition SceneRendering.cpp:5499
virtual void SetVirtualTextureRequestRecordBuffer(uint64 Handle) override
Definition SceneRendering.cpp:5546
virtual IVirtualTexture * FindProducer(const FVirtualTextureProducerHandle &Handle) override
Definition SceneRendering.cpp:5524
virtual void PostRenderAllViewports() override
Definition SceneRendering.cpp:5228
virtual void FlushVirtualTextureCache() override
Definition SceneRendering.cpp:5567
virtual void RequestVirtualTextureTiles(TArray< uint64 > &&InPageRequests) override
Definition SceneRendering.cpp:5562
virtual void OnWorldCleanup(UWorld *World, bool bSessionEnded, bool bCleanupResources, bool bWorldChanged) override
Definition Renderer.cpp:160
virtual void DrawRectangle(FRHICommandList &RHICmdList, float X, float Y, float SizeX, float SizeY, float U, float V, float SizeU, float SizeV, FIntPoint TargetSize, FIntPoint TextureSize, const TShaderRef< FShader > &VertexShader, EDrawRectangleFlags Flags=EDRF_Default) override
Definition SceneRendering.cpp:5271
virtual FVirtualTextureProducerHandle RegisterVirtualTextureProducer(FRHICommandListBase &RHICmdList, const FVTProducerDescription &Desc, IVirtualTexture *Producer) override
Definition SceneRendering.cpp:5484
virtual void InvalidatePathTracedOutput(PathTracing::EInvalidateReason InvalidateReason=PathTracing::EInvalidateReason::Uncategorized) override
Definition RendererScene.cpp:6980
void RenderOverlayExtensions(FRDGBuilder &GraphBuilder, TArrayView< const FViewInfo > Views, const FSceneTextures &SceneTextures)
Definition SceneRendering.cpp:5349
virtual void ExecVisualizeTextureCmd(const FString &Cmd) override
Definition Renderer.cpp:733
virtual void RegisterPersistentViewUniformBufferExtension(IPersistentViewUniformBufferExtension *Extension) override
Definition RendererScene.cpp:1099
void RenderPostResolvedSceneColorExtension(FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures)
Definition SceneRendering.cpp:5381
virtual uint32 GetNumDynamicLightsAffectingPrimitive(const FPrimitiveSceneInfo *PrimitiveSceneInfo, const FLightCacheInterface *LCI) override
Definition SceneCore.cpp:38
virtual FSceneUniformBuffer * CreateSinglePrimitiveSceneUniformBuffer(FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, FMeshBatch &Mesh) override
Definition Renderer.cpp:200
virtual const FGlobalDistanceFieldParameterData * GetGlobalDistanceFieldParameterData(const FSceneView &View) override
Definition SceneRendering.cpp:5637
virtual void UpdateStaticDrawListsForMaterials(const TArray< const FMaterial * > &Materials) override
Definition RendererScene.cpp:6959
virtual void DestroyVirtualTexture(IAllocatedVirtualTexture *AllocatedVT) override
Definition SceneRendering.cpp:5469
virtual void BeginRenderingViewFamily(FCanvas *Canvas, FSceneViewFamily *ViewFamily) override
Definition SceneRendering.cpp:5034
virtual void UpdateStaticDrawLists() override
Definition RendererScene.cpp:6877
virtual FOnResolvedSceneColor & GetResolvedSceneColorCallbacks() override
Definition RendererModule.h:91
virtual void SyncVirtualTextureUpdates(FRHICommandListImmediate &RHICmdList, ERHIFeatureLevel::Type FeatureLevel) override
Definition SceneRendering.cpp:5593
virtual void DestroyAdaptiveVirtualTexture(IAdaptiveVirtualTexture *AdaptiveVT) override
Definition SceneRendering.cpp:5479
virtual void ResetSceneTextureExtentHistory() override
Definition Renderer.cpp:665
virtual TRDGUniformBufferRef< FBatchedPrimitiveParameters > CreateSinglePrimitiveUniformView(FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, EShaderPlatform ShaderPlatform, FMeshBatch &Mesh) override
Definition Renderer.cpp:281
virtual FSceneInterface * AllocateScene(UWorld *World, bool bInRequiresHitProxies, bool bCreateFXSystem, ERHIFeatureLevel::Type InFeatureLevel) override
Definition RendererScene.cpp:6835
Definition SceneInterface.h:106
Definition SceneUniformBuffer.h:137
Definition SceneView.h:2212
Definition SceneManagement.h:132
Definition SceneView.h:1425
Definition SceneRendering.h:1132
Definition VirtualTexturing.h:471
Definition VirtualTexturing.h:374
Definition RendererInterface.h:588
Definition IMaterialCacheTagProvider.h:18
Definition RendererInterface.h:648
Definition RendererInterface.h:686
Definition RendererInterface.h:659
Definition StateStreamManager.h:13
Definition VirtualTexturing.h:289
Definition ArrayView.h:139
Definition Array.h:670
Definition RenderResource.h:543
Definition RenderGraphResources.h:251
Definition Shader.h:1021
Definition UniquePtr.h:107
Definition World.h:918
Type
Definition RHIFeatureLevel.h:20
EInvalidateReason
Definition PathTracingOutputInvalidateReason.h:8
Definition VirtualTexturing.h:485
Definition VirtualTexturing.h:69
Definition MeshBatch.h:371
Definition MeshPassProcessor.h:2118
Definition SceneTextures.h:110
Definition SceneView.h:180
Definition GenericPlatformSurvey.h:124
Definition VirtualTexturing.h:148
Definition SceneView.h:317
Definition NaniteResources.h:410
Definition IntPoint.h:25
Definition VirtualTexturing.h:33