November 23, 2022
>

This is a very brief overview and we are happy to expand on this discussion.

Barbara
Co-Founder of CopperSpice

Hello Barbara,

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!

November 23, 2022
>

As you might have seen the guy above me made an OpenGL-based GUI library, so it is possible!

When it comes to Vulkan-based compatibility -- I don't know, haven't gotten that deep into things.

November 24, 2022

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.

Barbara
Co-Founder of CopperSpice

Hello Barbara,

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.

Barbara

November 24, 2022
Don't forget about UI automation too!

That's a key feature people always seem to forget... (unless you require it).
November 24, 2022
On Thursday, 24 November 2022 at 07:14:40 UTC, Barbara wrote:
> 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.

Yeah, I've been working on it on-and-off for over ten years now.

> OpenGL is not the only requirement for a GUI and actually not the hardest part.

OpenGL is not a requirement for a gui at all, in fact. Drawing stuff is the most trivial part (it always amuses me when people say they have "gui libraries" and it is just a few basic drawing functions).

My gui lib allows opengl embedding, probably similar to your copperspice, but it also works without it. Bigger jobs though are the text (which is huge) and all the interactions people expect like drag and drop and just right scrolling and a whole range of things small and big.
November 25, 2022
On Thursday, 24 November 2022 at 14:05:05 UTC, Adam D Ruppe wrote:
>
> My gui lib allows opengl embedding, probably similar to your copperspice, but it also works without it. Bigger jobs though are the text (which is huge) and all the interactions people expect like drag and drop and just right scrolling and a whole range of things small and big.

Just to clarify, CopperSpice does not require OpenGL (CsOpenGL) or Vulkan (CsVulkan) for rendering a user interface. These are simply two other ways to add rendered content.

Our CsGui library uses native rendering on Unix, Windows, and OS X to draw widgets and controls.

We do agree that users want and really do need a lot of added things for a UI to work effectively. Many of these features are not obvious when you start designing a GUI library.






November 26, 2022
> We do agree that users want and really do need a lot of added things for a UI to work effectively. Many of these features are not obvious when you start designing a GUI library.


Hm, yeah. it seems like most major gui libraries (Qt, GTK) use OS-specific rendering instead of OpenGL. Not sure how viable a purely opengl gui library would be
1 2 3
Next ›   Last »