Files
UnrealEngine/Engine/Plugins/Animation/GameplayInsights/Source/RewindDebuggerRuntime/Private/RewindDebuggerRuntimeModule.cpp
2025-05-18 13:04:45 +08:00

53 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "RewindDebuggerRuntimeModule.h"
#include "RewindDebuggerRuntime/RewindDebuggerRuntime.h"
#include "Modules/ModuleManager.h"
#include "HAL/IConsoleManager.h"
#include "ObjectTrace.h"
#include "Features/IModularFeatures.h"
void FRewindDebuggerRuntimeModule::StartupModule()
{
if (RewindDebugger::FRewindDebuggerRuntime::Instance() == nullptr)
{
RewindDebugger::FRewindDebuggerRuntime::Initialize();
}
ConsoleObjects.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("RewindDebugger.StartRecording"),
TEXT("Starts making a rewind debugger recording."),
FConsoleCommandWithArgsDelegate::CreateRaw(RewindDebugger::FRewindDebuggerRuntime::Instance(), &RewindDebugger::FRewindDebuggerRuntime::StartRecordingWithArgs),
ECVF_Default
));
ConsoleObjects.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("RewindDebugger.StopRecording"),
TEXT("Stops the current rewind debugger recording."),
FConsoleCommandDelegate::CreateRaw(RewindDebugger::FRewindDebuggerRuntime::Instance(), &RewindDebugger::FRewindDebuggerRuntime::StopRecording),
ECVF_Default
));
IModularFeatures::Get().RegisterModularFeature(IRewindDebuggerRuntimeExtension::ModularFeatureName, &AnimationExtension);
}
void FRewindDebuggerRuntimeModule::ShutdownModule()
{
IConsoleManager &ConsoleManager = IConsoleManager::Get();
for (IConsoleObject *ConsoleObject : ConsoleObjects)
{
if (ConsoleObject)
{
ConsoleManager.UnregisterConsoleObject(ConsoleObject);
}
}
ConsoleObjects.Empty();
RewindDebugger::FRewindDebuggerRuntime::Shutdown();
IModularFeatures::Get().UnregisterModularFeature(IRewindDebuggerRuntimeExtension::ModularFeatureName, &AnimationExtension);
}
IMPLEMENT_MODULE(FRewindDebuggerRuntimeModule, RewindDebuggerRuntime);