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

#include <InstanceUpdateChangeSet.h>

+ Inheritance diagram for FInstanceUpdateChangeSet:

Public Member Functions

 FInstanceUpdateChangeSet (int32 InNumSourceInstances, FInstanceDataFlags InFlags)
 
 FInstanceUpdateChangeSet (bool bInNeedFullUpdate, FInstanceAttributeTracker &&InInstanceAttributeTracker, int32 InNumSourceInstances)
 
template<FInstanceAttributeTracker::EFlag Flag>
FInstanceAttributeTracker::FDeltaRange< Flag > GetDelta (bool bForceEmpty, bool bForceFull=false) const
 
FInstanceAttributeTracker::FDeltaRange< FInstanceAttributeTracker::EFlag::TransformChangedGetTransformDelta () const
 
FInstanceAttributeTracker::FDeltaRange< FInstanceAttributeTracker::EFlag::IndexChangedGetIndexChangedDelta () const
 
template<FInstanceAttributeTracker::EFlag DeltaFlag, typename ElementType >
TDeltaSetup< ElementType, FInstanceAttributeTracker::FDeltaRange< DeltaFlag > > GetSetup (bool bEnabledFlag, bool bForceFullFlag, TArray< ElementType > &DataArray, int32 ElementStride=1)
 
template<typename ElementType >
TDeltaSetup< ElementType, FIdentityDeltaRangeGetSetup (bool bEnabledFlag, TArray< ElementType > &DataArray, int32 ElementStride=1)
 
auto GetTransformSetup ()
 
auto GetPrevTransformSetup ()
 
auto GetCustomDataSetup ()
 
auto GetLocalBoundsSetup ()
 
auto GetSkinningDataSetup ()
 
auto GetTransformWriter ()
 
auto GetPrevTransformWriter ()
 
auto GetCustomDataWriter ()
 
auto GetLocalBoundsWriter ()
 
auto GetSkinningDataWriter ()
 
auto GetTransformReader ()
 
auto GetPrevTransformReader ()
 
auto GetCustomDataReader ()
 
auto GetLocalBoundsReader ()
 
auto GetSkinningDataReader ()
 
auto GetLightShadowUVBiasReader ()
 
ENGINE_API void SetSharedLocalBounds (const FRenderBounds &Bounds)
 
bool IsFullUpdate () const
 

Public Attributes

FInstanceAttributeTracker InstanceAttributeTracker
 
bool bNeedFullUpdate = false
 
FInstanceDataFlags Flags
 
FInstanceDataFlags ForceFullFlags
 
bool bUpdateAllInstanceTransforms = false
 
bool bIdentityIdMap = false
 
TArray< FPrimitiveInstanceIdIndexToIdMapDeltaData
 
int32 NumCustomDataFloats = 0
 
TArray< FRenderTransformTransforms
 
TArray< FRenderTransformPrevTransforms
 
TArray< floatPerInstanceCustomData
 
TArray< uint32InstanceSkinningData
 
TArray< FVector4fInstanceLightShadowUVBias
 
TArray< FRenderBoundsInstanceLocalBounds
 
TFunction< void(TArray< float > &InstanceRandomIDs)> GeneratePerInstanceRandomIds
 
FRenderTransform PrimitiveToRelativeWorld
 
FVector PrimitiveWorldSpaceOffset
 
TOptional< FRenderTransformPreviousPrimitiveToRelativeWorld
 
float AbsMaxDisplacement = 0.0f
 
int32 NumSourceInstances = 0
 
int32 MaxInstanceId = 0
 
FPrecomputedInstanceSpatialHashDataPtr PrecomputedOptimizationData
 

Detailed Description

Collects changed instance data (and what else is needed to update the instance data proxy) from the source and

Constructor & Destructor Documentation

◆ FInstanceUpdateChangeSet() [1/2]

