I decided it might be worthwhile to ask here for some opinions on a project I've been working on for a bit.
Something that I've ran into on multiple occasions is frustrations with GUI libraries for applications that still need low level access to rendering. Don't get me wrong, I'll use libraries like Qt or Gtk when I can, but in some cases they become very frustrating to work with.
These libraries do anticipate the need for things like "glWidgets". They seem to tend to come with frustrating intermediary rendering APIs and other annoying quirks. Also, you find cases like this (
http://www.shamusyoung.com/twentysidedtale/?p=15904) where the GUI library is greedier than you'd like, but there's nothing you can do to help it so long as you use that GUI library.
If you want to use a library with rendering capabilities like SDL/SFML or Irrlicht/Ogre, have fun with that. It seems people have figured it out with Ogre before.
(
http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Integrating+Ogre+into+QT5)
Yeah, that looks really fun having to go through hell to create a whole new structure to get the two libs to cooperate.
In a nutshell, my problem is sometimes you want to actually keep a good level of control over the lower level aspects of your app, and the mainstream GUI libraries get in your way when trying to do that. For many cases they're fine, but not always.
After a while of getting more and more tired of stepping around egg shells with libs like Qt/Gtk for some of the work I do, I decided screw it, there's gotta be a way to make something better for this.
For a bit now I've been working on a GUI library that is designed to handle purely logic. It doesn't make any assumptions about how input and rendering are to be handled. It's designed so that those things are to be wired to the users implementation.
You could say it's similar to the goal of IMGui except it doesn't give any form of rendering output at all, and is intended to be more flexible.
The things provided right now are:
- Gui structure for managing widgets
- Very exposed interface for creating custom widgets
- Signal/Function binding system for having widgets react to input
- Properties system to add properties to widgets and guis
- General functionality for very common GUI logic
- Small collection of pre-built widgets
I get that the majority of people would never need a library like this, and hence it's quite niche usage. Pretending you were going to use a library like this however, what things about it would you want. Just general feedback would be nice to hear.