I'll try looking into it soon, temporarily I'm just loading it with a separate string on the cfg file that sets the GC module. I'm trying to get the program to properly exit when pressing the menu info bar button, and while doing so I would guess we would have to move at least the window creation part of OGLClient over to the Orbiter part, and then letting the GC set or not set the OpenGL context, if we're staying with GLFW anyway. I don't have much DirectX experience, but it seems like it's possible for the DirectX client to work on GLFW, along with Vulkan and most other graphics APIs, so staying on GLFW seems reasonable for a cross platform port of Orbiter but SDL seems like a sensible choice as well, and might be easier to deal with other renderer backends. What do you think? I'm just now starting to familiarize myself with the codebase though, and I guess should put off changing too much stuff around until you push the new client code
After this making the d3d client work with the current code should be more viable, along with any other clients like Skybolt etc. I've seen some really great screenshots of Skybolt and can't wait to run that natively on Linux too.
Oh boy, are you right about Skybolt, that's why I don't intend to go further than D3D7 quality with the current OpenGL code, there would be no point in trying to do something even remotely similar (way beyond my skills too
). But right now I'm stuck with OpenGL3.3 hardware so I'll keep working on it. Anyway, I think it's a good compromise to have a low requirement GC available, I don't know what kind of hardware is needed to have Skybolt run decently
This guy could get DX11+GLFW+ImGui to work on Windows so yeah it should be possible (well, that is the point of using GLFW in the first place^^). There is a chicken and egg problem in any case because once you get rid of the Windows API, you need a GC to show the launchpad, and you configure the GC via the launchpad...
So we need a fallback GC that works everywhere.
Hum, maybe use a minimal backend for the launchpad and fork/CreateProcess a new full-featured instance when starting a scenario? (not a fan...)
Or, use something like Qt but I'm not a fan of these frameworks, the "bloat-free" argument of ImGui really appeals to me, you add 3 files in your project and you're done, no need to install gigabytes of dependencies because you want to show a button.
I see you've fixed the crash on ExitModule in your branch, next you'll be stuck on joining the tile loading threads that are currently quite messed up. I hope I'll be able to fix them with the GC rework. If you want a quick and dirty workaround, you can "exec" the main program?