Candera
Candera Graphic Engine enables embedded applications to render and control externally designed content, especially 3D content.
Candera Architecture Overview
Introduction Candera Graphic Engine enables embedded applications to render and control external...
Interfaces & Namespaces
Interfaces The Candera public interfaces are covered by the namespaces Candera and various subna...
Candera MISRA Compliance
Candera tries to be MISRA compliant as much as possible. For checking MISRA compliance, Coverity®...
Tutorial for Application Life Cycle
Startup and Asset Management
Description This tutorial leads through all required steps to initialize and prepare a Can...
Render Loop
Description After loading an asset and creating scenes, this chapter will now explain how an app...
Finalization
Description This tutorial explains how to shut down a 2D or 3D application safely. Releasing Sc...
Asset Library Verification (Optional)
Description The optional Asset Library Verification feature allows asset version checks and prov...
Dynamic Properties
How to attach a Dynamic Property to CanderaObject An application may want to attach any kind of ...
Touch Support
Touch events are derived from generic events and are equally easy to implement.For an example of ...
Loading of Shaped / Compressed Assets
Loading Shaped Assets Shaped assets are the result of partitioning an asset into several smaller...
Tutorial for 3D Scene Graph and Nodes
3D Scenes and Nodes
Scenes and Nodes Candera::Node is an abstract base class for all scene graph nodes. ...
3D Node Transformations
3D Node Manipulation Example To illustrate basic node transformation operations, the NodeManipul...
3D Node Appearance
Description Candera::Appearance groups following render attributes: Candera::Material, ...
3D Scene Graph Dynamics
Description Usually all required nodes are already specified and preconfigured via SceneComposer...
3D Render Order
Description There are various reasons why sorting of objects to render is required: Tra...
Searching for Nodes with SearchTreeTraverser
Searching for Nodes With Candera::SearchTreeTraverser it is possible to find nodes within a give...
Vertex Geometry Builder
Description The Candera::VertexGeometryBuilder class helps effectively build Candera::VertexGeom...
Vertex Geometry Modifier
Overview The VertexGeometryModifier, in conjunction with a VertexAccessor, helps to modify Verte...
Candera 3D Listeners
Applications can receive notifications on scene graph events. Therefore implement and use a liste...
Tutorial for 2D Scene Graph and Nodes
2D Scenes and Nodes
Scene Graph The 2D scene graph is a tree structure which organizes nodes of type Candera::Node2D...
2D Node Transformations
2D Node Manipulation Example To illustrate basic node transformation operations, the NodeManipul...
2D Effects
Description Candera2D renders content exclusively by pieces of code which are named effects. Eff...
2D Scene Graph Dynamics
Description Usually all required nodes are already specified and preconfigured via SceneComposer...
Camera / Viewport
The following example shows the interaction between scene and camera. The objects are placed rela...
2D Layout
Description In a typical user interface users need to distribute screen space to different eleme...
Candera 2D Listener
Applications can receive notifications on scene graph events. Therefore implement a listener, whi...
Tutorial for Shader Usage
Programmable Graphics Pipeline
Description When working with shaders, a fundamental knowledge of OpenGL ES 2.0 / 3.0 and the co...
The OpenGL ES Shading Language
Description The focus of this chapter is to understand how to write shader programs in conjuncti...
Shader Usage in Candera
Description This chapter demonstrates how customized shader programs can be used with Candera. Su...
Candera Reference Shaders
Description This document describes content and usage of Candera Reference Shaders part of CGI S...
Tutorial for Text Rendering
Introduction
Text Rendering involves both the handling of Unicode standards regarding character encoding as we...
Fonts and Styles
Description This section contains information about how to use fonts and styles. Accessing Font...
Using Candera TextEngine to draw Text
Description The simplest way to draw text with Candera is using a TextNode2D, a 3D text widget f...
Using asynchronous text rendering
Description The Candera engine provides asynchronous text rendering to improve the handling of t...
Text rendering: Caching/rendering systems
Description The rasterization of a glyph is a very costly operation. Paired with shaping and pos...
Tutorial for Globalization Support
Introduction
Multi-Language Support Preparing an application to perform in multiple locales requires the CGI ...
SceneComposer Translator Plugin
Overview CGI Studio SceneComposer Translator Plugin provides the following features: Cr...
Managing Language Packs using AssetTool
Overview AssetTool application can be used to manage language packs for a given asset. AssetTool ...
Using Globalization in Applications
Requirements for Multi Language Support CMake setting CANDERA_GLOBALIZATION_ENABLED is e...
Custom Localizer Support
Requirements for Custom Localizer In order to use a custom Localizer, a CMake feature switch CAND...
Tutorial for Animation Manipulation
Configuring and Loading an Animation
Candera Animation Concept The following key concepts are required to run animations in a Candera...
Controlling Animations
Controlling Animation Flow This section describes the control flow interfaces of Candera::Animat...
Using Animation Callback Functions
Animation Event Listener If an application shall be notified about events of the triggered anima...
Manipulating Animation Keyframe Sequences
This method allows to modify specific keyframes of a previously initialized keyframe sequence. D...
Tutorial for Graphic Device Interface
Cameras and Render Targets
Description Content specified in a Candera scene graph is rendered by configuring at least one c...
EGL Context Handling
Description EGL is an interface between rendering APIs like OpenGL ES and the underlying native ...
Multiple Render Targets
Description This section explains how to handle Multiple Render Targets by means of a small ping...
Texture Render Targets
Description This section explains how to handle Texture Render Targets in 2D and 3D. Example So...
Camera Groups
Description This section explains how to use Camera Groups to handle cameras uniformly across mu...
Proxy Texture Image
Description This section describes how to use the proxy texture images and how to create custom ...
Multisample Anti-Aliasing Offscreen Render Targets
Description This section describes how to set the multisample anti-aliasing (MSAA) property for ...
External Texture Image
How to use EGLKHRExternalTexture To use an DMA buffer as an external texture create an array to ...
Tutorial for Special 3D Render Techniques
Level of Detail (LOD)
Description This chapter briefly describes Level Of Detail techniques supported by Candera. See...
Morphing
Description This chapter briefly describes the morphing technique supported by Candera. See als...
Planar Shadows
Description This chapter describes the planar shadow technique supported by Candera. Introduc...
Baked Shadows
Description This chapter describes the baked shadow technique supported by Candera. Introductio...
Single Pass Effects in Candera > Examples for 3D Effect Shaders
Description This chapter describes special 3D effect shaders techniques supported by Candera. ...
Multi Pass Effects in Candera > Examples for Local 3D Effect Shaders
Description This chapter describes special 3D effect shaders techniques supported by Candera. F...
Multi Pass Effects in Candera > Examples for Global 3D Effect Shaders
Description This chapter describes how global multi pass effects in Candera can be achieved and ...
Transform Feedback
Transform Feedback is the process of capturing primitives generated by the vertex processing step...
Tutorial for Special 2D Render Techniques
2D Shadow Effect
Description This chapter briefly describes how to use the 2D shadow effect. Ensure ...
2D Mirror Effect
Description This chapter briefly describes how to use the 2D mirror effect. Ensure ...
2D Blur Effect
Description This chapter briefly describes how to use the 2D blur effect. Ensure th...
2D Shear Effect
Description This chapter briefly describes how to use the 2D shear effect. Ensure t...
2D HSL Effect
Description This chapter briefly describes how to use the 2D HSL effect. Ensure tha...
2D Alpha Mask Effect
Description This chapter briefly describes how to use the 2D alpha mask effect. Ens...
Tutorial for Diagnostics
Assertions
Refer to FeatStd Assertions how to use and configure assertions.
Logging
Refer to FeatStd Logging how to use and configure FeatStd logging feature. Candera Log Output F...
Performance Analysis > Introduction
Performance Analysis with CGI Analyzer By enabling the Candera Monitor component (CMake: FEATSTD...
Performance Analysis > Howto Instrument for Performance Measurement
Performance Measurement with Analyzer This document shall convey the basics of performance measu...
Tutorial for Lua-Scripting
Description This tutorial gives an overview of what Lua-Scripting is and shows how to create a...
Overview
This chapter gives and overview of Lua-Scripting. What is Lua-Scripting? Lua-Scripting is an ex...
Create an own Script
This chapter provides an explanation of how a new Lua-Script can be created to make it ready to b...
Lua Introduction
Callback Functions If you open your script in the Script Editor you can see that there are alrea...
Id Handling
This chapter explains how to get access to other nodes via the id of their attached script. There...
Communication between Children
How to find siblings This chapter explains how to get access to sibling nodes via the id of thei...
OnEnable() and OnDisable()
How to use OnEnable() and OnDisable() As in this example the root node script "CarRootController...
Set Priority of Lua-Scripts
Script Priority Another useful feature of Lua-Scripting is the priority. It defines in which ord...