<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://cegui.org.uk/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lucebac</id>
		<title>CEGUI Wiki - Crazy Eddie's GUI System (Open Source) - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://cegui.org.uk/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lucebac"/>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/Special:Contributions/Lucebac"/>
		<updated>2026-04-11T03:30:23Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Lucebac_TODO&amp;diff=5708</id>
		<title>Lucebac TODO</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Lucebac_TODO&amp;diff=5708"/>
				<updated>2015-07-04T18:23:06Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Open ==&lt;br /&gt;
* write SDL2 image codec&lt;br /&gt;
* make SampleBrowser compatible to SDL2&lt;br /&gt;
* make SampleBrowser compatible to GLFW3&lt;br /&gt;
&lt;br /&gt;
== Finished ==&lt;br /&gt;
* finish application templates&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=User:Lucebac&amp;diff=5638</id>
		<title>User:Lucebac</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=User:Lucebac&amp;diff=5638"/>
				<updated>2015-03-19T23:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: Created page with &amp;quot;ToDo-List: http://cegui.org.uk/wiki/Lucebac_TODO&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ToDo-List: http://cegui.org.uk/wiki/Lucebac_TODO&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Lucebac_TODO&amp;diff=5637</id>
		<title>Lucebac TODO</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Lucebac_TODO&amp;diff=5637"/>
				<updated>2015-03-19T23:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: Created page with &amp;quot;* write SDL2 image codec * make SampleBrowser compatible to SDL2 * make SampleBrowser compatible to GLFW3 * finish application templates&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* write SDL2 image codec&lt;br /&gt;
