Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/FPrimitiveSceneInfoData
Syntax
FActorLastRenderTime * OwnerLastRenderTimePtr
Remarks
Pointer to the last render time variable on the primitive's owning actor or other UObject (if owned), which is written to by the RT and read by the GT. The value of LastRenderTime will therefore not be deterministic due to race conditions, but the GT uses it in a way that allows this. Storing a pointer to the UObject member variable only works in the AActor/UPrimitiveComponent case because: UPrimitiveComponent's outer is its owning AActor, so it prevents the owner from being garbage collected while the component lives. If the UPrimitiveComponent is GC'd during the Actor's lifetime, OwnerLastRenderTime is still valid so there is no issue. If the UPrimitiveComponent and the Actor are GC'd together, neither will be deleted until FinishDestroy has been executed on both. UPrimitiveComponent's FinishDestroy will not execute until the primitive has been detached from the Scene through it's DetachFence. In general feedback from the renderer to the game thread like this should be avoided.
Any other user of this struct that intends to add it's own primitives in the Scene must provide the same guarantees.