# CGI Studio Components

#### CGI Studio Components  


CGI Studio consists of the following Components

- Bin
- CGI Studio 3PSW
- CGI Studio Apps
- CGI Studio Candera
- CGI Studio Content
- CGI Studio Controls
- CGI Studio Courier
- CGI Studio Courier Apps
- CGI Studio Docs
- Player
- CGI Studio Schost
- FeatStd

---

#### Bin  


The **Bin** component contains all binaries for CGI Studio Tools:

- Analyzer
- AssetTool
- Player
- Easy mode
- Light Player
- Photoshop Exporter
- Photoshop Export Plugin
- SceneComposer <span style="color: rgb(230, 126, 35);">[\[more\]](https://doc316en.candera.eu/shelves/3-scene-composer)</span>
- SceneComposer SDK

#### CGI Studio 3PSW  


"**Third Party Software**" comprises a set of external software (in library or source) that are used by CGI Studio:

<table border="1" id="bkmrk-3rd-party-software-v" style="border-collapse: collapse; width: 60.4938%; height: 506.547px;"><colgroup><col style="width: 36.8098%;"></col><col style="width: 25.3495%;"></col><col style="width: 37.8407%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">**3rd Party Software**</span></td><td class="align-center" style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">**Version**</span></td><td class="align-center" style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">**More Information**</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">bin2srec</td><td style="height: 29.7969px;">V2014.12.119.1</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">HASP</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">DevIL (lib)</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">OpenGLES (lib)</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">ComplexScriptLib</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">[<span style="color: rgb(230, 126, 35);">\[more\]</span>](https://doc316en.candera.eu/link/484#bkmrk-complex-script-langu)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">DevIL (src)</td><td style="height: 29.7969px;">1.7.8</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">freetype</td><td style="height: 29.7969px;">2.14.1</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">GStreamer</td><td style="height: 29.7969px;">1.22.7</td><td style="height: 29.7969px;">[<span style="color: rgb(230, 126, 35);">\[more\]</span>](https://doc316en.candera.eu/link/468#bkmrk-page-title)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">harfbuzz</td><td style="height: 29.7969px;">12.1.0</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">json</td><td style="height: 29.7969px;">0.5.0</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">libpng</td><td style="height: 29.7969px;">1.5.9</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">libunibreak</td><td style="height: 29.7969px;">1.0</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Lua 5.3.5</td><td style="height: 29.7969px;">5.3.5</td><td style="height: 29.7969px;"><span style="color: rgb(230, 126, 35);">[\[more\]](https://doc316en.candera.eu/books/candera/chapter/tutorial-for-lua-scripting)</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Monotype <span lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: 'MS PGothic'; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">iType</span>  
</td><td style="height: 29.7969px;">6.2.2  
</td><td style="height: 29.7969px;">[<span style="color: rgb(230, 126, 35);">\[more\]</span>](https://doc316en.candera.eu/link/294#bkmrk-the-font-engine%3A-ity)</td></tr><tr><td>Monotype WT-Shaper  
</td><td>5.0.0  
</td><td>[<span style="color: rgb(230, 126, 35);">\[more\]</span>](https://doc316en.candera.eu/link/295#bkmrk-integration-of-wt-sh)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">OpenGLES (src)</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">zlib</td><td style="height: 29.7969px;">1.2.8</td><td style="height: 29.7969px;">  
</td></tr></tbody></table>

#### CGI Studio Apps  


This component contains the Scene Composer Solution of the Construction Kit. The Construction Kit provides predefined 3D Shapes, Building Blocks, Controls, and various Resources, like Appearances, Fonts, Icons, Meshes, Shaders, TextStyles and Textures.

#### CGI Studio Candera  


The **Candera Graphic Engine** enables embedded applications to render and control externally designed content, especially 3D content.

- Candera requires small integration layers for graphical output devices, hardware accelerated or software realised basic mathematical functions, access to system memory and other platform related functionality which is typically implemented in scope of the hosting application.
- Candera provides a set of interfaces which need to be connected with platform functionality for this purpose.
- Candera is intended to drive different graphic systems, such as OpenGL ES 2.0 which are also required to be provided by the hosting platform. [<span style="color: rgb(230, 126, 35);">\[more\]</span>](https://doc316en.candera.eu/books/candera)

#### CGI Studio Content  


The component **Content** contains some resources (fonts, images and shaders).

#### CGI Studio Controls  


This component consists of **Controls** and **Behaviors**.  
A **Control** is a reusable structure that can have a specific functionality, which is delegated to the **Behaviors** it consists of. A **Control** is created in SceneComposer only while a **Behavior** must be implemented.

**Controls** are template scenes created for later reuse via control nodes. They are meant to be interactive. To make them interactive they can be filled with Behaviors. A control collects part of the scene graph and Behaviors into a single entity, which can be instantiated in another scene.

**Behaviors** are small re-usable functional blocks that communicate via events. Together they process input from application and use the Candera engine API to manipulate graphical objects. There is a huge amount of predefined Behaviors that comes with CGI Studio. Combining the Behaviors offers a great variety of functionalities. \[more\]

#### CGI Studio Courier  


The Courier framework implements the Model-View-Control architecture pattern. It has defined extension points for 3rd party state machine integration. Courier is focusing on Message Handling and Data Binding and depends on CGI Studio Candera graphics functionality. [<span style="color: rgb(230, 126, 35);">\[more\]</span>](https://doc316en.candera.eu/books/courier)

#### CGI Studio Courier Apps  


The Courier Apps component comprises the CourierSampleApp and the IpcApplications "CourierIpcHaroldApp" and "CourierIpsMaudeApp".

#### CGI Studio Docs  


Docs contains documentation, release notes, license information and test reports.

#### Player  


The Player is an application which provides insights into a generic CGI Studio application driven by the courier messaging framework. It also provides samples of several features. These features are core components like showing or hiding views or trigger animations but also sample implementation of models with databinding. On top of that, the Player shall be an application to test and play around with an asset and the functionality of the framework itself. The focus is not on the customer specific logic but on the core logic of the customer’s specific asset. <span style="color: rgb(230, 126, 35);">[\[more\]](https://doc316en.candera.eu/books/player)</span>

#### CGI Studio Schost  


SCHost is a device specific dynamic library (dll) used by SceneComposer to render the content of the current solution and to provide editing support including widgets manipulation. It represents the "glue" between the Scene Composer graphical user interface and the Candera engine.

#### FeatStd  


FeatStd is the short form for FEAT Standard library. It's purpose is to provide common basic functionalities, like Datatypes, Classes, Macros, Platform/OS abstraction, etc. for various FEAT products. FeatStd is also configurable to the needs of a software product, having feature flags to enable self-contained functionalities, like IPC support, UnitTest framework (based on google test), logging, etc. resp. overall settings like thread-safety support, fractional number handling, etc. [<span style="color: rgb(230, 126, 35);">\[more\]</span>](https://doc316en.candera.eu/books/featstd)

---