Files
UnrealEngine/Engine/Source/Runtime/MovieScene/Public/Compilation/MovieSceneCompiledVolatilityManager.h
2025-05-18 13:04:45 +08:00

46 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/ContainerAllocationPolicies.h"
#include "Containers/SortedMap.h"
#include "Evaluation/MovieSceneEvaluationTemplateInstance.h"
#include "Templates/UniquePtr.h"
class UMovieSceneCompiledDataManager;
struct FGuid;
struct FMovieSceneCompiledDataID;
struct FMovieSceneSequenceID;
namespace UE
{
namespace MovieScene
{
struct FSharedPlaybackState;
struct FCompiledDataVolatilityManager
{
static TUniquePtr<FCompiledDataVolatilityManager> Construct(TSharedRef<const FSharedPlaybackState> SharedPlaybackState);
FCompiledDataVolatilityManager(TSharedRef<const FSharedPlaybackState> SharedPlaybackState);
bool ConditionalRecompile();
private:
bool HasBeenRecompiled() const;
bool HasSequenceBeenRecompiled(FMovieSceneCompiledDataID DataID, FMovieSceneSequenceID SequenceID) const;
void UpdateCachedSignatures();
private:
TWeakPtr<const FSharedPlaybackState> WeakSharedPlaybackState;
TSortedMap<FMovieSceneSequenceID, FGuid, TInlineAllocator<16>> CachedCompilationSignatures;
};
} // namespace MovieScene
} // namespace UE