FInstanceUpdateChangeSet::FInstanceUpdateChangeSet ( int32  InNumSourceInstances,
FInstanceDataFlags  InFlags 
)
inline

Construct a full change set, with no delta (which will collect all enabled data).

◆ FInstanceUpdateChangeSet() [2/2]

FInstanceUpdateChangeSet::FInstanceUpdateChangeSet ( bool  bInNeedFullUpdate,
FInstanceAttributeTracker &&  InInstanceAttributeTracker,
int32  InNumSourceInstances 
)
inline

Construct a delta change set, but which can be forced to full using bInNeedFullUpdate.

Member Function Documentation

◆ GetCustomDataReader()

auto FInstanceUpdateChangeSet::GetCustomDataReader ( )
inline

◆ GetCustomDataSetup()

auto FInstanceUpdateChangeSet::GetCustomDataSetup ( )
inline

◆ GetCustomDataWriter()

auto FInstanceUpdateChangeSet::GetCustomDataWriter ( )
inline

◆ GetDelta()

FInstanceAttributeTracker::FDeltaRange< Flag > FInstanceUpdateChangeSet::GetDelta ( bool  bForceEmpty,
bool  bForceFull = false 
) const
inline

◆ GetIndexChangedDelta()

FInstanceAttributeTracker::FDeltaRange< FInstanceAttributeTracker::EFlag::IndexChanged > FInstanceUpdateChangeSet::GetIndexChangedDelta ( ) const
inline

◆ GetLightShadowUVBiasReader()

auto FInstanceUpdateChangeSet::GetLightShadowUVBiasReader ( )
inline

◆ GetLocalBoundsReader()

auto FInstanceUpdateChangeSet::GetLocalBoundsReader ( )
inline

◆ GetLocalBoundsSetup()

auto FInstanceUpdateChangeSet::GetLocalBoundsSetup ( )
inline

◆ GetLocalBoundsWriter()

auto FInstanceUpdateChangeSet::GetLocalBoundsWriter ( )
inline

◆ GetPrevTransformReader()

auto FInstanceUpdateChangeSet::GetPrevTransformReader ( )
inline

◆ GetPrevTransformSetup()

auto FInstanceUpdateChangeSet::GetPrevTransformSetup ( )
inline

◆ GetPrevTransformWriter()

auto FInstanceUpdateChangeSet::GetPrevTransformWriter ( )
inline

◆ GetSetup() [1/2]

template<FInstanceAttributeTracker::EFlag DeltaFlag, typename ElementType >
TDeltaSetup< ElementType, FInstanceAttributeTracker::FDeltaRange< DeltaFlag > > FInstanceUpdateChangeSet::GetSetup ( bool  bEnabledFlag,
bool  bForceFullFlag,
TArray< ElementType > &  DataArray,
int32  ElementStride = 1 
)
inline

◆ GetSetup() [2/2]

template<typename ElementType >
TDeltaSetup< ElementType, FIdentityDeltaRange > FInstanceUpdateChangeSet::GetSetup ( bool  bEnabledFlag,
TArray< ElementType > &  DataArray,
int32  ElementStride = 1 
)
inline

◆ GetSkinningDataReader()

auto FInstanceUpdateChangeSet::GetSkinningDataReader ( )
inline

◆ GetSkinningDataSetup()

auto FInstanceUpdateChangeSet::GetSkinningDataSetup ( )
inline

◆ GetSkinningDataWriter()

auto FInstanceUpdateChangeSet::GetSkinningDataWriter ( )
inline

◆ GetTransformDelta()

FInstanceAttributeTracker::FDeltaRange< FInstanceAttributeTracker::EFlag::TransformChanged > FInstanceUpdateChangeSet::GetTransformDelta ( ) const
inline

◆ GetTransformReader()

auto FInstanceUpdateChangeSet::GetTransformReader ( )
inline

◆ GetTransformSetup()

auto FInstanceUpdateChangeSet::GetTransformSetup ( )
inline

