diff --git a/apps/OpenSpace/ext/sgct b/apps/OpenSpace/ext/sgct index 364b647fbc..d470316f85 160000 --- a/apps/OpenSpace/ext/sgct +++ b/apps/OpenSpace/ext/sgct @@ -1 +1 @@ -Subproject commit 364b647fbcdae10741e7cb3cbf1010f6404cbc2d +Subproject commit d470316f8580364ba77ca45e2b3e258c6d612cc9 diff --git a/apps/OpenSpace/main.cpp b/apps/OpenSpace/main.cpp index b954fba28a..375fc94f56 100644 --- a/apps/OpenSpace/main.cpp +++ b/apps/OpenSpace/main.cpp @@ -879,6 +879,10 @@ void setSgctDelegateFunctions() { Engine::instance().takeScreenshot(std::move(windowIds)); return Engine::instance().screenShotNumber(); }; + sgctDelegate.resetScreenshotNumber = []() { + ZoneScoped; + Engine::instance().resetScreenshotNumber(); + }; sgctDelegate.swapBuffer = []() { ZoneScoped; diff --git a/include/openspace/engine/windowdelegate.h b/include/openspace/engine/windowdelegate.h index 526e2e54f9..af290a293e 100644 --- a/include/openspace/engine/windowdelegate.h +++ b/include/openspace/engine/windowdelegate.h @@ -81,6 +81,8 @@ struct WindowDelegate { unsigned int (*takeScreenshot)(bool applyWarping, std::vector windowIds) = [](bool, std::vector) { return 0u; }; + void (*resetScreenshotNumber)() = []() {}; + void (*swapBuffer)() = []() {}; int (*nWindows)() = []() { return 0; }; diff --git a/include/openspace/rendering/renderengine.h b/include/openspace/rendering/renderengine.h index e9b0b6a0a9..068403a34b 100644 --- a/include/openspace/rendering/renderengine.h +++ b/include/openspace/rendering/renderengine.h @@ -135,6 +135,11 @@ public: */ void takeScreenshot(); + /** + * Resets the screenshot index to 0 + */ + void resetScreenshotNumber(); + /** * Get the filename of the latest screenshot */ diff --git a/src/rendering/renderengine.cpp b/src/rendering/renderengine.cpp index a5cac6229b..4b78b846af 100644 --- a/src/rendering/renderengine.cpp +++ b/src/rendering/renderengine.cpp @@ -1027,6 +1027,14 @@ void RenderEngine::takeScreenshot() { ); } +/** + * Resets the screenshot index to 0 + */ +void RenderEngine::resetScreenshotNumber() { + _latestScreenshotNumber = 0; + global::windowDelegate->resetScreenshotNumber(); +} + unsigned int RenderEngine::latestScreenshotNumber() const { return _latestScreenshotNumber; } @@ -1038,7 +1046,8 @@ scripting::LuaLibrary RenderEngine::luaLibrary() { codegen::lua::AddScreenSpaceRenderable, codegen::lua::RemoveScreenSpaceRenderable, codegen::lua::TakeScreenshot, - codegen::lua::DpiScaling + codegen::lua::DpiScaling, + codegen::lua::ResetScreenshotNumber } }; } diff --git a/src/rendering/renderengine_lua.inl b/src/rendering/renderengine_lua.inl index 7a8460b7d9..f7b474aea3 100644 --- a/src/rendering/renderengine_lua.inl +++ b/src/rendering/renderengine_lua.inl @@ -67,6 +67,14 @@ namespace { return static_cast(screenshotNumber); } +/** +* Reset screenshot index to 0. +*/ +[[codegen::luawrap]] void resetScreenshotNumber() { + using namespace openspace; + global::renderEngine->resetScreenshotNumber(); +} + // Extracts the DPI scaling for either the GUI window or if there is no dedicated GUI // window, the first window. [[codegen::luawrap]] float dpiScaling() {