Merge pull request #12500 from AdmiralCurtiss/globals-fiforecorder

FifoRecorder: Move instance to System.
This commit is contained in:
Mai authored and GitHub committed 2024-01-13 06:38:39 -05:00
commit 8760aca8ec
10 files changed
+60 -38

No files matched your search

+7 -12
View File
@@ -213,9 +213,11 @@ void FifoRecorder::FifoRecordAnalyzer::ProcessVertexComponent(
m_owner->UseMemory(array_start, array_size, MemoryUpdate::Type::VertexStream);
}
static FifoRecorder instance;
FifoRecorder::FifoRecorder(Core::System& system) : m_system(system)
{
}
FifoRecorder::FifoRecorder() = default;
FifoRecorder::~FifoRecorder() = default;
void FifoRecorder::StartRecording(s32 numFrames, CallbackFunc finishedCb)
{
@@ -235,8 +237,7 @@ void FifoRecorder::StartRecording(s32 numFrames, CallbackFunc finishedCb)
// - Global variables suck
// - Multithreading with the above two sucks
//
auto& system = Core::System::GetInstance();
auto& memory = system.GetMemory();
auto& memory = m_system.GetMemory();
m_Ram.resize(memory.GetRamSize());
m_ExRam.resize(memory.GetExRamSize());
@@ -272,7 +273,7 @@ void FifoRecorder::StartRecording(s32 numFrames, CallbackFunc finishedCb)
RecordInitialVideoMemory();
}
const auto& fifo = Core::System::GetInstance().GetCommandProcessor().GetFifo();
const auto& fifo = m_system.GetCommandProcessor().GetFifo();
EndFrame(fifo.CPBase.load(std::memory_order_relaxed),
fifo.CPEnd.load(std::memory_order_relaxed));
},
@@ -356,8 +357,7 @@ void FifoRecorder::WriteGPCommand(const u8* data, u32 size)
void FifoRecorder::UseMemory(u32 address, u32 size, MemoryUpdate::Type type, bool dynamicUpdate)
{
auto& system = Core::System::GetInstance();
auto& memory = system.GetMemory();
auto& memory = m_system.GetMemory();
u8* curData;
u8* newData;
@@ -461,8 +461,3 @@ bool FifoRecorder::IsRecording() const
{
return m_IsRecording;
}
FifoRecorder& FifoRecorder::GetInstance()
{
return instance;
}
+13 -2
View File
@@ -12,12 +12,22 @@
#include "Common/HookableEvent.h"
#include "Core/FifoPlayer/FifoDataFile.h"
namespace Core
{
class System;
}
class FifoRecorder
{
public:
using CallbackFunc = std::function<void()>;
FifoRecorder();
explicit FifoRecorder(Core::System& system);
FifoRecorder(const FifoRecorder&) = delete;
FifoRecorder(FifoRecorder&&) = delete;
FifoRecorder& operator=(const FifoRecorder&) = delete;
FifoRecorder& operator=(FifoRecorder&&) = delete;
~FifoRecorder();
void StartRecording(s32 numFrames, CallbackFunc finishedCb);
void StopRecording();
@@ -46,7 +56,6 @@ public:
// Checked once per frame prior to callng EndFrame()
bool IsRecording() const;
static FifoRecorder& GetInstance();
private:
class FifoRecordAnalyzer;
@@ -77,4 +86,6 @@ private:
std::vector<u8> m_ExRam;
Common::EventHook m_end_of_frame_event;
Core::System& m_system;
};