OGRECave / ogre

scene-oriented, flexible 3D engine (C++, Python, C#, Java)
https://ogrecave.github.io/ogre/
MIT License
3.97k stars 977 forks source link

Create ImGui based ConfigDialog #3025

Closed paroj closed 8 months ago

paroj commented 8 months ago

Currently Ogre provides a config dialog written in the platform specific tookit via this API: https://github.com/OGRECave/ogre/blob/564df0072c3862ecd7f2b927497bedb9c06b886d/Components/Bites/include/OgreBitesConfigDialog.h#L47

However, on Linux the Xaw toolkit is now becoming obsolete due to not being compatible with Wayland. While we could port that to e.g. GTK, the better alternative would be to use ImGui so we get a consistent cross-platform implementation.

Using ImGui means that we are drawing the Widgets using Ogre and thus it is no longer a separate "utility" that runs before Ogre launches. Fortunately, this is exactly how the SampleBrowser configuration screen already works and thus should not be an issue: https://github.com/OGRECave/ogre/blob/564df0072c3862ecd7f2b927497bedb9c06b886d/Samples/Browser/include/SampleBrowser.h#L375

If this is done, we can drop the native dialogs with Ogre 15.