UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ScenePrimitiveUpdates.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
6#include "GPUSceneWriter.h"
7
9
15{
16 None = 0u,
18 Transform = 1u << 0,
20 InstanceData = 1u << 1,
26 CullingBounds = 1u << 2,
30 CullingLogic = 1u << 3,
32 GPUState = 1u << 4,
36};
38
53
55
56using FPrimitiveUpdateCommand = FScenePrimitiveUpdates::FUpdateCommand;
57
58template <EPrimitiveUpdateId InId, EPrimitiveUpdateDirtyFlags InDirtyFlags>
59using TPrimitiveUpdatePayloadBase = FScenePrimitiveUpdates::TPayloadBase<InId, InDirtyFlags>;
60
61struct FUpdateTransformCommand : public TPrimitiveUpdatePayloadBase<EPrimitiveUpdateId::UpdateTransform,
62 EPrimitiveUpdateDirtyFlags::GPUState | EPrimitiveUpdateDirtyFlags::Transform | EPrimitiveUpdateDirtyFlags::CullingBounds>
63{
68};
69
70struct FUpdateInstanceCommand : public TPrimitiveUpdatePayloadBase<EPrimitiveUpdateId::UpdateInstance,
71 EPrimitiveUpdateDirtyFlags::GPUState | EPrimitiveUpdateDirtyFlags::Transform | EPrimitiveUpdateDirtyFlags::CullingBounds | EPrimitiveUpdateDirtyFlags::InstanceData>
72{
76};
77
78struct FUpdateInstanceFromComputeCommand : public TPrimitiveUpdatePayloadBase<EPrimitiveUpdateId::UpdateInstanceFromCompute, EPrimitiveUpdateDirtyFlags::CullingBounds | EPrimitiveUpdateDirtyFlags::InstanceData>
79{
82};
83
87template <typename InPayloadDataType, EPrimitiveUpdateId InId, EPrimitiveUpdateDirtyFlags InPrimitiveDirtyFlags>
93
95 EPrimitiveUpdateDirtyFlags::None>; // No GPU side effect (?).
99 EPrimitiveUpdateDirtyFlags::None>; // Only affects primitive occlusion.
103 EPrimitiveUpdateDirtyFlags::CullingLogic>; // Only affects CPU culling.
105 EPrimitiveUpdateDirtyFlags::None>; // Only affects DF scene rep - candidate for using abstract type.
107 EPrimitiveUpdateDirtyFlags::GPUState>;// Overrides the previous transform, which needs to be propagated to the GPU, but otherwise does not change anything on its own.
108
123
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
UE::Math::TMatrix< double > FMatrix
Definition MathFwd.h:51
EPrimitiveUpdateId
Definition ScenePrimitiveUpdates.h:40
EPrimitiveUpdateDirtyFlags
Definition ScenePrimitiveUpdates.h:15
FScenePrimitiveUpdates::TPayloadBase< InId, InDirtyFlags > TPrimitiveUpdatePayloadBase
Definition ScenePrimitiveUpdates.h:59
FScenePrimitiveUpdates::FUpdateCommand FPrimitiveUpdateCommand
Definition ScenePrimitiveUpdates.h:56
TPrimitiveUpdatePayloadBase< EPrimitiveUpdateId::DistanceFieldScene, EPrimitiveUpdateDirtyFlags::None > FUpdateDistanceFieldSceneData
Definition ScenePrimitiveUpdates.h:105
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GPUSceneWriter.h:91
Definition PrimitiveComponentId.h:12
Definition PrimitiveSceneProxy.h:296
Definition ScenePrimitiveUpdates.h:129
const FViewSceneChangeSet * ViewUpdateChangeSet
Definition ScenePrimitiveUpdates.h:134
TConstArrayView< FPersistentPrimitiveIndex > AddedPrimitiveIds
Definition ScenePrimitiveUpdates.h:131
const FScenePrimitiveUpdates & PrimitiveUpdates
Definition ScenePrimitiveUpdates.h:133
TConstArrayView< FPrimitiveSceneInfo * > AddedPrimitiveSceneInfos
Definition ScenePrimitiveUpdates.h:132
Definition ScenePrimitiveUpdates.h:116
TConstArrayView< FPersistentPrimitiveIndex > RemovedPrimitiveIds
Definition ScenePrimitiveUpdates.h:118
const FScenePrimitiveUpdates & PrimitiveUpdates
Definition ScenePrimitiveUpdates.h:120
const FViewSceneChangeSet * ViewUpdateChangeSet
Definition ScenePrimitiveUpdates.h:121
TConstArrayView< FPrimitiveSceneInfo * > RemovedPrimitiveSceneInfos
Definition ScenePrimitiveUpdates.h:119
Definition SceneTypes.h:30
Definition ScenePrimitiveUpdates.h:72
FPrimitiveSceneProxy * PrimitiveSceneProxy
Definition ScenePrimitiveUpdates.h:73
FBoxSphereBounds LocalBounds
Definition ScenePrimitiveUpdates.h:75
FBoxSphereBounds WorldBounds
Definition ScenePrimitiveUpdates.h:74
Definition ScenePrimitiveUpdates.h:79
FPrimitiveSceneProxy * PrimitiveSceneProxy
Definition ScenePrimitiveUpdates.h:80
FGPUSceneWriteDelegate GPUSceneWriter
Definition ScenePrimitiveUpdates.h:81
Definition ScenePrimitiveUpdates.h:63
FBoxSphereBounds LocalBounds
Definition ScenePrimitiveUpdates.h:65
FVector AttachmentRootPosition
Definition ScenePrimitiveUpdates.h:67
FBoxSphereBounds WorldBounds
Definition ScenePrimitiveUpdates.h:64
FMatrix LocalToWorld
Definition ScenePrimitiveUpdates.h:66
Definition ScenePrivate.h:2863
Definition ScenePrimitiveUpdates.h:89
InPayloadDataType Value
Definition ScenePrimitiveUpdates.h:91
TSingleValuePrimitiveUpdatePayload(const InPayloadDataType &InValue)
Definition ScenePrimitiveUpdates.h:90
Definition BoxSphereBounds.h:25