114 static inline uint32 Pack(
const FColor& HitProxyColor,
bool bSelected)
116 return uint32(HitProxyColor.
R) |
uint32(HitProxyColor.
G) << 8u |
uint32(HitProxyColor.
B) << 16u | (bSelected ? 1u << 24u : 0u);
379 std::atomic<uint32>
Value = 0;
439 template <
typename TaskLambdaType>
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ESceneDepthPriorityGroup
Definition EngineTypes.h:187
Definition Archive.h:1208
Definition InstanceDataSceneProxy.h:448
virtual const FInstanceSceneDataBuffers * GeInstanceSceneDataBuffers() const
Definition InstanceDataSceneProxy.h:454
ENGINE_API FInstanceDataSceneProxy()
Definition InstanceDataSceneProxy.cpp:289
FInstanceSceneDataBuffers InstanceSceneDataBuffers
Definition InstanceDataSceneProxy.h:472
virtual FInstanceDataUpdateTaskInfo * GetUpdateTaskInfo()
Definition InstanceDataSceneProxy.h:459
ENGINE_API void IncStatCounters()
Definition InstanceDataSceneProxy.cpp:303
ENGINE_API void DecStatCounters()
Definition InstanceDataSceneProxy.cpp:331
virtual void DebugDrawInstanceChanges(FPrimitiveDrawInterface *DebugPDI, ESceneDepthPriorityGroup SceneDepthPriorityGroup)
Definition InstanceDataSceneProxy.h:461
virtual ENGINE_API ~FInstanceDataSceneProxy()
Definition InstanceDataSceneProxy.cpp:298
virtual FStaticMeshInstanceBuffer * GetLegacyInstanceBuffer()
Definition InstanceDataSceneProxy.h:466
Definition InstanceDataSceneProxy.h:425
friend void BeginInstanceDataUpdateTask(FInstanceDataUpdateTaskInfo &InstanceDataUpdateTaskInfo, TaskLambdaType &&TaskLambda, const FInstanceDataBufferHeader &InInstanceDataBufferHeader)
Definition InstanceDataUpdateUtils.h:363
ENGINE_API void WaitForUpdateCompletion()
Definition InstanceDataSceneProxy.cpp:284
const FInstanceDataBufferHeader & GetHeader() const
Definition InstanceDataSceneProxy.h:431
Definition InstanceDataSceneProxy.h:15
ENGINE_API void CreateExplicitIdentityMapping()
Definition InstanceDataSceneProxy.cpp:51
int32 NumInstances
Definition InstanceDataSceneProxy.h:107
ENGINE_API void RebuildFromIndexToIdMap(TArray< FPrimitiveInstanceId > &&InIndexToIdMap, int32 MaxInstanceId)
Definition InstanceDataSceneProxy.cpp:101
int32 GetMaxInstanceId() const
Definition InstanceDataSceneProxy.h:27
int32 GetMaxInstanceIndex() const
Definition InstanceDataSceneProxy.h:32
bool IsIdentity() const
Definition InstanceDataSceneProxy.h:22
void Update(FPrimitiveInstanceId InstanceId, int32 InstanceIndex)
Definition InstanceDataSceneProxy.h:67
FPrimitiveInstanceId IndexToId(int32 InstanceIndex) const
Definition InstanceDataSceneProxy.h:49
TArray< int32 > IdToIndexMap
Definition InstanceDataSceneProxy.h:105
int32 IdToIndex(FPrimitiveInstanceId InstanceId) const
Definition InstanceDataSceneProxy.h:41
bool IsValidId(FPrimitiveInstanceId InstanceId) const
Definition InstanceDataSceneProxy.h:37
TArray< FPrimitiveInstanceId > IndexToIdMap
Definition InstanceDataSceneProxy.h:104
ENGINE_API void ResizeExplicit(int32 InNumInstances, int32 MaxInstanceId)
Definition InstanceDataSceneProxy.cpp:31
FInstanceIdIndexMap()=default
void SetInvalid(FPrimitiveInstanceId InstanceId)
Definition InstanceDataSceneProxy.h:58
Definition InstanceDataSceneProxy.h:135
TArray< FRenderTransform > PrevInstanceToPrimitiveRelative
Definition InstanceDataSceneProxy.h:356
int32 GetNumCustomDataFloats(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:158
TArray< FRenderBounds > InstanceLocalBounds
Definition InstanceDataSceneProxy.h:348
FWriteView BeginWriteAccess(FAccessTag AccessTag)
Definition InstanceDataSceneProxy.h:246
ENGINE_API FInstanceSceneDataBuffers()
Definition InstanceDataSceneProxy.cpp:107
FInstanceSceneDataImmutablePtr Immutable
Definition InstanceDataSceneProxy.h:392
FInstanceDataFlags Flags
Definition InstanceDataSceneProxy.h:365
ENGINE_API void ValidateData() const
Definition InstanceDataSceneProxy.cpp:245
FInstanceSceneDataImmutablePtr GetImmutable() const
Definition InstanceDataSceneProxy.h:343
TArray< float > InstanceRandomIDs
Definition InstanceDataSceneProxy.h:350
bool GetInstanceVisible(int32 InstanceIndex, FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:202
ENGINE_API void SetPrimitiveLocalToWorld(const FMatrix &PrimitiveLocalToWorld, FAccessTag AccessTag=FAccessTag())
Definition InstanceDataSceneProxy.cpp:222
int32 NumCustomDataFloats
Definition InstanceDataSceneProxy.h:364
FReadView GetReadView(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:313
void EndWriteAccess(FAccessTag AccessTag)
Definition InstanceDataSceneProxy.h:277
TArray< uint32 > InstanceHierarchyOffset
Definition InstanceDataSceneProxy.h:353
ENGINE_API void SetImmutable(FInstanceSceneDataImmutable &&ImmutableData, FAccessTag AccessTag)
Definition InstanceDataSceneProxy.cpp:261
FRenderTransform PrimitiveToRelativeWorld
Definition InstanceDataSceneProxy.h:346
TArray< uint32 > InstanceSkinningData
Definition InstanceDataSceneProxy.h:352
const FInstanceDataFlags & GetFlags() const
Definition InstanceDataSceneProxy.h:155
static ENGINE_API uint32 CalcPayloadDataStride(FInstanceDataFlags Flags, int32 InNumCustomDataFloats, int32 InNumPayloadExtensionFloat4s)
Definition InstanceDataSceneProxy.cpp:116
const FVector & GetPrimitiveWorldSpaceOffset(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:200
FRenderTransform GetInstanceToPrimitiveRelative(int32 InstanceIndex, FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:191
void ValidateAccess(const FAccessTag &AccessTag) const
Definition InstanceDataSceneProxy.h:389
ENGINE_API FMatrix GetInstanceToWorld(int32 InstanceIndex, FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.cpp:205
ENGINE_API FRenderBounds GetInstanceLocalBounds(int32 InstanceIndex, FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.cpp:181
TArray< FVector4f > InstancePayloadExtension
Definition InstanceDataSceneProxy.h:354
bool bInstanceDataIsGPUOnly
Definition InstanceDataSceneProxy.h:368
TArray< FVector4f > InstanceLightShadowUVBias
Definition InstanceDataSceneProxy.h:351
bool IsInstanceDataGPUOnly(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:187
FVector PrimitiveWorldSpaceOffset
Definition InstanceDataSceneProxy.h:347
int32 GetNumInstances(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:157
ENGINE_API FBoxSphereBounds GetInstanceWorldBounds(int32 InstanceIndex, FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.cpp:194
ENGINE_API FRenderTransform ComputeInstanceToPrimitiveRelative(const FMatrix44f &InstanceToPrimitive, FAccessTag AccessTag=FAccessTag())
Definition InstanceDataSceneProxy.cpp:212
ENGINE_API FInstanceDataBufferHeader GetHeader(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.cpp:230
FInstanceSceneDataBuffers(FInstanceSceneDataBuffers &&Other)=default
int32 NumInstancesGPUOnly
Definition InstanceDataSceneProxy.h:363
TArray< FRenderTransform > InstanceToPrimitiveRelative
Definition InstanceDataSceneProxy.h:355
ENGINE_API FRenderBounds GetInstancePrimitiveRelativeBounds(int32 InstanceIndex, FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.cpp:188
TArray< float > InstanceCustomData
Definition InstanceDataSceneProxy.h:349
const FRenderTransform & GetPrimitiveToRelativeWorld(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:204
FRenderTransform GetPrevInstanceToPrimitiveRelative(int32 InstanceIndex, FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.h:195
ENGINE_API uint32 GetPayloadDataStride(FAccessTag AccessTag=FAccessTag()) const
Definition InstanceDataSceneProxy.cpp:162
TBitArray VisibleInstances
Definition InstanceDataSceneProxy.h:361
Definition InstanceDataSceneProxy.h:399
FInstanceSceneDataImmutable(const TArray< FInstanceSceneDataBuffers::FCompressedSpatialHashItem > &InCompressedInstanceSpatialHashes)
Definition InstanceDataSceneProxy.h:401
const TArray< FInstanceSceneDataBuffers::FCompressedSpatialHashItem > & GetCompressedInstanceSpatialHashes() const
Definition InstanceDataSceneProxy.h:403
Definition PrimitiveDrawInterface.h:19
Definition InstanceDataSceneProxy.h:413
ENGINE_API FSingleInstanceDataBuffers()
Definition InstanceDataSceneProxy.cpp:268
ENGINE_API void UpdateDefaultInstance(const FMatrix &PrimitiveLocalToWorld, const FRenderBounds LocalBounds)
Definition InstanceDataSceneProxy.cpp:275
Definition InstancedStaticMesh.h:71
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
bool Unpack(FUdpPingPacket &OutPacket, uint8 *const Buf, const SIZE_T BufSize)
Definition UDPPing.cpp:1154
uint8 G
Definition Color.h:492
uint8 R
Definition Color.h:492
uint8 B
Definition Color.h:492
Definition InstanceDataSceneProxy.h:142
FAccessTag(uint32 InWriterTag)
Definition InstanceDataSceneProxy.h:149
uint32 WriterTag
Definition InstanceDataSceneProxy.h:151
EKind
Definition InstanceDataSceneProxy.h:144
EKind Kind
Definition InstanceDataSceneProxy.h:152
FAccessTag()
Definition InstanceDataSceneProxy.h:148
Definition InstanceDataSceneProxy.h:215
RenderingSpatialHash::FLocation64 Location
Definition InstanceDataSceneProxy.h:217
int32 NumInstances
Definition InstanceDataSceneProxy.h:218
Definition InstanceDataSceneProxy.h:289
const TArray< FRenderTransform > & InstanceToPrimitiveRelative
Definition InstanceDataSceneProxy.h:299
const TArray< FVector4f > & InstanceLightShadowUVBias
Definition InstanceDataSceneProxy.h:295
int32 NumInstancesGPUOnly
Definition InstanceDataSceneProxy.h:307
const TArray< uint32 > & InstanceHierarchyOffset
Definition InstanceDataSceneProxy.h:297
const TArray< FRenderTransform > & PrevInstanceToPrimitiveRelative
Definition InstanceDataSceneProxy.h:300
const TArray< uint32 > & InstanceSkinningData
Definition InstanceDataSceneProxy.h:296
const TArray< float > & InstanceRandomIDs
Definition InstanceDataSceneProxy.h:294
const TArray< FRenderBounds > & InstanceLocalBounds
Definition InstanceDataSceneProxy.h:292
const TArray< FVector4f > & InstancePayloadExtension
Definition InstanceDataSceneProxy.h:298
const FRenderTransform & PrimitiveToRelativeWorld
Definition InstanceDataSceneProxy.h:290
const TBitArray & VisibleInstances
Definition InstanceDataSceneProxy.h:305
bool bInstanceDataIsGPUOnly
Definition InstanceDataSceneProxy.h:310
const FVector & PrimitiveWorldSpaceOffset
Definition InstanceDataSceneProxy.h:291
int32 NumCustomDataFloats
Definition InstanceDataSceneProxy.h:308
FInstanceDataFlags Flags
Definition InstanceDataSceneProxy.h:309
const TArray< float > & InstanceCustomData
Definition InstanceDataSceneProxy.h:293
Definition InstanceDataSceneProxy.h:222
FRenderTransform & PrimitiveToRelativeWorld
Definition InstanceDataSceneProxy.h:224
TArray< float > & InstanceRandomIDs
Definition InstanceDataSceneProxy.h:228
TArray< uint32 > & InstanceHierarchyOffset
Definition InstanceDataSceneProxy.h:231
FInstanceDataFlags & Flags
Definition InstanceDataSceneProxy.h:243
int32 & NumCustomDataFloats
Definition InstanceDataSceneProxy.h:242
TArray< FVector4f > & InstancePayloadExtension
Definition InstanceDataSceneProxy.h:232
TArray< FRenderTransform > & InstanceToPrimitiveRelative
Definition InstanceDataSceneProxy.h:233
TBitArray & VisibleInstances
Definition InstanceDataSceneProxy.h:239
TArray< FRenderTransform > & PrevInstanceToPrimitiveRelative
Definition InstanceDataSceneProxy.h:234
FVector & PrimitiveWorldSpaceOffset
Definition InstanceDataSceneProxy.h:225
TArray< FVector4f > & InstanceLightShadowUVBias
Definition InstanceDataSceneProxy.h:229
TArray< float > & InstanceCustomData
Definition InstanceDataSceneProxy.h:227
FInstanceSceneDataBuffers::FAccessTag AccessTag
Definition InstanceDataSceneProxy.h:223
TArray< uint32 > & InstanceSkinningData
Definition InstanceDataSceneProxy.h:230
TArray< FRenderBounds > & InstanceLocalBounds
Definition InstanceDataSceneProxy.h:226
int32 & NumInstancesGPUOnly
Definition InstanceDataSceneProxy.h:241
Definition InstanceDataTypes.h:19
int32 Id
Definition InstanceDataTypes.h:32
Definition RenderTransform.h:272
Definition RenderingSpatialHash.h:17
Definition BoxSphereBounds.h:25
Definition InstanceDataTypes.h:36
uint16 bHasPerInstanceVisible
Definition InstanceDataTypes.h:48