UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneInstanceRegistry.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Containers/Map.h"
15
16#define UE_API MOVIESCENE_API
17
18
22
23namespace UE
24{
25namespace MovieScene
26{
27
28class FEntityManager;
29
30struct FEntityRange;
31struct FInstanceRegistry;
34
35
36
39{
41
43
45 void operator=(const FInstanceRegistry&) = delete;
46
48 {
49 return Instances;
50 }
51
53 {
54 return Linker;
55 }
56
57 bool IsHandleValid(FInstanceHandle InstanceHandle) const
58 {
59 return Instances.IsValidIndex(InstanceHandle.InstanceID) && Instances[InstanceHandle.InstanceID].GetSerialNumber() == InstanceHandle.InstanceSerial;
60 }
61
62 const FSequenceInstance& GetInstance(FInstanceHandle InstanceHandle) const
63 {
64 checkfSlow(IsHandleValid(InstanceHandle), TEXT("Attempting to access an invalid instance handle."));
65 return Instances[InstanceHandle.InstanceID];
66 }
67
69 {
70 checkfSlow(IsHandleValid(InstanceHandle), TEXT("Attempting to access an invalid instance handle."));
71 return Instances[InstanceHandle.InstanceID];
72 }
73
84
85 const FMovieSceneContext& GetContext(FInstanceHandle InstanceHandle) const
86 {
87 return GetInstance(InstanceHandle).GetContext();
88 }
89
92 UObject* InPlaybackContext = nullptr,
94
96 FMovieSceneSequenceID SequenceID, FRootInstanceHandle RootInstance, FInstanceHandle ParentInstanceHandle);
97
99
101
102 void InvalidateObjectBinding(const FGuid& ObjectBindingID, FInstanceHandle InstanceHandle)
103 {
104 InvalidatedObjectBindings.Add(MakeTuple(ObjectBindingID, InstanceHandle));
105 }
106
107 bool IsBindingInvalidated(const FGuid& ObjectBindingID, FInstanceHandle InstanceHandle) const
108 {
109 // The binding is invalidated if it is contained within the invalid set, or if an empty GUID with the same instance handle exists (implying _all_ bindings are invalidated for that instance handle)
110 return InvalidatedObjectBindings.Contains(MakeTuple(ObjectBindingID, InstanceHandle)) || InvalidatedObjectBindings.Contains(MakeTuple(FGuid(), InstanceHandle));
111 }
112
114 {
115 return InvalidatedObjectBindings.Num() != 0;
116 }
117
118 void PostInstantation();
119
120 void TagGarbage();
121
122private:
123
125
128 uint16 InstanceSerialNumber;
129
131 TSet<TTuple<FGuid, FInstanceHandle>> InvalidatedObjectBindings;
132};
133
134
148
149} // namespace MovieScene
150} // namespace UE
151
152#undef UE_API
#define checkfSlow(expr, format,...)
Definition AssertionMacros.h:333
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
constexpr TTuple< std::decay_t< Types >... > MakeTuple(Types &&... Args)
Definition Tuple.h:794
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition MovieScene.Build.cs:6
Definition SharedPointer.h:692
Definition SparseArray.h:524
Definition UniquePtr.h:107
Definition SharedPointer.h:1295
Definition MovieSceneCompiledDataManager.h:181
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneSequence.h:73
Definition Object.h:95
Definition Linker.cpp:38
Definition AdvancedWidgetsModule.cpp:13
Definition Guid.h:109
Definition MovieScenePlayback.h:184
Definition MovieSceneSequenceID.h:13
Definition MovieSceneSequenceInstanceHandle.h:15
uint16 InstanceSerial
Definition MovieSceneSequenceInstanceHandle.h:17
uint16 InstanceID
Definition MovieSceneSequenceInstanceHandle.h:16
Definition MovieSceneInstanceRegistry.h:39
const FMovieSceneContext & GetContext(FInstanceHandle InstanceHandle) const
Definition MovieSceneInstanceRegistry.h:85
bool IsHandleValid(FInstanceHandle InstanceHandle) const
Definition MovieSceneInstanceRegistry.h:57
void TagGarbage()
Definition MovieSceneInstanceRegistry.cpp:137
void PostInstantation()
Definition MovieSceneInstanceRegistry.cpp:131
const FSequenceInstance & GetInstance(FInstanceHandle InstanceHandle) const
Definition MovieSceneInstanceRegistry.h:62
MOVIESCENE_API void CleanupLinkerEntities(const TSet< FMovieSceneEntityID > &LinkerEntities)
Definition MovieSceneInstanceRegistry.cpp:145
MOVIESCENE_API ~FInstanceRegistry()
Definition MovieSceneInstanceRegistry.cpp:37
FInstanceRegistry(const FInstanceRegistry &)=delete
FSequenceInstance & MutateInstance(FInstanceHandle InstanceHandle)
Definition MovieSceneInstanceRegistry.h:68
MOVIESCENE_API FInstanceHandle FindRelatedInstanceHandle(FInstanceHandle InstanceHandle, FMovieSceneSequenceID SequenceID) const
Definition MovieSceneInstanceRegistry.cpp:50
MOVIESCENE_API FInstanceHandle AllocateSubInstance(FMovieSceneSequenceID SequenceID, FRootInstanceHandle RootInstance, FInstanceHandle ParentInstanceHandle)
Definition MovieSceneInstanceRegistry.cpp:99
void operator=(const FInstanceRegistry &)=delete
const TSparseArray< FSequenceInstance > & GetSparseInstances() const
Definition MovieSceneInstanceRegistry.h:47
void InvalidateObjectBinding(const FGuid &ObjectBindingID, FInstanceHandle InstanceHandle)
Definition MovieSceneInstanceRegistry.h:102
bool HasInvalidatedBindings() const
Definition MovieSceneInstanceRegistry.h:113
bool IsBindingInvalidated(const FGuid &ObjectBindingID, FInstanceHandle InstanceHandle) const
Definition MovieSceneInstanceRegistry.h:107
MOVIESCENE_API FRootInstanceHandle AllocateRootInstance(UMovieSceneSequence &InRootSequence, UObject *InPlaybackContext=nullptr, UMovieSceneCompiledDataManager *InCompiledDataManager=nullptr)
Definition MovieSceneInstanceRegistry.cpp:69
MOVIESCENE_API void DestroyInstance(FInstanceHandle InstanceHandle)
Definition MovieSceneInstanceRegistry.cpp:116
UMovieSceneEntitySystemLinker * GetLinker() const
Definition MovieSceneInstanceRegistry.h:52
Definition MovieSceneSequenceInstanceHandle.h:58
Definition MovieSceneInstanceRegistry.h:140
UE_API ~FScopedVolatilityManagerSuppression()
Definition MovieSceneInstanceRegistry.cpp:168
Definition MovieSceneSequenceInstance.h:70
const FMovieSceneContext & GetContext() const
Definition MovieSceneSequenceInstance.h:183