Back to gradually making progress on the editor for Yin, again. I mean, it looks like a thing now I guess?
Because of the way it all needs to work I've been overhauling the way viewports/windows were handled throughout the code, which uh, has had a bit of a domino effect on a lot of systems.
There is a bit of a chicken-and-egg problem that had been avoided for a long time which needs addressing too - for the SDL2 shell, the window was originally created by the engine via an "OS_CreateWindow" function during initialization; the engine would determine what graphics APIs were available and pick the one most appropriate, then hint to the shell the type of window it wanted to create, but the editor worked completely the opposite way for obvious reasons (the "OS_CreateWindow" function would just do nothing in that case, as the OpenGL context and window was created for us - ew, I know!)
It does make more sense for the shell to determine this rather than the engine, certainly, and the plan now is for the SDL2 shell to create the window itself just as the editor did, but this has raised some other concerns, like, do I now move all the graphics API detection out into the shell? Because it also needs to lookup the user preference too, and all of the configuration state is managed and tracked by the engine - and the engine can't currently be initialised until the window is created.
Damn my brain is useless...
The solution might be to move the configuration state manager out into the "common" library.