summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorPrakxo <87568477+Prakxo@users.noreply.github.com>2024-04-02 18:21:33 +0200
committerGitHub <noreply@github.com>2024-04-02 09:21:33 -0700
commitd8789801b89077422faa376de4bb7f2d564c1103 (patch)
tree4ad26ac63df29b18b0b7947c509574a2b39eebe1 /src/code
parent6bfbdcbc4eeeb4bfc17a9dfef9c7c6ebc9515aa4 (diff)
gfxalloc OK (#160)
* gfxalloc ok * format/names
Diffstat (limited to 'src/code')
-rw-r--r--src/code/gfxalloc.c29
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;
+}