Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/InstancedStaticMesh
Inheritance Hierarchy
- FInstanceIdIndexMap
- FPrimitiveInstanceDataManager
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Public/InstancedStaticMesh/ISMInstanceDataManager.h |
| Include | #include "InstancedStaticMesh/ISMInstanceDataManager.h" |
Syntax
class FPrimitiveInstanceDataManager : public FInstanceIdIndexMap
Remarks
Manager class that tracks changes to instance data within the component, and is responsible for dispatching updates of the proxy. Tracks instance index changes to be able to maintain a persistent ID mapping for use on the render thread. The ID mapping is not serialized and will be reset when the proxy is recreated. Not responsible for storing the component representation of the instance data. NOTE/TODO: This is tied to the ISM use-case, mostly because of legacy (HISM) interactions. Will be refactored and sub-classed or something. Also: Still somewhat tied to the UComponent, which also can be refactored a bit to make it more general.
Constructors
| Type | Name | Description | |
|---|---|---|---|
FPrimitiveInstanceDataManager
(
UPrimitiveComponent* InPrimitiveComponent |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | |||
| void | BakedLightingDataChanged
(
int32 InstanceIndex |
||
| void | |||
| void | BeginCacheForCookedPlatformData
(
const ITargetPlatform* TargetPlatform, |
||
| void | Clear all tracked changes (will result in a full update when next one is flushed) | ||
| void | ClearIdTracking
(
int32 InNumInstances |
Clear the ID/Index association and reset the mapping to identity & number of instances to the given number. | |
| void | |||
| void | CustomDataChanged
(
int32 InstanceIndex |
||
| void | |||
| bool | FlushChanges
(
FInstanceUpdateComponentDesc&& ComponentData, |
||
| SIZE_T | |||
| int32 | |||
| int32 | |||
| EMode | GetMode () |
||
| TSharedPtr< FISMCInstanceDataSceneProxy, ESPMode::ThreadSafe > | GetOrCreateProxy
(
ERHIFeatureLevel::Type InFeatureLevel |
||
| ETrackingState | GetState () |
||
| bool | Returns true if there are explicitly tracked instance changes, or the state is not tracked (because no proxy has been created yet), and the tracking state is not Disabled. | ||
| bool | |||
| void | Invalidate
(
int32 InNumInstances |
||
| void | MarkForRebuildFromLegacy
(
TUniquePtr< FStaticMeshInstanceData >&& LegacyInstanceData, |
Call to mark the manager as needing a full rebuild & having an external driver for this. | |
| void | |||
| void | OnRegister
(
int32 InNumInstances |
Called by the corresponding function in the owner UPrimitiveComponent Because of the multifarious ways the engine shoves data into the properties it is possible for the count to get out of sync. | |
| void | |||
| void | |||
| void | ReadCookedRenderData
(
FArchive& Ar |
||
| void | |||
| void | RemoveAtSwap
(
int32 InstanceIndex |
||
| void | |||
| void | |||
| void | TransformChanged
(
int32 InstanceIndex |
||
| void | TransformChanged
(
FPrimitiveInstanceId InstanceId |
||
| void | |||
| void | |||
| void | WriteCookedRenderData
(
FArchive& Ar, |
Enums
| Type | Name | Description | |
|---|---|---|---|
| EMode | |||
| ETrackingState | Current tracking state, |
Typedefs
| Name | Description |
|---|---|
| EChangeFlag | |
| PrecomputedOptimizationDataPtr |