diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-12-19 19:08:59 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-19 19:08:59 +1100 |
commit | 63903276e5e1c3f96629d87cdaab9e868368b343 (patch) | |
tree | e335b36c27fba80e56605b95e6fd3f4993bd6f58 /source/frontend/StarGraphicsMenu.cpp | |
parent | 2bf5be1af36fa53fc686bb893dc97e5ed10ddaa4 (diff) | |
parent | 300b8f2dbae631fdddeafaee683f450418e5cc57 (diff) |
Merge pull request #157 from Bottinator22/main
Allow post process shaders to be grouped up and enabled/disabled via Lua or a shaders menu
Diffstat (limited to 'source/frontend/StarGraphicsMenu.cpp')
-rw-r--r-- | source/frontend/StarGraphicsMenu.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/source/frontend/StarGraphicsMenu.cpp b/source/frontend/StarGraphicsMenu.cpp index efce444..3974453 100644 --- a/source/frontend/StarGraphicsMenu.cpp +++ b/source/frontend/StarGraphicsMenu.cpp @@ -9,10 +9,12 @@ #include "StarButtonWidget.hpp" #include "StarOrderedSet.hpp" #include "StarJsonExtra.hpp" +#include "StarShadersMenu.hpp" namespace Star { -GraphicsMenu::GraphicsMenu() { +GraphicsMenu::GraphicsMenu(PaneManager* manager,UniverseClientPtr client) + : m_paneManager(manager) { GuiReader reader; reader.registerCallback("cancel", [&](Widget*) { @@ -103,10 +105,14 @@ GraphicsMenu::GraphicsMenu() { Root::singleton().configuration()->set("newLighting", checked); syncGui(); }); + reader.registerCallback("showShadersMenu", [=](Widget*) { + displayShaders(); + }); auto assets = Root::singleton().assets(); - Json paneLayout = assets->json("/interface/windowconfig/graphicsmenu.config:paneLayout"); + auto config = assets->json("/interface/windowconfig/graphicsmenu.config"); + Json paneLayout = config.get("paneLayout"); m_interfaceScaleList = jsonToIntList(assets->json("/interface/windowconfig/graphicsmenu.config:interfaceScaleList")); m_resList = jsonToVec2UList(assets->json("/interface/windowconfig/graphicsmenu.config:resolutionList")); @@ -122,6 +128,8 @@ GraphicsMenu::GraphicsMenu() { initConfig(); syncGui(); + + m_shadersMenu = make_shared<ShadersMenu>(assets->json(config.getString("shadersPanePath", "/interface/opensb/shaders/shaders.config")), client); } void GraphicsMenu::show() { @@ -240,6 +248,10 @@ void GraphicsMenu::apply() { } } +void GraphicsMenu::displayShaders() { + m_paneManager->displayPane(PaneLayer::ModalWindow, m_shadersMenu); +} + void GraphicsMenu::applyWindowSettings() { auto configuration = Root::singleton().configuration(); auto appController = GuiContext::singleton().applicationController(); @@ -253,4 +265,4 @@ void GraphicsMenu::applyWindowSettings() { appController->setNormalWindow(jsonToVec2U(configuration->get("windowedResolution"))); } -}
\ No newline at end of file +} |