diff options
Diffstat (limited to 'src/memory.c')
| -rw-r--r-- | src/memory.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/memory.c b/src/memory.c new file mode 100644 index 0000000..48a7cca --- /dev/null +++ b/src/memory.c @@ -0,0 +1,20 @@ +#include "rgl.h" + +void *RGL_ArenaAlloc(RGL_Arena *arena, unsigned int size) { + void *data = (void *)&(arena->data[arena->size]); + arena->size += size; + + return data; +} + +unsigned int RGL_ArenaCheckpoint(RGL_Arena *arena) { + return arena->size; +} + +void RGL_ArenaRollback(RGL_Arena *arena, unsigned int checkpoint) { + arena->size = checkpoint; +} + +void RGL_ArenaReset(RGL_Arena *arena) { + arena->size = 0; +} |