From 7bada9f4e8a61a660006217dec860d3486450f71 Mon Sep 17 00:00:00 2001 From: Klemen Plestenjak Date: Thu, 7 Dec 2023 10:47:41 +0100 Subject: [PATCH] Add stackAllocReset method --- engine/breeze/memory/stack_alloc.c | 4 ++++ engine/breeze/memory/stack_alloc.h | 2 ++ game/main.c | 9 +++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/engine/breeze/memory/stack_alloc.c b/engine/breeze/memory/stack_alloc.c index 4a569d9..7538147 100644 --- a/engine/breeze/memory/stack_alloc.c +++ b/engine/breeze/memory/stack_alloc.c @@ -20,6 +20,10 @@ void bzStackAllocDestroy(BzStackAlloc *alloc) { alloc->allocated = 0; } +void bzStackAllocReset(BzStackAlloc *alloc) { + alloc->allocated = 0; +} + void *bzStackAlloc(BzStackAlloc *alloc, size_t numBytes) { BZ_ASSERT(alloc->allocated + numBytes < alloc->size); void *allocated = (u8 *) alloc->memory + alloc->allocated; diff --git a/engine/breeze/memory/stack_alloc.h b/engine/breeze/memory/stack_alloc.h index 9c11223..9256501 100644 --- a/engine/breeze/memory/stack_alloc.h +++ b/engine/breeze/memory/stack_alloc.h @@ -12,6 +12,8 @@ typedef struct BzStackAlloc { BzStackAlloc bzStackAllocCreate(size_t size); void bzStackAllocDestroy(BzStackAlloc *alloc); +void bzStackAllocReset(BzStackAlloc *alloc); + void *bzStackAlloc(BzStackAlloc *alloc, size_t numBytes); void bzStackAllocFree(BzStackAlloc *alloc, void *ptr); diff --git a/game/main.c b/game/main.c index c61b581..9e90c3e 100644 --- a/game/main.c +++ b/game/main.c @@ -203,7 +203,12 @@ void update(float dt, void *userData) { snprintf(titleBuf, sizeof(titleBuf), "FPS: %d | %.2f ms", GetFPS(), GetFrameTime() * 1000); SetWindowTitle(titleBuf); - updatePlayerInput(NULL); + Game *game = ecs_singleton_get_mut(ECS, Game); + + BZ_ASSERT(game->stackAlloc.allocated == 0); + bzStackAllocReset(&game->stackAlloc); + + updatePlayerInput(); } void render(float dt, void *userData) { @@ -216,7 +221,7 @@ void render(float dt, void *userData) { bzTileMapDraw(&game->map); - drawPlayerInputUI(NULL); + drawPlayerInputUI(); ecs_progress(ECS, dt); ecs_enable(ECS, renderDebugPathSystem, game->debugDraw.path);