Skip to content

Migrate from SDL2 to SDL3 - #180

Merged
KevinHake merged 8 commits into
masterfrom
sdl3
Mar 25, 2026
Merged

Migrate from SDL2 to SDL3#180
KevinHake merged 8 commits into
masterfrom
sdl3

Conversation

@KevinHake

Copy link
Copy Markdown
Collaborator

Summary

  • Add SDL3 and SDL3_mixer as git submodules, built statically with shared audio/video backends (dlopen)
  • Migrate all engine code from SDL2 to SDL3 API (input, windowing, display modes, IO streams)
  • Migrate audio from SDL2_mixer channel-based API to SDL3_mixer track-based API
  • Update CI dependencies: replace system SDL2 packages with audio/video dev headers for backend support
  • Remove dead SDL_image code (SdlImageContext, SdlImageException)
  • Add Wayland, PipeWire, PulseAudio, ALSA dev packages to devbox

Test plan

  • Linux CI builds pass (gcc-14, clang-18, Debug + Release)
  • Windows MSVC CI builds pass
  • Windows MinGW64 CI builds pass
  • Unit tests pass on all platforms
  • Manual test: game launches, renders correctly, audio plays

Audio stubbed out pending SDL3_mixer migration.
- Rewrite SdlMixerContext with MIX_Mixer, MIX_Track, MIX_Audio wrappers
- Adapt AudioService from channel-based to track-pool model
- Add audio/video dev packages to devbox for SDL3 backend support
- Remove dead SdlImageContext/SdlImageException files
- Set POSITION_INDEPENDENT_CODE on rwe_test to match librwe's PCH
- Disable SDL_OPENGLES (unused, and MinGW lacks EGL headers)
@KevinHake
KevinHake merged commit b2d8a31 into master Mar 25, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant