diff --git a/src/pew/renderpass/renderpass.hpp b/src/pew/renderpass/renderpass.hpp index d6d836e79df91ef3b7ca8c45d75a219bf01a86fa..43a54665b0535975a49b846d167eae5b3338d491 100644 --- a/src/pew/renderpass/renderpass.hpp +++ b/src/pew/renderpass/renderpass.hpp @@ -94,7 +94,7 @@ namespace pew { RenderPassBuffers buffers; #if !defined(PEW_USE_THREADS) - std::function<void()> pixelUpdateFun; + std::function<bool()> pixelUpdateFun; #endif public: @@ -133,7 +133,7 @@ namespace pew { #if !defined(PEW_USE_THREADS) RenderPass& - setPixelUpdateFunction(const std::function<void()>& fun) { + setPixelUpdateFunction(const std::function<bool()>& fun) { pixelUpdateFun = fun; return *this; } diff --git a/src/pew/scene/scene.cpp b/src/pew/scene/scene.cpp index 668511dd4989049e798e0a0eee5362c9b63d9cd1..15df4f3715236940a79d88aff6d4f56994dae64d 100644 --- a/src/pew/scene/scene.cpp +++ b/src/pew/scene/scene.cpp @@ -43,6 +43,7 @@ namespace pew { renderPass.setPixelUpdateFunction([&] { window.handleInput(); window.drawFrame(); + return window.getShouldClose(); }); #if defined(__EMSCRIPTEN__) diff --git a/src/pew/window/window.hpp b/src/pew/window/window.hpp index 50d95be2be6740a0bea0adbb4ffab6bc7ae1881e..20b95acb9265deb45f430469dc1c5155526fcbd6 100644 --- a/src/pew/window/window.hpp +++ b/src/pew/window/window.hpp @@ -155,6 +155,11 @@ namespace pew { shouldClose = true; } + auto + getShouldClose() const noexcept { + return shouldClose; + } + void handleInput() { SDL_Event event;