UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RenderCurveSceneExtension.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "SceneExtensions.h"
6#include "SpanAllocator.h"
8
10
11namespace RenderCurve
12{
13
15
17{
19
20public:
23 uint32 GetClusterCount() const;
24 bool IsEnabled() const;
25 void SetEnabled(bool In);
27
28 //~ Begin ISceneExtension Interface.
29 virtual void InitExtension(FScene& InScene) override;
30 virtual ISceneExtensionUpdater* CreateUpdater() override;
32 //~ End ISceneExtension Interface.
33
36
37public:
39 {
41
42 public:
44 virtual void End();
45 virtual void PreSceneUpdate(FRDGBuilder& GraphBuilder, const FScenePreUpdateChangeSet& ChangeSet, FSceneUniformBuffer& SceneUniforms) override;
46 virtual void PostSceneUpdate(FRDGBuilder& GraphBuilder, const FScenePostUpdateChangeSet& ChangeSet) override;
47 private:
48 FRenderCurveSceneExtension* SceneData = nullptr;
49 };
50
52 {
54
55 public:
57 //~ Begin ISceneExtensionRenderer Interface.
58 virtual void UpdateSceneUniformBuffer(FRDGBuilder& GraphBuilder, FSceneUniformBuffer& SceneUniformBuffer) override;
59 //~ End ISceneExtensionRenderer Interface.
60 private:
61 FRenderCurveSceneExtension* SceneData = nullptr;
62 };
63
71
78
84
92
98
99private:
100 bool bIsEnabled = true;
101 bool bDirtyData = false;
102 FHeader Header;
104 TUniquePtr<FBuffers> Buffers;
105 TUniquePtr<FUploader> Uploader;
106};
107
108} // namespace RenderCurve
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_SCENE_EXTENSION_UPDATER(ClassName, SceneExtensionClassName)
Definition SceneExtensions.h:390
#define DECLARE_SCENE_EXTENSION_RENDERER(ClassName, SceneExtensionClassName)
Definition SceneExtensions.h:394
#define DECLARE_SCENE_EXTENSION(ModuleExport, ClassName)
Definition SceneExtensions.h:384
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition PrimitiveSceneInfo.h:266
Definition RenderGraphBuilder.h:49
Definition ScenePrimitiveUpdates.h:129
Definition ScenePrimitiveUpdates.h:116
Definition SceneRendering.h:2023
Definition SceneUniformBuffer.h:137
Definition ScenePrivate.h:2875
Definition SceneExtensions.h:69
Definition SceneExtensions.h:45
Definition SceneExtensions.h:24
FScene & Scene
Definition SceneExtensions.h:40
Definition RenderCurveSceneExtension.h:86
TPersistentByteAddressBuffer< FPackedRenderCurveInstanceData > RenderCurveInstanceDataBuffer
Definition RenderCurveSceneExtension.h:89
TRefCountPtr< FRDGPooledBuffer > ClusterDataBuffer
Definition RenderCurveSceneExtension.h:90
FBuffers()
Definition RenderCurveSceneExtension.cpp:331
Definition RenderCurveSceneExtension.h:52
virtual void UpdateSceneUniformBuffer(FRDGBuilder &GraphBuilder, FSceneUniformBuffer &SceneUniformBuffer) override
Definition RenderCurveSceneExtension.cpp:323
FRenderer(FSceneRendererBase &InSceneRenderer, FRenderCurveSceneExtension &InSceneData)
Definition RenderCurveSceneExtension.h:56
Definition RenderCurveSceneExtension.h:39
virtual void PostSceneUpdate(FRDGBuilder &GraphBuilder, const FScenePostUpdateChangeSet &ChangeSet) override
Definition RenderCurveSceneExtension.cpp:279
virtual void PreSceneUpdate(FRDGBuilder &GraphBuilder, const FScenePreUpdateChangeSet &ChangeSet, FSceneUniformBuffer &SceneUniforms) override
Definition RenderCurveSceneExtension.cpp:251
virtual void End()
Definition RenderCurveSceneExtension.cpp:244
Definition RenderCurveSceneExtension.h:94
TByteAddressBufferScatterUploader< FPackedRenderCurveInstanceData > InstanceDataUploader
Definition RenderCurveSceneExtension.h:96
Definition RenderCurveSceneExtension.h:17
virtual ISceneExtensionRenderer * CreateRenderer(FSceneRendererBase &InSceneRenderer, const FEngineShowFlags &EngineShowFlags) override
Definition RenderCurveSceneExtension.cpp:303
bool IsEnabled() const
Definition RenderCurveSceneExtension.cpp:66
uint32 GetInstanceCount() const
Definition RenderCurveSceneExtension.cpp:56
uint32 GetClusterCount() const
Definition RenderCurveSceneExtension.cpp:61
virtual ISceneExtensionUpdater * CreateUpdater() override
Definition RenderCurveSceneExtension.cpp:234
virtual ~FRenderCurveSceneExtension()
Definition RenderCurveSceneExtension.cpp:41
virtual void InitExtension(FScene &InScene) override
Definition RenderCurveSceneExtension.cpp:51
static bool ShouldCreateExtension(FScene &Scene)
Definition RenderCurveSceneExtension.cpp:46
void SetEnabled(bool In)
Definition RenderCurveSceneExtension.cpp:71
void FinishBufferUpload(FRDGBuilder &GraphBuilder, FRenderCurveSceneParameters *OutParams)
Definition RenderCurveSceneExtension.cpp:147
Definition RefCounting.h:454
Definition SparseArray.h:524
Definition UniquePtr.h:107
Definition RenderCurveSceneExtension.cpp:13
Definition ShowFlags.h:56
Definition HairStrandsInterface.h:597
Definition RenderCurveSceneExtension.h:73
FPackedRenderCurveInstanceData Pack(uint32 InClusterOffset) const
Definition RenderCurveSceneExtension.cpp:336
FPrimitiveSceneInfo * PrimitiveSceneInfo
Definition RenderCurveSceneExtension.h:74
FRenderCurveResourceData * CurveResourceData
Definition RenderCurveSceneExtension.h:75
Definition RenderCurveSceneExtension.h:80
uint32 ClusterStideInBytes
Definition RenderCurveSceneExtension.h:82
uint32 TotalClusterCount
Definition RenderCurveSceneExtension.h:81
uint32 ClusterOffset
Definition RenderCurveSceneExtension.h:68
uint32 InstanceSceneDataOffset
Definition RenderCurveSceneExtension.h:67
uint32 PersistentIndex
Definition RenderCurveSceneExtension.h:66
uint32 ClusterCount
Definition RenderCurveSceneExtension.h:69