fbpx
Wikipedia

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.

CEGUI
An example game menu using CEGUI
Original author(s)Paul D Turner
Developer(s)CEGUI Team
Initial releaseDecember 2004; 18 years ago (2004-12)
Stable release1.1.2 (March 19, 2022; 16 months ago (2022-03-19)) [±][1]
Written inC++
Operating systemLinux, OS X, Windows
TypeWidget toolkit
LicenseMIT
Before version 0.5.0:
GNU LGPL[2]
Websitecegui.org.uk

Configurability Edit

The strengths CEGUI are its robustness[3] and its configurability. 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.

Tools Edit

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.[4] It incorporates all aspects of GUI development into one tool.

Rendering Edit

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.

CEGUI's GUI components are organized in a tree (graph)[5] and are rendered in the order of the tree traversal.

Resource management Edit

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.

Memory management Edit

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.

Scripting Edit

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

Look and feel Edit

CEGUI has a powerful system for defining the look and feel of various widgets. The system, named Falagard, allows defining 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.

Animation Edit

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.

Unicode Edit

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 Edit

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

External libraries supported by CEGUI
Type Name Additional information
Rendering Module OpenGL 3.2+ Core Profile Uses the programmable rendering pipeline and only non-deprecated functionality and is therefore compatible with OpenGL Core Profile contexts (available since OpenGL 3.2). It can also be used with older OpenGL versions and/or Compatibility Profile, as long as the needed functions are available.
OpenGL Uses the fixed-function rendering pipeline. It is designed to be compatible with very early OpenGL versions, as early as OpenGL 1.2, using some OpenGL extensions.
Microsoft Direct3D Microsoft Direct3D 9, 10, and 11 are supported using separate modules.
OGRE The latest stable Ogre version is supported in the releases.
Irrlicht Engine The latest stable Irrlicht version is supported in the releases.
Image Codec Module Simple Image Loading LibrarY (SILLY) Default image codec, which is based on the SILLY library. Supports many formats.[6]
DevIL Image codec based on the DevIL library.
FreeImage Image codec based on the FreeImage library.
OGRE Image codec that loads data via image loading facilities of OGRE.
Resource Provider Module Default The internal resource provider of CEGUI can be used without requiring an extra module. It uses standard cross-platform file-access.
OGRE Ogre users can use CEGUI's Ogre ResourceManager. This way the resource locations of CEGUI can be specified in the same way as it is done for the Ogre resources already.
minizip CEGUI's MinizipResourceProvider allows providing the ability to load resource files from locations within .zip files.
XML Parser Module Expat Default XML parser of CEGUI. Uses the Expat library for XML parsing.
LibXML2 Uses the LibXML2 library for XML parsing.
RapidXml Uses the RapidXml library for XML parsing.
TinyXML Uses the TinyXML library for XML parsing.
Xerces-C++ Uses the Xerces-C++ library for XML parsing. It can validate schemas using the .xsd files provided in CEGUI's resources.
Font Module FreeType FreeType is the default font library of CEGUI and currently the only officially supported one.
Regular Expression Module Perl Compatible Regular Expressions (PCRE) Default regular expression library and currently the only officially supported one. Uses PCRE.
Scripting Module Lua Provides lua bindings using tolua++.
Python Official Python bindings are available using PyCEGUI[7]
Memory Management OGRE Ogre's memory allocator can optionally be used for CEGUI's memory management.
nedmalloc nedmalloc can optionally be used as memory allocator.
Bi-Directional Language Module MiniBIDI MiniBIDI based implementation of CEGUI's Bidi visual mapping.
FriBIDI[8] FriBIDI based implementation of CEGUI's Bidi visual mapping.

The Ogre3D library used to depend on the CEGUI library for its UI[9] but Ogre3D has since changed to include its own UI solution, which is slimmer but also provides less functionality.

Release history Edit

Version Release date
0.1.0 2004-12-19[10]
0.1.1 2005-01-23
0.2.0 2005-02-17
0.2.1 2005-05-30
0.3.0 2005-06-30
0.4.0 2005-09-07
0.4.1 2005-11-26
0.5.0 2006-11-06
0.6.0 2008-03-27
0.6.2 2008-12-03
0.7.0 2009-09-20
0.7.1 2009-10-26
0.7.2 2010-08-29
0.7.3 2010-10-08
0.7.4 2010-10-11
0.7.5 2010-11-20
0.7.6 2012-01-22
0.7.7 2012-06-23
0.7.8 2013-01-08
0.7.9 2013-01-13
0.8.0 2013-05-26
0.8.1 2013-06-05
0.8.2 2013-06-12
0.8.3 2013-12-07
0.8.4 2014-07-07
0.8.5 2016-03-12

