From f3c889c5d5ec419a714d8d49e7947cc4384c3e07 Mon Sep 17 00:00:00 2001 From: SirLynix Date: Thu, 16 Jun 2022 19:57:40 +0200 Subject: [PATCH] Examples: Fix crash/high CPU usage when minimized --- examples/DeferredShading/main.cpp | 5 +++++ examples/GraphicsTest/main.cpp | 5 +++++ examples/Physics2DDemo/main.cpp | 5 +++++ examples/PhysicsDemo/main.cpp | 5 +++++ examples/RenderTest/main.cpp | 5 +++++ examples/Tut01/main.cpp | 8 ++++++++ examples/Tut02/main.cpp | 8 ++++++++ 7 files changed, 41 insertions(+) diff --git a/examples/DeferredShading/main.cpp b/examples/DeferredShading/main.cpp index 8879a0edb..f6223fac2 100644 --- a/examples/DeferredShading/main.cpp +++ b/examples/DeferredShading/main.cpp @@ -7,8 +7,10 @@ #include #include #include +#include #include #include +#include NAZARA_REQUEST_DEDICATED_GPU() @@ -1176,7 +1178,10 @@ int main() Nz::RenderFrame frame = window.AcquireFrame(); if (!frame) + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); continue; + } currentFrame = &frame; diff --git a/examples/GraphicsTest/main.cpp b/examples/GraphicsTest/main.cpp index da4e02c1d..831bf8682 100644 --- a/examples/GraphicsTest/main.cpp +++ b/examples/GraphicsTest/main.cpp @@ -6,7 +6,9 @@ #include #include #include +#include #include +#include int main() { @@ -215,7 +217,10 @@ int main() Nz::RenderFrame frame = window.AcquireFrame(); if (!frame) + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); continue; + } viewerInstance.UpdateViewMatrix(Nz::Matrix4f::TransformInverse(viewerPos, camAngles)); viewerInstance.UpdateEyePosition(viewerPos); diff --git a/examples/Physics2DDemo/main.cpp b/examples/Physics2DDemo/main.cpp index b0964e63f..cac2a745a 100644 --- a/examples/Physics2DDemo/main.cpp +++ b/examples/Physics2DDemo/main.cpp @@ -16,8 +16,10 @@ #include #include #include +#include #include #include +#include NAZARA_REQUEST_DEDICATED_GPU() @@ -169,7 +171,10 @@ int main() Nz::RenderFrame frame = window.AcquireFrame(); if (!frame) + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); continue; + } renderSystem.Render(registry, frame); diff --git a/examples/PhysicsDemo/main.cpp b/examples/PhysicsDemo/main.cpp index 06199aa5e..4ece8a578 100644 --- a/examples/PhysicsDemo/main.cpp +++ b/examples/PhysicsDemo/main.cpp @@ -15,8 +15,10 @@ #include #include #include +#include #include #include +#include NAZARA_REQUEST_DEDICATED_GPU() @@ -360,7 +362,10 @@ int main() Nz::RenderFrame frame = window.AcquireFrame(); if (!frame) + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); continue; + } renderSystem.Render(registry, frame); diff --git a/examples/RenderTest/main.cpp b/examples/RenderTest/main.cpp index 5ccde48d0..ebbe6f01d 100644 --- a/examples/RenderTest/main.cpp +++ b/examples/RenderTest/main.cpp @@ -8,7 +8,9 @@ #include #include #include +#include #include +#include NAZARA_REQUEST_DEDICATED_GPU() @@ -322,7 +324,10 @@ int main() Nz::RenderFrame frame = window.AcquireFrame(); if (!frame) + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); continue; + } ubo.viewMatrix = Nz::Matrix4f::TransformInverse(viewerPos, camAngles); diff --git a/examples/Tut01/main.cpp b/examples/Tut01/main.cpp index 3bf83e431..1c44e72f1 100644 --- a/examples/Tut01/main.cpp +++ b/examples/Tut01/main.cpp @@ -7,7 +7,9 @@ #include #include #include +#include #include +#include int main() { @@ -62,6 +64,12 @@ int main() mainWindow.ProcessEvents(); Nz::RenderFrame renderFrame = mainWindow.AcquireFrame(); + if (!renderFrame) + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + continue; + } + renderSystem.Render(registry, renderFrame); renderFrame.Present(); diff --git a/examples/Tut02/main.cpp b/examples/Tut02/main.cpp index 08594a5e9..93bd158a5 100644 --- a/examples/Tut02/main.cpp +++ b/examples/Tut02/main.cpp @@ -7,7 +7,9 @@ #include #include #include +#include #include +#include int main() { @@ -79,6 +81,12 @@ int main() mainWindow.ProcessEvents(); Nz::RenderFrame renderFrame = mainWindow.AcquireFrame(); + if (!renderFrame) + { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + continue; + } + renderSystem.Render(registry, renderFrame); renderFrame.Present();