72 lines
1.1 KiB
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;
|
|
}
|
|
|