diff --git a/src/core/hle/kernel/shared_page.cpp b/src/core/hle/kernel/shared_page.cpp index e2af01e0d3..f5cac7187d 100644 --- a/src/core/hle/kernel/shared_page.cpp +++ b/src/core/hle/kernel/shared_page.cpp @@ -121,6 +121,10 @@ void Handler::Set3DLed(u8 state) { shared_page.ledstate_3d = state; } +void Handler::Set3DSlider(float slidestate) { + shared_page.sliderstate_3d = slidestate; +} + SharedPageDef& Handler::GetSharedPage() { return shared_page; } diff --git a/src/core/hle/kernel/shared_page.h b/src/core/hle/kernel/shared_page.h index 7b6dc2e065..f066befc45 100644 --- a/src/core/hle/kernel/shared_page.h +++ b/src/core/hle/kernel/shared_page.h @@ -91,6 +91,8 @@ public: void Set3DLed(u8); + void Set3DSlider(float); + SharedPageDef& GetSharedPage(); private: diff --git a/src/core/settings.cpp b/src/core/settings.cpp index 2141d57bd0..3dd4a0226c 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -5,6 +5,7 @@ #include "audio_core/dsp_interface.h" #include "core/core.h" #include "core/gdbstub/gdbstub.h" +#include "core/hle/kernel/shared_page.h" #include "core/hle/service/hid/hid.h" #include "core/hle/service/ir/ir_rst.h" #include "core/hle/service/ir/ir_user.h" @@ -55,6 +56,11 @@ void Apply() { if (cam) { cam->ReloadCameraDevices(); } + + system.Kernel().GetSharedPageHandler().Set3DSlider( + (Settings::values.render_3d != Settings::StereoRenderOption::Off) + ? (float_le)Settings::values.factor_3d / 100 + : 0.0f); } }