See also Edit

References Edit

  1. ^ https://github.com/cegui/ceed-cpp/releases/tag/v1.1.2
  2. ^ "Simple DirectMedia Layer - License".
  3. ^ MacDonald, Mickey (29 January 2018). Mastering C++ game development : create professional and realistic 3D games using C++ 17. Birmingham, UK. ISBN 978-1-78862-983-6. OCLC 1023864109.{{cite book}}: CS1 maint: location missing publisher (link)
  4. ^ CEED
  5. ^ Pervasive computing and the networked world : Joint International Conference, ICPCA/SWS 2012, Istanbul, Turkey, November 28-30, 2012, Revised selected papers. Zu, Qiaohong., Hu, Bo., Elçi, Atilla., IEEE Symposium on Web Society (2012 : Istanbul, Turkey). Berlin: Springer. 2013. ISBN 978-3-642-37015-1. OCLC 830532405.{{cite book}}: CS1 maint: others (link)
  6. ^ "SILLY - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)".
  7. ^ "PyCEGUI - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)".
  8. ^ "Home". fribidi.org.
  9. ^ Thorn, Alan. (2008). Cross-platform game development. Plano, Tex.: Wordware Pub. ISBN 978-1-59822-056-8. OCLC 213408662.
  10. ^ "Crazy Eddies GUI System (CEGUI) - Browse /CEGUI Mk-2/0.1.0 at SourceForge.net".

External links Edit

  • Official website

