This uses basic hardware-acceleration to bounce the software-rendered
frame to both the gamepad *and* the TV!
The previous method only supported the gamepad, suffered from V-tear,
and used slightly more CPU (my test with the end of Egg Corridor ran
at 52FPS, while this new method runs at 55FPS).
Currently doesn't produce sound unless you stop Organya from calling
AudioBackend_CreateSound, because it exhausts the Wii U's 150-sound
pool before the SFX get any of them.
With this backend, CSE2 can run on the Wii U.
It's not ideal - it doesn't have its own renderer yet, so it just
uses the software renderer, and it only displays on the gamepad,
because drawing to the TV as well makes the game lag.
Also there's no sound.
Also the lack of input rebinding is annoying.
Also does absolute nothing.
The point of these things is so it's easier to test out new ports.
For example, with the Null backends and the software renderer, we
don't need to write any code to build for other platforms.
In addition, by having no platform-dependant code, this can be used
to trace crashes. For example, I was having crashes on the Wii U,
despite there being no Wii U-specific code at all - the cause turned
out to be that the executable wasn't stripped, and it had nothing to
do with the code at all.
Today I learned that CMake will error if the project shares a
dependency with a nested CMake file (which could be from an
entirely-separate project that you have no control over).
I'm starting to really hate CMake.
This is a better for GLFW on Windows, and it might have fixed the
long-standing bug where FORCE_LOCAL_LIBS on MSYS2 wouldn't work
because SDL2 would mysteriously fail because of something involving
WinMain.
This newer version supports marking all of its declarations as
static, avoiding the conflict between the miniaudio audio backend,
and the copy of miniaudio embedded in clownaudio in the enhanced
branch.