So in the interests of improving portability to non-SDL2 platforms, I'd like to move everything SDL2 and every other external library to its own little, independent, optional subset that can be replaced as needed for each target.
This means:
No usage of any SDL2 code outside of PL/SDL2.
No SDL2 libraries (SDL2_image/SDL2_ttf). Likely replace with the stb header files while I'm at it.
Make ogg/vorbis/theora optional, too. Again, stb is probably ideal for vorbis, though theora isn't there yet.
That overhaul of the audio I've been holding off on forever, because, let's face it, it sucks right now and needs to be easier to integrate with external libraries.
Again, a fair bit of work, especially on removing image/ttf. It might also mean time for the font backend cleanup so that we can have a better handling of glyph storage.
PLAudio works directly to SDL's api. Should be split off.
PLInput works in SDL's controller formats and keybindings directly. Fixing this is kind of tedious.
PLSurface is a thin wrapper around SDL_surface a lot of the time and that's a no-go. Clean it up.
PLSurface also uses SDL_image a lot for loading, and I'd like to make that optional/switch to nothings' STB loaders.
DxDraw uses SDL_sinf/SDL_cosf, because not all platforms have the float versions. Also SDL_sqrt.
DxDXA and DxFile both use SDL_RW a lot. We should move this over to the internal wrapper type.
DxFont depends on SDL_ttf, which seemed like a fine hack back when I worked on Eryi's Action, but I'd like to make this less painful.
DxLib_c uses SDL_ceil a few times for some reason.
Some thoughts: I'd also like to move PL/SDL2 to platform/SDL2 or something more indicative that it's a platform target, with a dummy platform available.
So in the interests of improving portability to non-SDL2 platforms, I'd like to move everything SDL2 and every other external library to its own little, independent, optional subset that can be replaced as needed for each target.
This means:
Again, a fair bit of work, especially on removing image/ttf. It might also mean time for the font backend cleanup so that we can have a better handling of glyph storage.