Kaltenberg/modules/core/src-c/main.c

48 lines
1.2 KiB
C
Raw Normal View History

#include <voxula/internals/core.h>
void vx_handle_window_close(vx_window_s *window, vx_window_event_s event)
{
if(event.type == VX_WINDOW_EVENT_CLOSE)
{
vx_core_s *core = window->userdata;
core->input_controller->running = false;
vx_win_hide(core->main_window);
return;
}
if(event.type == VX_WINDOW_EVENT_QUIT)
{
vx_core_s *core = window->userdata;;
core->input_controller->running = false;
core->running = false;
}
}
int main(int argc, char **argv)
{
if(argc > 1)
{
if( ! strcmp(argv[1], "--help"))
{
puts("The Voxula voxel-game engine.");
return 0;
}
}
vx_core_s core;
core.uuid_table = vx_new_uuid_table();
core.input_controller = vx_new_input_controller();
core.main_window = vx_new_window(core.input_controller);
core.main_window->fn_handle_input = vx_handle_window_close;
core.main_window->userdata = &core;
core.running = true;
vx_start_input_controller(core.input_controller);
while(core.running)
{
vx_win_show(core.main_window);
vx_win_present(core.main_window);
SDL_Delay(1000 / 30);
}
vx_free_window(core.main_window);
return 0;
}