/*

Código fuente creado por JailDesigner (2020)
Empezado en Castalla el 15/07/2020.
Reescribiendo el código el 27/09/2022
Actualizando a la versión "Arcade Edition" en 08/05/2024

*/

#define SDL_MAIN_USE_CALLBACKS 1
#include <SDL3/SDL_main.h>

#include "core/system/director.hpp"  // Para Director

SDL_AppResult SDL_AppInit(void** appstate, int /*argc*/, char** /*argv*/) {
    *appstate = new Director();
    return SDL_APP_CONTINUE;
}

SDL_AppResult SDL_AppIterate(void* appstate) {
    return static_cast<Director*>(appstate)->iterate();
}

SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event) {
    return static_cast<Director*>(appstate)->handleEvent(*event);
}

void SDL_AppQuit(void* appstate, SDL_AppResult /*result*/) {
    delete static_cast<Director*>(appstate);
}
