static __attribute__((noreturn)) void StartModel() { const int screenHeight = 768; const int screenWidth = 1024; const bool singleStep = Options.singleStep; Model_Map map; if (Renderer_Init(screenWidth, screenHeight) != Renderer_SUCCESS) //TODO: move this up a level { printf(Renderer_GetLastError()); exit(1); } LoadConfiguration(); Model_Map_Init(&map, Options.mapWidth, Options.mapHeight); Model_Init(&map); MapRenderer_StartScene(&map, screenWidth, screenHeight); while(!InputHandler_ExitRequested()) { if(!singleStep || InputHandler_NextStepRequested()) { Model_Next(); Model_GraphIteration(); } MapRenderer_DrawMap(); } MapRenderer_EndScene(); Model_Map_Free(&map); Model_Free(); Renderer_Quit();//TODO: move this up a level exit(0); }
void Game_Init() { InputHandler_Init(); Shaders_Init(MAX_SHADERS); Model_Init(MAX_MODELS); Transform_Init(MAX_TRANSFORMS); Camera_Init(MAX_CAMERAS); game_object_list = (struct GameObject *)malloc(MAX_GAME_OBJECTS * sizeof(struct GameObject)); camera_object_list = (struct CameraObject *)malloc(MAX_CAMERAS * sizeof(struct CameraObject)); num_objects = 0; num_cams = 0; struct ShaderPair simple_shader_pair[2] = { [0].shader_source = "Shaders/vertex_shader.glsl", [0].shader_type = GL_VERTEX_SHADER, [1].shader_source = "Shaders/fragment_shader.glsl", [1].shader_type = GL_FRAGMENT_SHADER };