cegui, topic, this, article, meet, wikipedia, notability, guidelines, products, services, please, help, demonstrate, notability, topic, citing, reliable, secondary, sources, that, independent, topic, provide, significant, coverage, beyond, mere, trivial, menti. The topic of this article may not meet Wikipedia s notability guidelines for products and services Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention If notability cannot be shown the article is likely to be merged redirected or deleted Find sources CEGUI news newspapers books scholar JSTOR November 2018 Learn how and when to remove this template message 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 CEGUIAn example game menu using CEGUIOriginal author s Paul D TurnerDeveloper s CEGUI TeamInitial releaseDecember 2004 18 years ago 2004 12 Stable release1 1 2 March 19 2022 16 months ago 2022 03 19 1 Written inC Operating systemLinux OS X WindowsTypeWidget toolkitLicenseMITBefore version 0 5 0 GNU LGPL 2 Websitecegui wbr org wbr uk Contents 1 Configurability 2 Tools 3 Rendering 4 Resource management 5 Memory management 6 Scripting 7 Look and feel 8 Animation 9 Unicode 10 Library dependencies 11 Release history 12 See also 13 References 14 External linksConfigurability EditThe strengths CEGUI are its robustness 3 and its configurability 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 Tools EditCEGUI 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 4 It incorporates all aspects of GUI development into one tool Rendering EditRendering 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 CEGUI s GUI components are organized in a tree graph 5 and are rendered in the order of the tree traversal Resource management EditFile 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 Memory management EditCEGUI 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 Scripting EditCEGUI has an optional back end Scripting Module Lua and Python scripting modules are provided by CEGUI The full CEGUI application programming interface API is available via script so that clients can create windows define relationships and handle events all within a scripted environment Look and feel EditCEGUI has a powerful system for defining the look and feel of various widgets The system named Falagard allows defining 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 Animation EditCEGUI 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 Unicode EditCEGUI 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 EditCEGUI can be built with no dependencies to outside libraries However typical configurations require FreeType a rendering module an XML parser module and an image codec module CEGUI already provides support for several external libraries thanks to its modular design External libraries supported by CEGUI Type Name Additional informationRendering Module OpenGL 3 2 Core Profile Uses the programmable rendering pipeline and only non deprecated functionality and is therefore compatible with OpenGL Core Profile contexts available since OpenGL 3 2 It can also be used with older OpenGL versions and or Compatibility Profile as long as the needed functions are available OpenGL Uses the fixed function rendering pipeline It is designed to be compatible with very early OpenGL versions as early as OpenGL 1 2 using some OpenGL extensions Microsoft Direct3D Microsoft Direct3D 9 10 and 11 are supported using separate modules OGRE The latest stable Ogre version is supported in the releases Irrlicht Engine The latest stable Irrlicht version is supported in the releases Image Codec Module Simple Image Loading LibrarY SILLY Default image codec which is based on the SILLY library Supports many formats 6 DevIL Image codec based on the DevIL library FreeImage Image codec based on the FreeImage library OGRE Image codec that loads data via image loading facilities of OGRE Resource Provider Module Default The internal resource provider of CEGUI can be used without requiring an extra module It uses standard cross platform file access OGRE Ogre users can use CEGUI s Ogre ResourceManager This way the resource locations of CEGUI can be specified in the same way as it is done for the Ogre resources already minizip CEGUI s MinizipResourceProvider allows providing the ability to load resource files from locations within zip files XML Parser Module Expat Default XML parser of CEGUI Uses the Expat library for XML parsing LibXML2 Uses the LibXML2 library for XML parsing RapidXml Uses the RapidXml library for XML parsing TinyXML Uses the TinyXML library for XML parsing Xerces C Uses the Xerces C library for XML parsing It can validate schemas using the xsd files provided in CEGUI s resources Font Module FreeType FreeType is the default font library of CEGUI and currently the only officially supported one Regular Expression Module Perl Compatible Regular Expressions PCRE Default regular expression library and currently the only officially supported one Uses PCRE Scripting Module Lua Provides lua bindings using tolua Python Official Python bindings are available using PyCEGUI 7 Memory Management OGRE Ogre s memory allocator can optionally be used for CEGUI s memory management nedmalloc nedmalloc can optionally be used as memory allocator Bi Directional Language Module MiniBIDI MiniBIDI based implementation of CEGUI s Bidi visual mapping FriBIDI 8 FriBIDI based implementation of CEGUI s Bidi visual mapping The Ogre3D library used to depend on the CEGUI library for its UI 9 but Ogre3D has since changed to include its own UI solution which is slimmer but also provides less functionality Release history EditVersion Release date0 1 0 2004 12 19 10 0 1 1 2005 01 230 2 0 2005 02 170 2 1 2005 05 300 3 0 2005 06 300 4 0 2005 09 070 4 1 2005 11 260 5 0 2006 11 060 6 0 2008 03 270 6 2 2008 12 030 7 0 2009 09 200 7 1 2009 10 260 7 2 2010 08 290 7 3 2010 10 080 7 4 2010 10 110 7 5 2010 11 200 7 6 2012 01 220 7 7 2012 06 230 7 8 2013 01 080 7 9 2013 01 130 8 0 2013 05 260 8 1 2013 06 050 8 2 2013 06 120 8 3 2013 12 070 8 4 2014 07 070 8 5 2016 03 12See also EditList of widget toolkits List of platform independent GUI librariesReferences Edit https github com cegui ceed cpp releases tag v1 1 2 Simple DirectMedia Layer License MacDonald Mickey 29 January 2018 Mastering C game development create professional and realistic 3D games using C 17 Birmingham UK ISBN 978 1 78862 983 6 OCLC 1023864109 a href Template Cite book html title Template Cite book cite book a CS1 maint location missing publisher link CEED Pervasive computing and the networked world Joint International Conference ICPCA SWS 2012 Istanbul Turkey November 28 30 2012 Revised selected papers Zu Qiaohong Hu Bo Elci Atilla IEEE Symposium on Web Society 2012 Istanbul Turkey Berlin Springer 2013 ISBN 978 3 642 37015 1 OCLC 830532405 a href Template Cite book html title Template Cite book cite book a CS1 maint others link SILLY CEGUI Wiki Crazy Eddie s GUI System Open Source PyCEGUI CEGUI Wiki Crazy Eddie s GUI System Open Source Home fribidi org Thorn Alan 2008 Cross platform game development Plano Tex Wordware Pub ISBN 978 1 59822 056 8 OCLC 213408662 Crazy Eddies GUI System CEGUI Browse CEGUI Mk 2 0 1 0 at SourceForge net External links EditOfficial website Retrieved from https en wikipedia org w index php title CEGUI amp oldid 1103067281, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.