diff options
| author | 2026-02-07 13:32:37 -0500 | |
|---|---|---|
| committer | 2026-02-07 13:32:37 -0500 | |
| commit | 8349e95e3e0ea4d3081739e2b8bb5787b9e366ba (patch) | |
| tree | 89c058b1454f3c898fb918dc2ce1c7a2fb701e4b /src/osd/modules/lib/osdobj_common.cpp | |
| parent | dba6d057f1186642e73eb7fa020aabf9647b163f (diff) | |
Initial support for SDL3. [R. Belmont, Vas Crabb]
* SDL3 is the default for macOS targets. Linux/Windows can build with
OSD=sdl3 while we wait for better distro support for SDL3. Both X11 and
Wayland sessions are fully supported on Linux.
* SDL3 -sound=sdl supports both input and output. All other video, sound,
and input functionality should otherwise be the same for now. SDL 3.4+
multiple keyboard/mouse support is planned.
Diffstat (limited to 'src/osd/modules/lib/osdobj_common.cpp')
| -rw-r--r-- | src/osd/modules/lib/osdobj_common.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp index 82fabfdc0ba..46f1dac6a6b 100644 --- a/src/osd/modules/lib/osdobj_common.cpp +++ b/src/osd/modules/lib/osdobj_common.cpp @@ -237,17 +237,28 @@ void osd_common_t::register_options() #if !defined(OSD_WINDOWS) && !defined(SDLMAME_WIN32) REGISTER_MODULE(m_mod_man, RENDERER_BGFX); // try BGFX after OpenGL on other operating systems for now #endif +#ifdef SDLMAME_SDL3 + REGISTER_MODULE(m_mod_man, RENDERER_SDL3ACCEL); +#if !defined(SDLMAME_EMSCRIPTEN) + REGISTER_MODULE(m_mod_man, RENDERER_SDL3SOFT); +#endif +#else REGISTER_MODULE(m_mod_man, RENDERER_SDL2); #if !defined(SDLMAME_EMSCRIPTEN) REGISTER_MODULE(m_mod_man, RENDERER_SDL1); #endif +#endif REGISTER_MODULE(m_mod_man, RENDERER_NONE); REGISTER_MODULE(m_mod_man, SOUND_WASAPI); REGISTER_MODULE(m_mod_man, SOUND_XAUDIO2); REGISTER_MODULE(m_mod_man, SOUND_COREAUDIO); REGISTER_MODULE(m_mod_man, SOUND_JS); +#ifdef SDLMAME_SDL3 + REGISTER_MODULE(m_mod_man, SOUND_SDL3); +#else REGISTER_MODULE(m_mod_man, SOUND_SDL); +#endif #ifndef NO_USE_PORTAUDIO REGISTER_MODULE(m_mod_man, SOUND_PORTAUDIO); #endif @@ -284,26 +295,34 @@ void osd_common_t::register_options() #endif REGISTER_MODULE(m_mod_man, MIDI_NONE); +#if defined(SDLMAME_SDL2) || defined(SDLMAME_SDL3) REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_SDL); +#endif REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_RAWINPUT); REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_DINPUT); REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_WIN32); REGISTER_MODULE(m_mod_man, KEYBOARD_NONE); +#if defined(SDLMAME_SDL2) || defined(SDLMAME_SDL3) REGISTER_MODULE(m_mod_man, MOUSEINPUT_SDL); +#endif REGISTER_MODULE(m_mod_man, MOUSEINPUT_RAWINPUT); REGISTER_MODULE(m_mod_man, MOUSEINPUT_DINPUT); REGISTER_MODULE(m_mod_man, MOUSEINPUT_WIN32); REGISTER_MODULE(m_mod_man, MOUSE_NONE); +#if defined(SDLMAME_SDL2) || defined(SDLMAME_SDL3) REGISTER_MODULE(m_mod_man, LIGHTGUNINPUT_SDL); +#endif REGISTER_MODULE(m_mod_man, LIGHTGUN_X11); REGISTER_MODULE(m_mod_man, LIGHTGUNINPUT_RAWINPUT); REGISTER_MODULE(m_mod_man, LIGHTGUNINPUT_WIN32); REGISTER_MODULE(m_mod_man, LIGHTGUN_NONE); +#if defined(SDLMAME_SDL2) || defined(SDLMAME_SDL3) REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_SDLGAME); REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_SDLJOY); +#endif REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_WINHYBRID); REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_DINPUT); REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_XINPUT); |
