Sign in to follow this  
riyunoa

Best SDL GUI library?

Recommended Posts

Hey guys, I've been creating an editor-like OpenGL app, which requires a lot of GUI. I'd been using AGAR, but it seems to have a few bugs and isn't very handy to work with because it feels so detatched from SDL, and you can't really control the positioning of widgets. So I'm wondering what you all use? :)

Share this post


Link to post
Share on other sites
Yes, AGAR has several design faults. Not recommended.

CEGUI is the most mature and feature-complete GUI library for OpenGL games:
CEGUI


But if you want something simple and easy to embed, take a look to AntTweakBar:

AntTweakBar

However, there isn't a best GUI at the moment. I'm still looking for a GUI that can fulfill my needs. Most of the known GUIs (CEGUI, GUIchan, Ant) are pixel based, and the controls are very dependant of the screen resolution.

I'm looking for a Vector-based solution, with scalar units rather than pixel based. The main concern is to find a GUI library 3D based, not pixel based. A 3D GUI which supports rotations, zooming etc. Would be nice something like Scaleforms but opensource.

May the Ghost gui system in Blender is closer what I want.



Share this post


Link to post
Share on other sites
Quote:
Original post by superoptimo
CEGUI is the most mature and feature-complete GUI library for OpenGL games


[citation needed]

Share this post


Link to post
Share on other sites
Quote:
Original post by phresnel
Quote:
Original post by superoptimo
CEGUI is the most mature and feature-complete GUI library for OpenGL games

[citation needed]


Do you know a better alternative to CEGUI?


Share this post


Link to post
Share on other sites
Quote:
Original post by phresnel
Quote:
Original post by superoptimo
CEGUI is the most mature and feature-complete GUI library for OpenGL games


[citation needed]


[me and really anyone else who's ever used an in-game GUI library]

Share this post


Link to post
Share on other sites
Quote:
Original post by nullsquared
Quote:
Original post by phresnel
Quote:
Original post by superoptimo
CEGUI is the most mature and feature-complete GUI library for OpenGL games


[citation needed]


[me and really anyone else who's ever used an in-game GUI library]


[Incomplete and unclosed theorem from your side: Only because you have used CEGUI, it doesn't mean you know about every other widget toolkit. You can only know if you have evaluated multiple or all of the other toolkits, or if you've found a serious comparison or some articles in which you believe.

But neither did you state you have tested more than CEGUI only, nor did you cite serious resources.]

Quote:
Original Post by superoptimo
Do you know a better alternative to CEGUI?


I don't but Qt, where you can pipe every widget (including webkit components, e.g.) into a QGraphicsView, which can happen to be an OpenGL view. Admittedly, stretching, if needed, can be ugly, plus I am not sure how accelerated, if any, those widgets are. But if you need a full GUI inside an OpenGL screen, I can only recommend it, I can only guess that Qt supports way more and flexible widgets than CEGUI does. One big feature is the support of cascading style sheets for widgets, which make the whole thing extremely (runtime-)customizable.

Finally: It generally smells if someone claims that some entity X is the best or most mature or (insert superlative of your choice) thing on earth. Imho (and in the opinion of many others), such claims need citations, e.g. a link to a serious comparison.

[Edited by - phresnel on August 24, 2009 3:48:15 AM]

Share this post


Link to post
Share on other sites
Thanks phresnel, I was thinking wrong about Qt, may because that I was comparing it to a similar Widget Toolkit (F.E. WxWidgets, I'm more experienced in this toolkit ).

But tell me more about Qt, does it support rendering widgets to an offscreen texture? does it use the Framebuffer Object extension?

Share this post


Link to post
Share on other sites
Quote:
Original post by phresnel
[Incomplete and unclosed theorem from your side: Only because you have used CEGUI, it doesn't mean you know about every other widget toolkit. You can only know if you have evaluated multiple or all of the other toolkits, or if you've found a serious comparison or some articles in which you believe.

But neither did you state you have tested more than CEGUI only, nor did you cite serious resources.]


I've tested CEGUI, Qt, native win32 controls, as well as Ogre specific GUI's BetaGUI, QuickGUI, MyGUI, and Ogre's own overlay system. I ended up writing my own GUI as none of the above were implemented as per-se my application design required. Considering I'm the last person who would write his own solution when many others exist, I can assure that I've evaluated most of the competition. Feature and maturity wise, as per superoptimo's post, CEGUI wins hands down for an in-game GUI. Qt can indeed render directly to an OpenGL window, but the benefits are questionable and one cannot render the Qt widgets to an OpenGL texture for other than on-screen use (unlike CEGUI).

Quote:

But tell me more about Qt, does it support rendering widgets to an offscreen texture? does it use the Framebuffer Object extension?

See above: no, it's not possible - by default. If you'd like to write your own painting device for Qt (which is a pain), then it would be possible. However considering I chose writing my own GUI over writing a custom Qt painting engine, I can assure it's not a fun process.

Share this post


Link to post
Share on other sites
About Qt, it seems to me very "Bloated". Too heavy to embed in a game.

Also I was thinking in writing my own GUI system, better integrated to my rendering Scene graph engine. I was thinking so because I want a truly in-game 3D gui, more flexible, more parametrizable, and lighter than other toolkits like CEGUI.

Share this post


Link to post
Share on other sites
The OP said he is creating an editor - not a game. For a game, where the GUI is usually a small part of whole, Qt would indeed be overkill and something like Cegui is much better suited. For an editor, however, the GUI is much more important and, within reason, performance is not usually too important. For something like that using Qt with its OpenGL support is really perfect.

Share this post


Link to post
Share on other sites
Quote:
Original post by Simian Man
The OP said he is creating an editor - not a game. For a game, where the GUI is usually a small part of whole, Qt would indeed be overkill and something like Cegui is much better suited. For an editor, however, the GUI is much more important and, within reason, performance is not usually too important. For something like that using Qt with its OpenGL support is really perfect.


Agree. I am writing an editor for myself, where I have three distinct graphcis views. Inside those views, only a marginal set of widget features is needed (drag and drop in my case), and the majority of "widget-stuff" is anyways outside those 3d/2d-views. Zooming and camera movement is a charm and mostly automatic. I'll be glad to release a demo soon.

Outdated screenshot:

full-view

In the meanwhile there's a tree view on the left where you can simply drag+drop items into the big graphics view. On the lower right you see OpenGL, the big one is using Qt's painter capabilities, on the lower right you see an edit box with an image and no text.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this