So, here's the engine with SDL2 backend, for testing:
http://www.mediafire.com/file/xp8wcfqujkmjp1a/acwin-3.6.0-sdl2-test.zip/fileRepository branch:
https://github.com/adventuregamestudio/ags/tree/ags3--sdl2The updated fix list for SDL2 port:
https://github.com/adventuregamestudio/ags/issues/1148It's based on AGS 3.5.0 with some minor additions, which are probably irrelevant now, and then have Allegro 4 library switched to SDL2.
This is still WIP, and I am interested to know if you can find anything non-working, unexpected, and so on.
If successful, this will become a 3.6.0 release.
EDIT:
The primary reasons for changing libraries were:
* better modern OS support,
* better device support (e.g. Allegro 4 did not have any native touchscreen support, and SDL2 does),
* because Allegro 4 is long discontinued we are stuck with ancient utility libraries based on Allegro 4, or have to write our own.
We still are going to use parts of Allegro 4 embedded into the engine, because SDL2 did not have alternative for everything (Allegro is just a more wholesome library), that's easier approach at the moment.
Raw bitmaps and drawing functions are prime example, as SDL2 has only rudimentary support for that (it's more focused on texture-based gfx).
-----------
Methods to use:
1) Copy to the AGS 3.5.0 Editor directory, backing up old "acwin.exe" (well, or make a full copy of AGS Editor for this test and do it there), rebuild your game, and manually copy SDL2.dll to Compiled/Windows folder (as editor won't do that automatically). Then run resulting game.
2) Copy acwin.exe + SDL2.dll to any existing AGS game, and run acwin.exe. It will use existing setup (except for sound iirc, which will probably be always on).
NOTES:* SDL2 is currently provided as a separate DLL, which must be present aside with the game exe. But it might be possible to link this library with engine, this is something that I'd look into afterwards.
* Software renderer is now not fully software, to present final game image it will use a method automatically created by SDL2, depending on your system. Which may be DirectX or OpenGL. But you cannot control this now (maybe we will add this to config settings later). Other renderers should work as before.
* This port will potentially support resizable window, but I think I forgot to enable this, so will later.
Will add more notes if remember or find anything noteworthy.