Gracefully abort headless mode with unsupported video renderers

Also fix no_return bug
This commit is contained in:
Megamouse 2020-07-30 13:23:55 +02:00
parent dd497625a5
commit 3bba9708d9
4 changed files with 72 additions and 35 deletions

View file

@ -2,6 +2,8 @@
#include "Input/pad_thread.h"
#include "Emu/System.h"
#include "Emu/system_config.h"
#include "Emu/IdManager.h"
#include "Emu/Io/Null/NullKeyboardHandler.h"
#include "Emu/Io/Null/NullMouseHandler.h"
#include "Emu/Io/KeyboardHandler.h"
@ -25,14 +27,6 @@
#include "Emu/Audio/FAudio/FAudioBackend.h"
#endif
#include "Emu/RSX/GSRender.h"
#include "Emu/RSX/Null/NullGSRender.h"
#include "Emu/RSX/GL/GLGSRender.h"
#if defined(_WIN32) || defined(HAVE_VULKAN)
#include "Emu/RSX/VK/VKGSRender.h"
#endif
LOG_CHANNEL(sys_log, "SYS");
/** Emu.Init() wrapper for user manager */
@ -110,31 +104,6 @@ EmuCallbacks main_application::CreateCallbacks()
g_fxo->init<pad_thread>(get_thread(), m_game_window, title_id);
};
callbacks.init_gs_render = []()
{
switch (video_renderer type = g_cfg.video.renderer)
{
case video_renderer::null:
{
g_fxo->init<rsx::thread, named_thread<NullGSRender>>();
break;
}
case video_renderer::opengl:
{
g_fxo->init<rsx::thread, named_thread<GLGSRender>>();
break;
}
#if defined(_WIN32) || defined(HAVE_VULKAN)
case video_renderer::vulkan:
{
g_fxo->init<rsx::thread, named_thread<VKGSRender>>();
break;
}
#endif
default: fmt::throw_exception("Invalid video renderer: %s" HERE, type);
}
};
callbacks.get_audio = []() -> std::shared_ptr<AudioBackend>
{
std::shared_ptr<AudioBackend> result;