diff --git a/include/panda_sdl/frontend_sdl.hpp b/include/panda_sdl/frontend_sdl.hpp index 4918d84e..d0df3560 100644 --- a/include/panda_sdl/frontend_sdl.hpp +++ b/include/panda_sdl/frontend_sdl.hpp @@ -4,16 +4,18 @@ #include "emulator.hpp" -struct FrontendSDL { +class FrontendSDL { + Emulator emu; +#ifdef PANDA3DS_ENABLE_OPENGL + SDL_GLContext glContext; +#endif + + public: FrontendSDL(); bool loadROM(const std::filesystem::path& path); void run(); - Emulator emu; SDL_Window* window = nullptr; -#ifdef PANDA3DS_ENABLE_OPENGL - SDL_GLContext glContext; -#endif SDL_GameController* gameController = nullptr; int gameControllerID; }; \ No newline at end of file diff --git a/src/panda_sdl/frontend_sdl.cpp b/src/panda_sdl/frontend_sdl.cpp index 3368a12e..d1076d9d 100644 --- a/src/panda_sdl/frontend_sdl.cpp +++ b/src/panda_sdl/frontend_sdl.cpp @@ -75,7 +75,6 @@ FrontendSDL::FrontendSDL() { } bool FrontendSDL::loadROM(const std::filesystem::path& path) { return emu.loadROM(path); } - void FrontendSDL::run() { emu.run(this); } void Emulator::run(void* frontend) { @@ -352,7 +351,6 @@ void Emulator::run(void* frontend) { // TODO: Should this be uncommented? // kernel.evalReschedule(); - // Update inputs in the HID module SDL_GL_SwapWindow(frontendSDL->window); } } diff --git a/src/panda_sdl/main.cpp b/src/panda_sdl/main.cpp index 001148c7..ef354c61 100644 --- a/src/panda_sdl/main.cpp +++ b/src/panda_sdl/main.cpp @@ -1,11 +1,11 @@ #include "panda_sdl/frontend_sdl.hpp" int main(int argc, char *argv[]) { - FrontendSDL frontend; + FrontendSDL app; if (argc > 1) { auto romPath = std::filesystem::current_path() / argv[1]; - if (!frontend.loadROM(romPath)) { + if (!app.loadROM(romPath)) { // For some reason just .c_str() doesn't show the proper path Helpers::panic("Failed to load ROM file: %s", romPath.string().c_str()); } @@ -13,5 +13,5 @@ int main(int argc, char *argv[]) { printf("No ROM inserted! Load a ROM by dragging and dropping it into the emulator window!\n"); } - frontend.run(); + app.run(); }