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

#include <GPUScene.h>

Public Member Functions

 FGPUScenePrimitiveCollector (FGPUSceneDynamicContext *InGPUSceneDynamicContext=nullptr)
 
virtual void Add (const FMeshBatchDynamicPrimitiveData *MeshBatchData, const FPrimitiveUniformShaderParameters &PrimitiveShaderParams, uint32 NumInstances, uint32 &OutPrimitiveIndex, uint32 &OutInstanceSceneDataOffset)
 
RENDERER_API void Commit ()
 
FORCEINLINE const TRange< int32 > & GetPrimitiveIdRange () const
 
FORCEINLINE int32 GetInstanceSceneDataOffset () const
 
FORCEINLINE int32 GetInstancePayloadDataOffset () const
 
int32 Num () const
 
int32 NumInstances () const
 
int32 NumPayloadDataSlots () const
 
const FPrimitiveUniformShaderParametersGetPrimitiveShaderParameters (int32 PrimitiveId) const
 

Friends

class FGPUScene
 
class FGPUSceneDynamicContext
 
struct FUploadDataSourceAdapterDynamicPrimitives
 

Detailed Description

Used to manage dynamic primitives for a given view, during InitViews the data is collected and then can be committed to the GPU-Scene. Once committed the range of indices are valid and can be used to calculate the PrimitiveIds.

Constructor & Destructor Documentation

◆ FGPUScenePrimitiveCollector()

FGPUScenePrimitiveCollector::FGPUScenePrimitiveCollector ( FGPUSceneDynamicContext InGPUSceneDynamicContext = nullptr)
inline

Member Function Documentation

◆ Add()

void FGPUScenePrimitiveCollector::Add ( const FMeshBatchDynamicPrimitiveData MeshBatchData,
const FPrimitiveUniformShaderParameters PrimitiveShaderParams,
uint32  NumInstances,
uint32 OutPrimitiveIndex,
uint32 OutInstanceSceneDataOffset 
)
virtual

Add data for a primitive with a number of instances. May be called outside (before) a FGPUScene::Begin/EndRender block. Note: needs to be virtual to prevent a linker error

◆ Commit()

void FGPUScenePrimitiveCollector::Commit ( )

Allocates the range in GPUScene and queues the data for upload. After this is called no more calls to Add are allowed. Only allowed inside a FGPUScene::Begin/EndRender block.

◆ GetInstancePayloadDataOffset()

FORCEINLINE int32 FGPUScenePrimitiveCollector::GetInstancePayloadDataOffset ( ) const
inline

◆ GetInstanceSceneDataOffset()

FORCEINLINE int32 FGPUScenePrimitiveCollector::GetInstanceSceneDataOffset ( ) const
inline

◆ GetPrimitiveIdRange()

FORCEINLINE const TRange< int32 > & FGPUScenePrimitiveCollector::GetPrimitiveIdRange ( ) const
inline

Get the range of Primitive IDs in GPU-Scene for this batch of dynamic primitives, only valid to call after commit.

◆ GetPrimitiveShaderParameters()

const FPrimitiveUniformShaderParameters * FGPUScenePrimitiveCollector::GetPrimitiveShaderParameters ( int32  PrimitiveId) const

◆ Num()

int32 FGPUScenePrimitiveCollector::Num ( ) const
inline

◆ NumInstances()

int32 FGPUScenePrimitiveCollector::NumInstances ( ) const
inline

◆ NumPayloadDataSlots()

int32 FGPUScenePrimitiveCollector::NumPayloadDataSlots ( ) const
inline

Friends And Related Symbol Documentation

◆ FGPUScene

friend class FGPUScene
friend

◆ FGPUSceneDynamicContext

◆ FUploadDataSourceAdapterDynamicPrimitives


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