Files
pico-launcher/arm9/source/gui/DescendingStackVramManager.h

35 lines
1.0 KiB
C
Raw Normal View History

2025-11-22 17:21:45 +01:00
#pragma once
#include "StackVramManager.h"
/// @brief Stack vram manager that decreases the stack pointer before an allocation.
class DescendingStackVramManager : public StackVramManager
{
public:
/// @brief Creates a new DescendingStackVramManager.
/// @param vramSize The size of the vram block to manage.
/// This will be used as the initial offset.
explicit DescendingStackVramManager(u32 vramSize)
: _size(vramSize)
{
_offset = vramSize;
}
/// @brief Creates a new DescendingStackVramManager.
/// @param vramAddress Pointer to the start of the vram block to manage.
/// @param vramSize The size of the vram block to manage.
/// This will be used as the initial offset.
DescendingStackVramManager(vu16* vramAddress, u32 vramSize)
: StackVramManager(vramAddress), _size(vramSize)
{
_offset = vramSize;
}
u32 Alloc(u32 length) override
{
_offset -= length;
return _offset;
}
private:
u32 _size;
};