You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rnx #rb none #ROBOMERGE-OWNER: ryan.durand #ROBOMERGE-AUTHOR: ryan.durand #ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900 #ROBOMERGE-BOT: (v613-10869866) [CL 10870549 by ryan durand in Main branch]
61 lines
1.4 KiB
C++
61 lines
1.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "LevelCapture.h"
|
|
#include "UObject/LazyObjectPtr.h"
|
|
#include "Engine/World.h"
|
|
|
|
ULevelCapture::ULevelCapture(const FObjectInitializer& Init)
|
|
: Super(Init)
|
|
{
|
|
bAutoStartCapture = true;
|
|
}
|
|
|
|
void ULevelCapture::SetPrerequisiteActor(AActor* InPrerequisiteActor)
|
|
{
|
|
PrerequisiteActorId = TLazyObjectPtr<>(InPrerequisiteActor).GetUniqueID().GetGuid();
|
|
}
|
|
|
|
void ULevelCapture::Initialize(TSharedPtr<FSceneViewport> InViewport, int32 PIEInstance)
|
|
{
|
|
CaptureStrategy = MakeShareable(new FFixedTimeStepCaptureStrategy(Settings.GetFrameRate()));
|
|
CaptureStrategy->OnInitialize();
|
|
Super::Initialize(InViewport, PIEInstance);
|
|
|
|
PIECaptureInstance = PIEInstance;
|
|
|
|
if (bAutoStartCapture)
|
|
{
|
|
StartCapture();
|
|
}
|
|
}
|
|
|
|
void ULevelCapture::OnTick(float DeltaSeconds)
|
|
{
|
|
AActor* Actor = PrerequisiteActor.Get();
|
|
if (!Actor)
|
|
{
|
|
// We need to look the actor up
|
|
TLazyObjectPtr<AActor> LazyActor;
|
|
if (PIECaptureInstance != -1)
|
|
{
|
|
LazyActor = FUniqueObjectGuid(PrerequisiteActorId).FixupForPIE(PIECaptureInstance);
|
|
}
|
|
else
|
|
{
|
|
LazyActor = FUniqueObjectGuid(PrerequisiteActorId);
|
|
}
|
|
|
|
PrerequisiteActor = Actor = LazyActor.Get();
|
|
}
|
|
|
|
if (Actor && Actor->GetWorld() && !Actor->GetWorld()->HasBegunPlay())
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!PrerequisiteActorId.IsValid() || (Actor && Actor->HasActorBegunPlay()))
|
|
{
|
|
CaptureThisFrame(DeltaSeconds);
|
|
}
|
|
}
|