tibia_alpha/app.c

48 lines
860 B
C

#include "app.h"
#include "window.h"
#include "render.h"
#include "input.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;
}
Config_Load_Settings(&app->configParams);
if (!Map_Init(&app->map)) {
return;
}
if (!Bitmap_Init(&app->bitmap)) {
return;
}
if (!Objects_Init(&app->graphics)) {
return;
}
app->isRunning = true;
}
void App_Run(App_t *app) {
while (app->isRunning) {
Input_Poll(app);
Render_Frame();
}
}
void App_Shutdown(const App_t* app) {
Objects_Destroy(&app->graphics);
Map_Destroy(&app->map);
Bitmap_Destroy(&app->bitmap);
Window_Shutdown();
}