Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarGraphicsMenu.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-12-19 19:08:59 +1100
committerGitHub <noreply@github.com>2024-12-19 19:08:59 +1100
commit63903276e5e1c3f96629d87cdaab9e868368b343 (patch)
treee335b36c27fba80e56605b95e6fd3f4993bd6f58 /source/frontend/StarGraphicsMenu.cpp
parent2bf5be1af36fa53fc686bb893dc97e5ed10ddaa4 (diff)
parent300b8f2dbae631fdddeafaee683f450418e5cc57 (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.cpp18
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
+}