diff options
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/gfxalloc.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/code/gfxalloc.c b/src/code/gfxalloc.c new file mode 100644 index 0000000..62b63c5 --- /dev/null +++ b/src/code/gfxalloc.c @@ -0,0 +1,29 @@ +#include "gfxalloc.h" +#include "alignment.h" + +Gfx* gfxopen(Gfx* gfxHead) { + return gfxHead + 1; +} + +Gfx* gfxclose(Gfx* gfxHead, Gfx* gfx) { + if (gfxHead + 1 != gfx) { + gSPBranchList(gfxHead, gfx); + return gfx; + } else { + gSPNoOp(gfxHead); + return gfxHead; + } +} + +void* gfxalloc(Gfx** gfxP, size_t size) { + u8* ptr; + Gfx* dst; + + size = ALIGN8(size); + ptr = (u8*)(*gfxP + 1); + dst = (Gfx*)(ptr + size); + gSPBranchList(*gfxP, dst); + + *gfxP = dst; + return ptr; +} |
