Stable release 0.7.5 / November 20, 2010
Operating system Cross-platform
Type graphical user interface
License MIT, for version 0.5.0 and above, LGPL for previous versions
Website http://www.cegui.org.uk/

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.



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.

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


CEGUI can be completely customized using standard image, xml, and/or code editing tools. However, CEGUI also provides tools designed specifically to aid in the design and development of CEGUI based interfaces. Older versions of CEGUI provided separate tools for editing different aspects of the interface. The most notable of those being the Imageset and Layout editors. A new unified editing tool is being actively developed to incorporate all aspects of GUI development into a single tool.


Rendering is accomplished 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.

Resource Management

File loading and resource management are handled through a back-end "Resource Provider Module". The user 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.

Memory Management

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.


CEGUI has an optional back-end Scripting Module. A Lua scripting module and Python module are provided by CEGUI. The full CEGUI API is available via script so that clients can create windows, define relationships, and handle events all within a scripted environment.

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 any widgets.


CEGUI has a built-in animation system. This system allows many standard transitional effects from moving and resizing windows to color transforms and image sequencing. Animations can be defined in XML and triggered by any event. The client can specify window-properties as key-frames, how to transition between frames, and the transition-time between frames.


CEGUI is Unicode-aware and has support for bi-directional languages via an optional back-end Bidi Module. This support is provided by MiniBidi or FriBidi.

Library dependencies

CEGUI can be built without any dependencies to outside libraries. However, typical configurations require FreeType, a rendering module, an XML parser, and an image codec. CEGUI already provides support for several external libraries thanks to its modular design:

Bi-Directional Language Modules

  • MiniBIDI
  • FriBIDI

Font Modules

Image Codec Modules

  • DevIL
  • FreeImage
  • OGRE

Memory Management

  • OGRE
  • nedmalloc

Regular Expression Modules

Rendering Modules

Resource Provider Modules

  • Default (standard cross-platform file-access)
  • minizip
  • OGRE

Scripting Modules

XML Modules

External links

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • OGRE — For other uses, see Ogre (disambiguation). OGRE Developer(s) The OGRE Team …   Wikipedia

  • Элемент интерфейса — Кроссплатформенный редактор элементов интерфейса Qt designer Элемент интерфейса  примитив графического интерфейса пользователя, имеющий стандартный внешний вид и выполняющий ста …   Википедия

  • Cocoa (API) — Cocoa Developer(s) Apple Written in Objective C Operating system Mac OS X Type Software framework …   Wikipedia

  • Windows API — The Windows API, informally WinAPI, is Microsoft s core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name Windows API more accurately… …   Wikipedia

  • XUL — Filename extension .xul Internet media type application/ vnd.mozilla.xul+xml Developed by Mozilla Foundation Type of format markup language In computer programming, XUL (pronounced …   Wikipedia

  • Motif (widget toolkit) — Motif Stable release 2.3.3 / March 19, 2010; 19 months ago (2010 03 19) Type Widget toolkit Website www.openmotif.org …   Wikipedia

  • Component Library for Cross Platform — (CLX) (pronounced clicks), is a cross platform visual component based framework for developing Microsoft Windows and Linux applications. It is developed by Borland for use in its Kylix, Delphi, and C++ Builder software development environment.… …   Wikipedia

  • Microsoft Foundation Class Library — Developer(s) Microsoft Initial release 1992 Stable release 10.0.40219.1 [1] …   Wikipedia

  • Object Windows Library — Developer(s) Originally Borland (now Codegear) Initial release 1991 Stable release OWLNext 6.30.9 / September 2, 2010; 14 months ago (2010 09 02) …   Wikipedia

  • OpenGL User Interface Library — GLUI Screenshot  Demonstration of the GLUI program Developer(s) …   Wikipedia