I was asked if I post about stuff I've done on SDL during the month, and I think that's a good idea, so here's a first post to get this going:
- I've officially published the Nintendo 3DS work! This is not complete, as I don't have a devkit, but it's sort of sitting at the 80% implemented phase. As you have to have an NDA with Nintendo to see the port, it sits in a different Mercurial repository where you request access (although for the 3DS, anyone can get a Nintendo Developer account for free at developer.nintendo.com). Things like input, audio, a window for each screen, etc are implemented. Other things, like a proper render API backend, are not. I will accept patches for this port, but I don't intend to go much further with it unless someone buys me a devkit, which aren't cheap. If you're interested in tinkering or funding this work, send me an email.
- I've also published a Nintendo Switch repository in the same way, as it turns out devkits are _very_ cheap for this. :) This project is just getting momentum, and I'll have more to say about it soon. If you have Switch NDA access (unlike the 3DS, this is not available to the general public), drop me a line.
- For Windows: I've deleted the XAudio2 audio target (it doesn't have audio capture support, because XAudio2 doesn't offer it at all, and is otherwise redundant between WASAPI, DirectSound and winmm support), and made WASAPI the default. Most of the effort there was porting it to WinRT, so UWP apps and Windows Mobile or whatever aren't left out in the cold. This turned out to be a fairly complicated effort: WinRT supports WASAPI, but all the secondary APIs for enumerating audio devices and dealing with hotplugging are totally different...and opening devices at all is an asynchronous process (presumably because you might have to wait for a user to approve microphone access, etc). I ended up splitting our code into the core piece and two platform-specific implementations of the finer points. I've also moved it to use event-based updates, which make it lower-latency and friendlier to battery life. Overall, a very big month for Windows audio.
- For macOS and iOS: I've written a Metal renderer! This is still a work in progress, but it already works for many common cases, and Sam and I have been banging on this to get all the reference counting politics cleaned up. Pretty soon, we'll feel a little more future-proof on Apple platforms.