mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-25 20:55:17 +00:00
36 lines
No EOL
1,014 B
C++
36 lines
No EOL
1,014 B
C++
/**
|
|
* @file MemoryPoolHeap.h
|
|
* @brief Defines classes that manage heaps for memory pools.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "types.h"
|
|
#include "MemoryPool.h"
|
|
|
|
namespace agl
|
|
{
|
|
class GPUMemBlockBase;
|
|
|
|
namespace detail
|
|
{
|
|
class GPUMemBlockMgrHeapEx;
|
|
|
|
class MemoryPoolHeap
|
|
{
|
|
public:
|
|
MemoryPoolHeap(void *, u64, u64, agl::detail::MemoryPoolType const &, void *, u64, agl::detail::GPUMemBlockMgrHeapEx *);
|
|
~MemoryPoolHeap();
|
|
|
|
static agl::detail::MemoryPoolHeap* create(u64, s32, u64, s32, u64, u64, agl::detail::MemoryPoolType const &, agl::detail::GPUMemBlockMgrHeapEx *);
|
|
static void destroy(agl::detail::MemoryPoolHeap *);
|
|
|
|
void pushBack(agl::GPUMemBlockBase *);
|
|
u64* allocFromMemoryPool(u64, s32);
|
|
void freeToHeap(agl::GPUMemBlockBase *);
|
|
bool isAllocatable(agl::detail::MemoryPoolType const &, u64, s32) const;
|
|
|
|
agl::GPUMemBlockBase* _120;
|
|
};
|
|
};
|
|
}; |