# Candera 3.8

To keep backwards compatibility for any interface change in the public API the old interface has been kept and marked as deprecated. The deprecated interfaces will be removed in future versions. Compiler warnings will be generated when using a deprecated interface through the usage of Candera Macro CANDERA\_DEPRECATED\_3\_8\_0 and CANDERA\_DEPRECATED\_FILE\_3\_8\_0.

# Candera Base

#### Post Processing System

The [Post Processing System](http://dev.doc.cgistudio.at/APILINK/group___post_processing_system.html) now also supports 2D scenes on 3D capable platforms. The same [post processing Lua scripts](http://dev.doc.cgistudio.at/APILINK/group___lua_post_processing.html) can be applied to 2D cameras and work exactly as they do in 3D scenes.

---

# Candera Engine 2D

#### Mesh2D

On 2D platforms that also support 3D, 2D meshes using 2D positions and one UV set can now be used in [Candera](http://dev.doc.cgistudio.at/APILINK/namespace_candera.html "[DataBinding_RefTypeSample]") 2D with any available brush. Additionally, a control and a behavior making using of this feature were added.

---

# Candera Platform

#### External Texture Image

Added support for egl\_khr\_external\_texture\_image for Linux devices. Enables use of DMA buffers for external textures and image streams.

---

# Candera General Changes

<div class="contents" id="bkmrk-fixed-several-coveri"><div class="contents"><div class="textblock">- Fixed several coverity issues.
- Asynchronous asset loading did not consider the context for upload. This has been fixed (CGI1-27075 - 9866).
- Invalidation dependencies contains camera information now (CGI1-26196 - 9786).
- Parts of the transition framework have been rewritten for higher stabilization and better rule matching algorithms. Most of the changes affect reversing running transitions (CGI1-38227).
- Added analyzer (monitor) file dump and memory dump possibility in Player (CGI1-25477).
- Added possibility to get depth buffers from GlTextureFrameBuffer (CGI1-37989).
- [Node::RemoveAllChildren](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_node.html#af7088c0a8f4208ce05bb4f0edfdfed94) also removed parent. This has been fixed (CGI1-35916).

---

</div></div></div>

# Candera Animations

#### New easing functions

[Candera](http://dev.doc.cgistudio.at/APILINK/namespace_candera.html "[DataBinding_RefTypeSample]") received two new easing functions: Sine and Circular. The scene composer UI has been updated to also support Quad, Cubic, Quart and Quint ease functions.

<div class="contents" id="bkmrk-"><div class="contents"><div class="textblock">---

</div></div></div>#### Animation of Control properties

Control/Behavior properties, including property types "Optional" and "Variant" can now be animated using [Candera](http://dev.doc.cgistudio.at/APILINK/namespace_candera.html "[DataBinding_RefTypeSample]") animations.

---

# Candera Monitor

#### Layout monitor

The new analysis feature layout monitor has been added to candera. With this tool, it is possible to analyze the layout behavior of a scene in 2D as well as in 3D. Additionally, it provides an overlay to get a better understanding of the layed out nodes. This works under the condition that the camera has no transformations on it.

---

# Candera Layout

<div class="contents" id="bkmrk-in-some-cases-stretc"><div class="contents"><div class="textblock">- In some cases stretch behavior property did not work properly with baseline layout. This has been fixed (CGI1-34195).
- Fixed an issue in which the layouter sets a position unconditionally and triggers invalidate of layout in 3D (CGI1-35937).
- Missing layout invalidation for changes of the Scale, Rotation and Pivot Point property in 2D and 3D has been added (CGI1-38529).
- Scale has been set to 1 for ninepatch images when switching to StretchBehavior None. This has been fixed (CGI1-38533).
- Clipping was incorrect when a pivot point was set on a child node of a default layouter and the node was downscaled. This has been fixed (CGI1-38530).
- Rotated nodes which had the size property explicitly set was displaced. This has been fixed (CGI1-38531).

---

</div></div></div>

# Candera Text Engine

<div class="contents" id="bkmrk-several-text-render-"><div class="textblock">- Several text render cache related issues were fixed. This includes upload count and upload/unload call fixes for textures (CGI1-30284).
- Fixed issues when building Monotype on Integrity systems (CGI1-39895).
- Fixed Monotype cache item as custom width have not always been cached correctly (CGI1-34207).
- Removed differences between alignment handling between [TextNode2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_text_node2_d.html "TextNode2D is a RenderNode that renders text using the attached BitmapBrush effect.") and [CanvasText](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_canvas_text.html "CanvasText represents a text node within a 3D Canvas object.") (CGI1-34241 - 10093).
- [CanvasText](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_canvas_text.html "CanvasText represents a text node within a 3D Canvas object.") rendering changes parts of the scene tree which triggered a continuous layout invalidation. This has been fixed (CGI1-35915).
- Improvements have been done on unloading [CanvasText](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_canvas_text.html "CanvasText represents a text node within a 3D Canvas object.") (CGI1-35925).
- Blending text with RGBA bitmap renderer has been changed (CGI1-29181 - 9946).
- Outline in texture was not cleared correctly in all cases. This has been fixed (CGI1-36032 - 10119).
- Reworks have been done on the way truncation is handled by [TextNode2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_text_node2_d.html "TextNode2D is a RenderNode that renders text using the attached BitmapBrush effect.") and [CanvasText](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_canvas_text.html "CanvasText represents a text node within a 3D Canvas object.") (CGI1-38325).
- The HarfBuzz font cache led to position issues when two equal characters with different font sizes have been rendered consecutively. This has been fixed (CGI1-37985 - 10149).
- Improved building with Monotype under integrity systems. Interpretation of datatypes is platform dependent. The improvement matches Monotypes requirements in most use cases (CGI1-39895).
- A negative bearing in glyph data lead to render fragments outside of the boundaries. Text has been moved inside the boundaries in case a size has been set. (CGI1-38325)

</div></div><p class="callout info">This might lead to a pixel movement in some cases by the value of negative bearing.</p>

---

# Candera Scripting

#### Lua Update

Lua has been updated to version 5.3.5.

<div class="contents" id="bkmrk-"><div class="contents"><div class="textblock">---

</div></div></div>#### Script Parameter Animation

Public script parameters of type integer, float, and boolean can now be animated using [Candera](http://dev.doc.cgistudio.at/APILINK/namespace_candera.html "[DataBinding_RefTypeSample]") animations. Since scripts can control animations, and now also be the target of them, this feature creates a lot of possibilities by being able to control value changes over time without having to change script code.

---

# Candera System

#### Data-oriented Entity Component System

The internal structure of Candera's Entity Component System has been improved to make it fully data-oriented for the user. Components are stored in arrays and can be access via iterators. These iterators can group components together by user defined types, and access them serially to exploit the data cache. Components can now be any struct or class, and do no longer have to be derived from a component base class. The user can also decide if user implemented components should be stored by value or by reference.

---