My comparison hasn't been as thorough as I would like but I did find out more about the libraries. I'll talk about some things I noticed here and below are some information about each one. I've also included Allegro and Glut based libraries below them and then beyond that some information on designing GUIs.
A lot of them are quite old, discontinued and don't have large communities. The most active ones would be GuiChan with last release 26 April 2008, and CrazyEddie with last release 3 December 2008.
Most have the basic features, some have less and some have much more. CEGUI seems to have the most features followed by bramstein.
The sizes I've put are just the download file. They might include compiled libs, tutorials, examples, etc.
To choose a library we need to know what we require. Here is what I think we should have:
A skinning system (probably TinyXML)
Components (check box, radio button, text edit, combo box, list with scroll bars, progress bar, tooltips, movable windows, button, label)
Customizability
Make and VS build
Integrate with TGA images
Integrate with SDL and win32 (ie independant of windowing system)
Some nice things to have:
Graphical Editor
Clipboard
Save state
Drag and drop
Menu Bar
Context Menu
Tabs
Dialogs (save/open file, etc)
Docking
############ Information ###################
URL:
[url=http://www.rightbraingames.com/tech/]http://www.rightbraingames.com/tech/[/url]
Description: It supports hardware rendering of multiple user interface windows into separate texture buffers to improve performance and allow for complex animation effects.
Size: 7mb zip with ogre example,
No. Dependencies: Mocha, Freetype 2
Ease of Use:
Ease of integration:
Features: ok but some basics missing, ogre support
Documentation: readme file, doxygen but needs building
OS: Only Windows supported but apparently cross platform
Support/Maturity/Community/Status: seems to have a lot of work to go and not that active
Build: VS files
URL:
[url=http://guichan.sourceforge.net/wiki/index.php/Main_Page]http://guichan.sourceforge.net/wiki/index.php/Main_Page[/url]
Description: A portable C++ GUI library designed for games using Allegro, HGE, OpenGL, OpenLayer and/or SDL.
Size: 544KB tar.gz with examples
No. Dependencies:
Ease of Use: seems fairly easy
Ease of integration: don't know
Features: decent amount
Documentation: API, FAQ, partial User Guide and Tutorials (including sdl)
Support/Maturity/Community/Status: v0.8.1
Build: Multiple compilers
Limitations: No dirty rectangle system, No marking of text, No drag and drop, No clipboard
URL:
[url=http://www.bramstein.com/projects/gui/]http://www.bramstein.com/projects/gui/[/url]
Description: GUI library for prototyping and building game user interfaces. It is based on OpenGL and written in (portable) C++. The library is completely free and open-source.
Size: 7MB zip with libs and project file
No. Dependencies: no extra
Ease of Use:
Ease of integration:
Documenation: SDL examples,
Appearence: Source based themes
Features: adequate
Support/Maturity/Community/Status: The library is no longer maintained due to a lack of time.
URL:
http://sjgui.sourceforge.net/Description: gui framework for use in interactive OpenGL applications.
Size:
No. Dependencies:
Ease of Use: seems easy enough
Ease of integration: should be ok, might require taking over windowing
Documentation: Lessons, API
Appearence: doesn't look fantastic, source based templates?
Features: very basic, text edit, check box
Support/Maturity/Community/Status:
URL:
http://www.cegui.org.uk/wiki/index.php/Main_PageDescription: Crazy Eddie's GUI System is a free library providing windowing and widgets for graphics APIs / engines where such functionality is not natively available, or severely lacking. The library is object orientated, written in C++.
Size: 3.4MB zip includes some samples, project files
Dependencies: FreeType2, Perl C Regular Expression, some optional ones
Ease of Use:
Ease of integration:
Appearence: XML skinning
Documentation: Tutorials, FAQ, API
Features: Might be possible to use with tinyxml, devel layout editor
Support/Maturity/Community/Status: 3 December 2008 CrazyEddie (0.6.2 released)
Notes: they seem to be changing from xerces to expat for xml but have tinyxml in the download
URL:
http://glam.sourceforge.net/Description: The GLAM toolkit is an OpenGL-based cross platform user interface toolkit for creating 2D or 3D user interfaces.
Size: Sugar 49KB, GLAM 249KB, glamrock 118KB
No. Dependencies: 2 (glamrock, sugar -
http://www.sourceforge.net/projects/libsugar)
Ease of Use:
Ease of integration: Don't know
Features: OpenGL transformations, radio button, button, text, status bar, windows, check box, menu, sroll bar, slider, tooltips, containers
Documentation: handbook, GLAM api (missing glamrock api)
Appearence: glamrock has a custom config theme system
Build: autoconf and make
Support/Maturity/Community/Status: Beta, no activity in trackers or forum
Thoughts: Documentation is quite good
URL:
http://glgooey.sourceforge.net/#InfoDescription: GLGooey is a platform-independent, small, extensible collection of user interface components rendered using OpenGL.
Size: 1.8MB zip including samples, project files
No. Dependencies: libpng and zlib if using png
Ease of Use:
Ease of integration: need to figure out how to use with sdl
Documentation: api and examples using GLUT
Appearence: XML Skinning
Features: Numerous components, docking, sigslot (Signals and Slots), TinyXML, freetype
Build: make
Support/Maturity/Community/Status:
URL:
http://jet.ro/turska/Description: Turska is a compact and simple framework & UI component library.
Size: 3.3MB zip with Irrlict framework
No. Dependencies:
Ease of Use:
Ease of integration:
Features: very basic
Support/Maturity/Community/Status:
URL:
http://libufo.sourceforge.net/Description: LibUFO is a C++ core library for forms respectively graphical user interfaces (GUI). It is mainly used as OpenGL GUI toolkit.
Size: 748KB tar.gz (src and includes are about 2MB uncompressed)
No. Dependencies: pkg-config
Ease of Use: looks ok
Ease of integration: meant to work with openGL and SDL, works with tga images
Appearence: KDE theme files and (XML User interface Language with tinyxml?) and css style themes
Documentation: examples, tutorials, api
Features: button, popup, combo box, docking, label, radio button, sliders, text edit, progress bar, menu, check box, button, tab, custom 3d widgets and more
Build: Any ISO compliant compiler, pkg-config, make, vs
Support/Maturity/Community/Status: 2005-10-29 0.8.4 (ie old)
URL:
http://aedgui.sourceforge.net/Description: aedGUI is a cross-plataform, easy-to-use, non-intrusive C++ GUI library that runs on top of SDL, providing themeable widgets without learning Yet Another API.
Size: 748KB zip
No. Dependencies:
Ease of Use:
Ease of integration:
Features: ok amount, tinyxml
Documentation: small info on theme, example
Appearence: Source, xml
Build: make and vs project files
Support/Maturity/Community/Status: v0.1.8a
URL:
http://gigi.sourceforge.net/Description: GUI library for OpenGL
Size: 2MB zip
No. Dependencies: FreeType, DevIL, and Boost.
Ease of Use:
Ease of integration:
Features: Signals and Slots, save state, drag and drop, basic components, some predefined dialogs
Appearence: XML, basic editor
Documentation: API, source based tutorials, build info
Support/Maturity/Community/Status: 0.7.0, not any community
Build: SCons
URL:
http://sourceforge.net/projects/opengluiDescription: OpenGLUI is a cross platform XML based GUI for OpenGL.
Size: < 2MB
No. Dependencies: TinyXML, maybe others
Ease of Use: Very
Ease of integration: Should be ok
Features: basic components, predefined defaults, very well written code, not a library
Appearence: simple XML
Documentation: example app
Support/Maturity/Community/Status: 0.85, not any community, last commit about 2 years ago
Build: comes with VS project and make
####### GLUT or ALLEGRO or other based ##############
URL:
http://www.codeplex.com/buttermilkDescription: XNA game / GUI engine that was being built for the game "Rogue Bishop".
Support/Maturity/Community/Status: DISCONTINUED
URL:
http://members.allegro.cc/miran/masking.htmlDescription: library for writing GUI's in C++. It is an addon library for the Allegro game programming library which means that it only works with Allegro.
URL:
http://adime.sourceforge.net/Description: Adime is a portable add-on library for Allegro with functions for generating Allegro dialogs in a very simple way.
URL:
[url=http://www.orbitalmindsoft.com/nasgui.html]http://www.orbitalmindsoft.com/nasgui.html[/url]
Description: A Skinnable GUI Library for the Allegro Game Programming Library
URL:
http://glui.sourceforge.net/Description: GLUI is a GLUT-based C++ user interface library which provides controls such as buttons, checkboxes, radio buttons, and spinners to OpenGL applications.
URL:
http://glow.sourceforge.net/Description: The GLOW Toolkit is a cross-platform object-oriented framework for building interactive applications using OpenGL or similar APIs such as Mesa. It is, at its heart, an C++ wrapper for GLUT.
URL:
http://plib.sourceforge.net/pui/index.htmlDescription: The Picoscopic User Interface (PUI - pronounced 'poohey') is a simple set of C++ classes that allow programs written in GLUT and OpenGL to create buttons, sliders, menus etc.
########## Other Information about GUIs #################
http://www.doolwind.com/blog/?p=52[url=http://www.rivermanmedia.com/programming/5-object-oriented-game-programming-the-gui-stack]http://www.rivermanmedia.com/programmin ... -gui-stack[/url]
http://unity3d.com/support/resources/un ... -easy.htmlhttp://sol.gfxile.net/imgui/http://www.picogui.org/EDIT: added more information for LibUFO
EDIT 2: added RightBrain GUI
EDIT 3: added PUI
EDIT 4: added OpenGLUI thanks to Silnarm.