◆ GetTransformWriter()

auto FInstanceUpdateChangeSet::GetTransformWriter ( )
inline

◆ IsFullUpdate()

bool FInstanceUpdateChangeSet::IsFullUpdate ( ) const
inline

◆ SetSharedLocalBounds()

void FInstanceUpdateChangeSet::SetSharedLocalBounds ( const FRenderBounds Bounds)

Used to set a single, shared, instance local bounds, only allowed when Flags.bHasPerInstanceLocalBounds is false.

Member Data Documentation

◆ AbsMaxDisplacement

float FInstanceUpdateChangeSet::AbsMaxDisplacement = 0.0f

◆ bIdentityIdMap

bool FInstanceUpdateChangeSet::bIdentityIdMap = false

◆ bNeedFullUpdate

bool FInstanceUpdateChangeSet::bNeedFullUpdate = false

◆ bUpdateAllInstanceTransforms

bool FInstanceUpdateChangeSet::bUpdateAllInstanceTransforms = false

◆ Flags

FInstanceDataFlags FInstanceUpdateChangeSet::Flags

Flags that dictate what attributes will be gathered from the source (and deposited at the destination). These must be present during gather (or they should have been disabled earlier). Constructed as the intersection of the flags indicated by the component & what is supported by the proxy(?).

◆ ForceFullFlags

FInstanceDataFlags FInstanceUpdateChangeSet::ForceFullFlags

Flags that can be set to force individual attributes to use a full update has effect IFF Flags is set for the given attribute. If an attribute was enabled after not being used (e.g., on a material change, perhaps) a full update must be sent.

◆ GeneratePerInstanceRandomIds

TFunction<void(TArray<float> &InstanceRandomIDs)> FInstanceUpdateChangeSet::GeneratePerInstanceRandomIds

◆ IndexToIdMapDeltaData

TArray<FPrimitiveInstanceId> FInstanceUpdateChangeSet::IndexToIdMapDeltaData

◆ InstanceAttributeTracker

FInstanceAttributeTracker FInstanceUpdateChangeSet::InstanceAttributeTracker

◆ InstanceLightShadowUVBias

TArray<FVector4f> FInstanceUpdateChangeSet::InstanceLightShadowUVBias

◆ InstanceLocalBounds

TArray<FRenderBounds> FInstanceUpdateChangeSet::InstanceLocalBounds

◆ InstanceSkinningData

TArray<uint32> FInstanceUpdateChangeSet::InstanceSkinningData

◆ MaxInstanceId

int32 FInstanceUpdateChangeSet::MaxInstanceId = 0

◆ NumCustomDataFloats

int32 FInstanceUpdateChangeSet::NumCustomDataFloats = 0

◆ NumSourceInstances

int32 FInstanceUpdateChangeSet::NumSourceInstances = 0

◆ PerInstanceCustomData

TArray<float> FInstanceUpdateChangeSet::PerInstanceCustomData

◆ PrecomputedOptimizationData

FPrecomputedInstanceSpatialHashDataPtr FInstanceUpdateChangeSet::PrecomputedOptimizationData

Describes precomputed spatial hashes and the instance reordering that is needed to use these. If set, the update must reorder the data appropriately. Should only ever be used together with a full rebuild.

◆ PreviousPrimitiveToRelativeWorld

TOptional<FRenderTransform> FInstanceUpdateChangeSet::PreviousPrimitiveToRelativeWorld

◆ PrevTransforms

TArray<FRenderTransform> FInstanceUpdateChangeSet::PrevTransforms

◆ PrimitiveToRelativeWorld

FRenderTransform FInstanceUpdateChangeSet::PrimitiveToRelativeWorld

◆ PrimitiveWorldSpaceOffset

FVector FInstanceUpdateChangeSet::PrimitiveWorldSpaceOffset

◆ Transforms

TArray<FRenderTransform> FInstanceUpdateChangeSet::Transforms

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