On Wednesday, 23 November 2022 at 03:26:06 UTC, thebluepandabear wrote:
This is a very brief overview and we are happy to expand on this discussion.
Co-Founder of CopperSpice
I guess it's not amazingly difficult if you have good experience with OpenGL, and SFML/SDL (there may be other libraries I've missed?). (I myself am not experienced in this but I am learning some of these things.) But of course, this will take a lot of time and hard work, and no one will be making a profit from it so it would be a purely volunteer/hobbyist project...
As you might have seen the guy above me made an OpenGL-based GUI library, so it is possible!
As one of the lead developers of CopperSpice I can assure you writing an effective, cross platform, thread aware, GUI library is indeed very complicated and time consuming. OpenGL does not handle font rendering, glyph shaping, or unicode text. All of these must be implemented to be a general purpose GUI library.
OpenGL is not the only requirement for a GUI and actually not the hardest part. Handling events and reacting to user input is not part of OpenGL so it needs to be part of the GUI library.
One of our CS libraries provides an OpenGL surface you can embed in a CopperSpice GUI application. We recently added a new library to support a Vulkan surface in a similar way.
We are an open source project and I do not consider CopperSpice to be a hobby, but rather a community project. If anyone would like to learn more about the low level parts of a GUI please join our team and consider contributing to CopperSpice.