mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-10 19:07:46 +00:00
Codebase refactor
This commit is contained in:
44
Runtime/CMemory.cpp
Normal file
44
Runtime/CMemory.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include "CMemory.hpp"
|
||||
#include "CGameAllocator.hpp"
|
||||
|
||||
namespace Retro
|
||||
{
|
||||
|
||||
static CGameAllocator GAME_ALLOCATOR;
|
||||
static IAllocator* MEMORY_ALLOCATOR = &GAME_ALLOCATOR;
|
||||
static bool MEMORY_ALLOCATOR_READY = false;
|
||||
|
||||
void CMemory::Startup(COsContext& cos)
|
||||
{
|
||||
MEMORY_ALLOCATOR_READY = MEMORY_ALLOCATOR->Initialize(cos);
|
||||
}
|
||||
|
||||
void CMemory::Shutdown()
|
||||
{
|
||||
MEMORY_ALLOCATOR->Shutdown();
|
||||
MEMORY_ALLOCATOR_READY = false;
|
||||
}
|
||||
|
||||
void CMemory::SetAllocator(COsContext& cos, IAllocator& alloc)
|
||||
{
|
||||
if (&alloc != MEMORY_ALLOCATOR)
|
||||
{
|
||||
MEMORY_ALLOCATOR = &alloc;
|
||||
MEMORY_ALLOCATOR->Initialize(cos);
|
||||
}
|
||||
}
|
||||
|
||||
CMemorySys::CMemorySys(COsContext& cos, IAllocator& alloc)
|
||||
{
|
||||
CMemory::Startup(cos);
|
||||
CMemory::SetAllocator(cos, alloc);
|
||||
}
|
||||
|
||||
CMemorySys::~CMemorySys()
|
||||
{
|
||||
CMemory::Shutdown();
|
||||
}
|
||||
|
||||
IAllocator& CMemorySys::GetGameAllocator() {return GAME_ALLOCATOR;}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user