5#include "Containers/Array.h"
7#include "Containers/Map.h"
36struct FAnimTypePreAnimatedStateObjectStorage;
37struct FAnimTypePreAnimatedStateRootStorage;
38struct FPreAnimatedEntityCaptureSource;
39struct FPreAnimatedEvaluationHookCaptureSources;
40struct FPreAnimatedStateEntry;
41struct FPreAnimatedStateExtension;
42struct FPreAnimatedTemplateCaptureSources;
43struct FPreAnimatedTrackInstanceCaptureSources;
44struct FPreAnimatedTrackInstanceInputCaptureSources;
45struct FRestoreStateParams;
46struct FSharedPlaybackState;
47struct IPreAnimatedCaptureSource;
48struct IPreAnimatedStorage;
86 template<
typename StorageType>
99 template<
typename StorageType>
110 template<
typename StorageType>
122 template<
typename StorageType>
132 template<
typename StorageType>
152 return StorageImplementations.FindChecked(
InStorageID);
163 template<
typename GroupManagerType>
175 template<
typename GroupManagerType>
183 Existing->InitializeGroupManager(
this);
184 GroupManagers.Add(GroupManagerType::GroupManagerID,
Existing);
216 return bEntriesInvalidated;
224 bEntriesInvalidated =
false;
340 void HandleMetaDataToRemove(
380 friend struct ::FScopedPreAnimatedCaptureSource;
382 struct FAggregatePreAnimatedStateMetaData
391 uint16 NumContributors = 0;
392 uint16 NumRestoreContributors = 0;
393 bool bWantedRestore =
false;
394 bool bEligibleForGlobalRestore =
false;
402 struct FPreAnimatedGroupMetaData
418 bool bEntriesInvalidated;
422 static MOVIESCENE_API FPreAnimatedStorageID RegisterStorageInternal();
426template<
typename KeyType>
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition UObjectGlobals.h:2492
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
TSharedRef< TPreAnimatedStateGroupManager< KeyType >, Mode > AsShared()
Definition SharedPointer.h:1650
Definition SharedPointer.h:692
Definition SortedMap.h:20
Definition SparseArray.h:524
Definition UniquePtr.h:107
Definition SharedPointer.h:1295
Definition MovieSceneEntitySystemLinker.h:113
EPreAnimatedStorageRequirement
Definition MovieScenePreAnimatedStateTypes.h:32
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition MovieSceneAnimTypeID.h:20
Definition ObjectKey.h:19
Definition MovieScenePreAnimatedCaptureSource.h:40
Definition MovieSceneExecutionToken.h:82
Definition MovieSceneExecutionToken.h:38
Definition MovieSceneSequenceInstanceHandle.h:15
Definition MovieScenePreAnimatedCaptureSources.h:115
Definition MovieScenePreAnimatedCaptureSources.h:158
Definition MovieScenePreAnimatedStateTypes.h:134
Definition MovieScenePreAnimatedStateTypes.h:158
Definition MovieScenePreAnimatedStateExtension.h:73
TSharedPtr< StorageType > GetOrCreateStorage()
Definition MovieScenePreAnimatedStateExtension.h:123
MOVIESCENE_API FPreAnimatedTrackInstanceCaptureSources * GetOrCreateTrackInstanceMetaData()
Definition MovieScenePreAnimatedStateExtension.cpp:257
bool AreEntriesInvalidated() const
Definition MovieScenePreAnimatedStateExtension.h:214
MOVIESCENE_API void FreeGroup(FPreAnimatedStorageGroupHandle Index)
Definition MovieScenePreAnimatedStateExtension.cpp:53
MOVIESCENE_API FPreAnimatedTrackInstanceInputCaptureSources * GetOrCreateTrackInstanceInputMetaData()
Definition MovieScenePreAnimatedStateExtension.cpp:271
uint32 NumRequestsForGlobalState
Definition MovieScenePreAnimatedStateExtension.h:351
MOVIESCENE_API void SavePreAnimatedStateDirectly(FMovieSceneAnimTypeID InTokenType, const IMovieScenePreAnimatedGlobalTokenProducer &Producer)
Definition MovieScenePreAnimatedStateExtension.cpp:884
MOVIESCENE_API FPreAnimatedStorageGroupHandle AllocateGroup(TSharedPtr< IPreAnimatedStateGroupManager > GroupManager)
Definition MovieScenePreAnimatedStateExtension.cpp:44
MOVIESCENE_API void ReplaceObjectForGroup(FPreAnimatedStorageGroupHandle GroupHandle, const FObjectKey &OldObject, const FObjectKey &NewObject)
Definition MovieScenePreAnimatedStateExtension.cpp:68
MOVIESCENE_API FPreAnimatedTrackInstanceCaptureSources * GetTrackInstanceMetaData() const
Definition MovieScenePreAnimatedStateExtension.cpp:252
MOVIESCENE_API void DiscardStateForStorage(FPreAnimatedStorageID StorageID, FPreAnimatedStorageIndex StorageIndex)
Definition MovieScenePreAnimatedStateExtension.cpp:575
MOVIESCENE_API FPreAnimatedEvaluationHookCaptureSources * GetOrCreateEvaluationHookMetaData()
Definition MovieScenePreAnimatedStateExtension.cpp:299
MOVIESCENE_API void AddSourceMetaData(const FPreAnimatedStateEntry &Entry)
Definition MovieScenePreAnimatedStateExtension.cpp:815
TSharedPtr< GroupManagerType > FindGroupManager() const
Definition MovieScenePreAnimatedStateExtension.h:164
MOVIESCENE_API void DiscardStateForGroup(FPreAnimatedStorageGroupHandle GroupHandle)
Definition MovieScenePreAnimatedStateExtension.cpp:523
MOVIESCENE_API void DiscardTransientState()
Definition MovieScenePreAnimatedStateExtension.cpp:465
TSharedPtr< IPreAnimatedStorage > GetStorageChecked(FPreAnimatedStorageID InStorageID) const
Definition MovieScenePreAnimatedStateExtension.h:150
MOVIESCENE_API FPreAnimatedStateExtension()
Definition MovieScenePreAnimatedStateExtension.cpp:23
MOVIESCENE_API void SavePreAnimatedState(FMovieSceneAnimTypeID InTokenType, const IMovieScenePreAnimatedGlobalTokenProducer &Producer)
Definition MovieScenePreAnimatedStateExtension.cpp:876
MOVIESCENE_API void RestoreStateForGroup(FPreAnimatedStorageGroupHandle GroupHandle, const FRestoreStateParams &Params)
Definition MovieScenePreAnimatedStateExtension.cpp:318
MOVIESCENE_API void EnsureMetaData(const FPreAnimatedStateEntry &Entry)
Definition MovieScenePreAnimatedStateExtension.cpp:142
MOVIESCENE_API FPreAnimatedTrackInstanceInputCaptureSources * GetTrackInstanceInputMetaData() const
Definition MovieScenePreAnimatedStateExtension.cpp:266
MOVIESCENE_API void AddMetaData(const FPreAnimatedStateMetaData &MetaData)
Definition MovieScenePreAnimatedStateExtension.cpp:152
bool IsCapturingGlobalState() const
Definition MovieScenePreAnimatedStateExtension.h:205
void AddStorage(TPreAnimatedStorageID< StorageType > InStorageID, TSharedPtr< StorageType > InStorage)
Definition MovieScenePreAnimatedStateExtension.h:111
MOVIESCENE_API ~FPreAnimatedStateExtension()
Definition MovieScenePreAnimatedStateExtension.cpp:35
TSharedPtr< StorageType > GetOrCreateStorage(TPreAnimatedStorageID< StorageType > InStorageID)
Definition MovieScenePreAnimatedStateExtension.h:133
static TPreAnimatedStorageID< StorageType > RegisterStorage()
Definition MovieScenePreAnimatedStateExtension.h:87
MOVIESCENE_API FPreAnimatedEntityCaptureSource * GetOrCreateEntityMetaData()
Definition MovieScenePreAnimatedStateExtension.cpp:243
MOVIESCENE_API FPreAnimatedTemplateCaptureSources * GetTemplateMetaData() const
Definition MovieScenePreAnimatedStateExtension.cpp:280
void DiscardStaleObjectState()
Definition MovieScenePreAnimatedStateExtension.cpp:394
MOVIESCENE_API void UpdateMetaData(const FPreAnimatedStateMetaData &MetaData)
Definition MovieScenePreAnimatedStateExtension.cpp:221
TSharedPtr< GroupManagerType > GetOrCreateGroupManager()
Definition MovieScenePreAnimatedStateExtension.h:176
MOVIESCENE_API EPreAnimatedStorageRequirement GetStorageRequirement(const FPreAnimatedStateEntry &Entry) const
Definition MovieScenePreAnimatedStateExtension.cpp:127
MOVIESCENE_API FPreAnimatedTemplateCaptureSources * GetOrCreateTemplateMetaData()
Definition MovieScenePreAnimatedStateExtension.cpp:285
void ResetEntryInvalidation()
Definition MovieScenePreAnimatedStateExtension.h:222
void OnObjectsReplaced(const TMap< UObject *, UObject * > &ReplacementMap)
Definition MovieScenePreAnimatedStateExtension.cpp:925
TSharedPtr< StorageType > FindStorage(TPreAnimatedStorageID< StorageType > InStorageID) const
Definition MovieScenePreAnimatedStateExtension.h:100
MOVIESCENE_API void RestoreGlobalState(const FRestoreStateParams &Params)
Definition MovieScenePreAnimatedStateExtension.cpp:332
MOVIESCENE_API bool ContainsAnyStateForInstanceHandle(FRootInstanceHandle RootInstanceHandle) const
Definition MovieScenePreAnimatedStateExtension.cpp:684
MOVIESCENE_API void AddWeakCaptureSource(TWeakPtr< IPreAnimatedCaptureSource > InWeakMetaData)
Definition MovieScenePreAnimatedStateExtension.cpp:308
MOVIESCENE_API FPreAnimatedEntityCaptureSource * GetEntityMetaData() const
Definition MovieScenePreAnimatedStateExtension.cpp:238
MOVIESCENE_API void RemoveMetaData(const FPreAnimatedStateMetaData &MetaData)
Definition MovieScenePreAnimatedStateExtension.cpp:164
MOVIESCENE_API FPreAnimatedEvaluationHookCaptureSources * GetEvaluationHookMetaData() const
Definition MovieScenePreAnimatedStateExtension.cpp:294
MOVIESCENE_API bool MetaDataExists(const FPreAnimatedStateEntry &Entry) const
Definition MovieScenePreAnimatedStateExtension.cpp:147
MOVIESCENE_API void DiscardGlobalState(const FRestoreStateParams &Params)
Definition MovieScenePreAnimatedStateExtension.cpp:415
MOVIESCENE_API bool HasActiveCaptureSource() const
Definition MovieScenePreAnimatedStateExtension.cpp:807
MOVIESCENE_API void RemoveWeakCaptureSource(TWeakPtr< IPreAnimatedCaptureSource > InWeakMetaData)
Definition MovieScenePreAnimatedStateExtension.cpp:313
Definition MovieScenePreAnimatedStateTypes.h:86
Definition MovieScenePreAnimatedStorageID.h:14
Definition MovieScenePreAnimatedStateTypes.h:42
Definition MovieScenePreAnimatedCaptureSources.h:135
Definition MovieScenePreAnimatedCaptureSources.h:182
Definition MovieSceneRestoreStateParams.h:21
Definition MovieSceneSequenceInstanceHandle.h:58
Definition MovieScenePreAnimatedStateExtension.h:54
virtual void OnGroupDestroyed(FPreAnimatedStorageGroupHandle Group)=0
virtual ~IPreAnimatedStateGroupManager()
Definition MovieScenePreAnimatedStateExtension.h:55
virtual void GatherStaleStorageGroups(TArray< FPreAnimatedStorageGroupHandle > &StaleGroupStorage) const =0
virtual void InitializeGroupManager(FPreAnimatedStateExtension *Extension)=0
Definition IMovieScenePreAnimatedStorage.h:32
Definition MovieScenePreAnimatedStateExtension.h:428
virtual void GatherStaleStorageGroups(TArray< FPreAnimatedStorageGroupHandle > &StaleGroupStorage) const override
Definition MovieScenePreAnimatedStateExtension.h:443
FPreAnimatedStorageGroupHandle FindGroupForKey(const KeyType &InKey) const
Definition MovieScenePreAnimatedStateExtension.h:448
FPreAnimatedStorageGroupHandle MakeGroupForKey(const KeyType &InKey)
Definition MovieScenePreAnimatedStateExtension.h:453
TMap< KeyType, FPreAnimatedStorageGroupHandle > StorageGroupsByKey
Definition MovieScenePreAnimatedStateExtension.h:469
TMap< FPreAnimatedStorageGroupHandle, KeyType > StorageGroupsToKey
Definition MovieScenePreAnimatedStateExtension.h:470
void OnGroupDestroyed(FPreAnimatedStorageGroupHandle Group) override
Definition MovieScenePreAnimatedStateExtension.h:434
FPreAnimatedStateExtension * Extension
Definition MovieScenePreAnimatedStateExtension.h:472
void InitializeGroupManager(FPreAnimatedStateExtension *InExtension) override
Definition MovieScenePreAnimatedStateExtension.h:429
Definition MovieScenePreAnimatedStorageID.h:51