Files
UnrealEngineUWP/Engine/Source/Runtime/MovieSceneCapture/Private/ActiveMovieSceneCaptures.cpp
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

64 lines
1.3 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "ActiveMovieSceneCaptures.h"
TUniquePtr<FActiveMovieSceneCaptures> FActiveMovieSceneCaptures::Singleton;
FActiveMovieSceneCaptures& FActiveMovieSceneCaptures::Get()
{
if (!Singleton)
{
Singleton.Reset(new FActiveMovieSceneCaptures);
}
return *Singleton;
}
void FActiveMovieSceneCaptures::Add(UMovieSceneCapture* Capture)
{
ActiveCaptures.AddUnique(Capture);
}
void FActiveMovieSceneCaptures::Remove(UMovieSceneCapture* Capture)
{
ActiveCaptures.Remove(Capture);
}
void FActiveMovieSceneCaptures::Tick(float DeltaSeconds)
{
TArray<UMovieSceneCapture*> Captures = ActiveCaptures;
for (UMovieSceneCapture* Capture : Captures)
{
if (Capture->ShouldFinalize())
{
Capture->Finalize();
}
else
{
Capture->Tick(DeltaSeconds);
if (IMovieSceneCaptureProtocol* Protocol = Capture->GetCaptureProtocol())
{
Protocol->Tick();
}
}
}
}
void FActiveMovieSceneCaptures::Shutdown()
{
TArray<UMovieSceneCapture*> ActiveCapturesCopy;
Swap(ActiveCaptures, ActiveCapturesCopy);
for (auto* Obj : ActiveCapturesCopy)
{
Obj->Finalize();
}
Singleton.Reset();
}
void FActiveMovieSceneCaptures::AddReferencedObjects(FReferenceCollector& Collector)
{
Collector.AddReferencedObjects(ActiveCaptures);
}