A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
FrmHeap.hh
1#pragma once
2
3#include "egg/core/Heap.hh"
4
5#include <abstract/memory/FrameHeap.hh>
6
7namespace Kinoko::EGG {
8
9class FrmHeap : public Heap {
10public:
11 ~FrmHeap() override;
12 void destroy() override;
13
15 [[nodiscard]] Kind getHeapKind() const override {
16 return Heap::Kind::Frame;
17 }
18
19 [[nodiscard]] void *alloc(size_t size, s32 align) override;
20 void free(void *block) override;
21 [[nodiscard]] u32 getAllocatableSize(s32 align = 4) const override;
22
23 [[nodiscard]] Abstract::Memory::MEMiFrmHeapHead *dynamicCastHandleToFrm();
24 [[nodiscard]] const Abstract::Memory::MEMiFrmHeapHead *dynamicCastHandleToFrm() const;
25
26 [[nodiscard]] static FrmHeap *create(void *startAddress, size_t size, u16 opt);
27 [[nodiscard]] static FrmHeap *create(size_t size, Heap *heap, u16 opt);
28
29private:
30 FrmHeap(Abstract::Memory::MEMiHeapHead *handle);
31};
32
33} // namespace Kinoko::EGG
A low-level representation of a memory heap for managing dynamic memory allocation....
Definition HeapCommon.hh:21
EGG core library.
Definition Allocator.hh:5