UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneCompiledDataManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "Containers/Array.h"
8#include "Containers/Map.h"
9#include "Containers/Set.h"
11#include "CoreTypes.h"
15#include "HAL/CriticalSection.h"
17#include "Misc/EnumClassFlags.h"
18#include "Misc/FrameTime.h"
19#include "Misc/Guid.h"
20#include "Misc/Optional.h"
21#include "MovieSceneFwd.h"
22#include "UObject/Object.h"
23#include "UObject/ObjectKey.h"
26
27#include "MovieSceneCompiledDataManager.generated.h"
28
34struct FFrameNumber;
41template<typename DataType> struct TMovieSceneEvaluationTreeDataIterator;
42
43namespace UE
44{
45namespace MovieScene
46{
47 struct FSubSequencePath;
48}
49}
50
53{
54 Hierarchy = 1 << 0,
55 EvaluationTemplate = 1 << 1,
57 EntityComponentField = 1 << 3,
58
59 None = 0,
60};
62
64USTRUCT()
66{
68
70 : bParentSequenceRequiresLowerFence(0)
71 , bParentSequenceRequiresUpperFence(0)
72 {}
73
75 UPROPERTY()
76 uint8 bParentSequenceRequiresLowerFence : 1;
77
79 UPROPERTY()
80 uint8 bParentSequenceRequiresUpperFence : 1;
81};
82
83
85UCLASS()
87{
88public:
90
92
93 void Reset();
94
95#if WITH_EDITORONLY_DATA
97#endif
98
99private:
101
103 UPROPERTY()
105
107 UPROPERTY()
109
111 UPROPERTY()
113
115 UPROPERTY()
116 FMovieSceneEvaluationField TrackTemplateField;
117
119 UPROPERTY()
120 TArray<FMovieSceneDeterminismFence> DeterminismFences;
121
123 UPROPERTY()
124 FGuid CompiledSignature;
125
127 UPROPERTY()
128 FGuid CompilerVersion;
129
131 UPROPERTY()
132 EMovieSceneSequenceCompilerMask AccumulatedMask;
133
135 UPROPERTY()
137
139 UPROPERTY()
140 EMovieSceneSequenceFlags AccumulatedFlags;
141
144};
145
146
177
178UCLASS(MinimalAPI)
181{
182public:
184
186
187#if WITH_EDITOR
189#else
191#endif
192
194
196
197 EMovieSceneServerClientMask GetNetworkMask() const { return NetworkMask; }
198
200
202
204
206
208
210
211 MOVIESCENE_API bool IsDirty(UMovieSceneSequence* Sequence) const;
212
213 MOVIESCENE_API bool IsDirty(FMovieSceneCompiledDataID CompiledDataID) const;
214
215 MOVIESCENE_API bool IsDirty(const FMovieSceneCompiledDataEntry& Entry) const;
216
218
224 {
225 check(CompiledDataEntries.IsValidIndex(DataID.Value));
226 return CompiledDataEntries[DataID.Value];
227 }
228
230
232 {
233 return ReallocationVersion;
234 }
235
236 const FMovieSceneSequenceHierarchy* FindHierarchy(FMovieSceneCompiledDataID DataID) const { return Hierarchies.Find(DataID.Value); }
237 const FMovieSceneEvaluationTemplate* FindTrackTemplate(FMovieSceneCompiledDataID DataID) const { return TrackTemplates.Find(DataID.Value); }
238 const FMovieSceneEvaluationField* FindTrackTemplateField(FMovieSceneCompiledDataID DataID) const { return TrackTemplateFields.Find(DataID.Value); }
239 const FMovieSceneEntityComponentField* FindEntityComponentField(FMovieSceneCompiledDataID DataID) const { return EntityComponentFields.Find(DataID.Value); }
240
241 const FMovieSceneSequenceHierarchy& GetHierarchyChecked(FMovieSceneCompiledDataID DataID) const { return Hierarchies.FindChecked(DataID.Value); }
242 const FMovieSceneEvaluationTemplate& GetTrackTemplateChecked(FMovieSceneCompiledDataID DataID) const { return TrackTemplates.FindChecked(DataID.Value); }
243 const FMovieSceneEvaluationField& GetTrackTemplateFieldChecked(FMovieSceneCompiledDataID DataID) const { return TrackTemplateFields.FindChecked(DataID.Value); }
244 const FMovieSceneEntityComponentField& GetEntityComponentFieldChecked(FMovieSceneCompiledDataID DataID) const { return EntityComponentFields.FindChecked(DataID.Value); }
245
247
249
251
253
255
257
260
261public:
262
263 // Internal API.
264
266
267private:
268
270
272
273 MOVIESCENE_API void GatherTrack(const FMovieSceneBinding* ObjectBinding, UMovieSceneTrack* Track, const FTrackGatherParameters& Params, const FMovieSceneEvaluationTemplate* TrackTemplate, FMovieSceneGatheredCompilerData* OutCompilerData) const;
274
276
278
280
281 static MOVIESCENE_API bool GenerateSubSequenceData(UMovieSceneSequence* SubSequence, const FGatherParameters& Params, const FMovieSceneEvaluationOperand& Operand, UE::MovieScene::FSubSequencePath* RootPath, FMovieSceneSequenceHierarchy* InOutHierarchy);
283
284 static MOVIESCENE_API void PopulateSubSequenceTree(UMovieSceneSequence* SubSequence, const FGatherParameters& Params, UE::MovieScene::FSubSequencePath* RootPath, FMovieSceneSequenceHierarchy* InOutHierarchy);
286
288
290
292
294
296
298
299 MOVIESCENE_API void DestroyData(FMovieSceneCompiledDataID DataID);
300
301 virtual void BeginDestroy() override;
302
303private:
304
306 {
307 check(CompiledDataEntries.IsValidIndex(DataID.Value));
308 return &CompiledDataEntries[DataID.Value];
309 }
310
311 const FMovieSceneCompiledDataEntry* GetEntryPtr(FMovieSceneCompiledDataID DataID) const
312 {
313 check(CompiledDataEntries.IsValidIndex(DataID.Value));
314 return &CompiledDataEntries[DataID.Value];
315 }
316
317 MOVIESCENE_API void ConsoleVariableSink();
318
319private:
320
321 FCriticalSection AsyncLoadCriticalSection;
322
324
326
328
329 UPROPERTY()
331
332 UPROPERTY()
334
335 UPROPERTY()
336 TMap<int32, FMovieSceneEvaluationField> TrackTemplateFields;
337
338 UPROPERTY()
339 TMap<int32, FMovieSceneEntityComponentField> EntityComponentFields;
340
341 FGuid CompilerVersion;
342
343 uint32 ReallocationVersion;
344
345 EMovieSceneServerClientMask NetworkMask;
346
347 static TSet<UMovieSceneCompiledDataManager*> ActiveManagers;
348};
349
350
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
void Gather(const DeltaType &Delta, TArray< ValueType > &OutDest, const InValueArrayType &InSource, int32 ElementStride=1)
Definition InstanceDataUpdateUtils.h:68
EMovieSceneSequenceCompilerMask
Definition MovieSceneCompiledDataManager.h:53
EMovieSceneServerClientMask
Definition MovieSceneFwd.h:135
EMovieSceneSequenceFlags
Definition MovieSceneFwd.h:98
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition MovieScene.Build.cs:6
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SparseArray.h:524
Definition MovieSceneCompiledDataManager.h:181
MOVIESCENE_API FMovieSceneCompiledDataID FindDataID(UMovieSceneSequence *Sequence) const
Definition MovieSceneCompiledDataManager.cpp:695
MOVIESCENE_API FMovieSceneCompiledDataID GetSubDataID(FMovieSceneCompiledDataID DataID, FMovieSceneSequenceID SubSequenceID)
Definition MovieSceneCompiledDataManager.cpp:723
MOVIESCENE_API UMovieSceneCompiledDataManager()
Definition MovieSceneCompiledDataManager.cpp:462
MOVIESCENE_API bool ValidateEntry(FMovieSceneCompiledDataID DataID, UMovieSceneSequence *Sequence) const
Definition MovieSceneCompiledDataManager.cpp:858
static MOVIESCENE_API void ReportSequenceDestroyed(UMovieSceneSequence *InSequence)
Definition MovieSceneCompiledDataManager.cpp:526
MOVIESCENE_API void CopyCompiledData(UMovieSceneSequence *Sequence)
Definition MovieSceneCompiledDataManager.cpp:569
static MOVIESCENE_API bool CompileHierarchy(UMovieSceneSequence *Sequence, FMovieSceneSequenceHierarchy *InOutHierarchy, EMovieSceneServerClientMask NetworkMask)
Definition MovieSceneCompiledDataManager.cpp:1666
static MOVIESCENE_API UMovieSceneCompiledDataManager * GetPrecompiledData()
Definition MovieSceneCompiledDataManager.cpp:772
MOVIESCENE_API void DestroyTemplate(FMovieSceneCompiledDataID DataID)
Definition MovieSceneCompiledDataManager.cpp:794
const FMovieSceneEntityComponentField * FindEntityComponentField(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:239
EMovieSceneServerClientMask GetNetworkMask() const
Definition MovieSceneCompiledDataManager.h:197
const FMovieSceneEvaluationTemplate & GetTrackTemplateChecked(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:242
const FMovieSceneEntityComponentField & GetEntityComponentFieldChecked(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:244
MOVIESCENE_API void LoadCompiledData(UMovieSceneSequence *Sequence)
Definition MovieSceneCompiledDataManager.cpp:610
const FMovieSceneEvaluationField * FindTrackTemplateField(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:238
MOVIESCENE_API FMovieSceneCompiledDataID GetDataID(UMovieSceneSequence *Sequence)
Definition MovieSceneCompiledDataManager.cpp:700
MOVIESCENE_API void DestroyAllData()
Definition MovieSceneCompiledDataManager.cpp:537
const FMovieSceneSequenceHierarchy * FindHierarchy(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:236
MOVIESCENE_API UMovieSceneCompiledData * MakeCompiledData(UMovieSceneSequence *Sequence) const
const FMovieSceneSequenceHierarchy & GetHierarchyChecked(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:241
uint32 GetReallocationVersion() const
Definition MovieSceneCompiledDataManager.h:231
MOVIESCENE_API void SetEmulatedNetworkMask(EMovieSceneServerClientMask NewMask)
Definition MovieSceneCompiledDataManager.cpp:676
const FMovieSceneCompiledDataEntry & GetEntryRef(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:223
const FMovieSceneEvaluationTemplate * FindTrackTemplate(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:237
bool CanMarkSignedObjectAsChangedDuringCook(UMovieSceneSequence *Sequence) const
Definition MovieSceneCompiledDataManager.cpp:659
const FMovieSceneEvaluationField & GetTrackTemplateFieldChecked(FMovieSceneCompiledDataID DataID) const
Definition MovieSceneCompiledDataManager.h:243
Definition MovieSceneCompiledDataManager.h:87
Definition MovieSceneSequence.h:73
Definition MovieSceneSubSection.h:96
Definition MovieSceneSubTrack.h:31
Definition MovieSceneTrack.h:206
Definition Object.h:95
Definition AdvancedWidgetsModule.cpp:13
Definition MovieSceneCompiledDataManager.cpp:107
Definition FrameNumber.h:18
Definition MovieSceneCompiledDataManager.cpp:144
Definition Guid.h:109
Definition MovieSceneBinding.h:25
Definition MovieSceneCompiledDataManager.cpp:70
Definition MovieSceneCompiledDataManager.h:148
FObjectKey SequenceKey
Definition MovieSceneCompiledDataManager.h:160
EMovieSceneSequenceCompilerMask AllocatedMask
Definition MovieSceneCompiledDataManager.h:169
TArray< FMovieSceneDeterminismFence > DeterminismFences
Definition MovieSceneCompiledDataManager.h:157
FMovieSceneCompiledSequenceFlagStruct CompiledFlags
Definition MovieSceneCompiledDataManager.h:175
FGuid CompiledSignature
Definition MovieSceneCompiledDataManager.h:154
EMovieSceneSequenceFlags AccumulatedFlags
Definition MovieSceneCompiledDataManager.h:166
EMovieSceneSequenceCompilerMask AccumulatedMask
Definition MovieSceneCompiledDataManager.h:172
FMovieSceneCompiledDataID DataID
Definition MovieSceneCompiledDataManager.h:163
Definition MovieSceneCompiledDataID.h:8
int32 Value
Definition MovieSceneCompiledDataID.h:22
Definition MovieSceneCompiledDataManager.h:66
Definition MovieSceneDeterminismFence.h:12
Definition MovieSceneEvaluationField.h:226
Definition MovieSceneEvaluationField.h:671
Definition MovieSceneEvaluationField.h:592
Definition MovieSceneEvaluationField.h:627
Definition MovieSceneEvaluationOperand.h:15
Definition MovieSceneEvaluationTemplate.h:160
Definition MovieSceneCompiledDataManager.cpp:129
Definition MovieSceneSequenceHierarchy.h:279
Definition MovieSceneSequenceID.h:13
Definition ObjectKey.h:19
Definition MovieSceneCompiledDataManager.cpp:340
Definition MovieSceneEvaluationTree.h:805
Definition Optional.h:131
Definition MovieSceneRootOverridePath.h:25