Gears-C/src/game.c

72 lines
1.1 KiB
C

static void Run()
{
InitPlatform();
u8 *mem = (u8 *)MemAllocZeroed(MB(512));
Arena *arena = CreateArenaDebug(mem, MB(512), __LINE__);
isize renderer_mem_size = MB(8);
rawptr renderer_mem = ArenaAlloc(arena, renderer_mem_size);
Arena *renderer_arena = CreateArenaDebug(renderer_mem, MB(8), __LINE__);
Assert(CreateSystemWindow(), "Failed to initialize the window");
Assert(InitRenderer(renderer_arena), "Failed to initialize the renderer");
b32 quit = false;
while (!quit)
{
if (HandleEvents()) break;
BeginFrame();
DrawTriangle();
FinishFrame();
}
DestroyRenderer();
}
static b32 HandleEvents()
{
b32 quit = false;
WindowEvent e;
while (GetWindowEvent(&e))
{
quit = ProcessEvent(&e);
}
return quit;
}
static b32 WaitForAndHandleEvent()
{
WindowEvent e;
WaitForWindowEvent(&e);
return ProcessEvent(&e);
}
static b32 ProcessEvent(WindowEvent *e)
{
b32 quit = false;
switch (e->type)
{
case EVENT_QUIT:
quit = true;
break;
case EVENT_RESIZE:
SetRenderResolution(e->resize.w, e->resize.h);
break;
case EVENT_MINIMIZE:
break;
case EVENT_SHOW:
break;
default:
break;
}
return quit;
}