#pragma once #include #include #include namespace Game { struct SDLWindow { SDL_Window *_window; SDLWindow (SDL_Window *window) { _window = window; } ~SDLWindow () { SDL_DestroyWindow (_window); } }; struct SDLRenderer { SDL_Renderer *_renderer; SDLRenderer (SDL_Renderer *renderer) { _renderer = renderer; } ~SDLRenderer () { SDL_DestroyRenderer (_renderer); } }; class App { public: App (const char *window_name, int width, int height); void run (); private: std::unique_ptr m_window; std::unique_ptr m_renderer; bool can_quit = false; bool initialized = false; }; }; // namespace Game