55 lines
977 B
C

#include "app.h"
#include "window.h"
#include "render.h"
#include "input.h"
#include "gui.h"
void App_Init(App_t *app) {
app->isRunning = false;
if (!Window_Init_SDL()) {
return;
}
System_QueryMetrics(&app->metrics);
if (!Window_Init(app->metrics.screenWidth, app->metrics.screenHeight)) {
return;
}
Gui_Init(&app->gui);
Config_Load_Settings(&app->configParams);
if (!Map_Init(&app->map)) {
return;
}
if (!Bitmap_Init(&app->bitmap)) {
return;
}
if (!Objects_Init(&app->objects)) {
return;
}
Map_LoadSampleData();
app->isInGame = true;
app->isRunning = true;
}
void App_Run(App_t *app) {
while (app->isRunning) {
Input_Poll(app);
Render_Frame(app);
}
}
void App_Shutdown(const App_t* app) {
Objects_Destroy(&app->objects);
Map_Destroy(&app->map);
Bitmap_Destroy(&app->bitmap);
Gui_Shutdown();
Window_Shutdown();
}