CEGUI

From Wikipedia, the free encyclopedia

CEGUI
Latest release 0.6.0 / Mar 27, 2008
OS Cross-platform
Genre graphical user interface
License MIT, for version 0.5.0 and above, LGPL for previous versions
Website [1]

Crazy Eddie's GUI (CEGUI) system is a graphical user interface C++ library. It is designed particularly for the needs of videogames, but the library is usable for non-game tasks. It is designed for user flexibility in look-and-feel, as well as being adaptable to the user's choice in tools and operating systems.

Contents

[edit] Configurability

The strength of CEGUI's design is that it is highly configurable. The CEGUI system itself does not directly load files, render windows, directly display text, or even fetch input from the system. CEGUI interfaces with these through user-defined code, though the CEGUI source code package comes with a number of modules for using certain components and libraries.

This freedom allows the user to use CEGUI in any kind of resource management system or operating environment. Input is expected to be gathered by the user's code, possibly filtered as the user sees fit, and then delivered to the CEGUI for window processing.

Rendering is accomplished by a back-end module. The CEGUI source code comes with modules for Direct3D, OpenGL, the OGRE 3D engine, and the Irrlicht engine. Other modules can be written for custom engines.

File loading and resource management are handled through APIs into user code. The user is able to define in CEGUI how files are loaded, how memory is allocated, and various other basic tasks. This allows the library to be used in virtually any coding environment.

[edit] Features

CEGUI's textual layout system is Unicode-aware, though its layout engine is not able to handle writing systems which diverge greatly from left-to-right Latin alphabet.

It comes with a reasonable set of widgets, comparable to those of the average widget toolkit.

Lua scripting can be used for defining the relationship of various windows and widgets, as well as handling window events.

[edit] Look and Feel

CEGUI has a powerful system for defining the look and feel of various widgets. This system, known as Falagard, allows the user to define the look of a widget via XML files (or C++ code, if the user prefers). It can also change the layout behavior of the various widgets.

[edit] Library Dependencies

CEGUI has dependencies on the FreeType and Perl C Regular Expression libraries; it cannot function without these libraries. It has modules to interact with other libraries, though these are not required:

Because CEGUI depends significantly on XML, some form of XML parser is required. The user can use their own, as long as it provides the SAX-style interface that CEGUI requires of the XML parser that it uses.

[edit] External links