Gears-C/src/entry_windows.c
2025-03-30 11:59:53 +11:00

51 lines
1.1 KiB
C

#ifdef _WIN32
#include "entry_windows.h"
#include "platform/platform.c"
#include "ds.c"
#include "util.c"
#include "allocators.c"
#include "renderer.c"
#include "game.c"
int CALLBACK WinMain(HINSTANCE instance, HINSTANCE prev_instance, LPSTR cmd_line, int show_code)
{
win32_instance = instance;
#ifdef BUILD_DEBUG
{
AllocConsole();
}
#endif
u8 *mem = (u8 *)MemAllocZeroed(MB(32));
Arena *arena = CreateArenaDebug(mem, MB(32), 1);
isize renderer_mem_size = MB(16);
isize game_mem_size = MB(16);
rawptr renderer_mem = ArenaAlloc(arena, renderer_mem_size);
Arena *renderer_arena = CreateArenaDebug(renderer_mem, renderer_mem_size, 2);
rawptr game_mem = ArenaAlloc(arena, game_mem_size);
Arena *game_arena = CreateArenaDebug(game_mem, game_mem_size, 3);
Assert(CreatePlatformWindow(), "Failed to initialize window");
GameInput *inputs = ArenaAlloc(arena, sizeof(GameInput) * 10);
u32 i_count = 0;
InitializeGame(renderer_arena);
while (!global_quit)
{
GetWindowEvents();
RunCycle(game_arena, inputs, i_count);
}
DestroyGame();
}
#endif // _WIN32