From 62b7618ff49873131acda9751c9384e316cdbbba Mon Sep 17 00:00:00 2001 From: Nathan Date: Mon, 5 May 2025 16:30:35 -0500 Subject: [PATCH] unsegfault --- include/utils/Renderer/Renderer.h | 5 +---- include/utils/Window/WindowSDL3/WindowSDL3.h | 6 +++--- modules/WindowModule/src/WindowModule.cpp | 2 +- modules/WindowModule/src/WindowModule.h | 2 +- src/example_apps/MinimalApp/MinimalApp.cpp | 2 ++ 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/include/utils/Renderer/Renderer.h b/include/utils/Renderer/Renderer.h index 4b63394..4d11c52 100644 --- a/include/utils/Renderer/Renderer.h +++ b/include/utils/Renderer/Renderer.h @@ -11,11 +11,9 @@ namespace Archimedes { public: int w, h; - Renderer(void* p = nullptr) : ptr(p) {} - ~Renderer() {} - bool init() { return r.init(ptr); } + bool init(void* ptr) { return r.init(ptr); } void render() { r.render(rc, w, h); @@ -30,7 +28,6 @@ namespace Archimedes { private: std::list> rc; RendererImpl r; - void* ptr; }; } diff --git a/include/utils/Window/WindowSDL3/WindowSDL3.h b/include/utils/Window/WindowSDL3/WindowSDL3.h index 52b1f0c..dca9bb3 100644 --- a/include/utils/Window/WindowSDL3/WindowSDL3.h +++ b/include/utils/Window/WindowSDL3/WindowSDL3.h @@ -23,12 +23,12 @@ namespace Archimedes { data.window = p; data.sendEvent = sendEvent; - +/* if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD)) { - std::cerr << "Error: SDL_Init(): " << SDL_GetError() << std::endl; + std::cerr << "Error: SDL_Init(): " << SDL_GetError() << std::flush; std::abort(); } - +*/ #if RENDERER == 1 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); diff --git a/modules/WindowModule/src/WindowModule.cpp b/modules/WindowModule/src/WindowModule.cpp index d8f2efe..0b9af56 100644 --- a/modules/WindowModule/src/WindowModule.cpp +++ b/modules/WindowModule/src/WindowModule.cpp @@ -38,7 +38,7 @@ void WindowModule::onLoad() { app->registerEvent(Archimedes::FocusLostWindowEvent()); app->registerEvent(Archimedes::MovedWindowEvent()); - renderer = new Archimedes::Renderer(window->getWindowImpl().getWindow()); + renderer = new Archimedes::Renderer(); } void WindowModule::run() { diff --git a/modules/WindowModule/src/WindowModule.h b/modules/WindowModule/src/WindowModule.h index 9fc0480..5fc390b 100644 --- a/modules/WindowModule/src/WindowModule.h +++ b/modules/WindowModule/src/WindowModule.h @@ -37,7 +37,7 @@ class WindowModule : public Archimedes::Module { window->setRenderer(renderer); - if(!renderer->init()) { + if(!renderer->init(window->getWindowImpl().getWindow())) { std::cout << "Renderer init failed!\n"; std::abort(); } diff --git a/src/example_apps/MinimalApp/MinimalApp.cpp b/src/example_apps/MinimalApp/MinimalApp.cpp index d997830..3b3b661 100644 --- a/src/example_apps/MinimalApp/MinimalApp.cpp +++ b/src/example_apps/MinimalApp/MinimalApp.cpp @@ -3,9 +3,11 @@ void MinimalApp::run() { for(std::string m : runOrder) { + std::cout << "load" << m << std::endl; modules[m]->onLoad(); } + // Main loop while (!done && !runOrder.empty()) {