* make SampleBrowser compatible to SDL2&lt;br /&gt;
* make SampleBrowser compatible to GLFW3&lt;br /&gt;
* finish application templates&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5588</id>
		<title>Building from source</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5588"/>
				<updated>2015-01-03T15:19:48Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: use tabber&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.8}}&lt;br /&gt;
{{notice|message=This article is a work in progress and thus incomplete}}&lt;br /&gt;
&lt;br /&gt;
==Official documentation==&lt;br /&gt;
PLEASE use the documentation of your CEGUI version as your main source of information, e.g.: [http://static.cegui.org.uk/docs/current/compiling.html Latest API docs for building/compiling]&lt;br /&gt;
&lt;br /&gt;
==Stable Releases==&lt;br /&gt;
Source code from the stable mercurial branches is released at various points in time and made available as source code packages. These packages can be found on the [[Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
==Mercurial==&lt;br /&gt;
The source code is kept in mercurial repositories at bitbucket.org. There are code repositories for the main CEGUI libraries as well as for other related items.&lt;br /&gt;
&lt;br /&gt;
A mercurial client (GUI or &amp;lt;abbr title=&amp;quot;Command-line Interface&amp;quot;&amp;gt;CLI&amp;lt;/abbr&amp;gt;) is required to access the mercurial repositories and download code. The command necessary to obtain a copy of the code is 'clone':&lt;br /&gt;
 hg clone SOURCE DESTINATION&lt;br /&gt;
where ''source'' is the URL of the repository to clone and ''destination'' is the local directory. To download a copy of CEGUI and place it in the ''cegui-source'' directory, you might use the following command:&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
&lt;br /&gt;
Once you have this, the cloned repository is updated to the default (latest, unstable) code, so you most likely will want to switch to a stable branch instead, like this:&lt;br /&gt;
 hg update -C v0-8&lt;br /&gt;
{{Warning|Be aware that the -C option here will discard any local file changes without additional warning}}&lt;br /&gt;
&lt;br /&gt;
===Repositories===&lt;br /&gt;
The available repositories can be found [https://bitbucket.org/cegui/ here] where you can also browse their code from your web browser. A couple of examples:&lt;br /&gt;
* Core CEGUI libraries - [https://bitbucket.org/cegui/cegui/src cegui]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
* CEED unified editor - [https://bitbucket.org/cegui/ceed/src CEED]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
&lt;br /&gt;
{{Note|The difference between the ''hg clone'' URLs and the web-interface URLs is the appended ''/src'' on the web URLs}}&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
CEGUI uses [http://www.cmake.org/ CMake] as a build system. CMake is cross-platform and open source so it's available on many platforms. There are binaries available for Windows, Mac and Linux, although on Linux your distribution will most probably have a CMake package ready. Make sure you have some 2.8.X version installed because CMake 3.x.x will break with our scripts at the moment.&lt;br /&gt;
{{Note|CMake does not build the code directly, it generates native makefiles and workspaces that can be used in the compiler environment of your choice.}}&lt;br /&gt;
Thanks to CMake and CEGUI's modular design, configuring and building CEGUI is a breeze.&lt;br /&gt;
&lt;br /&gt;
The following instructions assume you have a ''cegui'' directory somewhere on your system so that all CEGUI related projects reside in it.&lt;br /&gt;
 cegui              (root working directory)&lt;br /&gt;
 cegui/cegui_mk2    (core CEGUI)&lt;br /&gt;
 cegui/CEED         (editor)&lt;br /&gt;
 cegui/...          (something else)&lt;br /&gt;
&lt;br /&gt;
==CEGUI==&lt;br /&gt;
This section will focus on building the core CEGUI libraries, which is all you need to use CEGUI in a project. Most people will also want [[Building from source#CEED|CEED]], the unified editor for CEGUI, but it is not required.&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEGUI can be built without any dependencies to outside libraries. However, typical configurations require [http://en.wikipedia.org/wiki/FreeType FreeType], a rendering module, an XML parser, and an image codec. CEGUI already provides support for several external libraries thanks to its modular design:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ External libraries supported by CEGUI&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; halign=&amp;quot;left&amp;quot; | Additional information&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Rendering Module&lt;br /&gt;
| OpenGL 3.2+ Core Profile&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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 required functionalities are available.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| OpenGL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Microsoft Direct3D&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Microsoft Direct3D 9, 10, and 11 are supported using seperate modules.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Ogre version is supported in the releases.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Irrlicht&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Irrlicht version is supported in the releases.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Image Codec Module&lt;br /&gt;
| SILLY&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default image codec, which is based on the SILLY library. Supports many formats, see [[SILLY]]&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| DevIL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the DevIL library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| FreeImage&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the FreeImage library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec that loads data via image loading facilities of OGRE.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Resource Provider Module&lt;br /&gt;
| Default&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The default resource provider of CEGUI uses standard cross-platform file-access.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| minizip&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | CEGUI's MinizipResourceProvider allows users to provides the ability to load the resource files from locations within .zip files.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | XML Parser Module&lt;br /&gt;
| Expat&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ddefault XML parser of CEGUI. Uses the Expat library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| LibXML2&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the LibXML2 library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| RapidXml&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the RapidXml library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| TinyXML&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the TinyXML library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| Xerces-C++&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the Xerces library for XML parsing. It can do schema validation using the .xsd files provided in CEGUI's resources.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fae9fc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Font Module&lt;br /&gt;
| FreeType&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FreeType is the default font library of CEGUI and currently the only officially supported one.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f4e0e7;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Regular Expression Module&lt;br /&gt;
| Perl Compatible Regular Expressions (PCRE)&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default regular expression library and currently the only officially supported one. Uses the PCRE library.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Scripting Module&lt;br /&gt;
| Lua&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Provides lua bindings using tolua++.&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| Python&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Official Python bindings are available using [[PyCEGUI]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Memory Management&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ogre's memory allocator can optionally be used for CEGUI's memory management.&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| nedmalloc&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | nedmalloc can optionally be used as memory allocator.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Bi-Directional Language Module&lt;br /&gt;
| MiniBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | MiniBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| FriBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FriBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CMake will automatically detect which external libraries exist on your system and will build CEGUI accordingly so make sure you install any external libraries you want to use before proceeding.&lt;br /&gt;
{{Note|You can turn off individual CEGUI modules from building (even if you have the required libraries installed) by changing the default [[Building from source#Build Options|Build Options]].}}&lt;br /&gt;
&lt;br /&gt;
===Directories===&lt;br /&gt;
If you're following the directory structure outlined above, you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
Create the directory ''cegui/cegui_mk2/build'' and clone the ''cegui'' repository inside cegui/cegui_mk2 with the name ''source''. Example:&lt;br /&gt;
{{CLI|~/cegui|mkdir cegui_mk2/build}}&lt;br /&gt;
{{CLI|~/cegui|hg clone https://bitbucket.org/cegui/cegui cegui_mk2/source}}&lt;br /&gt;
The result should be:&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
 cegui/cegui_mk2/build          (will build here)&lt;br /&gt;
 cegui/cegui_mk2/source         (the mercurial repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
===Build Options===&lt;br /&gt;
There are several build options (or variables) supported by the CEGUI build system. To view them, you can use the command like or CMake GUI.&lt;br /&gt;
&lt;br /&gt;
====Using the command line====&lt;br /&gt;
Enter the ''build'' directory and issue the following cmake command:&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2|cd build}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|cmake -LH ../source}}&lt;br /&gt;
{{Note|On systems that default to python3 (like Arch Linux) you have to tell it to use python2 like this:}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|2=cmake -LH -DPYTHON_EXECUTABLE=/usr/bin/python2 ../source}}&lt;br /&gt;
CMake will run, it will look for the build systems available on your platform, will look for dependencies and then will print a list of variables, along with their description. For example:&lt;br /&gt;
 // Select whether bi-directional text is enabled and which library should be used:&lt;br /&gt;
     0: Disabled.&lt;br /&gt;
     1: Use integrated minibidi library.&lt;br /&gt;
     2: Use external fribidi library.&lt;br /&gt;
 CEGUI_BIDI_SUPPORT:STRING=0&lt;br /&gt;
 // Specifies whether to use embedded GLEW when external library was found&lt;br /&gt;
 CEGUI_BUILD_EMBEDDED_GLEW:BOOL=OFF&lt;br /&gt;
&lt;br /&gt;
====Using CMake GUI====&lt;br /&gt;
Start cmake-gui, select our ''source'' and ''build'' directories and click the ''Configure'' button. The available options will be listed in the main window. You can hover the mouse over an option and CMake will show a tooltip with a more detailed description.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Changing the options and building is explained below, in [[#Building|Building]].}}&lt;br /&gt;
&lt;br /&gt;
===Building===&lt;br /&gt;
====Configuring and Generating makefiles====&lt;br /&gt;
The first step is to use CMake to configure the build and generate native makefiles. Without making any configuration changes, the command would be:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cmake ../source}}&lt;br /&gt;
The same can be done using the CMake GUI. Select the ''source'' and ''build'' directories, click configure and finally click generate.&lt;br /&gt;
&lt;br /&gt;
The build options can be changed via the GUI or via the CLI. If, for example, we want to turn off the slotted installation option and the python bindings we would run cmake like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source -DCEGUI_SLOTTED_INSTALLATION:BOOL=OFF -DCEGUI_BUILD_PYTHON_MODULES:BOOL=OFF}}&lt;br /&gt;
{{Note|The python bindings are required by [[#CEED|CEED]] so don't disable them if you plan to use it.}}&lt;br /&gt;
&lt;br /&gt;
Another noteworthy option is the installation path, which is where CEGUI will be installed if you plan to install it via ''make install''. Change the value of the CMAKE_INSTALL_PREFIX configuration variable to set it. Example:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source &amp;lt;other options here&amp;gt; -DCMAKE_INSTALL_PREFIX:PATH=/opt}}&lt;br /&gt;
so it will be installed in /opt/CEGUI (or /opt/CEGUI-0.8 if you use slotted installation).&lt;br /&gt;
&lt;br /&gt;
====Make====&lt;br /&gt;
The second (and last required) step is using the generated native makefiles to build it. This is specific to your build environment; you may need to open the generated solution with MSVC or Xcode, or simply issue the ''make'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
GNU Make=&lt;br /&gt;
* You can speed ''make'' up significantly if you have a multi-core CPU by adding the ''-jN'' parameter, when N is the number of CPU cores on your machine.&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|make -j4}}&lt;br /&gt;
* Optionally, run ''make install'' to install the binaries and the shared datafiles on your system.&lt;br /&gt;
|-|&lt;br /&gt;
MSVC=&lt;br /&gt;
{{Todo|MSVC notes}}&lt;br /&gt;
|-|&lt;br /&gt;
Xcode=&lt;br /&gt;
{{Todo|Xcode notes}}&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running the samples===&lt;br /&gt;
Now that the build has finished, you can run the sample applications to check your build. The binaries should be in the ''bin'' directory:&lt;br /&gt;
 cegui/cegui_mk2/build/bin&lt;br /&gt;
&lt;br /&gt;
The samples may fail to run initially because they can't find the required data files.&lt;br /&gt;
According to ''&amp;quot;cegui/cegui_mk2/source/Samples/common/include/CEGUISamplesConfig.h.in&amp;quot;'', the samples will look for the datafiles on ''&amp;quot;../datafiles&amp;quot;'' on Windows and on ''${CMAKE_INSTALL_PREFIX}/${CEGUI_DATA_INSTALL_DIR}'' on other platforms.&lt;br /&gt;
&lt;br /&gt;
It is possible to change this path without rebuilding, using the environment variable ''CEGUI_SAMPLE_DATAPATH''.&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
Linux=&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=CEGUI_SAMPLE_DATAPATH=../source/datafiles bin/CEGUIDemo8-0.8}}&lt;br /&gt;
|-|&lt;br /&gt;
Windows=&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=SET CEGUI_SAMPLE_DATAPATH=&amp;quot;C:\Users\User\cegui\cegui_mk2\source\datafiles&amp;quot;}}&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=bin/CEGUIDemo8-0.8.exe}}&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documentation===&lt;br /&gt;
{{Note|The documentation for stable releases can be found online [http://www.cegui.org.uk/docs/current here]}}&lt;br /&gt;
&lt;br /&gt;
The documentation is written in doxygen format so you need [http://www.doxygen.org/ Doxygen] to build it. If you want to generate the nice class diagrams too, you need to install [http://graphviz.org/ Graphviz].&lt;br /&gt;
&lt;br /&gt;
Building the docs with the default options is easy:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cd ../source/doc/doxygen}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|doxygen}}&lt;br /&gt;
&lt;br /&gt;
This will create a directory named ''html'' with plenty of files, just open ''index.html''.&lt;br /&gt;
&lt;br /&gt;
If you'd rather change some of doxygen's options, you can edit the file ''source/doc/doxygen/doxyfile'' or, alternatively, use ''doxywizard'' (GUI).&lt;br /&gt;
To change doxygen's output directory, one might do something like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|mkdir ../../../build/doc}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|nano doxyfile           or use your editor of choice to edit ''doxyfile''}}&lt;br /&gt;
&lt;br /&gt;
Find the line &lt;br /&gt;
 OUTPUT_DIRECTORY = &lt;br /&gt;
and change it to&lt;br /&gt;
 OUTPUT_DIRECTORY = ../../../build/doc&lt;br /&gt;
&lt;br /&gt;
Now run doxygen and it will create the html docs in ''build/doc''.&lt;br /&gt;
&lt;br /&gt;
==CEED==&lt;br /&gt;
CEED is the new CEGUI unified editor. It can edit layouts and imagesets, supports projects and multiple open file tabs, visual and source editing, preview and more. Please see [[CEED]] for a detailed description.&lt;br /&gt;
&lt;br /&gt;
CEED is written in [http://www.python.org/ Python] so there's no need to build it; all that's required is Python2 and it's dependencies.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you'd rather use a stable package that includes dependencies, please follow [[Downloads]]}}&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEED requires a Python 2 interpreter, version 2.6 or higher.&lt;br /&gt;
Apart from [[PyCEGUI]] (the CEGUI Python bindings), it depends on the following libraries:&lt;br /&gt;
* PyOpenGL&lt;br /&gt;
* Qt4, PySide (+ PySide Tools)&lt;br /&gt;
* Boost.Python&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
Windows=&lt;br /&gt;
{{Todo|Windows dependencies notes}}&lt;br /&gt;
|-|&lt;br /&gt;
Mac=&lt;br /&gt;
{{Todo|Mac dependencies notes}}&lt;br /&gt;
|-|&lt;br /&gt;
Arch Linux=&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR).&lt;br /&gt;
{{Note|The packages from AUR may have been included in the ''[community]'' repository by now so check there first.}}&lt;br /&gt;
|-|&lt;br /&gt;
Debian=&lt;br /&gt;
;Wheezy&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list and then:&lt;br /&gt;
&lt;br /&gt;
{{CLI||sudo apt-get update}}&lt;br /&gt;
{{CLI||sudo apt-get install cmake python-opengl pyside-tools boost-python}}&lt;br /&gt;
|-|&lt;br /&gt;
Fedora=&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools.&lt;br /&gt;
|-|&lt;br /&gt;
Gentoo=&lt;br /&gt;
You can use these supplied ebuilds:[https://bitbucket.org/ChrisTrenkamp/gentoo-ogre3d-tools]. Copy these ebuilds to your local overlay[http://en.gentoo-wiki.com/wiki/Overlay#Local_Overlays], add the necessary options to your package.keywords and package.use files, and run '''''emerge -av dev-util/ceed'''''&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running===&lt;br /&gt;
{{Todo|Update this section when CEED/CEGUI 0.8 is released}}&lt;br /&gt;
If you're following the directory structure outlined in [[#Building|Building]], you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/CEED                     (CEED repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
Running the main ''ceed-gui'' application could be as simple as:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
If you don't have PyCEGUI installed system-wide but built it in ''cegui/cegui_mk2/build'', you can run ''ceed-gui'' like this:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=../cegui_mk2/build/lib:.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
====Running from Mercurial====&lt;br /&gt;
If you've cloned the CEED mercurial repository, you will most likely get the following error when you try to run ''ceed-gui'':&lt;br /&gt;
 ImportError: No module named mainwindow&lt;br /&gt;
This is because the compiled .ui files are not part of the repository. Edit the file ''ceed/version.py'' with your favorite text editor and change the value of '''CEED_developerMode''' from '''False''' to '''True'''.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
If you encounter a problem that's not listed here, please make a post on the appropriate forum: [http://www.cegui.org.uk/phpBB2/viewforum.php?f=10 CEGUI], [http://www.cegui.org.uk/phpBB2/viewforum.php?f=15 CEED].&lt;br /&gt;
&lt;br /&gt;
For comments about this article, you may use it's discussion page.&lt;br /&gt;
&lt;br /&gt;
=Related articles=&lt;br /&gt;
* [[Eclipse and CEGUI]]&lt;br /&gt;
* [[Contribution|Contributing to the development of CEGUI]]&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5587</id>
		<title>Building from source</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5587"/>
				<updated>2015-01-03T15:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: use tabber&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.8}}&lt;br /&gt;
{{notice|message=This article is a work in progress and thus incomplete}}&lt;br /&gt;
&lt;br /&gt;
==Official documentation==&lt;br /&gt;
PLEASE use the documentation of your CEGUI version as your main source of information, e.g.: [http://static.cegui.org.uk/docs/current/compiling.html Latest API docs for building/compiling]&lt;br /&gt;
&lt;br /&gt;
==Stable Releases==&lt;br /&gt;
Source code from the stable mercurial branches is released at various points in time and made available as source code packages. These packages can be found on the [[Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
==Mercurial==&lt;br /&gt;
The source code is kept in mercurial repositories at bitbucket.org. There are code repositories for the main CEGUI libraries as well as for other related items.&lt;br /&gt;
&lt;br /&gt;
A mercurial client (GUI or &amp;lt;abbr title=&amp;quot;Command-line Interface&amp;quot;&amp;gt;CLI&amp;lt;/abbr&amp;gt;) is required to access the mercurial repositories and download code. The command necessary to obtain a copy of the code is 'clone':&lt;br /&gt;
 hg clone SOURCE DESTINATION&lt;br /&gt;
where ''source'' is the URL of the repository to clone and ''destination'' is the local directory. To download a copy of CEGUI and place it in the ''cegui-source'' directory, you might use the following command:&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
&lt;br /&gt;
Once you have this, the cloned repository is updated to the default (latest, unstable) code, so you most likely will want to switch to a stable branch instead, like this:&lt;br /&gt;
 hg update -C v0-8&lt;br /&gt;
{{Warning|Be aware that the -C option here will discard any local file changes without additional warning}}&lt;br /&gt;
&lt;br /&gt;
===Repositories===&lt;br /&gt;
The available repositories can be found [https://bitbucket.org/cegui/ here] where you can also browse their code from your web browser. A couple of examples:&lt;br /&gt;
* Core CEGUI libraries - [https://bitbucket.org/cegui/cegui/src cegui]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
* CEED unified editor - [https://bitbucket.org/cegui/ceed/src CEED]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
&lt;br /&gt;
{{Note|The difference between the ''hg clone'' URLs and the web-interface URLs is the appended ''/src'' on the web URLs}}&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
CEGUI uses [http://www.cmake.org/ CMake] as a build system. CMake is cross-platform and open source so it's available on many platforms. There are binaries available for Windows, Mac and Linux, although on Linux your distribution will most probably have a CMake package ready. Make sure you have some 2.8.X version installed because CMake 3.x.x will break with our scripts at the moment.&lt;br /&gt;
{{Note|CMake does not build the code directly, it generates native makefiles and workspaces that can be used in the compiler environment of your choice.}}&lt;br /&gt;
Thanks to CMake and CEGUI's modular design, configuring and building CEGUI is a breeze.&lt;br /&gt;
&lt;br /&gt;
The following instructions assume you have a ''cegui'' directory somewhere on your system so that all CEGUI related projects reside in it.&lt;br /&gt;
 cegui              (root working directory)&lt;br /&gt;
 cegui/cegui_mk2    (core CEGUI)&lt;br /&gt;
 cegui/CEED         (editor)&lt;br /&gt;
 cegui/...          (something else)&lt;br /&gt;
&lt;br /&gt;
==CEGUI==&lt;br /&gt;
This section will focus on building the core CEGUI libraries, which is all you need to use CEGUI in a project. Most people will also want [[Building from source#CEED|CEED]], the unified editor for CEGUI, but it is not required.&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEGUI can be built without any dependencies to outside libraries. However, typical configurations require [http://en.wikipedia.org/wiki/FreeType FreeType], a rendering module, an XML parser, and an image codec. CEGUI already provides support for several external libraries thanks to its modular design:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ External libraries supported by CEGUI&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; halign=&amp;quot;left&amp;quot; | Additional information&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Rendering Module&lt;br /&gt;
| OpenGL 3.2+ Core Profile&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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 required functionalities are available.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| OpenGL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Microsoft Direct3D&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Microsoft Direct3D 9, 10, and 11 are supported using seperate modules.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Ogre version is supported in the releases.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Irrlicht&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Irrlicht version is supported in the releases.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Image Codec Module&lt;br /&gt;
| SILLY&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default image codec, which is based on the SILLY library. Supports many formats, see [[SILLY]]&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| DevIL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the DevIL library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| FreeImage&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the FreeImage library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec that loads data via image loading facilities of OGRE.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Resource Provider Module&lt;br /&gt;
| Default&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The default resource provider of CEGUI uses standard cross-platform file-access.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| minizip&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | CEGUI's MinizipResourceProvider allows users to provides the ability to load the resource files from locations within .zip files.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | XML Parser Module&lt;br /&gt;
| Expat&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ddefault XML parser of CEGUI. Uses the Expat library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| LibXML2&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the LibXML2 library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| RapidXml&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the RapidXml library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| TinyXML&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the TinyXML library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| Xerces-C++&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the Xerces library for XML parsing. It can do schema validation using the .xsd files provided in CEGUI's resources.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fae9fc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Font Module&lt;br /&gt;
| FreeType&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FreeType is the default font library of CEGUI and currently the only officially supported one.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f4e0e7;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Regular Expression Module&lt;br /&gt;
| Perl Compatible Regular Expressions (PCRE)&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default regular expression library and currently the only officially supported one. Uses the PCRE library.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Scripting Module&lt;br /&gt;
| Lua&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Provides lua bindings using tolua++.&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| Python&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Official Python bindings are available using [[PyCEGUI]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Memory Management&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ogre's memory allocator can optionally be used for CEGUI's memory management.&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| nedmalloc&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | nedmalloc can optionally be used as memory allocator.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Bi-Directional Language Module&lt;br /&gt;
| MiniBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | MiniBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| FriBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FriBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CMake will automatically detect which external libraries exist on your system and will build CEGUI accordingly so make sure you install any external libraries you want to use before proceeding.&lt;br /&gt;
{{Note|You can turn off individual CEGUI modules from building (even if you have the required libraries installed) by changing the default [[Building from source#Build Options|Build Options]].}}&lt;br /&gt;
&lt;br /&gt;
===Directories===&lt;br /&gt;
If you're following the directory structure outlined above, you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
Create the directory ''cegui/cegui_mk2/build'' and clone the ''cegui'' repository inside cegui/cegui_mk2 with the name ''source''. Example:&lt;br /&gt;
{{CLI|~/cegui|mkdir cegui_mk2/build}}&lt;br /&gt;
{{CLI|~/cegui|hg clone https://bitbucket.org/cegui/cegui cegui_mk2/source}}&lt;br /&gt;
The result should be:&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
 cegui/cegui_mk2/build          (will build here)&lt;br /&gt;
 cegui/cegui_mk2/source         (the mercurial repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
===Build Options===&lt;br /&gt;
There are several build options (or variables) supported by the CEGUI build system. To view them, you can use the command like or CMake GUI.&lt;br /&gt;
&lt;br /&gt;
====Using the command line====&lt;br /&gt;
Enter the ''build'' directory and issue the following cmake command:&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2|cd build}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|cmake -LH ../source}}&lt;br /&gt;
{{Note|On systems that default to python3 (like Arch Linux) you have to tell it to use python2 like this:}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|2=cmake -LH -DPYTHON_EXECUTABLE=/usr/bin/python2 ../source}}&lt;br /&gt;
CMake will run, it will look for the build systems available on your platform, will look for dependencies and then will print a list of variables, along with their description. For example:&lt;br /&gt;
 // Select whether bi-directional text is enabled and which library should be used:&lt;br /&gt;
     0: Disabled.&lt;br /&gt;
     1: Use integrated minibidi library.&lt;br /&gt;
     2: Use external fribidi library.&lt;br /&gt;
 CEGUI_BIDI_SUPPORT:STRING=0&lt;br /&gt;
 // Specifies whether to use embedded GLEW when external library was found&lt;br /&gt;
 CEGUI_BUILD_EMBEDDED_GLEW:BOOL=OFF&lt;br /&gt;
&lt;br /&gt;
====Using CMake GUI====&lt;br /&gt;
Start cmake-gui, select our ''source'' and ''build'' directories and click the ''Configure'' button. The available options will be listed in the main window. You can hover the mouse over an option and CMake will show a tooltip with a more detailed description.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Changing the options and building is explained below, in [[#Building|Building]].}}&lt;br /&gt;
&lt;br /&gt;
===Building===&lt;br /&gt;
====Configuring and Generating makefiles====&lt;br /&gt;
The first step is to use CMake to configure the build and generate native makefiles. Without making any configuration changes, the command would be:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cmake ../source}}&lt;br /&gt;
The same can be done using the CMake GUI. Select the ''source'' and ''build'' directories, click configure and finally click generate.&lt;br /&gt;
&lt;br /&gt;
The build options can be changed via the GUI or via the CLI. If, for example, we want to turn off the slotted installation option and the python bindings we would run cmake like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source -DCEGUI_SLOTTED_INSTALLATION:BOOL=OFF -DCEGUI_BUILD_PYTHON_MODULES:BOOL=OFF}}&lt;br /&gt;
{{Note|The python bindings are required by [[#CEED|CEED]] so don't disable them if you plan to use it.}}&lt;br /&gt;
&lt;br /&gt;
Another noteworthy option is the installation path, which is where CEGUI will be installed if you plan to install it via ''make install''. Change the value of the CMAKE_INSTALL_PREFIX configuration variable to set it. Example:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source &amp;lt;other options here&amp;gt; -DCMAKE_INSTALL_PREFIX:PATH=/opt}}&lt;br /&gt;
so it will be installed in /opt/CEGUI (or /opt/CEGUI-0.8 if you use slotted installation).&lt;br /&gt;
&lt;br /&gt;
====Make====&lt;br /&gt;
The second (and last required) step is using the generated native makefiles to build it. This is specific to your build environment; you may need to open the generated solution with MSVC or Xcode, or simply issue the ''make'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
GNU Make=&lt;br /&gt;
* You can speed ''make'' up significantly if you have a multi-core CPU by adding the ''-jN'' parameter, when N is the number of CPU cores on your machine.&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|make -j4}}&lt;br /&gt;
* Optionally, run ''make install'' to install the binaries and the shared datafiles on your system.&lt;br /&gt;
|-|&lt;br /&gt;
MSVC=&lt;br /&gt;
{{Todo|MSVC notes}}&lt;br /&gt;
|-|&lt;br /&gt;
Xcode=&lt;br /&gt;
{{Todo|Xcode notes}}&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running the samples===&lt;br /&gt;
Now that the build has finished, you can run the sample applications to check your build. The binaries should be in the ''bin'' directory:&lt;br /&gt;
 cegui/cegui_mk2/build/bin&lt;br /&gt;
&lt;br /&gt;
The samples may fail to run initially because they can't find the required data files.&lt;br /&gt;
According to ''&amp;quot;cegui/cegui_mk2/source/Samples/common/include/CEGUISamplesConfig.h.in&amp;quot;'', the samples will look for the datafiles on ''&amp;quot;../datafiles&amp;quot;'' on Windows and on ''${CMAKE_INSTALL_PREFIX}/${CEGUI_DATA_INSTALL_DIR}'' on other platforms.&lt;br /&gt;
&lt;br /&gt;
It is possible to change this path without rebuilding, using the environment variable ''CEGUI_SAMPLE_DATAPATH''.&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
Linux=&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=CEGUI_SAMPLE_DATAPATH=../source/datafiles bin/CEGUIDemo8-0.8}}&lt;br /&gt;
|-|&lt;br /&gt;
Windows=&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=SET CEGUI_SAMPLE_DATAPATH=&amp;quot;C:\Users\User\cegui\cegui_mk2\source\datafiles&amp;quot;}}&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=bin/CEGUIDemo8-0.8.exe}}&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documentation===&lt;br /&gt;
{{Note|The documentation for stable releases can be found online [http://www.cegui.org.uk/docs/current here]}}&lt;br /&gt;
&lt;br /&gt;
The documentation is written in doxygen format so you need [http://www.doxygen.org/ Doxygen] to build it. If you want to generate the nice class diagrams too, you need to install [http://graphviz.org/ Graphviz].&lt;br /&gt;
&lt;br /&gt;
Building the docs with the default options is easy:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cd ../source/doc/doxygen}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|doxygen}}&lt;br /&gt;
&lt;br /&gt;
This will create a directory named ''html'' with plenty of files, just open ''index.html''.&lt;br /&gt;
&lt;br /&gt;
If you'd rather change some of doxygen's options, you can edit the file ''source/doc/doxygen/doxyfile'' or, alternatively, use ''doxywizard'' (GUI).&lt;br /&gt;
To change doxygen's output directory, one might do something like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|mkdir ../../../build/doc}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|nano doxyfile           or use your editor of choice to edit ''doxyfile''}}&lt;br /&gt;
&lt;br /&gt;
Find the line &lt;br /&gt;
 OUTPUT_DIRECTORY = &lt;br /&gt;
and change it to&lt;br /&gt;
 OUTPUT_DIRECTORY = ../../../build/doc&lt;br /&gt;
&lt;br /&gt;
Now run doxygen and it will create the html docs in ''build/doc''.&lt;br /&gt;
&lt;br /&gt;
==CEED==&lt;br /&gt;
CEED is the new CEGUI unified editor. It can edit layouts and imagesets, supports projects and multiple open file tabs, visual and source editing, preview and more. Please see [[CEED]] for a detailed description.&lt;br /&gt;
&lt;br /&gt;
CEED is written in [http://www.python.org/ Python] so there's no need to build it; all that's required is Python2 and it's dependencies.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you'd rather use a stable package that includes dependencies, please follow [[Downloads]]}}&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEED requires a Python 2 interpreter, version 2.6 or higher.&lt;br /&gt;
Apart from [[PyCEGUI]] (the CEGUI Python bindings), it depends on the following libraries:&lt;br /&gt;
* PyOpenGL&lt;br /&gt;
* Qt4, PySide (+ PySide Tools)&lt;br /&gt;
* Boost.Python&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Windows&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Windows dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Mac&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Mac dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Arch Linux&amp;quot;&amp;gt;&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR).&lt;br /&gt;
{{Note|The packages from AUR may have been included in the ''[community]'' repository by now so check there first.}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Debian&amp;quot;&amp;gt;&lt;br /&gt;
;Wheezy&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list and then:&lt;br /&gt;
&lt;br /&gt;
{{CLI||sudo apt-get update}}&lt;br /&gt;
{{CLI||sudo apt-get install cmake python-opengl pyside-tools boost-python}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Fedora&amp;quot;&amp;gt;&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Gentoo&amp;quot;&amp;gt;&lt;br /&gt;
You can use these supplied ebuilds:[https://bitbucket.org/ChrisTrenkamp/gentoo-ogre3d-tools]. Copy these ebuilds to your local overlay[http://en.gentoo-wiki.com/wiki/Overlay#Local_Overlays], add the necessary options to your package.keywords and package.use files, and run '''''emerge -av dev-util/ceed'''''&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running===&lt;br /&gt;
{{Todo|Update this section when CEED/CEGUI 0.8 is released}}&lt;br /&gt;
If you're following the directory structure outlined in [[#Building|Building]], you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/CEED                     (CEED repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
Running the main ''ceed-gui'' application could be as simple as:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
If you don't have PyCEGUI installed system-wide but built it in ''cegui/cegui_mk2/build'', you can run ''ceed-gui'' like this:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=../cegui_mk2/build/lib:.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
====Running from Mercurial====&lt;br /&gt;
If you've cloned the CEED mercurial repository, you will most likely get the following error when you try to run ''ceed-gui'':&lt;br /&gt;
 ImportError: No module named mainwindow&lt;br /&gt;
This is because the compiled .ui files are not part of the repository. Edit the file ''ceed/version.py'' with your favorite text editor and change the value of '''CEED_developerMode''' from '''False''' to '''True'''.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
If you encounter a problem that's not listed here, please make a post on the appropriate forum: [http://www.cegui.org.uk/phpBB2/viewforum.php?f=10 CEGUI], [http://www.cegui.org.uk/phpBB2/viewforum.php?f=15 CEED].&lt;br /&gt;
&lt;br /&gt;
For comments about this article, you may use it's discussion page.&lt;br /&gt;
&lt;br /&gt;
=Related articles=&lt;br /&gt;
* [[Eclipse and CEGUI]]&lt;br /&gt;
* [[Contribution|Contributing to the development of CEGUI]]&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5586</id>
		<title>Building from source</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5586"/>
				<updated>2015-01-03T15:16:36Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: use tabber&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.8}}&lt;br /&gt;
{{notice|message=This article is a work in progress and thus incomplete}}&lt;br /&gt;
&lt;br /&gt;
==Official documentation==&lt;br /&gt;
PLEASE use the documentation of your CEGUI version as your main source of information, e.g.: [http://static.cegui.org.uk/docs/current/compiling.html Latest API docs for building/compiling]&lt;br /&gt;
&lt;br /&gt;
==Stable Releases==&lt;br /&gt;
Source code from the stable mercurial branches is released at various points in time and made available as source code packages. These packages can be found on the [[Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
==Mercurial==&lt;br /&gt;
The source code is kept in mercurial repositories at bitbucket.org. There are code repositories for the main CEGUI libraries as well as for other related items.&lt;br /&gt;
&lt;br /&gt;
A mercurial client (GUI or &amp;lt;abbr title=&amp;quot;Command-line Interface&amp;quot;&amp;gt;CLI&amp;lt;/abbr&amp;gt;) is required to access the mercurial repositories and download code. The command necessary to obtain a copy of the code is 'clone':&lt;br /&gt;
 hg clone SOURCE DESTINATION&lt;br /&gt;
where ''source'' is the URL of the repository to clone and ''destination'' is the local directory. To download a copy of CEGUI and place it in the ''cegui-source'' directory, you might use the following command:&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
&lt;br /&gt;
Once you have this, the cloned repository is updated to the default (latest, unstable) code, so you most likely will want to switch to a stable branch instead, like this:&lt;br /&gt;
 hg update -C v0-8&lt;br /&gt;
{{Warning|Be aware that the -C option here will discard any local file changes without additional warning}}&lt;br /&gt;
&lt;br /&gt;
===Repositories===&lt;br /&gt;
The available repositories can be found [https://bitbucket.org/cegui/ here] where you can also browse their code from your web browser. A couple of examples:&lt;br /&gt;
* Core CEGUI libraries - [https://bitbucket.org/cegui/cegui/src cegui]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
* CEED unified editor - [https://bitbucket.org/cegui/ceed/src CEED]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
&lt;br /&gt;
{{Note|The difference between the ''hg clone'' URLs and the web-interface URLs is the appended ''/src'' on the web URLs}}&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
CEGUI uses [http://www.cmake.org/ CMake] as a build system. CMake is cross-platform and open source so it's available on many platforms. There are binaries available for Windows, Mac and Linux, although on Linux your distribution will most probably have a CMake package ready. Make sure you have some 2.8.X version installed because CMake 3.x.x will break with our scripts at the moment.&lt;br /&gt;
{{Note|CMake does not build the code directly, it generates native makefiles and workspaces that can be used in the compiler environment of your choice.}}&lt;br /&gt;
Thanks to CMake and CEGUI's modular design, configuring and building CEGUI is a breeze.&lt;br /&gt;
&lt;br /&gt;
The following instructions assume you have a ''cegui'' directory somewhere on your system so that all CEGUI related projects reside in it.&lt;br /&gt;
 cegui              (root working directory)&lt;br /&gt;
 cegui/cegui_mk2    (core CEGUI)&lt;br /&gt;
 cegui/CEED         (editor)&lt;br /&gt;
 cegui/...          (something else)&lt;br /&gt;
&lt;br /&gt;
==CEGUI==&lt;br /&gt;
This section will focus on building the core CEGUI libraries, which is all you need to use CEGUI in a project. Most people will also want [[Building from source#CEED|CEED]], the unified editor for CEGUI, but it is not required.&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEGUI can be built without any dependencies to outside libraries. However, typical configurations require [http://en.wikipedia.org/wiki/FreeType FreeType], a rendering module, an XML parser, and an image codec. CEGUI already provides support for several external libraries thanks to its modular design:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ External libraries supported by CEGUI&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; halign=&amp;quot;left&amp;quot; | Additional information&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Rendering Module&lt;br /&gt;
| OpenGL 3.2+ Core Profile&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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 required functionalities are available.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| OpenGL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Microsoft Direct3D&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Microsoft Direct3D 9, 10, and 11 are supported using seperate modules.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Ogre version is supported in the releases.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Irrlicht&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Irrlicht version is supported in the releases.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Image Codec Module&lt;br /&gt;
| SILLY&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default image codec, which is based on the SILLY library. Supports many formats, see [[SILLY]]&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| DevIL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the DevIL library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| FreeImage&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the FreeImage library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec that loads data via image loading facilities of OGRE.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Resource Provider Module&lt;br /&gt;
| Default&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The default resource provider of CEGUI uses standard cross-platform file-access.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| minizip&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | CEGUI's MinizipResourceProvider allows users to provides the ability to load the resource files from locations within .zip files.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | XML Parser Module&lt;br /&gt;
| Expat&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ddefault XML parser of CEGUI. Uses the Expat library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| LibXML2&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the LibXML2 library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| RapidXml&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the RapidXml library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| TinyXML&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the TinyXML library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| Xerces-C++&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the Xerces library for XML parsing. It can do schema validation using the .xsd files provided in CEGUI's resources.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fae9fc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Font Module&lt;br /&gt;
| FreeType&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FreeType is the default font library of CEGUI and currently the only officially supported one.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f4e0e7;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Regular Expression Module&lt;br /&gt;
| Perl Compatible Regular Expressions (PCRE)&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default regular expression library and currently the only officially supported one. Uses the PCRE library.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Scripting Module&lt;br /&gt;
| Lua&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Provides lua bindings using tolua++.&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| Python&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Official Python bindings are available using [[PyCEGUI]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Memory Management&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ogre's memory allocator can optionally be used for CEGUI's memory management.&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| nedmalloc&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | nedmalloc can optionally be used as memory allocator.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Bi-Directional Language Module&lt;br /&gt;
| MiniBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | MiniBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| FriBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FriBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CMake will automatically detect which external libraries exist on your system and will build CEGUI accordingly so make sure you install any external libraries you want to use before proceeding.&lt;br /&gt;
{{Note|You can turn off individual CEGUI modules from building (even if you have the required libraries installed) by changing the default [[Building from source#Build Options|Build Options]].}}&lt;br /&gt;
&lt;br /&gt;
===Directories===&lt;br /&gt;
If you're following the directory structure outlined above, you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
Create the directory ''cegui/cegui_mk2/build'' and clone the ''cegui'' repository inside cegui/cegui_mk2 with the name ''source''. Example:&lt;br /&gt;
{{CLI|~/cegui|mkdir cegui_mk2/build}}&lt;br /&gt;
{{CLI|~/cegui|hg clone https://bitbucket.org/cegui/cegui cegui_mk2/source}}&lt;br /&gt;
The result should be:&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
 cegui/cegui_mk2/build          (will build here)&lt;br /&gt;
 cegui/cegui_mk2/source         (the mercurial repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
===Build Options===&lt;br /&gt;
There are several build options (or variables) supported by the CEGUI build system. To view them, you can use the command like or CMake GUI.&lt;br /&gt;
&lt;br /&gt;
====Using the command line====&lt;br /&gt;
Enter the ''build'' directory and issue the following cmake command:&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2|cd build}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|cmake -LH ../source}}&lt;br /&gt;
{{Note|On systems that default to python3 (like Arch Linux) you have to tell it to use python2 like this:}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|2=cmake -LH -DPYTHON_EXECUTABLE=/usr/bin/python2 ../source}}&lt;br /&gt;
CMake will run, it will look for the build systems available on your platform, will look for dependencies and then will print a list of variables, along with their description. For example:&lt;br /&gt;
 // Select whether bi-directional text is enabled and which library should be used:&lt;br /&gt;
     0: Disabled.&lt;br /&gt;
     1: Use integrated minibidi library.&lt;br /&gt;
     2: Use external fribidi library.&lt;br /&gt;
 CEGUI_BIDI_SUPPORT:STRING=0&lt;br /&gt;
 // Specifies whether to use embedded GLEW when external library was found&lt;br /&gt;
 CEGUI_BUILD_EMBEDDED_GLEW:BOOL=OFF&lt;br /&gt;
&lt;br /&gt;
====Using CMake GUI====&lt;br /&gt;
Start cmake-gui, select our ''source'' and ''build'' directories and click the ''Configure'' button. The available options will be listed in the main window. You can hover the mouse over an option and CMake will show a tooltip with a more detailed description.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Changing the options and building is explained below, in [[#Building|Building]].}}&lt;br /&gt;
&lt;br /&gt;
===Building===&lt;br /&gt;
====Configuring and Generating makefiles====&lt;br /&gt;
The first step is to use CMake to configure the build and generate native makefiles. Without making any configuration changes, the command would be:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cmake ../source}}&lt;br /&gt;
The same can be done using the CMake GUI. Select the ''source'' and ''build'' directories, click configure and finally click generate.&lt;br /&gt;
&lt;br /&gt;
The build options can be changed via the GUI or via the CLI. If, for example, we want to turn off the slotted installation option and the python bindings we would run cmake like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source -DCEGUI_SLOTTED_INSTALLATION:BOOL=OFF -DCEGUI_BUILD_PYTHON_MODULES:BOOL=OFF}}&lt;br /&gt;
{{Note|The python bindings are required by [[#CEED|CEED]] so don't disable them if you plan to use it.}}&lt;br /&gt;
&lt;br /&gt;
Another noteworthy option is the installation path, which is where CEGUI will be installed if you plan to install it via ''make install''. Change the value of the CMAKE_INSTALL_PREFIX configuration variable to set it. Example:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source &amp;lt;other options here&amp;gt; -DCMAKE_INSTALL_PREFIX:PATH=/opt}}&lt;br /&gt;
so it will be installed in /opt/CEGUI (or /opt/CEGUI-0.8 if you use slotted installation).&lt;br /&gt;
&lt;br /&gt;
====Make====&lt;br /&gt;
The second (and last required) step is using the generated native makefiles to build it. This is specific to your build environment; you may need to open the generated solution with MSVC or Xcode, or simply issue the ''make'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
GNU Make=&lt;br /&gt;
* You can speed ''make'' up significantly if you have a multi-core CPU by adding the ''-jN'' parameter, when N is the number of CPU cores on your machine.&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|make -j4}}&lt;br /&gt;
* Optionally, run ''make install'' to install the binaries and the shared datafiles on your system.&lt;br /&gt;
|-|&lt;br /&gt;
MSVC=&lt;br /&gt;
{{Todo|MSVC notes}}&lt;br /&gt;
|-|&lt;br /&gt;
Xcode=&lt;br /&gt;
{{Todo|Xcode notes}}&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running the samples===&lt;br /&gt;
Now that the build has finished, you can run the sample applications to check your build. The binaries should be in the ''bin'' directory:&lt;br /&gt;
 cegui/cegui_mk2/build/bin&lt;br /&gt;
&lt;br /&gt;
The samples may fail to run initially because they can't find the required data files.&lt;br /&gt;
According to ''&amp;quot;cegui/cegui_mk2/source/Samples/common/include/CEGUISamplesConfig.h.in&amp;quot;'', the samples will look for the datafiles on ''&amp;quot;../datafiles&amp;quot;'' on Windows and on ''${CMAKE_INSTALL_PREFIX}/${CEGUI_DATA_INSTALL_DIR}'' on other platforms.&lt;br /&gt;
&lt;br /&gt;
It is possible to change this path without rebuilding, using the environment variable ''CEGUI_SAMPLE_DATAPATH''.&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Linux&amp;quot;&amp;gt;&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=CEGUI_SAMPLE_DATAPATH=../source/datafiles bin/CEGUIDemo8-0.8}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Windows&amp;quot;&amp;gt;&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=SET CEGUI_SAMPLE_DATAPATH=&amp;quot;C:\Users\User\cegui\cegui_mk2\source\datafiles&amp;quot;}}&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=bin/CEGUIDemo8-0.8.exe}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documentation===&lt;br /&gt;
{{Note|The documentation for stable releases can be found online [http://www.cegui.org.uk/docs/current here]}}&lt;br /&gt;
&lt;br /&gt;
The documentation is written in doxygen format so you need [http://www.doxygen.org/ Doxygen] to build it. If you want to generate the nice class diagrams too, you need to install [http://graphviz.org/ Graphviz].&lt;br /&gt;
&lt;br /&gt;
Building the docs with the default options is easy:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cd ../source/doc/doxygen}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|doxygen}}&lt;br /&gt;
&lt;br /&gt;
This will create a directory named ''html'' with plenty of files, just open ''index.html''.&lt;br /&gt;
&lt;br /&gt;
If you'd rather change some of doxygen's options, you can edit the file ''source/doc/doxygen/doxyfile'' or, alternatively, use ''doxywizard'' (GUI).&lt;br /&gt;
To change doxygen's output directory, one might do something like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|mkdir ../../../build/doc}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|nano doxyfile           or use your editor of choice to edit ''doxyfile''}}&lt;br /&gt;
&lt;br /&gt;
Find the line &lt;br /&gt;
 OUTPUT_DIRECTORY = &lt;br /&gt;
and change it to&lt;br /&gt;
 OUTPUT_DIRECTORY = ../../../build/doc&lt;br /&gt;
&lt;br /&gt;
Now run doxygen and it will create the html docs in ''build/doc''.&lt;br /&gt;
&lt;br /&gt;
==CEED==&lt;br /&gt;
CEED is the new CEGUI unified editor. It can edit layouts and imagesets, supports projects and multiple open file tabs, visual and source editing, preview and more. Please see [[CEED]] for a detailed description.&lt;br /&gt;
&lt;br /&gt;
CEED is written in [http://www.python.org/ Python] so there's no need to build it; all that's required is Python2 and it's dependencies.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you'd rather use a stable package that includes dependencies, please follow [[Downloads]]}}&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEED requires a Python 2 interpreter, version 2.6 or higher.&lt;br /&gt;
Apart from [[PyCEGUI]] (the CEGUI Python bindings), it depends on the following libraries:&lt;br /&gt;
* PyOpenGL&lt;br /&gt;
* Qt4, PySide (+ PySide Tools)&lt;br /&gt;
* Boost.Python&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Windows&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Windows dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Mac&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Mac dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Arch Linux&amp;quot;&amp;gt;&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR).&lt;br /&gt;
{{Note|The packages from AUR may have been included in the ''[community]'' repository by now so check there first.}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Debian&amp;quot;&amp;gt;&lt;br /&gt;
;Wheezy&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list and then:&lt;br /&gt;
&lt;br /&gt;
{{CLI||sudo apt-get update}}&lt;br /&gt;
{{CLI||sudo apt-get install cmake python-opengl pyside-tools boost-python}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Fedora&amp;quot;&amp;gt;&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Gentoo&amp;quot;&amp;gt;&lt;br /&gt;
You can use these supplied ebuilds:[https://bitbucket.org/ChrisTrenkamp/gentoo-ogre3d-tools]. Copy these ebuilds to your local overlay[http://en.gentoo-wiki.com/wiki/Overlay#Local_Overlays], add the necessary options to your package.keywords and package.use files, and run '''''emerge -av dev-util/ceed'''''&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running===&lt;br /&gt;
{{Todo|Update this section when CEED/CEGUI 0.8 is released}}&lt;br /&gt;
If you're following the directory structure outlined in [[#Building|Building]], you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/CEED                     (CEED repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
Running the main ''ceed-gui'' application could be as simple as:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
If you don't have PyCEGUI installed system-wide but built it in ''cegui/cegui_mk2/build'', you can run ''ceed-gui'' like this:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=../cegui_mk2/build/lib:.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
====Running from Mercurial====&lt;br /&gt;
If you've cloned the CEED mercurial repository, you will most likely get the following error when you try to run ''ceed-gui'':&lt;br /&gt;
 ImportError: No module named mainwindow&lt;br /&gt;
This is because the compiled .ui files are not part of the repository. Edit the file ''ceed/version.py'' with your favorite text editor and change the value of '''CEED_developerMode''' from '''False''' to '''True'''.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
If you encounter a problem that's not listed here, please make a post on the appropriate forum: [http://www.cegui.org.uk/phpBB2/viewforum.php?f=10 CEGUI], [http://www.cegui.org.uk/phpBB2/viewforum.php?f=15 CEED].&lt;br /&gt;
&lt;br /&gt;
For comments about this article, you may use it's discussion page.&lt;br /&gt;
&lt;br /&gt;
=Related articles=&lt;br /&gt;
* [[Eclipse and CEGUI]]&lt;br /&gt;
* [[Contribution|Contributing to the development of CEGUI]]&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5534</id>
		<title>Building from source</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5534"/>
				<updated>2014-09-22T14:44:50Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.8}}&lt;br /&gt;
{{notice|message=This article is a work in progress and thus incomplete}}&lt;br /&gt;
&lt;br /&gt;
==Official documentation==&lt;br /&gt;
PLEASE use the documentation of your CEGUI version as your main source of information, e.g.: [http://static.cegui.org.uk/docs/current/compiling.html Latest API docs for building/compiling]&lt;br /&gt;
&lt;br /&gt;
==Stable Releases==&lt;br /&gt;
Source code from the stable mercurial branches is released at various points in time and made available as source code packages. These packages can be found on the [[Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
==Mercurial==&lt;br /&gt;
The source code is kept in mercurial repositories at bitbucket.org. There are code repositories for the main CEGUI libraries as well as for other related items.&lt;br /&gt;
&lt;br /&gt;
A mercurial client (GUI or &amp;lt;abbr title=&amp;quot;Command-line Interface&amp;quot;&amp;gt;CLI&amp;lt;/abbr&amp;gt;) is required to access the mercurial repositories and download code. The command necessary to obtain a copy of the code is 'clone':&lt;br /&gt;
 hg clone SOURCE DESTINATION&lt;br /&gt;
where ''source'' is the URL of the repository to clone and ''destination'' is the local directory. To download a copy of CEGUI and place it in the ''cegui-source'' directory, you might use the following command:&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
&lt;br /&gt;
Once you have this, the cloned repository is updated to the default (latest, unstable) code, so you most likely will want to switch to a stable branch instead, like this:&lt;br /&gt;
 hg update -C v0-8&lt;br /&gt;
{{Warning|Be aware that the -C option here will discard any local file changes without additional warning}}&lt;br /&gt;
&lt;br /&gt;
===Repositories===&lt;br /&gt;
The available repositories can be found [https://bitbucket.org/cegui/ here] where you can also browse their code from your web browser. A couple of examples:&lt;br /&gt;
* Core CEGUI libraries - [https://bitbucket.org/cegui/cegui/src cegui]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
* CEED unified editor - [https://bitbucket.org/cegui/ceed/src CEED]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
&lt;br /&gt;
{{Note|The difference between the ''hg clone'' URLs and the web-interface URLs is the appended ''/src'' on the web URLs}}&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
CEGUI uses [http://www.cmake.org/ CMake] as a build system. CMake is cross-platform and open source so it's available on many platforms. There are binaries available for Windows, Mac and Linux, although on Linux your distribution will most probably have a CMake package ready. Make sure you have some 2.8.X version installed because CMake 3.x.x will break with our scripts at the moment.&lt;br /&gt;
{{Note|CMake does not build the code directly, it generates native makefiles and workspaces that can be used in the compiler environment of your choice.}}&lt;br /&gt;
Thanks to CMake and CEGUI's modular design, configuring and building CEGUI is a breeze.&lt;br /&gt;
&lt;br /&gt;
The following instructions assume you have a ''cegui'' directory somewhere on your system so that all CEGUI related projects reside in it.&lt;br /&gt;
 cegui              (root working directory)&lt;br /&gt;
 cegui/cegui_mk2    (core CEGUI)&lt;br /&gt;
 cegui/CEED         (editor)&lt;br /&gt;
 cegui/...          (something else)&lt;br /&gt;
&lt;br /&gt;
==CEGUI==&lt;br /&gt;
This section will focus on building the core CEGUI libraries, which is all you need to use CEGUI in a project. Most people will also want [[Building from source#CEED|CEED]], the unified editor for CEGUI, but it is not required.&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEGUI can be built without any dependencies to outside libraries. However, typical configurations require [http://en.wikipedia.org/wiki/FreeType FreeType], a rendering module, an XML parser, and an image codec. CEGUI already provides support for several external libraries thanks to its modular design:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ External libraries supported by CEGUI&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; halign=&amp;quot;left&amp;quot; | Additional information&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Rendering Module&lt;br /&gt;
| OpenGL 3.2+ Core Profile&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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 required functionalities are available.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| OpenGL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Microsoft Direct3D&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Microsoft Direct3D 9, 10, and 11 are supported using seperate modules.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Ogre version is supported in the releases.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Irrlicht&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Irrlicht version is supported in the releases.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Image Codec Module&lt;br /&gt;
| SILLY&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default image codec, which is based on the SILLY library. Supports many formats, see [[SILLY]]&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| DevIL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the DevIL library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| FreeImage&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the FreeImage library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec that loads data via image loading facilities of OGRE.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Resource Provider Module&lt;br /&gt;
| Default&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The default resource provider of CEGUI uses standard cross-platform file-access.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| minizip&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | CEGUI's MinizipResourceProvider allows users to provides the ability to load the resource files from locations within .zip files.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | XML Parser Module&lt;br /&gt;
| Expat&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ddefault XML parser of CEGUI. Uses the Expat library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| LibXML2&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the LibXML2 library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| RapidXml&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the RapidXml library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| TinyXML&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the TinyXML library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| Xerces-C++&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the Xerces library for XML parsing. It can do schema validation using the .xsd files provided in CEGUI's resources.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fae9fc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Font Module&lt;br /&gt;
| FreeType&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FreeType is the default font library of CEGUI and currently the only officially supported one.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f4e0e7;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Regular Expression Module&lt;br /&gt;
| Perl Compatible Regular Expressions (PCRE)&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default regular expression library and currently the only officially supported one. Uses the PCRE library.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Scripting Module&lt;br /&gt;
| Lua&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Provides lua bindings using tolua++.&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| Python&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Official Python bindings are available using [[PyCEGUI]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Memory Management&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ogre's memory allocator can optionally be used for CEGUI's memory management.&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| nedmalloc&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | nedmalloc can optionally be used as memory allocator.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Bi-Directional Language Module&lt;br /&gt;
| MiniBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | MiniBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| FriBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FriBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CMake will automatically detect which external libraries exist on your system and will build CEGUI accordingly so make sure you install any external libraries you want to use before proceeding.&lt;br /&gt;
{{Note|You can turn off individual CEGUI modules from building (even if you have the required libraries installed) by changing the default [[Building from source#Build Options|Build Options]].}}&lt;br /&gt;
&lt;br /&gt;
===Directories===&lt;br /&gt;
If you're following the directory structure outlined above, you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
Create the directory ''cegui/cegui_mk2/build'' and clone the ''cegui'' repository inside cegui/cegui_mk2 with the name ''source''. Example:&lt;br /&gt;
{{CLI|~/cegui|mkdir cegui_mk2/build}}&lt;br /&gt;
{{CLI|~/cegui|hg clone https://bitbucket.org/cegui/cegui cegui_mk2/source}}&lt;br /&gt;
The result should be:&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
 cegui/cegui_mk2/build          (will build here)&lt;br /&gt;
 cegui/cegui_mk2/source         (the mercurial repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
===Build Options===&lt;br /&gt;
There are several build options (or variables) supported by the CEGUI build system. To view them, you can use the command like or CMake GUI.&lt;br /&gt;
&lt;br /&gt;
====Using the command line====&lt;br /&gt;
Enter the ''build'' directory and issue the following cmake command:&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2|cd build}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|cmake -LH ../source}}&lt;br /&gt;
{{Note|On systems that default to python3 (like Arch Linux) you have to tell it to use python2 like this:}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|2=cmake -LH -DPYTHON_EXECUTABLE=/usr/bin/python2 ../source}}&lt;br /&gt;
CMake will run, it will look for the build systems available on your platform, will look for dependencies and then will print a list of variables, along with their description. For example:&lt;br /&gt;
 // Select whether bi-directional text is enabled and which library should be used:&lt;br /&gt;
     0: Disabled.&lt;br /&gt;
     1: Use integrated minibidi library.&lt;br /&gt;
     2: Use external fribidi library.&lt;br /&gt;
 CEGUI_BIDI_SUPPORT:STRING=0&lt;br /&gt;
 // Specifies whether to use embedded GLEW when external library was found&lt;br /&gt;
 CEGUI_BUILD_EMBEDDED_GLEW:BOOL=OFF&lt;br /&gt;
&lt;br /&gt;
====Using CMake GUI====&lt;br /&gt;
Start cmake-gui, select our ''source'' and ''build'' directories and click the ''Configure'' button. The available options will be listed in the main window. You can hover the mouse over an option and CMake will show a tooltip with a more detailed description.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Changing the options and building is explained below, in [[#Building|Building]].}}&lt;br /&gt;
&lt;br /&gt;
===Building===&lt;br /&gt;
====Configuring and Generating makefiles====&lt;br /&gt;
The first step is to use CMake to configure the build and generate native makefiles. Without making any configuration changes, the command would be:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cmake ../source}}&lt;br /&gt;
The same can be done using the CMake GUI. Select the ''source'' and ''build'' directories, click configure and finally click generate.&lt;br /&gt;
&lt;br /&gt;
The build options can be changed via the GUI or via the CLI. If, for example, we want to turn off the slotted installation option and the python bindings we would run cmake like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source -DCEGUI_SLOTTED_INSTALLATION:BOOL=OFF -DCEGUI_BUILD_PYTHON_MODULES:BOOL=OFF}}&lt;br /&gt;
{{Note|The python bindings are required by [[#CEED|CEED]] so don't disable them if you plan to use it.}}&lt;br /&gt;
&lt;br /&gt;
Another noteworthy option is the installation path, which is where CEGUI will be installed if you plan to install it via ''make install''. Change the value of the CMAKE_INSTALL_PREFIX configuration variable to set it. Example:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source &amp;lt;other options here&amp;gt; -DCMAKE_INSTALL_PREFIX:PATH=/opt}}&lt;br /&gt;
so it will be installed in /opt/CEGUI (or /opt/CEGUI-0.8 if you use slotted installation).&lt;br /&gt;
&lt;br /&gt;
====Make====&lt;br /&gt;
The second (and last required) step is using the generated native makefiles to build it. This is specific to your build environment; you may need to open the generated solution with MSVC or Xcode, or simply issue the ''make'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;GNU Make&amp;quot;&amp;gt;&lt;br /&gt;
* You can speed ''make'' up significantly if you have a multi-core CPU by adding the ''-jN'' parameter, when N is the number of CPU cores on your machine.&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|make -j4}}&lt;br /&gt;
* Optionally, run ''make install'' to install the binaries and the shared datafiles on your system.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;MSVC&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|MSVC notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Xcode&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Xcode notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running the samples===&lt;br /&gt;
Now that the build has finished, you can run the sample applications to check your build. The binaries should be in the ''bin'' directory:&lt;br /&gt;
 cegui/cegui_mk2/build/bin&lt;br /&gt;
&lt;br /&gt;
The samples may fail to run initially because they can't find the required data files.&lt;br /&gt;
According to ''&amp;quot;cegui/cegui_mk2/source/Samples/common/include/CEGUISamplesConfig.h.in&amp;quot;'', the samples will look for the datafiles on ''&amp;quot;../datafiles&amp;quot;'' on Windows and on ''${CMAKE_INSTALL_PREFIX}/${CEGUI_DATA_INSTALL_DIR}'' on other platforms.&lt;br /&gt;
&lt;br /&gt;
It is possible to change this path without rebuilding, using the environment variable ''CEGUI_SAMPLE_DATAPATH''.&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Linux&amp;quot;&amp;gt;&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=CEGUI_SAMPLE_DATAPATH=../source/datafiles bin/CEGUIDemo8-0.8}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Windows&amp;quot;&amp;gt;&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=SET CEGUI_SAMPLE_DATAPATH=&amp;quot;C:\Users\User\cegui\cegui_mk2\source\datafiles&amp;quot;}}&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=bin/CEGUIDemo8-0.8.exe}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documentation===&lt;br /&gt;
{{Note|The documentation for stable releases can be found online [http://www.cegui.org.uk/docs/current here]}}&lt;br /&gt;
&lt;br /&gt;
The documentation is written in doxygen format so you need [http://www.doxygen.org/ Doxygen] to build it. If you want to generate the nice class diagrams too, you need to install [http://graphviz.org/ Graphviz].&lt;br /&gt;
&lt;br /&gt;
Building the docs with the default options is easy:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cd ../source/doc/doxygen}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|doxygen}}&lt;br /&gt;
&lt;br /&gt;
This will create a directory named ''html'' with plenty of files, just open ''index.html''.&lt;br /&gt;
&lt;br /&gt;
If you'd rather change some of doxygen's options, you can edit the file ''source/doc/doxygen/doxyfile'' or, alternatively, use ''doxywizard'' (GUI).&lt;br /&gt;
To change doxygen's output directory, one might do something like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|mkdir ../../../build/doc}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|nano doxyfile           or use your editor of choice to edit ''doxyfile''}}&lt;br /&gt;
&lt;br /&gt;
Find the line &lt;br /&gt;
 OUTPUT_DIRECTORY = &lt;br /&gt;
and change it to&lt;br /&gt;
 OUTPUT_DIRECTORY = ../../../build/doc&lt;br /&gt;
&lt;br /&gt;
Now run doxygen and it will create the html docs in ''build/doc''.&lt;br /&gt;
&lt;br /&gt;
==CEED==&lt;br /&gt;
CEED is the new CEGUI unified editor. It can edit layouts and imagesets, supports projects and multiple open file tabs, visual and source editing, preview and more. Please see [[CEED]] for a detailed description.&lt;br /&gt;
&lt;br /&gt;
CEED is written in [http://www.python.org/ Python] so there's no need to build it; all that's required is Python2 and it's dependencies.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you'd rather use a stable package that includes dependencies, please follow [[Downloads]]}}&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEED requires a Python 2 interpreter, version 2.6 or higher.&lt;br /&gt;
Apart from [[PyCEGUI]] (the CEGUI Python bindings), it depends on the following libraries:&lt;br /&gt;
* PyOpenGL&lt;br /&gt;
* Qt4, PySide (+ PySide Tools)&lt;br /&gt;
* Boost.Python&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Windows&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Windows dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Mac&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Mac dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Arch Linux&amp;quot;&amp;gt;&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR).&lt;br /&gt;
{{Note|The packages from AUR may have been included in the ''[community]'' repository by now so check there first.}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Debian&amp;quot;&amp;gt;&lt;br /&gt;
;Wheezy&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list and then:&lt;br /&gt;
&lt;br /&gt;
{{CLI||sudo apt-get update}}&lt;br /&gt;
{{CLI||sudo apt-get install cmake python-opengl pyside-tools boost-python}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Fedora&amp;quot;&amp;gt;&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Gentoo&amp;quot;&amp;gt;&lt;br /&gt;
You can use these supplied ebuilds:[https://bitbucket.org/ChrisTrenkamp/gentoo-ogre3d-tools]. Copy these ebuilds to your local overlay[http://en.gentoo-wiki.com/wiki/Overlay#Local_Overlays], add the necessary options to your package.keywords and package.use files, and run '''''emerge -av dev-util/ceed'''''&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running===&lt;br /&gt;
{{Todo|Update this section when CEED/CEGUI 0.8 is released}}&lt;br /&gt;
If you're following the directory structure outlined in [[#Building|Building]], you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/CEED                     (CEED repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
Running the main ''ceed-gui'' application could be as simple as:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
If you don't have PyCEGUI installed system-wide but built it in ''cegui/cegui_mk2/build'', you can run ''ceed-gui'' like this:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=../cegui_mk2/build/lib:.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
====Running from Mercurial====&lt;br /&gt;
If you've cloned the CEED mercurial repository, you will most likely get the following error when you try to run ''ceed-gui'':&lt;br /&gt;
 ImportError: No module named mainwindow&lt;br /&gt;
This is because the compiled .ui files are not part of the repository. Edit the file ''ceed/version.py'' with your favorite text editor and change the value of '''CEED_developerMode''' from '''False''' to '''True'''.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
If you encounter a problem that's not listed here, please make a post on the appropriate forum: [http://www.cegui.org.uk/phpBB2/viewforum.php?f=10 CEGUI], [http://www.cegui.org.uk/phpBB2/viewforum.php?f=15 CEED].&lt;br /&gt;
&lt;br /&gt;
For comments about this article, you may use it's discussion page.&lt;br /&gt;
&lt;br /&gt;
=Related articles=&lt;br /&gt;
* [[Eclipse and CEGUI]]&lt;br /&gt;
* [[Contribution|Contributing to the development of CEGUI]]&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5533</id>
		<title>Building from source</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Building_from_source&amp;diff=5533"/>
				<updated>2014-09-22T14:29:05Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.8}}&lt;br /&gt;
{{notice|message=This article is a work in progress and thus incomplete}}&lt;br /&gt;
&lt;br /&gt;
==Official documentation==&lt;br /&gt;
PLEASE use the documentation of your CEGUI version as your main source of information, e.g.: [http://static.cegui.org.uk/docs/current/compiling.html Latest API docs for building/compiling]&lt;br /&gt;
&lt;br /&gt;
==Stable Releases==&lt;br /&gt;
Source code from the stable mercurial branches is released at various points in time and made available as source code packages. These packages can be found on the [[Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
==Mercurial==&lt;br /&gt;
The source code is kept in mercurial repositories at bitbucket.org. There are code repositories for the main CEGUI libraries as well as for other related items.&lt;br /&gt;
&lt;br /&gt;
A mercurial client (GUI or &amp;lt;abbr title=&amp;quot;Command-line Interface&amp;quot;&amp;gt;CLI&amp;lt;/abbr&amp;gt;) is required to access the mercurial repositories and download code. The command necessary to obtain a copy of the code is 'clone':&lt;br /&gt;
 hg clone SOURCE DESTINATION&lt;br /&gt;
where ''source'' is the URL of the repository to clone and ''destination'' is the local directory. To download a copy of CEGUI and place it in the ''cegui-source'' directory, you might use the following command:&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
&lt;br /&gt;
Once you have this, the cloned repository is updated to the default (latest, unstable) code, so you most likely will want to switch to a stable branch instead, like this:&lt;br /&gt;
 hg update -C v0-8&lt;br /&gt;
{{Warning|Be aware that the -C option here will discard any local file changes without additional warning}}&lt;br /&gt;
&lt;br /&gt;
===Repositories===&lt;br /&gt;
The available repositories can be found [https://bitbucket.org/cegui/ here] where you can also browse their code from your web browser. A couple of examples:&lt;br /&gt;
* Core CEGUI libraries - [https://bitbucket.org/cegui/cegui/src cegui]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui cegui-source&lt;br /&gt;
* CEED unified editor - [https://bitbucket.org/cegui/ceed/src CEED]&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
&lt;br /&gt;
{{Note|The difference between the ''hg clone'' URLs and the web-interface URLs is the appended ''/src'' on the web URLs}}&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
CEGUI uses [http://www.cmake.org/ CMake] as a build system. CMake is cross-platform and open source so it's available on many platforms. There are binaries available for Windows, Mac and Linux, although on Linux your distribution will most probably have a CMake package ready. Make sure you install version 2.8.12 before continuing.&lt;br /&gt;
{{Note|CMake does not build the code directly, it generates native makefiles and workspaces that can be used in the compiler environment of your choice.}}&lt;br /&gt;
Thanks to CMake and CEGUI's modular design, configuring and building CEGUI is a breeze.&lt;br /&gt;
&lt;br /&gt;
The following instructions assume you have a ''cegui'' directory somewhere on your system so that all CEGUI related projects reside in it.&lt;br /&gt;
 cegui              (root working directory)&lt;br /&gt;
 cegui/cegui_mk2    (core CEGUI)&lt;br /&gt;
 cegui/CEED         (editor)&lt;br /&gt;
 cegui/...          (something else)&lt;br /&gt;
&lt;br /&gt;
==CEGUI==&lt;br /&gt;
This section will focus on building the core CEGUI libraries, which is all you need to use CEGUI in a project. Most people will also want [[Building from source#CEED|CEED]], the unified editor for CEGUI, but it is not required.&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEGUI can be built without any dependencies to outside libraries. However, typical configurations require [http://en.wikipedia.org/wiki/FreeType FreeType], a rendering module, an XML parser, and an image codec. CEGUI already provides support for several external libraries thanks to its modular design:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
|+ External libraries supported by CEGUI&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; halign=&amp;quot;left&amp;quot; | Additional information&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Rendering Module&lt;br /&gt;
| OpenGL 3.2+ Core Profile&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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 required functionalities are available.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot; &lt;br /&gt;
| OpenGL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Microsoft Direct3D&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Microsoft Direct3D 9, 10, and 11 are supported using seperate modules.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Ogre version is supported in the releases.&lt;br /&gt;
|- style=&amp;quot;background: #eaffe8;&amp;quot;&lt;br /&gt;
| Irrlicht&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The latest stable Irrlicht version is supported in the releases.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Image Codec Module&lt;br /&gt;
| SILLY&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default image codec, which is based on the SILLY library. Supports many formats, see [[SILLY]]&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| DevIL&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the DevIL library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| FreeImage&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec based on the FreeImage library.&lt;br /&gt;
|- style=&amp;quot;background: #edfcfb;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Image codec that loads data via image loading facilities of OGRE.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Resource Provider Module&lt;br /&gt;
| Default&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | The default resource provider of CEGUI uses standard cross-platform file-access.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | 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.&lt;br /&gt;
|- style=&amp;quot;background: #dfeff1;&amp;quot;&lt;br /&gt;
| minizip&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | CEGUI's MinizipResourceProvider allows users to provides the ability to load the resource files from locations within .zip files.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | XML Parser Module&lt;br /&gt;
| Expat&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ddefault XML parser of CEGUI. Uses the Expat library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| LibXML2&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the LibXML2 library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| RapidXml&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the RapidXml library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| TinyXML&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the TinyXML library for XML parsing.&lt;br /&gt;
|- style=&amp;quot;background: #e9ebfc;&amp;quot;&lt;br /&gt;
| Xerces-C++&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Uses the Xerces library for XML parsing. It can do schema validation using the .xsd files provided in CEGUI's resources.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fae9fc;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Font Module&lt;br /&gt;
| FreeType&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FreeType is the default font library of CEGUI and currently the only officially supported one.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f4e0e7;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;1&amp;quot; | Regular Expression Module&lt;br /&gt;
| Perl Compatible Regular Expressions (PCRE)&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Default regular expression library and currently the only officially supported one. Uses the PCRE library.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Scripting Module&lt;br /&gt;
| Lua&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Provides lua bindings using tolua++.&lt;br /&gt;
|- style=&amp;quot;background: #fcf3e9;&amp;quot;&lt;br /&gt;
| Python&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Official Python bindings are available using [[PyCEGUI]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Memory Management&lt;br /&gt;
| OGRE&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | Ogre's memory allocator can optionally be used for CEGUI's memory management.&lt;br /&gt;
|- style=&amp;quot;background: #f2eeca;&amp;quot;&lt;br /&gt;
| nedmalloc&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | nedmalloc can optionally be used as memory allocator.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Bi-Directional Language Module&lt;br /&gt;
| MiniBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | MiniBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
|- style=&amp;quot;background: #f6fce9;&amp;quot;&lt;br /&gt;
| FriBIDI&lt;br /&gt;
| style=&amp;quot;text-align: left;&amp;quot; | FriBIDI based implementation of CEGUI's Bidi visual mapping.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CMake will automatically detect which external libraries exist on your system and will build CEGUI accordingly so make sure you install any external libraries you want to use before proceeding.&lt;br /&gt;
{{Note|You can turn off individual CEGUI modules from building (even if you have the required libraries installed) by changing the default [[Building from source#Build Options|Build Options]].}}&lt;br /&gt;
&lt;br /&gt;
===Directories===&lt;br /&gt;
If you're following the directory structure outlined above, you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
Create the directory ''cegui/cegui_mk2/build'' and clone the ''cegui'' repository inside cegui/cegui_mk2 with the name ''source''. Example:&lt;br /&gt;
{{CLI|~/cegui|mkdir cegui_mk2/build}}&lt;br /&gt;
{{CLI|~/cegui|hg clone https://bitbucket.org/cegui/cegui cegui_mk2/source}}&lt;br /&gt;
The result should be:&lt;br /&gt;
 cegui/cegui_mk2                (core CEGUI)&lt;br /&gt;
 cegui/cegui_mk2/build          (will build here)&lt;br /&gt;
 cegui/cegui_mk2/source         (the mercurial repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
===Build Options===&lt;br /&gt;
There are several build options (or variables) supported by the CEGUI build system. To view them, you can use the command like or CMake GUI.&lt;br /&gt;
&lt;br /&gt;
====Using the command line====&lt;br /&gt;
Enter the ''build'' directory and issue the following cmake command:&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2|cd build}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|cmake -LH ../source}}&lt;br /&gt;
{{Note|On systems that default to python3 (like Arch Linux) you have to tell it to use python2 like this:}}&lt;br /&gt;
 {{CLI|~/cegui/cegui_mk2/build|2=cmake -LH -DPYTHON_EXECUTABLE=/usr/bin/python2 ../source}}&lt;br /&gt;
CMake will run, it will look for the build systems available on your platform, will look for dependencies and then will print a list of variables, along with their description. For example:&lt;br /&gt;
 // Select whether bi-directional text is enabled and which library should be used:&lt;br /&gt;
     0: Disabled.&lt;br /&gt;
     1: Use integrated minibidi library.&lt;br /&gt;
     2: Use external fribidi library.&lt;br /&gt;
 CEGUI_BIDI_SUPPORT:STRING=0&lt;br /&gt;
 // Specifies whether to use embedded GLEW when external library was found&lt;br /&gt;
 CEGUI_BUILD_EMBEDDED_GLEW:BOOL=OFF&lt;br /&gt;
&lt;br /&gt;
====Using CMake GUI====&lt;br /&gt;
Start cmake-gui, select our ''source'' and ''build'' directories and click the ''Configure'' button. The available options will be listed in the main window. You can hover the mouse over an option and CMake will show a tooltip with a more detailed description.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Changing the options and building is explained below, in [[#Building|Building]].}}&lt;br /&gt;
&lt;br /&gt;
===Building===&lt;br /&gt;
====Configuring and Generating makefiles====&lt;br /&gt;
The first step is to use CMake to configure the build and generate native makefiles. Without making any configuration changes, the command would be:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cmake ../source}}&lt;br /&gt;
The same can be done using the CMake GUI. Select the ''source'' and ''build'' directories, click configure and finally click generate.&lt;br /&gt;
&lt;br /&gt;
The build options can be changed via the GUI or via the CLI. If, for example, we want to turn off the slotted installation option and the python bindings we would run cmake like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source -DCEGUI_SLOTTED_INSTALLATION:BOOL=OFF -DCEGUI_BUILD_PYTHON_MODULES:BOOL=OFF}}&lt;br /&gt;
{{Note|The python bindings are required by [[#CEED|CEED]] so don't disable them if you plan to use it.}}&lt;br /&gt;
&lt;br /&gt;
Another noteworthy option is the installation path, which is where CEGUI will be installed if you plan to install it via ''make install''. Change the value of the CMAKE_INSTALL_PREFIX configuration variable to set it. Example:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=cmake ../source &amp;lt;other options here&amp;gt; -DCMAKE_INSTALL_PREFIX:PATH=/opt}}&lt;br /&gt;
so it will be installed in /opt/CEGUI (or /opt/CEGUI-0.8 if you use slotted installation).&lt;br /&gt;
&lt;br /&gt;
====Make====&lt;br /&gt;
The second (and last required) step is using the generated native makefiles to build it. This is specific to your build environment; you may need to open the generated solution with MSVC or Xcode, or simply issue the ''make'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;GNU Make&amp;quot;&amp;gt;&lt;br /&gt;
* You can speed ''make'' up significantly if you have a multi-core CPU by adding the ''-jN'' parameter, when N is the number of CPU cores on your machine.&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|make -j4}}&lt;br /&gt;
* Optionally, run ''make install'' to install the binaries and the shared datafiles on your system.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;MSVC&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|MSVC notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Xcode&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Xcode notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running the samples===&lt;br /&gt;
Now that the build has finished, you can run the sample applications to check your build. The binaries should be in the ''bin'' directory:&lt;br /&gt;
 cegui/cegui_mk2/build/bin&lt;br /&gt;
&lt;br /&gt;
The samples may fail to run initially because they can't find the required data files.&lt;br /&gt;
According to ''&amp;quot;cegui/cegui_mk2/source/Samples/common/include/CEGUISamplesConfig.h.in&amp;quot;'', the samples will look for the datafiles on ''&amp;quot;../datafiles&amp;quot;'' on Windows and on ''${CMAKE_INSTALL_PREFIX}/${CEGUI_DATA_INSTALL_DIR}'' on other platforms.&lt;br /&gt;
&lt;br /&gt;
It is possible to change this path without rebuilding, using the environment variable ''CEGUI_SAMPLE_DATAPATH''.&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Linux&amp;quot;&amp;gt;&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|2=CEGUI_SAMPLE_DATAPATH=../source/datafiles bin/CEGUIDemo8-0.8}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Windows&amp;quot;&amp;gt;&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=SET CEGUI_SAMPLE_DATAPATH=&amp;quot;C:\Users\User\cegui\cegui_mk2\source\datafiles&amp;quot;}}&lt;br /&gt;
{{CLI|C:\Users\User\cegui\cegui_mk2\build|2=bin/CEGUIDemo8-0.8.exe}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Documentation===&lt;br /&gt;
{{Note|The documentation for stable releases can be found online [http://www.cegui.org.uk/docs/current here]}}&lt;br /&gt;
&lt;br /&gt;
The documentation is written in doxygen format so you need [http://www.doxygen.org/ Doxygen] to build it. If you want to generate the nice class diagrams too, you need to install [http://graphviz.org/ Graphviz].&lt;br /&gt;
&lt;br /&gt;
Building the docs with the default options is easy:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/build|cd ../source/doc/doxygen}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|doxygen}}&lt;br /&gt;
&lt;br /&gt;
This will create a directory named ''html'' with plenty of files, just open ''index.html''.&lt;br /&gt;
&lt;br /&gt;
If you'd rather change some of doxygen's options, you can edit the file ''source/doc/doxygen/doxyfile'' or, alternatively, use ''doxywizard'' (GUI).&lt;br /&gt;
To change doxygen's output directory, one might do something like this:&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|mkdir ../../../build/doc}}&lt;br /&gt;
{{CLI|~/cegui/cegui_mk2/source/doc/doxygen|nano doxyfile           or use your editor of choice to edit ''doxyfile''}}&lt;br /&gt;
&lt;br /&gt;
Find the line &lt;br /&gt;
 OUTPUT_DIRECTORY = &lt;br /&gt;
and change it to&lt;br /&gt;
 OUTPUT_DIRECTORY = ../../../build/doc&lt;br /&gt;
&lt;br /&gt;
Now run doxygen and it will create the html docs in ''build/doc''.&lt;br /&gt;
&lt;br /&gt;
==CEED==&lt;br /&gt;
CEED is the new CEGUI unified editor. It can edit layouts and imagesets, supports projects and multiple open file tabs, visual and source editing, preview and more. Please see [[CEED]] for a detailed description.&lt;br /&gt;
&lt;br /&gt;
CEED is written in [http://www.python.org/ Python] so there's no need to build it; all that's required is Python2 and it's dependencies.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you'd rather use a stable package that includes dependencies, please follow [[Downloads]]}}&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
CEED requires a Python 2 interpreter, version 2.6 or higher.&lt;br /&gt;
Apart from [[PyCEGUI]] (the CEGUI Python bindings), it depends on the following libraries:&lt;br /&gt;
* PyOpenGL&lt;br /&gt;
* Qt4, PySide (+ PySide Tools)&lt;br /&gt;
* Boost.Python&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Windows&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Windows dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Mac&amp;quot;&amp;gt;&lt;br /&gt;
{{Todo|Mac dependencies notes}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Arch Linux&amp;quot;&amp;gt;&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR).&lt;br /&gt;
{{Note|The packages from AUR may have been included in the ''[community]'' repository by now so check there first.}}&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Debian&amp;quot;&amp;gt;&lt;br /&gt;
;Wheezy&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list and then:&lt;br /&gt;
&lt;br /&gt;
{{CLI||sudo apt-get update}}&lt;br /&gt;
{{CLI||sudo apt-get install cmake python-opengl pyside-tools boost-python}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Fedora&amp;quot;&amp;gt;&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools.&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab title=&amp;quot;Gentoo&amp;quot;&amp;gt;&lt;br /&gt;
You can use these supplied ebuilds:[https://bitbucket.org/ChrisTrenkamp/gentoo-ogre3d-tools]. Copy these ebuilds to your local overlay[http://en.gentoo-wiki.com/wiki/Overlay#Local_Overlays], add the necessary options to your package.keywords and package.use files, and run '''''emerge -av dev-util/ceed'''''&lt;br /&gt;
&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running===&lt;br /&gt;
{{Todo|Update this section when CEED/CEGUI 0.8 is released}}&lt;br /&gt;
If you're following the directory structure outlined in [[#Building|Building]], you should have something like:&lt;br /&gt;
 cegui                          (root working directory)&lt;br /&gt;
 cegui/CEED                     (CEED repository copy)&lt;br /&gt;
&lt;br /&gt;
{{Todo|Add instructions on where to extract the stable source packages (when available) so that we maintain a common directory structure}}&lt;br /&gt;
&lt;br /&gt;
Running the main ''ceed-gui'' application could be as simple as:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
If you don't have PyCEGUI installed system-wide but built it in ''cegui/cegui_mk2/build'', you can run ''ceed-gui'' like this:&lt;br /&gt;
{{CLI|~/cegui/CEED|2=PYTHONPATH=../cegui_mk2/build/lib:.:$PYTHONPATH python2 bin/ceed-gui}}&lt;br /&gt;
&lt;br /&gt;
====Running from Mercurial====&lt;br /&gt;
If you've cloned the CEED mercurial repository, you will most likely get the following error when you try to run ''ceed-gui'':&lt;br /&gt;
 ImportError: No module named mainwindow&lt;br /&gt;
This is because the compiled .ui files are not part of the repository. Edit the file ''ceed/version.py'' with your favorite text editor and change the value of '''CEED_developerMode''' from '''False''' to '''True'''.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
If you encounter a problem that's not listed here, please make a post on the appropriate forum: [http://www.cegui.org.uk/phpBB2/viewforum.php?f=10 CEGUI], [http://www.cegui.org.uk/phpBB2/viewforum.php?f=15 CEED].&lt;br /&gt;
&lt;br /&gt;
For comments about this article, you may use it's discussion page.&lt;br /&gt;
&lt;br /&gt;
=Related articles=&lt;br /&gt;
* [[Eclipse and CEGUI]]&lt;br /&gt;
* [[Contribution|Contributing to the development of CEGUI]]&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=CEGUI_In_Practice_-_A_Game_Console&amp;diff=5530</id>
		<title>CEGUI In Practice - A Game Console</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=CEGUI_In_Practice_-_A_Game_Console&amp;diff=5530"/>
				<updated>2014-09-13T22:11:05Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: Added tabber&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.7}}&lt;br /&gt;
{{VersionBadge|0.8}}&lt;br /&gt;
{{Series|CEGUI In Practice|6}}&lt;br /&gt;
&lt;br /&gt;
== CEGUI InPractice 6 ==&lt;br /&gt;
&lt;br /&gt;
Welcome back! This tutorial we will put together the knowledge from the past few chapters to create a functioning Console window. The last few tutorials have given us the basics. Now its time to put that knowledge to use and make something we can use in our game.&lt;br /&gt;
&lt;br /&gt;
==== Game Plan ====&lt;br /&gt;
&lt;br /&gt;
Okay, now lets look at what we need to do. We will want to be able to type in commands, press the send button, and have them output into the text box. We will also probably want to acknowledge when enter is pressed as thats the 'normal' feel of typing into a chat.&lt;br /&gt;
&lt;br /&gt;
We discussed earlier how to send input to CEGUI ([[CEGUI In Practice - Managing input]]), so we will have to assume that you have that working (and probably built the application structure behind it). We will also assume you used the previous tutorial's layout file and naming for the console window ( [[CEGUI In Practice - Using .layout files]]).&lt;br /&gt;
&lt;br /&gt;
Due to the fact that we are getting to a slightly more advanced implementation of CEGUI here, and because we may want the ConsoleWindow to do other more useful things (like parsing strings for /say commands) I'm going to create a class to encompass the CEGUI ConsoleWindow.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;CEGUI/CEGUI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class GameConsoleWindow&lt;br /&gt;
{&lt;br /&gt;
    public:&lt;br /&gt;
       GameConsoleWindow();                   // Constructor&lt;br /&gt;
       void setVisible(bool visible);         // Hide or show the console&lt;br /&gt;
       bool isVisible();                      // return true if console is visible, false if is hidden&lt;br /&gt;
&lt;br /&gt;
    private:&lt;br /&gt;
       void CreateCEGUIWindow();                                  // The function which will load in the CEGUI Window and register event handlers&lt;br /&gt;
       void RegisterHandlers();                                   // Register our handler functions&lt;br /&gt;
       bool Handle_TextSubmitted(const CEGUI::EventArgs &amp;amp;e);      // Handle when we press Enter after typing&lt;br /&gt;
       bool Handle_SendButtonPressed(const CEGUI::EventArgs &amp;amp;e);  // Handle when we press the Send button         &lt;br /&gt;
       void ParseText(CEGUI::String inMsg);                       // Parse the text the user submitted.&lt;br /&gt;
       void OutputText(CEGUI::String inMsg,                       // Post the message to the ChatHistory listbox.&lt;br /&gt;
              CEGUI::Colour colour = CEGUI::Colour( 0xFFFFFFFF)); //   with a white color default&lt;br /&gt;
       &lt;br /&gt;
       CEGUI::Window *m_ConsoleWindow;                            // This will be a pointer to the ConsoleRoot window.&lt;br /&gt;
       CEGUI::String sNamePrefix;                                  // This will be the prefix name we give the layout&lt;br /&gt;
       static int iInstanceNumber;                                 // This will be the instance number for this class.&lt;br /&gt;
       bool m_bConsole;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alright, so that will be our class. It might look daunting, but don't worry it will all make sense in the end.&lt;br /&gt;
&lt;br /&gt;
==== The Constructor ====&lt;br /&gt;
&lt;br /&gt;
I'm going to use the constructor as the main point of automation here. And while I believe it is normally bad practice to call functions which could potentially fail within a constructor, I'm going to anyway for ease of this tutorial. We will have it Initialize some variables, and then call the CreateCEGUIWindow function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int GameConsoleWindow::iInstanceNumber;            // Don't forget this declaration&lt;br /&gt;
&lt;br /&gt;
GameConsoleWindow::GameConsoleWindow()&lt;br /&gt;
{&lt;br /&gt;
   m_ConsoleWindow = NULL;       // Always good practice to initialize a pointer to a NULL value, helps when switching to Release Builds.&lt;br /&gt;
   iInstanceNumber = 0;&lt;br /&gt;
   sNamePrefix = &amp;quot;&amp;quot;;&lt;br /&gt;
   CreateCEGUIWindow();&lt;br /&gt;
   setVisible(false);&lt;br /&gt;
   m_bConsole = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== Setting up the Window ====&lt;br /&gt;
&lt;br /&gt;
Now we need to setup the window. We have done this before in the .layout tutorial so we will do it again here. However, we mentioned before that you could use a prefix when loading a .layout to avoid name conflicts if you load multiple layouts. So we need to account for that. Will we need multiple consoles? Who knows, might as well build it in while we're designing it right?&lt;br /&gt;
&lt;br /&gt;
Lets write the CreateCEGUIWindow function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void GameConsoleWindow::CreateCEGUIWindow()&lt;br /&gt;
{&lt;br /&gt;
	// Get a local pointer to the CEGUI Window Manager, Purely for convenience to reduce typing&lt;br /&gt;
	CEGUI::WindowManager *pWindowManager = CEGUI::WindowManager::getSingletonPtr();&lt;br /&gt;
&lt;br /&gt;
        // Now before we load anything, lets increase our instance number to ensure no conflicts.  &lt;br /&gt;
        // I like the format #_ConsoleRoot so thats how i'm gonna make the prefix.  This simply&lt;br /&gt;
        // Increments the iInstanceNumber then puts it + a _ into the sNamePrefix string. &lt;br /&gt;
        sNamePrefix = ++iInstanceNumber + &amp;quot;_&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        // Now that we can ensure that we have a safe prefix, and won't have any naming conflicts lets create the window&lt;br /&gt;
        // and assign it to our member window pointer m_ConsoleWindow&lt;br /&gt;
        // inLayoutName is the name of your layout file (for example &amp;quot;console.layout&amp;quot;), don't forget to rename inLayoutName by our layout file&lt;br /&gt;
        // Note : for CEGUI 0.7&lt;br /&gt;
        m_ConsoleWindow = pWindowManager-&amp;gt;loadWindowLayout(inLayoutName,sNamePrefix);&lt;br /&gt;
&lt;br /&gt;
        // Note : for CEGUI 0.8 &lt;br /&gt;
        m_ConsoleWindow = pWindowManager-&amp;gt;loadLayoutFromFile(inLayoutName);&lt;br /&gt;
&lt;br /&gt;
        // Being a good programmer, its a good idea to ensure that we got a valid window back. &lt;br /&gt;
        if (m_ConsoleWindow)&lt;br /&gt;
        {&lt;br /&gt;
            // Lets add our new window to the Root GUI Window&lt;br /&gt;
            CEGUI::System::getSingleton().getGUISheet()-&amp;gt;addChildWindow(m_ConsoleWindow);&lt;br /&gt;
            // Now register the handlers for the events (Clicking, typing, etc)&lt;br /&gt;
            (this)-&amp;gt;RegisterHandlers();&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            // Something bad happened and we didn't successfully create the window lets output the information&lt;br /&gt;
            CEGUI::Logger::getSingleton().logEvent(&amp;quot;Error: Unable to load the ConsoleWindow from .layout&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alright so that created the window. And after the window was created, we Registered its handlers. Lets look at how we go about&lt;br /&gt;
registering those handlers. Below is the RegisterHandlers function, it will probably look familiar if you have been reading along:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void GameConsoleWindow::RegisterHandlers()&lt;br /&gt;
{&lt;br /&gt;
    // Alright now we need to register the handlers.  We mentioned above we want to acknowledge when the user presses Enter, and &lt;br /&gt;
      // when they click the 'Send' button.  So we need to register each of those events&lt;br /&gt;
&lt;br /&gt;
    // First lets register the Send button.  Our buttons name is &amp;quot;ConsoleRoot/SendButton&amp;quot;, but don't forget we prepended a name to      &lt;br /&gt;
      // all the windows which were loaded.  So we need to take that into account here.&lt;br /&gt;
    m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/SendButton&amp;quot;)-&amp;gt;subscribeEvent(&lt;br /&gt;
                        CEGUI::PushButton::EventClicked,    // If we recall our button was of type CEGUI::PushButton in the .scheme&lt;br /&gt;
                                                            // and we want to acknowledge the EventClicked action.&lt;br /&gt;
                        CEGUI::Event::Subscriber(           // What function to call when this is clicked.  Remember, all functions &lt;br /&gt;
                                                            // are contained within (this) class.&lt;br /&gt;
                        &amp;amp;GameConsoleWindow::Handle_SendButtonPressed,  // Call Handle_SendButtonPressed member of GameConsoleWindow&lt;br /&gt;
                        this));                             // Using (this) instance we're in right now&lt;br /&gt;
&lt;br /&gt;
    // Now for the TextSubmitted, we will be registering the event on the edit box, which is where the users cursor will be when   &lt;br /&gt;
      //they press Enter.  I'm not going to break this down as much, because I believe that is very ugly to read, but was a good  &lt;br /&gt;
      //way of expressing it.  Here is the function call.&lt;br /&gt;
    m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/EditBox&amp;quot;)-&amp;gt;subscribeEvent(CEGUI::Editbox::EventTextAccepted,&lt;br /&gt;
                        CEGUI::Event::Subscriber(&amp;amp;GameConsoleWindow::Handle_TextSubmitted,this));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That last line looks pretty ugly, but remember if you include namespace CEGUI; you won't have all those Ugly CEGUI:: prefixing all the code. As you can see, once you get the hang of registering events its pretty easy. One thing to note, is there are more than one way to account for certain actions. On the button, you could also have registered for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
    CEGUI::PushButton::EventMouseClick&lt;br /&gt;
    CEGUI::PushButton::EventMouseButtonDown&lt;br /&gt;
    CEGUI::PushButton::EventMouseButtonUp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Depending on what result you were looking for, and where you wanted the action to take place. For example, windows interfaces usually react on the MouseButtonUp, allowing the user to click it, and then slide off the mouse if it wasn't what they really wanted to press.&lt;br /&gt;
&lt;br /&gt;
==== The Handlers ====&lt;br /&gt;
&lt;br /&gt;
Now that we have registered the events, we need to actually write the functions which will handle those events. We need to handle both the Text Submitted, and the SendButton's event. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
bool GameConsoleWindow::Handle_TextSubmitted(const CEGUI::EventArgs &amp;amp;e)&lt;br /&gt;
{&lt;br /&gt;
    // The following line of code is not really needed in this particular example, but is good to show.  The EventArgs by itself &lt;br /&gt;
     // only has limited uses. You will find it more useful to cast this to another type of Event.  In this case WindowEventArgs&lt;br /&gt;
     // could be much more useful as we are dealing with a CEGUI::Window.  Notably, this will allow you access to the .window&lt;br /&gt;
     // member of the argument, which will have a pointer to the window which called the event.  You can imagine that would be&lt;br /&gt;
     // useful!&lt;br /&gt;
    const CEGUI::WindowEventArgs* args = static_cast&amp;lt;const CEGUI::WindowEventArgs*&amp;gt;(&amp;amp;e);&lt;br /&gt;
&lt;br /&gt;
    // Now we need to get the text that is in the edit box right now.&lt;br /&gt;
    CEGUI::String Msg = m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/EditBox&amp;quot;)-&amp;gt;getText();&lt;br /&gt;
&lt;br /&gt;
    // Since we have that string, lets send it to the TextParser which will handle it from here&lt;br /&gt;
    (this)-&amp;gt;ParseText(Msg);&lt;br /&gt;
&lt;br /&gt;
    // Now that we've finished with the text, we need to ensure that we clear out the EditBox.  This is what we would expect&lt;br /&gt;
      // To happen after we press enter&lt;br /&gt;
    m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/EditBox&amp;quot;)-&amp;gt;setText(&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you might be wondering why we didn't just Parse the text in here? Well If the user presses Enter, or presses the Send button the text will either way have to be parsed, and it will be parsed in the same manner. So why write the same code twice?&lt;br /&gt;
&lt;br /&gt;
Below is the code for handling the SendButton being pressed. I know I just harped on rewriting code, and this will ironically look alot like the Code for when text has been submitted. But thats because we don't really need the button to do much. We probably could have just had the ButtonPress trigger the Handle_TextSubmitted above when we registered the handlers, but what if we wanted a clicking noise to be played when the player pressed the button? Then we would need a seperate handler for the Send button. Anyway 'nuff said, lets show the code.&lt;br /&gt;
Note : For CEGUI 0.8 the root node for layout (ConsoleRoot in this case) is not necessary so you must use this : &amp;quot;EditBox&amp;quot; and not &amp;quot;ConsoleRoot/EditBox&amp;quot; (it's the same thing for Button and other)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
bool GameConsoleWindow::Handle_SendButtonPressed(const CEGUI::EventArgs &amp;amp;e)&lt;br /&gt;
{&lt;br /&gt;
    CEGUI::String Msg = m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/EditBox&amp;quot;)-&amp;gt;getText();&lt;br /&gt;
    (this)-&amp;gt;ParseText(Msg);&lt;br /&gt;
    m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/EditBox&amp;quot;)-&amp;gt;setText(&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Parsing that Text ====&lt;br /&gt;
&lt;br /&gt;
This portion is not going to be so much CEGUI Related as it will be string manipulation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void GameConsoleWindow::ParseText(CEGUI::String inMsg)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
       // I personally like working with std::string. So i'm going to convert it here.&lt;br /&gt;
       std::string inString = inMsg.c_str();&lt;br /&gt;
&lt;br /&gt;
	if (inString.length() &amp;gt;= 1) // Be sure we got a string longer than 0&lt;br /&gt;
	{&lt;br /&gt;
		if (inString.at(0) == '/') // Check if the first letter is a 'command'&lt;br /&gt;
		{&lt;br /&gt;
			std::string::size_type commandEnd = inString.find(&amp;quot; &amp;quot;, 1);&lt;br /&gt;
			std::string command = inString.substr(1, commandEnd - 1);&lt;br /&gt;
			std::string commandArgs = inString.substr(commandEnd + 1, inString.length() - (commandEnd + 1));&lt;br /&gt;
			//convert command to lower case&lt;br /&gt;
			for(std::string::size_type i=0; i &amp;lt; command.length(); i++)&lt;br /&gt;
			{&lt;br /&gt;
				command[i] = tolower(command[i]);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// Begin processing&lt;br /&gt;
&lt;br /&gt;
			if (command == &amp;quot;say&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				std::string outString = &amp;quot;You:&amp;quot; + inString; // Append our 'name' to the message we'll display in the list&lt;br /&gt;
                         	OutputText(outString);&lt;br /&gt;
			}&lt;br /&gt;
			else if (command == &amp;quot;quit&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				// do a /quit &lt;br /&gt;
			}&lt;br /&gt;
			else if (command == &amp;quot;help&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				// do a /help&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				std::string outString = &amp;quot;&amp;lt;&amp;quot; + inString + &amp;quot;&amp;gt; is an invalid command.&amp;quot;;&lt;br /&gt;
				(this)-&amp;gt;OutputText(outString,CEGUI::Colour(1.0f,0.0f,0.0f)); // With red ANGRY colors!&lt;br /&gt;
			}&lt;br /&gt;
		} // End if /&lt;br /&gt;
		else&lt;br /&gt;
		{&lt;br /&gt;
	 (this)-&amp;gt;OutputText(inString); // no commands, just output what they wrote&lt;br /&gt;
		}&lt;br /&gt;
	} &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Phew, thats kinda an annoying function isn't it? Well, the point to note is that it checks for a forward slash, if it finds one then it enters the if/else conditions to see if it found an applicable command. If it does it does something. In this example it handles the actions right there, if you were to write it a little more advanced, it could goto a (this)-&amp;gt;ShowHelp() or (this)-&amp;gt;QuitGame(). &lt;br /&gt;
&lt;br /&gt;
The point to note is the OutputText. That will add the items to the ListBox of Chat history. We will work on that function now.&lt;br /&gt;
&lt;br /&gt;
==== OutputText ====&lt;br /&gt;
&lt;br /&gt;
A point to note here. A CEGUI::Listbox window doesn't naturally word wrap. And wordwrapping is a very nice thing to have in a chat window, as everyone has different resolutions on their screens, and some people REALLY like to ramble! (But not this magnificant author of course!). So we will use a Custom created widget which is available on the forums [http://www.cegui.org.uk/phpBB2/viewtopic.php?f=10&amp;amp;t=4322]. you could use a normal listbox, but you wouldn't get word-wrapping.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
void GameConsoleWindow::OutputText(CEGUI::String inMsg, CEGUI::Colour colour)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// Get a pointer to the ChatBox so we don't have to use this ugly getChild function everytime.&lt;br /&gt;
	CEGUI::Listbox *outputWindow = static_cast&amp;lt;CEGUI::Listbox*&amp;gt;(m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/ChatBox&amp;quot;));&lt;br /&gt;
	&lt;br /&gt;
	CEGUI::ListboxTextItem* newItem=0; // This will hold the actual text and will be the listbox segment / item&lt;br /&gt;
&lt;br /&gt;
	newItem = new CEGUI::ListboxTextItem(inMsg); // instance new item&lt;br /&gt;
        newItem-&amp;gt;setTextColours(colour); // Set the text color&lt;br /&gt;
	outputWindow-&amp;gt;addItem(newItem); // Add the new ListBoxTextItem to the ListBox&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we add function setVisible and isVisible to toggle the visibility of the console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void GameConsoleWindow::setVisible(bool visible)&lt;br /&gt;
{&lt;br /&gt;
    m_ConsoleWindow-&amp;gt;setVisible(visible);&lt;br /&gt;
    m_bConsole = visible;&lt;br /&gt;
&lt;br /&gt;
    CEGUI::EditBox* editBox = m_ConsoleWindow-&amp;gt;getChild(sNamePrefix + &amp;quot;ConsoleRoot/EditBox&amp;quot;);&lt;br /&gt;
    if(visible)&lt;br /&gt;
       editBox-&amp;gt;activate();&lt;br /&gt;
    else&lt;br /&gt;
       editBox-&amp;gt;deactivate();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bool GameConsoleWindow::isVisible()&lt;br /&gt;
{&lt;br /&gt;
    return m_ConsoleWindow-&amp;gt;isVisible();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Here is the console.layout file:&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
CEGUI 0.8= &lt;br /&gt;
You can make your own with CEED if this one doesn't suit you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;GUILayout version=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Window name=&amp;quot;Console&amp;quot; type=&amp;quot;TaharezLook/FrameWindow&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Property name=&amp;quot;AlwaysOnTop&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property name=&amp;quot;MinSize&amp;quot; value=&amp;quot;{{0.2,0},{0.2,0}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property name=&amp;quot;MaxSize&amp;quot; value=&amp;quot;{{0.8,0},{0.8,0}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property name=&amp;quot;Position&amp;quot; value=&amp;quot;{{0.5,0},{0.5,0}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property name=&amp;quot;Size&amp;quot; value=&amp;quot;{{0.5,0},{0.45,0}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property name=&amp;quot;Text&amp;quot; value=&amp;quot;Console&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property name=&amp;quot;CloseButtonEnabled&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Window name=&amp;quot;Submit&amp;quot; type=&amp;quot;TaharezLook/Button&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;ID&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;VerticalAlignment&amp;quot; value=&amp;quot;Bottom&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;HorizontalAlignment&amp;quot; value=&amp;quot;Right&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;MaxSize&amp;quot; value=&amp;quot;{{1,0},{1,0}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Position&amp;quot; value=&amp;quot;{{0,-7},{0,-7}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Size&amp;quot; value=&amp;quot;{{0.25,0},{0,30}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Text&amp;quot; value=&amp;quot;Submit&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Window&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Window name=&amp;quot;Editbox&amp;quot; type=&amp;quot;TaharezLook/Editbox&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;ID&amp;quot; value=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;VerticalAlignment&amp;quot; value=&amp;quot;Bottom&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;MaxSize&amp;quot; value=&amp;quot;{{1,0},{1,0}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Position&amp;quot; value=&amp;quot;{{0,7},{0,-7}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Size&amp;quot; value=&amp;quot;{{0.75,-21},{0,30}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Text&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Window&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Window name=&amp;quot;History&amp;quot; type=&amp;quot;TaharezLook/Listbox&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;ID&amp;quot; value=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;MaxSize&amp;quot; value=&amp;quot;{{1,0},{1,0}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Position&amp;quot; value=&amp;quot;{{0,7},{0,7}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property name=&amp;quot;Size&amp;quot; value=&amp;quot;{{1,-14},{1,-47}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Window&amp;gt;&lt;br /&gt;
    &amp;lt;/Window&amp;gt;&lt;br /&gt;
&amp;lt;/GUILayout&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|-|&lt;br /&gt;
CEGUI 0.7=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;GUILayout&amp;gt;&lt;br /&gt;
    &amp;lt;Window Type=&amp;quot;TaharezLook/FrameWindow&amp;quot; Name=&amp;quot;ConsoleRoot&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;Property Name=&amp;quot;UnifiedAreaRect&amp;quot; Value=&amp;quot;{{0,0},{0,0},{0,848},{0,226}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property Name=&amp;quot;Text&amp;quot; Value=&amp;quot;Console&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property Name=&amp;quot;RollUpEnabled&amp;quot; Value=&amp;quot;False&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property Name=&amp;quot;SizingEnabled&amp;quot; Value=&amp;quot;False&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Property Name=&amp;quot;DragMovingEnabled&amp;quot; Value=&amp;quot;False&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;AutoWindow NameSuffix=&amp;quot;__auto_titlebar__&amp;quot; &amp;gt;&lt;br /&gt;
            &amp;lt;Property Name=&amp;quot;DraggingEnabled&amp;quot; Value=&amp;quot;False&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/AutoWindow&amp;gt;&lt;br /&gt;
        &amp;lt;Window Type=&amp;quot;TaharezLook/Listbox&amp;quot; Name=&amp;quot;ConsoleRoot/ChatBox&amp;quot; &amp;gt;&lt;br /&gt;
            &amp;lt;Property Name=&amp;quot;UnifiedAreaRect&amp;quot; Value=&amp;quot;{{0,0},{0,0},{0,812},{0,160}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Window&amp;gt;&lt;br /&gt;
        &amp;lt;Window Type=&amp;quot;TaharezLook/Editbox&amp;quot; Name=&amp;quot;ConsoleRoot/EditBox&amp;quot; &amp;gt;&lt;br /&gt;
            &amp;lt;Property Name=&amp;quot;UnifiedAreaRect&amp;quot; Value=&amp;quot;{{0,0},{0,166},{0,649},{0,197}}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Window&amp;gt;&lt;br /&gt;
        &amp;lt;Window Type=&amp;quot;TaharezLook/Button&amp;quot; Name=&amp;quot;ConsoleRoot/SendButton&amp;quot; &amp;gt;&lt;br /&gt;
            &amp;lt;Property Name=&amp;quot;UnifiedAreaRect&amp;quot; Value=&amp;quot;{{0,672},{0,164},{0,771},{0,196}}&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;Property Name=&amp;quot;Text&amp;quot; Value=&amp;quot;Send&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Window&amp;gt;&lt;br /&gt;
    &amp;lt;/Window&amp;gt;&lt;br /&gt;
&amp;lt;/GUILayout&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conclusion ====&lt;br /&gt;
&lt;br /&gt;
And that ladies and gentleman, is our Console box. Not too terrible was it? Now of course, remember there are many ways to skin the proverbial cat. This is just an example of ways to do things. If you would like some homework, you could investigate why the SendButton does weird things when you drag and resize the window. I'll give you a hint, look at the way we're defining how big the ConsoleRoot is and where its child windows are placed... and what implications we might have by using relative scales for things.. Okay, i guess that was a big hint wasn't it! &lt;br /&gt;
&lt;br /&gt;
Till next time...&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Mpreisler_TODO&amp;diff=5511</id>
		<title>Mpreisler TODO</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Mpreisler_TODO&amp;diff=5511"/>
				<updated>2014-09-02T11:24:51Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: /* Done (good job, very nice, awesome job!) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Open Tasks ==&lt;br /&gt;
&lt;br /&gt;
* Split OpenGL Renderer into OpenGL and OpenGL3 Renderer while sharing common files&lt;br /&gt;
* Merge CoreWindowRenderer into CEGUI base and maybe some of the other CEGUI libs as well (?)&lt;br /&gt;
* &amp;quot;we should do a better job at guessing paths in the sample browser though. I wanted to look into that&amp;quot;&lt;br /&gt;
* replace Vector2f, Vector3f and Quaternion with glm classes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Done (good job, very nice, awesome job!) ==&lt;br /&gt;
* Fix the PyCEGUI bindings for the PropertyDefinitions, PropertyLinkDefinitions, etc&lt;br /&gt;
* &amp;quot;we probably should add code examples to EventSet &amp;lt;br /&amp;gt; mpreisler	how to bind a free function, class method, how to use it with boost::bind and C++ lambdas&amp;quot;&lt;br /&gt;
* Merge all sample dlls of the SampleBrowser into a single executable (done by lucebac)&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Mpreisler_TODO&amp;diff=5510</id>
		<title>Mpreisler TODO</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Mpreisler_TODO&amp;diff=5510"/>
				<updated>2014-09-02T11:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Open Tasks ==&lt;br /&gt;
&lt;br /&gt;
* Split OpenGL Renderer into OpenGL and OpenGL3 Renderer while sharing common files&lt;br /&gt;
* Merge CoreWindowRenderer into CEGUI base and maybe some of the other CEGUI libs as well (?)&lt;br /&gt;
* &amp;quot;we should do a better job at guessing paths in the sample browser though. I wanted to look into that&amp;quot;&lt;br /&gt;
* replace Vector2f, Vector3f and Quaternion with glm classes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Done (good job, very nice, awesome job!) ==&lt;br /&gt;
* Fix the PyCEGUI bindings for the PropertyDefinitions, PropertyLinkDefinitions, etc&lt;br /&gt;
* &amp;quot;we probably should add code examples to EventSet &amp;lt;br /&amp;gt; mpreisler	how to bind a free function, class method, how to use it with boost::bind and C++ lambdas&amp;quot;&lt;br /&gt;
* Merge all sample dlls of the SampleBrowser into a single executable (by lucebac)&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=CELayout_Editor_-_Getting_Started_/_Building&amp;diff=5504</id>
		<title>CELayout Editor - Getting Started / Building</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=CELayout_Editor_-_Getting_Started_/_Building&amp;diff=5504"/>
				<updated>2014-08-24T21:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.6}}&lt;br /&gt;
&lt;br /&gt;
{{notice|message=It is strongly recommended ''not'' to use CELayoutEditor anymore. Use [[CEED]] instead, please.}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This page tries to get you up and running with the layout editor. It will explain both the use of a distribution, and downloading from SVN. If you have problems, don't hesitate to visit the forums. And besides, you may alter this page with any information you think will be helpful to future readers of this page.&lt;br /&gt;
Some parts might be a little too verbose, but better safe then sorry ;-) If you're done reading, don't forget to read the [http://www.cegui.org.uk/wiki/index.php/Manual manual].&lt;br /&gt;
&lt;br /&gt;
== Using a distribution ==&lt;br /&gt;
&lt;br /&gt;
This is the recommended way. The distributions are stable and compatible with official CEGUI library releases. For example the 0.4.1 editor will work fine (&amp;quot;proven&amp;quot;) with the 0.4.1 CEGUI release. Visit the [http://www.cegui.org.uk/wiki/index.php/Downloads download page] for Windows installer(s) and Linux source distribution(s). Before installing a new version, it is recommeded that you uninstall a previous version first, because files might get removed in newer versions and such.&lt;br /&gt;
On windows you can stop reading now. Linux and/or SVN users must read on for a bit more.&lt;br /&gt;
&lt;br /&gt;
== Compiling yourself ==&lt;br /&gt;
If you are a non-windows user, or prefer SVN access over distributions, you must follow the steps mentioned in this topic.&lt;br /&gt;
&lt;br /&gt;
=== Setup CEGUI ===&lt;br /&gt;
Please see the [http://www.cegui.org.uk/wiki/index.php/HOWTO:_Obtain_the_library_source_from_subversion CEGUI download info] for downloading and compiling the cegui library.&lt;br /&gt;
&lt;br /&gt;
= Compile WxWidgets =&lt;br /&gt;
&lt;br /&gt;
This topic explains how to get and setup this cross-platform application framework.&lt;br /&gt;
&lt;br /&gt;
Distributions for many platforms can be found [http://www.wxwidgets.org/downld2.htm here].&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
=== Recommended: WxWidgets (2.8.11) ===&lt;br /&gt;
&lt;br /&gt;
* [http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.11.zip Download as .zip]&lt;br /&gt;
* I recommend applying the following change manually in the file '''wxWidgets-2.8.11\src\msw\stdpaths.cpp''' :&lt;br /&gt;
In the function '''wxString wxStandardPaths::GetAppDir()''' ( starting at line 249 ) delete the lines 253 - 263 which should be equal to the following code snippet:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// allow running the apps directly from build directory in debug builds&lt;br /&gt;
#ifdef __WXDEBUG__&lt;br /&gt;
    wxString lastdir;&lt;br /&gt;
    if ( fn.GetDirCount() )&lt;br /&gt;
    {&lt;br /&gt;
        lastdir = fn.GetDirs().Last();&lt;br /&gt;
        lastdir.MakeLower();&lt;br /&gt;
        if ( lastdir.Matches(_T(&amp;quot;debug*&amp;quot;)) || lastdir.Matches(_T(&amp;quot;vc_msw*&amp;quot;)) )&lt;br /&gt;
            fn.RemoveLastDir();&lt;br /&gt;
    }&lt;br /&gt;
#endif // __WXDEBUG__&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Deleting those lines will fix a bug leading to inconsistency between debug and release and allows you to load the splash screen png-file directly from the debug directory, same as it is the case for release. Otherwise, for the debug configuration the splash screen will be loaded from the bin directory (one level above).&lt;br /&gt;
* For compiling you have two options:&lt;br /&gt;
** Option 1 (fast): Compile using Visual Studio command line&lt;br /&gt;
*** Open the VS command line ( Start-&amp;gt;All Programs-&amp;gt;Microsoft Visual Studio-&amp;gt;Visual Studio Tools-&amp;gt;Visual Studio command line )&lt;br /&gt;
*** In the command line change to the build directory '''wxWidgets-2.8.11\build\msw''' (example: &amp;quot;'''cd C:\wxWidgets-2.8.11\build\msw'''&amp;quot;)&lt;br /&gt;
*** To compile the debug configuration enter '''nmake -f makefile.vc BUILD=debug UNICODE=1 USE_OPENGL=1'''&lt;br /&gt;
*** To compile the release configuration enter '''nmake -f makefile.vc BUILD=release UNICODE=1 USE_OPENGL=1'''&lt;br /&gt;
** Option 2: Compile using the Visual Studio solution:&lt;br /&gt;
*** Change the lines '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1''' in the following files:&lt;br /&gt;
*** '''wxWidgets-2.8.11\include\wx\msw\setup.h'''&lt;br /&gt;
*** '''wxWidgets-2.8.11\include\wx\msw\setup0.h'''&lt;br /&gt;
*** '''wxWidgets-2.8.11\include\wx\univ\setup.h'''&lt;br /&gt;
*** Start '''wxWidgets-2.8.11\build\msw\wx.dsw''' (if saving the project afterwards, you can open wx.sln for later use cases)&lt;br /&gt;
*** Build all projects in &amp;quot;Unicode Debug&amp;quot; and &amp;quot;Unicode Release&amp;quot; configurations&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (2.9.0) ===&lt;br /&gt;
* '''NOTE:''' Appearently this release doesn't work well with the editor yet. Please use 2.8.10 as latest 'safe' release.&lt;br /&gt;
* Download [http://www.wxwidgets.org/downloads/ wxAll].&lt;br /&gt;
* Edit '''wxWidgets-2.9.0\include\wx\msw\setup.h''', '''wxWidgets-2.9.0\include\wx\msw\setup0.h''' and '''wxWidgets-2.9.0\include\wx\univ\setup.h''' to change from '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1'''.&lt;br /&gt;
* Build '''wxWidgets-2.9.0\build\msw\wx.dsw''' (Appearently recent wx releases include solutions for vc7, 8 and 9 too).&lt;br /&gt;
* More unknown changes???&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (2.8.3 - 2.8.10) ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.wxwidgets.org/downloads/ wxAll].&lt;br /&gt;
* Edit '''wxWidgets-2.8.3\include\wx\msw\setup0.h''' and '''wxWidgets-2.8.3\include\wx\univ\setup.h''' to change from '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1'''.&lt;br /&gt;
* Build '''wxWidgets-2.8.3\build\msw\wx.dsw'''&lt;br /&gt;
* More unknown changes???&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (2.6.4) ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.wxwidgets.org/downloads/ wxAll].&lt;br /&gt;
* Edit '''wxWidgets-2.6.4\include\wx\msw\setup.h''' and '''wxWidgets-2.6.4\include\wx\univ\setup.h''' to change from '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1'''.&lt;br /&gt;
* Build '''wxWidgets-2.6.4\build\msw\wx.dsw'''&lt;br /&gt;
&lt;br /&gt;
'''Note: '''I (scriptkid) always use the regular 'unicode debug' and 'unicode release' builds. But i assume that the DLLs will work fine too. If it hasn't been done so already, add 'include/msvc' and include to the include build paths and 'lib/vc_lib' to the library paths in Visual Studio.&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (less than 2.6.4) ===&lt;br /&gt;
&lt;br /&gt;
Because of issues I had compiling wxWidgets properly, I'm going to go into more depth for using Visual Studio 7.1 or 8.0 to do so. (Jouninkomiko 05-20-2006)&lt;br /&gt;
&lt;br /&gt;
* Because the editor uses the wxGLCanvas, open include/msvc/wx/setup.h, and change the define for wxUSE_GLCANVAS from 0 to 1.&lt;br /&gt;
** Within the src/wxWindows.dsw solution you'll find this setting inside the wxWindows project, under Headers/Setup/setup.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Another Windows specific step-by-step guide was posted in the forums by [[User:fjeronimo|fjeronimo]] and can be read here: http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2760&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
* Enter ./configure --with-opengl --enable-unicode&lt;br /&gt;
* Enter make&lt;br /&gt;
* Enter make install&lt;br /&gt;
&lt;br /&gt;
=== Setup the editor ===&lt;br /&gt;
This topic explains how to get and setup the editor from sources.&lt;br /&gt;
&lt;br /&gt;
==== Checkout ====&lt;br /&gt;
If you use a non-command line utility such as TortoiseSVN, you can choose one of these URLs to respectively checkout the HEAD or one of the stable branches.&lt;br /&gt;
 http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/trunk&lt;br /&gt;
 http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/v-0-4-1&lt;br /&gt;
 http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/before_wxwidgets&lt;br /&gt;
&lt;br /&gt;
Or, from the command line (same order):&lt;br /&gt;
 svn co http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/trunk MyEditorFolder&lt;br /&gt;
 svn co http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/v-0-4-1 MyEditorFolder&lt;br /&gt;
 svn co http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/before_wxwidgets MyEditorFolder&lt;br /&gt;
&lt;br /&gt;
Retreiving is always &amp;quot;anonymous&amp;quot;, so it should work immediately.&lt;br /&gt;
&lt;br /&gt;
==== Compile ====&lt;br /&gt;
&lt;br /&gt;
On windows:&lt;br /&gt;
* Open vc++6/CELayoutEditor.dsw (VS6) or vc++6/CELayoutEditor.sln (VS7.1). Conversions should happen automatically when opening on newer versions. Make sure that you add the directories 'wxWidgets-x.x.x\include' and 'wxWidgets-x.x.x\include\msvc' to your Include Directories, and 'wxWidgets-x.x.x\lib\vc_lib' to your Library Directories.&lt;br /&gt;
* Also add CEGUI-0.5.0 to the project include folders.&lt;br /&gt;
* Also add CEGUI-0.5.0\include to the project include folders.&lt;br /&gt;
* Build either Debug or Release.&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
* Enter ./bootstrap&lt;br /&gt;
* Enter ./configure&lt;br /&gt;
* Enter make&lt;br /&gt;
* Enter make install&lt;br /&gt;
* Optionally set the CELAYOUTEDITOR_DATAPATH environment variable to point the editor to the correct 'datafiles' directory. If you do not set this variable, the editor will default to the location where it thinks the datafiles were installed (this will be typically be something like /usr/local/share/CELayoutEditor/datafiles). See the configuration file for additional details.&lt;br /&gt;
&lt;br /&gt;
Hopefully, we will have a mac-compatible project or makefile in the future as well, so watch this space! :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setup CELayoutEditor ==&lt;br /&gt;
&lt;br /&gt;
* If using the Visual Studio solution: go to the '''Project Settings''' and under '''Debugging''' set '''$(TargetDir)''' as the '''working directory''' for your configurations ('''Debug''' and '''Release''').&lt;br /&gt;
&lt;br /&gt;
* Get all the '''CEGUI dll s''' you need and place them in your working directories. ( e.g. in '''C:\CELayoutEditor\bin\debug''' and '''C:\CELayoutEditor\bin\release''' if &amp;quot;C:\CELayoutEditor&amp;quot; is your checkout directory). You will also need '''SILLY.dll''' and '''SILLY_d.dll''' from the CEGUI dependencies respectively placed in the release and debug directories.&lt;br /&gt;
&lt;br /&gt;
* Now after compiling, the CELayoutEditor should be ready to start and working. Everything regarding the .ini files and handling the editor should be covered in the manual.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=CELayout_Editor_-_Getting_Started_/_Building&amp;diff=5503</id>
		<title>CELayout Editor - Getting Started / Building</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=CELayout_Editor_-_Getting_Started_/_Building&amp;diff=5503"/>
				<updated>2014-08-24T20:54:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VersionBadge|0.6}}&lt;br /&gt;
&lt;br /&gt;
== Advice ==&lt;br /&gt;
&lt;br /&gt;
CELayoutEditor is out-of-date. Please use [[CEED]] instead.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
This page tries to get you up and running with the layout editor. It will explain both the use of a distribution, and downloading from SVN. If you have problems, don't hesitate to visit the forums. And besides, you may alter this page with any information you think will be helpful to future readers of this page.&lt;br /&gt;
Some parts might be a little too verbose, but better safe then sorry ;-) If you're done reading, don't forget to read the [http://www.cegui.org.uk/wiki/index.php/Manual manual].&lt;br /&gt;
&lt;br /&gt;
== Using a distribution ==&lt;br /&gt;
&lt;br /&gt;
This is the recommended way. The distributions are stable and compatible with official CEGUI library releases. For example the 0.4.1 editor will work fine (&amp;quot;proven&amp;quot;) with the 0.4.1 CEGUI release. Visit the [http://www.cegui.org.uk/wiki/index.php/Downloads download page] for Windows installer(s) and Linux source distribution(s). Before installing a new version, it is recommeded that you uninstall a previous version first, because files might get removed in newer versions and such.&lt;br /&gt;
On windows you can stop reading now. Linux and/or SVN users must read on for a bit more.&lt;br /&gt;
&lt;br /&gt;
== Compiling yourself ==&lt;br /&gt;
If you are a non-windows user, or prefer SVN access over distributions, you must follow the steps mentioned in this topic.&lt;br /&gt;
&lt;br /&gt;
=== Setup CEGUI ===&lt;br /&gt;
Please see the [http://www.cegui.org.uk/wiki/index.php/HOWTO:_Obtain_the_library_source_from_subversion CEGUI download info] for downloading and compiling the cegui library.&lt;br /&gt;
&lt;br /&gt;
= Compile WxWidgets =&lt;br /&gt;
&lt;br /&gt;
This topic explains how to get and setup this cross-platform application framework.&lt;br /&gt;
&lt;br /&gt;
Distributions for many platforms can be found [http://www.wxwidgets.org/downld2.htm here].&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
=== Recommended: WxWidgets (2.8.11) ===&lt;br /&gt;
&lt;br /&gt;
* [http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.11.zip Download as .zip]&lt;br /&gt;
* I recommend applying the following change manually in the file '''wxWidgets-2.8.11\src\msw\stdpaths.cpp''' :&lt;br /&gt;
In the function '''wxString wxStandardPaths::GetAppDir()''' ( starting at line 249 ) delete the lines 253 - 263 which should be equal to the following code snippet:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
// allow running the apps directly from build directory in debug builds&lt;br /&gt;
#ifdef __WXDEBUG__&lt;br /&gt;
    wxString lastdir;&lt;br /&gt;
    if ( fn.GetDirCount() )&lt;br /&gt;
    {&lt;br /&gt;
        lastdir = fn.GetDirs().Last();&lt;br /&gt;
        lastdir.MakeLower();&lt;br /&gt;
        if ( lastdir.Matches(_T(&amp;quot;debug*&amp;quot;)) || lastdir.Matches(_T(&amp;quot;vc_msw*&amp;quot;)) )&lt;br /&gt;
            fn.RemoveLastDir();&lt;br /&gt;
    }&lt;br /&gt;
#endif // __WXDEBUG__&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Deleting those lines will fix a bug leading to inconsistency between debug and release and allows you to load the splash screen png-file directly from the debug directory, same as it is the case for release. Otherwise, for the debug configuration the splash screen will be loaded from the bin directory (one level above).&lt;br /&gt;
* For compiling you have two options:&lt;br /&gt;
** Option 1 (fast): Compile using Visual Studio command line&lt;br /&gt;
*** Open the VS command line ( Start-&amp;gt;All Programs-&amp;gt;Microsoft Visual Studio-&amp;gt;Visual Studio Tools-&amp;gt;Visual Studio command line )&lt;br /&gt;
*** In the command line change to the build directory '''wxWidgets-2.8.11\build\msw''' (example: &amp;quot;'''cd C:\wxWidgets-2.8.11\build\msw'''&amp;quot;)&lt;br /&gt;
*** To compile the debug configuration enter '''nmake -f makefile.vc BUILD=debug UNICODE=1 USE_OPENGL=1'''&lt;br /&gt;
*** To compile the release configuration enter '''nmake -f makefile.vc BUILD=release UNICODE=1 USE_OPENGL=1'''&lt;br /&gt;
** Option 2: Compile using the Visual Studio solution:&lt;br /&gt;
*** Change the lines '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1''' in the following files:&lt;br /&gt;
*** '''wxWidgets-2.8.11\include\wx\msw\setup.h'''&lt;br /&gt;
*** '''wxWidgets-2.8.11\include\wx\msw\setup0.h'''&lt;br /&gt;
*** '''wxWidgets-2.8.11\include\wx\univ\setup.h'''&lt;br /&gt;
*** Start '''wxWidgets-2.8.11\build\msw\wx.dsw''' (if saving the project afterwards, you can open wx.sln for later use cases)&lt;br /&gt;
*** Build all projects in &amp;quot;Unicode Debug&amp;quot; and &amp;quot;Unicode Release&amp;quot; configurations&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (2.9.0) ===&lt;br /&gt;
* '''NOTE:''' Appearently this release doesn't work well with the editor yet. Please use 2.8.10 as latest 'safe' release.&lt;br /&gt;
* Download [http://www.wxwidgets.org/downloads/ wxAll].&lt;br /&gt;
* Edit '''wxWidgets-2.9.0\include\wx\msw\setup.h''', '''wxWidgets-2.9.0\include\wx\msw\setup0.h''' and '''wxWidgets-2.9.0\include\wx\univ\setup.h''' to change from '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1'''.&lt;br /&gt;
* Build '''wxWidgets-2.9.0\build\msw\wx.dsw''' (Appearently recent wx releases include solutions for vc7, 8 and 9 too).&lt;br /&gt;
* More unknown changes???&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (2.8.3 - 2.8.10) ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.wxwidgets.org/downloads/ wxAll].&lt;br /&gt;
* Edit '''wxWidgets-2.8.3\include\wx\msw\setup0.h''' and '''wxWidgets-2.8.3\include\wx\univ\setup.h''' to change from '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1'''.&lt;br /&gt;
* Build '''wxWidgets-2.8.3\build\msw\wx.dsw'''&lt;br /&gt;
* More unknown changes???&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (2.6.4) ===&lt;br /&gt;
&lt;br /&gt;
* Download [http://www.wxwidgets.org/downloads/ wxAll].&lt;br /&gt;
* Edit '''wxWidgets-2.6.4\include\wx\msw\setup.h''' and '''wxWidgets-2.6.4\include\wx\univ\setup.h''' to change from '''#define wxUSE_GLCANVAS 0''' to '''#define wxUSE_GLCANVAS 1'''.&lt;br /&gt;
* Build '''wxWidgets-2.6.4\build\msw\wx.dsw'''&lt;br /&gt;
&lt;br /&gt;
'''Note: '''I (scriptkid) always use the regular 'unicode debug' and 'unicode release' builds. But i assume that the DLLs will work fine too. If it hasn't been done so already, add 'include/msvc' and include to the include build paths and 'lib/vc_lib' to the library paths in Visual Studio.&lt;br /&gt;
&lt;br /&gt;
=== WxWidgets (less than 2.6.4) ===&lt;br /&gt;
&lt;br /&gt;
Because of issues I had compiling wxWidgets properly, I'm going to go into more depth for using Visual Studio 7.1 or 8.0 to do so. (Jouninkomiko 05-20-2006)&lt;br /&gt;
&lt;br /&gt;
* Because the editor uses the wxGLCanvas, open include/msvc/wx/setup.h, and change the define for wxUSE_GLCANVAS from 0 to 1.&lt;br /&gt;
** Within the src/wxWindows.dsw solution you'll find this setting inside the wxWindows project, under Headers/Setup/setup.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Another Windows specific step-by-step guide was posted in the forums by [[User:fjeronimo|fjeronimo]] and can be read here: http://www.cegui.org.uk/phpBB2/viewtopic.php?t=2760&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
* Enter ./configure --with-opengl --enable-unicode&lt;br /&gt;
* Enter make&lt;br /&gt;
* Enter make install&lt;br /&gt;
&lt;br /&gt;
=== Setup the editor ===&lt;br /&gt;
This topic explains how to get and setup the editor from sources.&lt;br /&gt;
&lt;br /&gt;
==== Checkout ====&lt;br /&gt;
If you use a non-command line utility such as TortoiseSVN, you can choose one of these URLs to respectively checkout the HEAD or one of the stable branches.&lt;br /&gt;
 http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/trunk&lt;br /&gt;
 http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/v-0-4-1&lt;br /&gt;
 http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/before_wxwidgets&lt;br /&gt;
&lt;br /&gt;
Or, from the command line (same order):&lt;br /&gt;
 svn co http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/trunk MyEditorFolder&lt;br /&gt;
 svn co http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/v-0-4-1 MyEditorFolder&lt;br /&gt;
 svn co http'''s'''://crayzedsgui.svn.sourceforge.net/svnroot/crayzedsgui/CELayoutEditor/branches/before_wxwidgets MyEditorFolder&lt;br /&gt;
&lt;br /&gt;
Retreiving is always &amp;quot;anonymous&amp;quot;, so it should work immediately.&lt;br /&gt;
&lt;br /&gt;
==== Compile ====&lt;br /&gt;
&lt;br /&gt;
On windows:&lt;br /&gt;
* Open vc++6/CELayoutEditor.dsw (VS6) or vc++6/CELayoutEditor.sln (VS7.1). Conversions should happen automatically when opening on newer versions. Make sure that you add the directories 'wxWidgets-x.x.x\include' and 'wxWidgets-x.x.x\include\msvc' to your Include Directories, and 'wxWidgets-x.x.x\lib\vc_lib' to your Library Directories.&lt;br /&gt;
* Also add CEGUI-0.5.0 to the project include folders.&lt;br /&gt;
* Also add CEGUI-0.5.0\include to the project include folders.&lt;br /&gt;
* Build either Debug or Release.&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
* Enter ./bootstrap&lt;br /&gt;
* Enter ./configure&lt;br /&gt;
* Enter make&lt;br /&gt;
* Enter make install&lt;br /&gt;
* Optionally set the CELAYOUTEDITOR_DATAPATH environment variable to point the editor to the correct 'datafiles' directory. If you do not set this variable, the editor will default to the location where it thinks the datafiles were installed (this will be typically be something like /usr/local/share/CELayoutEditor/datafiles). See the configuration file for additional details.&lt;br /&gt;
&lt;br /&gt;
Hopefully, we will have a mac-compatible project or makefile in the future as well, so watch this space! :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setup CELayoutEditor ==&lt;br /&gt;
&lt;br /&gt;
* If using the Visual Studio solution: go to the '''Project Settings''' and under '''Debugging''' set '''$(TargetDir)''' as the '''working directory''' for your configurations ('''Debug''' and '''Release''').&lt;br /&gt;
&lt;br /&gt;
* Get all the '''CEGUI dll s''' you need and place them in your working directories. ( e.g. in '''C:\CELayoutEditor\bin\debug''' and '''C:\CELayoutEditor\bin\release''' if &amp;quot;C:\CELayoutEditor&amp;quot; is your checkout directory). You will also need '''SILLY.dll''' and '''SILLY_d.dll''' from the CEGUI dependencies respectively placed in the release and debug directories.&lt;br /&gt;
&lt;br /&gt;
* Now after compiling, the CELayoutEditor should be ready to start and working. Everything regarding the .ini files and handling the editor should be covered in the manual.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=CEED&amp;diff=5444</id>
		<title>CEED</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=CEED&amp;diff=5444"/>
				<updated>2014-07-17T14:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: /* Building CEED on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CEGUI unified editor. Includes project management and multi-file/multi-tab editing.&lt;br /&gt;
&lt;br /&gt;
== Building CEED on Windows ==&lt;br /&gt;
Follow these instructions for building and installing CEED on Windows OS: http://cegui.org.uk/wiki/Building_CEED_for_Windows&lt;br /&gt;
&lt;br /&gt;
Or, if you don't want to build it yourself, you can use the precompiled binaries: http://sourceforge.net/projects/crayzedsgui/files/CEED/0.8/&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
CEED from the v0-8 branch (and all snapshots) depend on CEGUI 0.8. Even though it may work with CEGUI &amp;quot;default&amp;quot; it is not tested with it so don't expect any help if you try to make it work that way.&lt;br /&gt;
&lt;br /&gt;
[http://www.cegui.org.uk/phpBB2/viewtopic.php?f=15&amp;amp;t=5566 Original post at the forums] (very old, don't use!)&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You need CMake, Python &amp;gt;= 2.6 (preferably Python 2.7), PyOpenGL, PySide (+ utils/tools), Boost.Python.&lt;br /&gt;
&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
 apt-get install cmake python-opengl pyside-tools boost-python&lt;br /&gt;
&lt;br /&gt;
==== Arch Linux ====&lt;br /&gt;
&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR). PySide will bring in several other packages and will probably take a few hours to compile.&lt;br /&gt;
&lt;br /&gt;
Note: You probably need to add &amp;quot;-DPYTHON_EXECUTABLE=/usr/bin/python2&amp;quot; (without the quotes) to the cmake command line below because Arch Linux defaults to python 3 but the python modules CMake script expects python2.&lt;br /&gt;
&lt;br /&gt;
Arch Linux has the entire ceed packaged, see the AUR repo and save yourself all this trouble.&lt;br /&gt;
&lt;br /&gt;
==== Fedora ====&lt;br /&gt;
&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools&lt;br /&gt;
&lt;br /&gt;
=== Build CEGUI and PyCEGUI ===&lt;br /&gt;
&lt;br /&gt;
(Or get it from distribution repo and skip this)&lt;br /&gt;
&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
 cd ceed&lt;br /&gt;
 hg update v0-8&lt;br /&gt;
 cd ../&lt;br /&gt;
 cd cegui&lt;br /&gt;
 hg update v0-8&lt;br /&gt;
 cd ../&lt;br /&gt;
 mkdir cegui/build&lt;br /&gt;
 cd cegui/build&lt;br /&gt;
 cmake -DCEGUI_BUILD_PYTHON_MODULES=ON -DCEGUI_BUILD_RENDERER_OPENGL=ON -DCEGUI_BUILD_RENDERER_OPENGL3=ON ../ &lt;br /&gt;
&lt;br /&gt;
==== Renderers ====&lt;br /&gt;
&lt;br /&gt;
CEED requires the OpenGL2 renderer to be enabled. This is what it uses to function. However in CEGUI 0.8 you have to enable both OpenGL2 and OpenGL3 renderers for the bindings to work correctly.&lt;br /&gt;
&lt;br /&gt;
Make sure &amp;quot;CEGUI_BUILD_RENDERER_OPENGL&amp;quot; and &amp;quot;CEGUI_BUILD_RENDERER_OPENGL3&amp;quot; are both enabled before you build CEGUI.&lt;br /&gt;
&lt;br /&gt;
== Launch ==&lt;br /&gt;
&lt;br /&gt;
 cd ../ceed&lt;br /&gt;
 cd bin&lt;br /&gt;
 ./runwrapper.sh&lt;br /&gt;
 ./ceed-gui &lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
 $ cd ../ceed/bin&lt;br /&gt;
 $ PYTHONPATH=../../cegui/build/lib:../:$PYTHONPATH python2 ./ceed-gui&lt;br /&gt;
&lt;br /&gt;
You will see a window like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_main_window.png]]&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
* If it fails to import ceed.ui.* then you need to compile UI files, call&lt;br /&gt;
 [ceed] ./maintenance compile-ui-files&lt;br /&gt;
Or alternatively edit ceed/version.py and set CEED_developerMode to True.&lt;br /&gt;
* If the data files are missing you need to run the 'maintenance' script like this:&lt;br /&gt;
 [ceed/bin]$ cd ..&lt;br /&gt;
 [ceed]$ ./maintenance fetch-datafiles&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
&lt;br /&gt;
Unlike old editors (CELayoutEditor and CEImagesetEditor), CEED has a notion of a project. Each project has its own combination of resources and runs its own CEGUI version to render your CEGUI resources. This allows you to have more that one scheme loaded at a time.&lt;br /&gt;
&lt;br /&gt;
To create a new project, you should go to '''File -&amp;gt; New project'''.&lt;br /&gt;
&lt;br /&gt;
The dialog appears. You should input project name and location of the &amp;quot;.project&amp;quot; file. '''Note''': parent directory of the &amp;quot;.project&amp;quot; file must exist.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_new_project.png]]&lt;br /&gt;
&lt;br /&gt;
After you press '''OK''', Project settings window appears.&lt;br /&gt;
&lt;br /&gt;
=== Project settings ===&lt;br /&gt;
&lt;br /&gt;
(The window is also accessible from '''Edit -&amp;gt; Project settings''')&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_project_settings.png]]&lt;br /&gt;
&lt;br /&gt;
CEED can create assets for CEGUI versions: 0.6 to 0.8. 0.7 is the latest stable, so select it.&lt;br /&gt;
&lt;br /&gt;
Point &amp;quot;Resource directory&amp;quot; to the place where &amp;quot;fonts&amp;quot;, &amp;quot;schemes&amp;quot; and the rest directories are located, then press '''Apply'''. It will change the paths below.&lt;br /&gt;
&lt;br /&gt;
Press '''OK''' and will load your resources. If it fails to, it will show you a warning dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_new_project_warning.png]]&lt;br /&gt;
&lt;br /&gt;
In our case, the resource directory does not have &amp;quot;schemes&amp;quot; subdirectory, as noted on the last line. Correct the paths and retry.&lt;br /&gt;
&lt;br /&gt;
=== Project resources ===&lt;br /&gt;
&lt;br /&gt;
Currently CEED can only work with imagesets and layouts. Add them to your project by clicking with the right mouse button on '''Project manager''' and selecting '''Add existing file(s)''':&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_project_add_existing.png]]&lt;br /&gt;
&lt;br /&gt;
Select the necessary imagesets and layouts, and save the project.&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_layout.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new widget, drag it from the left bottom panel.&lt;br /&gt;
&lt;br /&gt;
To edit it, you can either do it visually, or switch to &amp;quot;Code&amp;quot; tab seen below, and edit it manually. There's also &amp;quot;Preview&amp;quot; tab, where you can test your layout in real time.&lt;br /&gt;
&lt;br /&gt;
=== Imagesets ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_imageset.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new image, press tool bar button second from the right, or click with the right mouse button on the image itself and select '''Create image''':&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_imageset_create_image.png]]&lt;br /&gt;
&lt;br /&gt;
It creates a 50 x 50 rectangle centered at where mouse cursor is. Move and resize it as you see fit.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
Go to '''Edit -&amp;gt; Application settings'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_application_settings.png]]&lt;br /&gt;
&lt;br /&gt;
There are many settings you can tweak. One of the most important might be '''Shortcuts'''. It allows you to assign shortcuts to zoom, image creation, opening a project, and so on.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
You can now use the ceed-migrate tool for converting between old and new CEGUI datafiles. Here is a quick guide for that: http://cegui.org.uk/wiki/Using_CEED-Migrate&lt;br /&gt;
&lt;br /&gt;
Currently you may have problems with Imagesets that use TGA, since some versions of Qt may be built without TGA support. CEGUI 0.8 has all imagery as PNG (CEGUI 0.7 used TGA), and we advise you to use PNG instead of TGA.&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=CEED&amp;diff=5443</id>
		<title>CEED</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=CEED&amp;diff=5443"/>
				<updated>2014-07-17T14:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: /* Building CEED on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CEGUI unified editor. Includes project management and multi-file/multi-tab editing.&lt;br /&gt;
&lt;br /&gt;
== Building CEED on Windows ==&lt;br /&gt;
Follow these instructions for building and installing CEED on Windows OS: http://cegui.org.uk/wiki/Building_CEED_for_Windows&lt;br /&gt;
&lt;br /&gt;
Or, if you don't want to build it for yourself, you can use the precompiled binaries: http://sourceforge.net/projects/crayzedsgui/files/CEED/0.8/&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
CEED from the v0-8 branch (and all snapshots) depend on CEGUI 0.8. Even though it may work with CEGUI &amp;quot;default&amp;quot; it is not tested with it so don't expect any help if you try to make it work that way.&lt;br /&gt;
&lt;br /&gt;
[http://www.cegui.org.uk/phpBB2/viewtopic.php?f=15&amp;amp;t=5566 Original post at the forums] (very old, don't use!)&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You need CMake, Python &amp;gt;= 2.6 (preferably Python 2.7), PyOpenGL, PySide (+ utils/tools), Boost.Python.&lt;br /&gt;
&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
 apt-get install cmake python-opengl pyside-tools boost-python&lt;br /&gt;
&lt;br /&gt;
==== Arch Linux ====&lt;br /&gt;
&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR). PySide will bring in several other packages and will probably take a few hours to compile.&lt;br /&gt;
&lt;br /&gt;
Note: You probably need to add &amp;quot;-DPYTHON_EXECUTABLE=/usr/bin/python2&amp;quot; (without the quotes) to the cmake command line below because Arch Linux defaults to python 3 but the python modules CMake script expects python2.&lt;br /&gt;
&lt;br /&gt;
Arch Linux has the entire ceed packaged, see the AUR repo and save yourself all this trouble.&lt;br /&gt;
&lt;br /&gt;
==== Fedora ====&lt;br /&gt;
&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools&lt;br /&gt;
&lt;br /&gt;
=== Build CEGUI and PyCEGUI ===&lt;br /&gt;
&lt;br /&gt;
(Or get it from distribution repo and skip this)&lt;br /&gt;
&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
 cd ceed&lt;br /&gt;
 hg update v0-8&lt;br /&gt;
 cd ../&lt;br /&gt;
 cd cegui&lt;br /&gt;
 hg update v0-8&lt;br /&gt;
 cd ../&lt;br /&gt;
 mkdir cegui/build&lt;br /&gt;
 cd cegui/build&lt;br /&gt;
 cmake -DCEGUI_BUILD_PYTHON_MODULES=ON -DCEGUI_BUILD_RENDERER_OPENGL=ON -DCEGUI_BUILD_RENDERER_OPENGL3=ON ../ &lt;br /&gt;
&lt;br /&gt;
==== Renderers ====&lt;br /&gt;
&lt;br /&gt;
CEED requires the OpenGL2 renderer to be enabled. This is what it uses to function. However in CEGUI 0.8 you have to enable both OpenGL2 and OpenGL3 renderers for the bindings to work correctly.&lt;br /&gt;
&lt;br /&gt;
Make sure &amp;quot;CEGUI_BUILD_RENDERER_OPENGL&amp;quot; and &amp;quot;CEGUI_BUILD_RENDERER_OPENGL3&amp;quot; are both enabled before you build CEGUI.&lt;br /&gt;
&lt;br /&gt;
== Launch ==&lt;br /&gt;
&lt;br /&gt;
 cd ../ceed&lt;br /&gt;
 cd bin&lt;br /&gt;
 ./runwrapper.sh&lt;br /&gt;
 ./ceed-gui &lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
 $ cd ../ceed/bin&lt;br /&gt;
 $ PYTHONPATH=../../cegui/build/lib:../:$PYTHONPATH python2 ./ceed-gui&lt;br /&gt;
&lt;br /&gt;
You will see a window like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_main_window.png]]&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
* If it fails to import ceed.ui.* then you need to compile UI files, call&lt;br /&gt;
 [ceed] ./maintenance compile-ui-files&lt;br /&gt;
Or alternatively edit ceed/version.py and set CEED_developerMode to True.&lt;br /&gt;
* If the data files are missing you need to run the 'maintenance' script like this:&lt;br /&gt;
 [ceed/bin]$ cd ..&lt;br /&gt;
 [ceed]$ ./maintenance fetch-datafiles&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
&lt;br /&gt;
Unlike old editors (CELayoutEditor and CEImagesetEditor), CEED has a notion of a project. Each project has its own combination of resources and runs its own CEGUI version to render your CEGUI resources. This allows you to have more that one scheme loaded at a time.&lt;br /&gt;
&lt;br /&gt;
To create a new project, you should go to '''File -&amp;gt; New project'''.&lt;br /&gt;
&lt;br /&gt;
The dialog appears. You should input project name and location of the &amp;quot;.project&amp;quot; file. '''Note''': parent directory of the &amp;quot;.project&amp;quot; file must exist.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_new_project.png]]&lt;br /&gt;
&lt;br /&gt;
After you press '''OK''', Project settings window appears.&lt;br /&gt;
&lt;br /&gt;
=== Project settings ===&lt;br /&gt;
&lt;br /&gt;
(The window is also accessible from '''Edit -&amp;gt; Project settings''')&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_project_settings.png]]&lt;br /&gt;
&lt;br /&gt;
CEED can create assets for CEGUI versions: 0.6 to 0.8. 0.7 is the latest stable, so select it.&lt;br /&gt;
&lt;br /&gt;
Point &amp;quot;Resource directory&amp;quot; to the place where &amp;quot;fonts&amp;quot;, &amp;quot;schemes&amp;quot; and the rest directories are located, then press '''Apply'''. It will change the paths below.&lt;br /&gt;
&lt;br /&gt;
Press '''OK''' and will load your resources. If it fails to, it will show you a warning dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_new_project_warning.png]]&lt;br /&gt;
&lt;br /&gt;
In our case, the resource directory does not have &amp;quot;schemes&amp;quot; subdirectory, as noted on the last line. Correct the paths and retry.&lt;br /&gt;
&lt;br /&gt;
=== Project resources ===&lt;br /&gt;
&lt;br /&gt;
Currently CEED can only work with imagesets and layouts. Add them to your project by clicking with the right mouse button on '''Project manager''' and selecting '''Add existing file(s)''':&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_project_add_existing.png]]&lt;br /&gt;
&lt;br /&gt;
Select the necessary imagesets and layouts, and save the project.&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_layout.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new widget, drag it from the left bottom panel.&lt;br /&gt;
&lt;br /&gt;
To edit it, you can either do it visually, or switch to &amp;quot;Code&amp;quot; tab seen below, and edit it manually. There's also &amp;quot;Preview&amp;quot; tab, where you can test your layout in real time.&lt;br /&gt;
&lt;br /&gt;
=== Imagesets ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_imageset.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new image, press tool bar button second from the right, or click with the right mouse button on the image itself and select '''Create image''':&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_imageset_create_image.png]]&lt;br /&gt;
&lt;br /&gt;
It creates a 50 x 50 rectangle centered at where mouse cursor is. Move and resize it as you see fit.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
Go to '''Edit -&amp;gt; Application settings'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_application_settings.png]]&lt;br /&gt;
&lt;br /&gt;
There are many settings you can tweak. One of the most important might be '''Shortcuts'''. It allows you to assign shortcuts to zoom, image creation, opening a project, and so on.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
You can now use the ceed-migrate tool for converting between old and new CEGUI datafiles. Here is a quick guide for that: http://cegui.org.uk/wiki/Using_CEED-Migrate&lt;br /&gt;
&lt;br /&gt;
Currently you may have problems with Imagesets that use TGA, since some versions of Qt may be built without TGA support. CEGUI 0.8 has all imagery as PNG (CEGUI 0.7 used TGA), and we advise you to use PNG instead of TGA.&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=CEED&amp;diff=5442</id>
		<title>CEED</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=CEED&amp;diff=5442"/>
				<updated>2014-07-17T14:29:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: /* Building CEED on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CEGUI unified editor. Includes project management and multi-file/multi-tab editing.&lt;br /&gt;
&lt;br /&gt;
== Building CEED on Windows ==&lt;br /&gt;
Follow these instructions for building and installing CEED on Windows OS: http://cegui.org.uk/wiki/Building_CEED_for_Windows&lt;br /&gt;
Or, if you don't want to build it for yourself, you can use the precompiled binaries: http://sourceforge.net/projects/crayzedsgui/files/CEED/0.8/&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
CEED from the v0-8 branch (and all snapshots) depend on CEGUI 0.8. Even though it may work with CEGUI &amp;quot;default&amp;quot; it is not tested with it so don't expect any help if you try to make it work that way.&lt;br /&gt;
&lt;br /&gt;
[http://www.cegui.org.uk/phpBB2/viewtopic.php?f=15&amp;amp;t=5566 Original post at the forums] (very old, don't use!)&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You need CMake, Python &amp;gt;= 2.6 (preferably Python 2.7), PyOpenGL, PySide (+ utils/tools), Boost.Python.&lt;br /&gt;
&lt;br /&gt;
==== Debian Wheezy ====&lt;br /&gt;
&lt;br /&gt;
PySide is part of Sid at the moment, so you have to add its repository address to your /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
 apt-get install cmake python-opengl pyside-tools boost-python&lt;br /&gt;
&lt;br /&gt;
==== Arch Linux ====&lt;br /&gt;
&lt;br /&gt;
You need at least python2, boost, python-opengl, pyside (AUR), pyside-tools (AUR). PySide will bring in several other packages and will probably take a few hours to compile.&lt;br /&gt;
&lt;br /&gt;
Note: You probably need to add &amp;quot;-DPYTHON_EXECUTABLE=/usr/bin/python2&amp;quot; (without the quotes) to the cmake command line below because Arch Linux defaults to python 3 but the python modules CMake script expects python2.&lt;br /&gt;
&lt;br /&gt;
Arch Linux has the entire ceed packaged, see the AUR repo and save yourself all this trouble.&lt;br /&gt;
&lt;br /&gt;
==== Fedora ====&lt;br /&gt;
&lt;br /&gt;
You need boost-devel, python-devel, python-opengl, python-pyside, pyside-tools&lt;br /&gt;
&lt;br /&gt;
=== Build CEGUI and PyCEGUI ===&lt;br /&gt;
&lt;br /&gt;
(Or get it from distribution repo and skip this)&lt;br /&gt;
&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/cegui&lt;br /&gt;
 hg clone https://bitbucket.org/cegui/ceed&lt;br /&gt;
 cd ceed&lt;br /&gt;
 hg update v0-8&lt;br /&gt;
 cd ../&lt;br /&gt;
 cd cegui&lt;br /&gt;
 hg update v0-8&lt;br /&gt;
 cd ../&lt;br /&gt;
 mkdir cegui/build&lt;br /&gt;
 cd cegui/build&lt;br /&gt;
 cmake -DCEGUI_BUILD_PYTHON_MODULES=ON -DCEGUI_BUILD_RENDERER_OPENGL=ON -DCEGUI_BUILD_RENDERER_OPENGL3=ON ../ &lt;br /&gt;
&lt;br /&gt;
==== Renderers ====&lt;br /&gt;
&lt;br /&gt;
CEED requires the OpenGL2 renderer to be enabled. This is what it uses to function. However in CEGUI 0.8 you have to enable both OpenGL2 and OpenGL3 renderers for the bindings to work correctly.&lt;br /&gt;
&lt;br /&gt;
Make sure &amp;quot;CEGUI_BUILD_RENDERER_OPENGL&amp;quot; and &amp;quot;CEGUI_BUILD_RENDERER_OPENGL3&amp;quot; are both enabled before you build CEGUI.&lt;br /&gt;
&lt;br /&gt;
== Launch ==&lt;br /&gt;
&lt;br /&gt;
 cd ../ceed&lt;br /&gt;
 cd bin&lt;br /&gt;
 ./runwrapper.sh&lt;br /&gt;
 ./ceed-gui &lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
 $ cd ../ceed/bin&lt;br /&gt;
 $ PYTHONPATH=../../cegui/build/lib:../:$PYTHONPATH python2 ./ceed-gui&lt;br /&gt;
&lt;br /&gt;
You will see a window like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_main_window.png]]&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
* If it fails to import ceed.ui.* then you need to compile UI files, call&lt;br /&gt;
 [ceed] ./maintenance compile-ui-files&lt;br /&gt;
Or alternatively edit ceed/version.py and set CEED_developerMode to True.&lt;br /&gt;
* If the data files are missing you need to run the 'maintenance' script like this:&lt;br /&gt;
 [ceed/bin]$ cd ..&lt;br /&gt;
 [ceed]$ ./maintenance fetch-datafiles&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
&lt;br /&gt;
Unlike old editors (CELayoutEditor and CEImagesetEditor), CEED has a notion of a project. Each project has its own combination of resources and runs its own CEGUI version to render your CEGUI resources. This allows you to have more that one scheme loaded at a time.&lt;br /&gt;
&lt;br /&gt;
To create a new project, you should go to '''File -&amp;gt; New project'''.&lt;br /&gt;
&lt;br /&gt;
The dialog appears. You should input project name and location of the &amp;quot;.project&amp;quot; file. '''Note''': parent directory of the &amp;quot;.project&amp;quot; file must exist.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_new_project.png]]&lt;br /&gt;
&lt;br /&gt;
After you press '''OK''', Project settings window appears.&lt;br /&gt;
&lt;br /&gt;
=== Project settings ===&lt;br /&gt;
&lt;br /&gt;
(The window is also accessible from '''Edit -&amp;gt; Project settings''')&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_project_settings.png]]&lt;br /&gt;
&lt;br /&gt;
CEED can create assets for CEGUI versions: 0.6 to 0.8. 0.7 is the latest stable, so select it.&lt;br /&gt;
&lt;br /&gt;
Point &amp;quot;Resource directory&amp;quot; to the place where &amp;quot;fonts&amp;quot;, &amp;quot;schemes&amp;quot; and the rest directories are located, then press '''Apply'''. It will change the paths below.&lt;br /&gt;
&lt;br /&gt;
Press '''OK''' and will load your resources. If it fails to, it will show you a warning dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_new_project_warning.png]]&lt;br /&gt;
&lt;br /&gt;
In our case, the resource directory does not have &amp;quot;schemes&amp;quot; subdirectory, as noted on the last line. Correct the paths and retry.&lt;br /&gt;
&lt;br /&gt;
=== Project resources ===&lt;br /&gt;
&lt;br /&gt;
Currently CEED can only work with imagesets and layouts. Add them to your project by clicking with the right mouse button on '''Project manager''' and selecting '''Add existing file(s)''':&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_project_add_existing.png]]&lt;br /&gt;
&lt;br /&gt;
Select the necessary imagesets and layouts, and save the project.&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_layout.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new widget, drag it from the left bottom panel.&lt;br /&gt;
&lt;br /&gt;
To edit it, you can either do it visually, or switch to &amp;quot;Code&amp;quot; tab seen below, and edit it manually. There's also &amp;quot;Preview&amp;quot; tab, where you can test your layout in real time.&lt;br /&gt;
&lt;br /&gt;
=== Imagesets ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_imageset.png]]&lt;br /&gt;
&lt;br /&gt;
To create a new image, press tool bar button second from the right, or click with the right mouse button on the image itself and select '''Create image''':&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_imageset_create_image.png]]&lt;br /&gt;
&lt;br /&gt;
It creates a 50 x 50 rectangle centered at where mouse cursor is. Move and resize it as you see fit.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
Go to '''Edit -&amp;gt; Application settings'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ceed_application_settings.png]]&lt;br /&gt;
&lt;br /&gt;
There are many settings you can tweak. One of the most important might be '''Shortcuts'''. It allows you to assign shortcuts to zoom, image creation, opening a project, and so on.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
You can now use the ceed-migrate tool for converting between old and new CEGUI datafiles. Here is a quick guide for that: http://cegui.org.uk/wiki/Using_CEED-Migrate&lt;br /&gt;
&lt;br /&gt;
Currently you may have problems with Imagesets that use TGA, since some versions of Qt may be built without TGA support. CEGUI 0.8 has all imagery as PNG (CEGUI 0.7 used TGA), and we advise you to use PNG instead of TGA.&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	<entry>
		<id>http://cegui.org.uk/wiki/index.php?title=Overview_of_GUI_files&amp;diff=5441</id>
		<title>Overview of GUI files</title>
		<link rel="alternate" type="text/html" href="http://cegui.org.uk/wiki/index.php?title=Overview_of_GUI_files&amp;diff=5441"/>
				<updated>2014-07-16T14:46:38Z</updated>
		
		<summary type="html">&lt;p&gt;Lucebac: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a lot of files that go into creating a GUI with CEGUI. Here is an overview (thanks to lindquist for the original version). An expanded version of this brief overview would be quite useful.&lt;br /&gt;
&lt;br /&gt;
== Overview of CEGUI resource files ==&lt;br /&gt;
=== '''.imageset Files''' ===&lt;br /&gt;
An imageset is an xml file describing a set of images contained in an image file.&lt;br /&gt;
When an imageset is loaded, images from that file become available to the application via the [http://static.cegui.org.uk/docs/current/classCEGUI_1_1ImageManager.html ImageManager].&lt;br /&gt;
&lt;br /&gt;
Editor: [[CEED]]&lt;br /&gt;
&lt;br /&gt;
=== '''[[Scheme files]]''' ===&lt;br /&gt;
A scheme file is an xml file describing the binding of widgets defined in a looknfeel file and the base Falagard widget set. Once loaded the components in the scheme file are available via the [http://static.cegui.org.uk/docs/current/classCEGUI_1_1WindowManager.html WindowManager]. A detailed description of [[Scheme files]] is also available.&lt;br /&gt;
&lt;br /&gt;
Editor: none&lt;br /&gt;
&lt;br /&gt;
=== '''.looknfeel Files''' ===&lt;br /&gt;
These are also xml files, which define the visual aspect of widgets declared in the scheme file.&lt;br /&gt;
&lt;br /&gt;
Editor: none&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''.layout Files''' ===&lt;br /&gt;
A layout file is also in xml format. It describes a set of widgets to create and their positions, sizes, and other attributes. Basically this describes the final on-screen layout of your GUI, hence the name.&lt;br /&gt;
&lt;br /&gt;
Editor: [[CEED]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''.font Files''' ===&lt;br /&gt;
These simple xml files give the location of a font file (like a TrueType .ttf file) and define a few extra properties about how CEGUI should use that font.&lt;br /&gt;
&lt;br /&gt;
Editor:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About Falagard Skinning System ==&lt;br /&gt;
Falagard is the part of the API that makes it possible to create a completely new set of widgets (at the visual level) from XML files.&lt;br /&gt;
&lt;br /&gt;
You can, with a looknfeel, describe a widget and make it appear as you want (by using images defined in some imageset) and finally bind it to one of the widgets from a Falagard Base widget set in a scheme file.&lt;br /&gt;
&lt;br /&gt;
Link: [http://static.cegui.org.uk/docs/current/fal_man.html Falagard skinning system for CEGUI]&lt;br /&gt;
&lt;br /&gt;
== Related Documents ==&lt;br /&gt;
* [[XML File formats]] - Detailed documentation of the various XML file formats.&lt;br /&gt;
&lt;br /&gt;
[[Category:Manuals]]&lt;/div&gt;</summary>
		<author><name>Lucebac</name></author>	</entry>

	</feed>