UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneRenderBuilder.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7
10class FScene;
11
13{
14public:
18
20 {
21 *this = MoveTemp(RHS);
22 }
23
25 {
26 // Scene stays persistent while the processor instance moves.
27 Scene = RHS.Scene;
28 Processor = RHS.Processor;
29 PersistentState = RHS.PersistentState;
30 RHS.Processor = nullptr;
31 RHS.PersistentState = nullptr;
32 return *this;
33 }
34
36
38 // ISceneRenderBuilder Overrides
39
43 FHitProxyConsumer* HitProxyConsumer) override;
44 RENDERER_API void AddCommand(TUniqueFunction<void()>&& Function) override;
47 RENDERER_API bool IsCompatible(const FEngineShowFlags& EngineShowFlags) const override;
48 RENDERER_API void Execute() override;
50
52
53 void FlushIfIncompatible(const FEngineShowFlags& EngineShowFlags)
54 {
55 if (!IsCompatible(EngineShowFlags))
56 {
57 Execute();
58 }
59 }
60
61 static void WaitForAsyncCleanupTask();
62 static void WaitForAsyncDeleteTask();
63
64 static const FGraphEventRef& GetAsyncCleanupTask();
65
66private:
67 void LazyInit();
68 void BeginGroup(FString&& Name, ESceneRenderGroupFlags Flags) override;
69 void EndGroup() override;
70
73 FHitProxyConsumer* HitProxyConsumer,
75
76 struct FPersistentState;
77
80 FPersistentState* PersistentState = nullptr;
81};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ESceneRenderGroupFlags
Definition SceneRenderBuilderInterface.h:20
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition HitProxies.h:218
Definition SceneInterface.h:106
Definition SceneRenderBuilder.h:13
FSceneRenderBuilder(FSceneRenderBuilder &&RHS)
Definition SceneRenderBuilder.h:19
static void WaitForAsyncCleanupTask()
Definition SceneRenderBuilder.cpp:1110
RENDERER_API void Execute() override
Definition SceneRenderBuilder.cpp:1079
RENDERER_API FSceneRenderer * CreateSceneRenderer(FSceneViewFamily *ViewFamily) override
Definition SceneRenderBuilder.cpp:977
FSceneRenderBuilder & operator=(const FSceneRenderBuilder &)=delete
static void WaitForAsyncDeleteTask()
Definition SceneRenderBuilder.cpp:1105
RENDERER_API FConcurrentLinearBulkObjectAllocator & GetAllocator() override
Definition SceneRenderBuilder.cpp:1090
RENDERER_API TArray< FSceneRenderer *, FConcurrentLinearArrayAllocator > CreateLinkedSceneRenderers(TConstArrayView< FSceneViewFamily * > ViewFamilies, FHitProxyConsumer *HitProxyConsumer) override
Definition SceneRenderBuilder.cpp:983
FSceneRenderBuilder & operator=(FSceneRenderBuilder &&RHS)
Definition SceneRenderBuilder.h:24
void FlushIfIncompatible(const FEngineShowFlags &EngineShowFlags)
Definition SceneRenderBuilder.h:53
static const FGraphEventRef & GetAsyncCleanupTask()
Definition SceneRenderBuilder.cpp:1115
RENDERER_API void AddCommand(TUniqueFunction< void()> &&Function) override
Definition SceneRenderBuilder.cpp:1026
RENDERER_API void AddRenderer(FSceneRenderer *Renderer, FString &&Name, FSceneRenderFunction &&Function) override
Definition SceneRenderBuilder.cpp:1034
RENDERER_API ~FSceneRenderBuilder() override
Definition SceneRenderBuilder.cpp:996
RENDERER_API bool IsCompatible(const FEngineShowFlags &EngineShowFlags) const override
Definition SceneRenderBuilder.cpp:1096
FSceneRenderBuilder(const FSceneRenderBuilder &)=delete
Definition SceneRenderBuilder.cpp:327
Definition SceneRendering.h:2080
Definition SceneView.h:2212
Definition ScenePrivate.h:2875
Definition SceneRenderBuilderInterface.h:52
virtual void AddRenderer(FSceneRenderer *Renderer, FString &&Name, FSceneRenderFunction &&Function)=0
Definition Renderer.Build.cs:6
Definition Array.h:670
Definition FunctionFwd.h:19
Definition ShowFlags.h:56