From 0de4957a22dd408793d0526351bcb7d61786fe86 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Fri, 7 Feb 2025 22:15:57 +0100 Subject: add sdl implementation --- app/sdl/state.hh | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 app/sdl/state.hh (limited to 'app/sdl/state.hh') diff --git a/app/sdl/state.hh b/app/sdl/state.hh new file mode 100644 index 0000000..f67a5f9 --- /dev/null +++ b/app/sdl/state.hh @@ -0,0 +1,37 @@ +#pragma once + +#include "nes/common/status.hh" +#include "nes/app/application.hh" +#include "impl/display-sdl.hh" +#include "impl/input-device-keyboard-sdl.hh" +#include "impl/file-browser-posix.hh" +#include +#include + +#include + +namespace nes::app::sdl +{ + /// Manages the SDL application lifecycle. + class state + { + status status_{ status::success }; + SDL_Window* window_{ nullptr }; + SDL_Renderer* renderer_{ nullptr }; + SDL_Texture* texture_{ nullptr }; + std::optional last_time_point_; + display_sdl display_; + input_device_keyboard_sdl keyboard_; + file_browser_posix file_browser_; + application application_; + + public: + explicit state(); + ~state(); + + auto get_status() const -> status { return status_; } + + auto handle_event(SDL_Event* event) -> void; + auto handle_iterate() -> void; + }; +} // namespace nes::app::sdl -- cgit v1.3.1