mirror of https://github.com/AxioDL/metaforce.git
48 lines
891 B
C++
48 lines
891 B
C++
#include "CMemory.hpp"
|
|
#include "CGameAllocator.hpp"
|
|
|
|
namespace Retro
|
|
{
|
|
namespace Common
|
|
{
|
|
|
|
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;}
|
|
|
|
}
|
|
}
|