aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/main_window.cpp
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2026-03-11 16:49:29 +0100
committercrueter <crueter@eden-emu.dev>2026-03-11 16:49:29 +0100
commit5a0780b826d868f6ffb49b8faa951600b9b65547 (patch)
tree50fb300a750e25e6f79a16762ac0e9d5be5b871f /src/yuzu/main_window.cpp
parentd35fc7b7ee47993cf8e45d7fd09d13f30ab85adf (diff)
[video_core] Properly disable/avoid building OpenGL when it's disabled (#3692)
- OpenGL symbols would still be included in builds without OpenGL, this pr fixes that - Same goes for Vulkan, but now with `ENABLE_VULKAN` - Add support to have OpenGL-only builds (why would you do this?) - Add support for headless runs (yes you could just select NULL backend, but why not compile it headless? :) Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3692 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/yuzu/main_window.cpp')
-rw-r--r--src/yuzu/main_window.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/yuzu/main_window.cpp b/src/yuzu/main_window.cpp
index a251451bea..029826dfa3 100644
--- a/src/yuzu/main_window.cpp
+++ b/src/yuzu/main_window.cpp
@@ -3784,14 +3784,30 @@ void MainWindow::OnToggleAdaptingFilter() {
void MainWindow::OnToggleGraphicsAPI() {
auto api = Settings::values.renderer_backend.GetValue();
- if (api != Settings::RendererBackend::Vulkan) {
- api = Settings::RendererBackend::Vulkan;
- } else {
+ switch (api) {
#ifdef HAS_OPENGL
+ case Settings::RendererBackend::Vulkan:
+ api = Settings::RendererBackend::OpenGL_GLSL;
+ break;
+ case Settings::RendererBackend::OpenGL_GLSL:
api = Settings::RendererBackend::OpenGL_GLSL;
+ break;
+ case Settings::RendererBackend::OpenGL_SPIRV:
+ api = Settings::RendererBackend::OpenGL_GLASM;
+ break;
+ case Settings::RendererBackend::OpenGL_GLASM:
+ api = Settings::RendererBackend::Null;
+ break;
#else
+ case Settings::RendererBackend::Vulkan:
api = Settings::RendererBackend::Null;
+ break;
#endif
+ case Settings::RendererBackend::Null:
+ api = Settings::RendererBackend::Vulkan;
+ break;
+ default:
+ break;
}
Settings::values.renderer_backend.SetValue(api);
renderer_status_button->setChecked(api == Settings::RendererBackend::Vulkan);