[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>
This commit is contained in:
lizzie 2026-03-11 16:49:29 +01:00 committed by crueter
parent d35fc7b7ee
commit 5a0780b826
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
9 changed files with 125 additions and 89 deletions

View file

@ -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;
#else
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);