An example game menu using CEGUI
|
|
Original author(s) | Paul D Turner |
---|---|
Developer(s) | CEGUI Team |
Initial release | December 2004 |
Stable release | 0.8.5 (March 12, 2016 | )
Development status | Active |
Written in | C++ |
Operating system | Windows, OS X, Linux |
Platform | Cross-platform |
Type | Widget toolkit |
License |
MIT Before version 0.5.0: GNU LGPL |
Website | cegui |
Crazy Eddie's GUI (CEGUI) is a graphical user interface (GUI) library for the programming language C++. It was designed for the needs of video games, but is usable for non-game tasks, such as applications and tools. It is designed for user flexibility in look-and-feel, and to be adaptable to the user's choice in tools and operating systems.
The strength of CEGUI's design is that it is highly configurable. The system 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 its source code package comes with a number of modules for using certain components and libraries.
This freedom allows using 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 passed to CEGUI for window processing.
CEGUI comes with a reasonable set of widgets, comparable to those of the average widget toolkit.
CEGUI can be fully customized using standard image, xml, and/or code editing tools. However, CEGUI also provides tools designed to aid in designing and developing CEGUI based interfaces.
Older CEGUI versions, before 0.8, provided separate tools to edit different aspects of the interface. The most notable of those being the Imageset and Layout editors.
Since CEGUI 0.8, there exists a new unified editing tool called CEGUI unified editor (CEED) which is being actively developed. It incorporates all aspects of GUI development into one tool.
Rendering is performed by a back-end Rendering Module. CEGUI provides 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 a back-end "Resource Provider Module". Users can create custom modules to define how resources are accessed. This allows the library to be used in virtually any operating environment. The default resource provider is cross-platform and provides standard file-access mechanics for loading resources. An optional minizip module enables resource-loading from zip-archives.
CEGUI has a flexible Memory Management system. This system was based on OGRE and allows clients to map different types of allocators to different types of objects. By default all objects use the operating system's default allocator. CEGUI provides support for OGRE and nedmalloc allocators.