#include <cstdio>
#include <memory>
#include "engine/rendering/renderer.hpp"
#include "engine/rendering/sdl/sdlrenderer.hpp"
#include "engine/engine.hpp"
#include "game/visualizer.hpp"
#include "engine/input/sdlinputprocessor.hpp"

int main() {

    std::unique_ptr<Renderer> renderer = std::make_unique<SdlRenderer>();
    std::unique_ptr<Game> game = std::make_unique<Visualizer>();
    std::unique_ptr<InputProcessor> input_processor = std::make_unique<SdlInputProcessor>();
    auto* engine = new Engine(std::move(game), std::move(renderer), std::move(input_processor));
    engine->start_loop();

    return 0;
}
