# Candera Engine 2D

#### Introduction of LoadingHint for DeviceObject2D.

Version 3.3.0 introduces a LoadingHint for the [DeviceObject2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_device_object2_d.html "DeviceObject2D is the pure abstract base class for all objects which are able to upload or unload its..."). Loading hints can e.g. trigger warnings when uploading while rendering, or force unloading from a context.

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

</div></div></div>#### New methods for Node2DListener

New methods have been added to [Node2DListener](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_node2_d_listener.html "A Node2DListener defines hooks that are called when certain Node functions are triggered, e.g. when a Node's transformation changes. In order to register a Node2DListener to a Node simply derive from Node2DListener and override pure virtual functions with custom code.") class. These are:

<div class="contents" id="bkmrk-candera%3A%3Anode2dliste"><div class="contents"><div class="textblock">- [Candera::Node2DListener::OnNodeAdded](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_node2_d_listener.html#a8ebb0afc488f8da128041dc11d9ceb80): this is invoked whenever a parent is set for the node;
- [Candera::Node2DListener::OnChildAdded](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_node2_d_listener.html#ab9e9d94d5a50c6e08def26e7e42d5d9e): this is invoked whenever a child node is added to the node;
- [Candera::Node2DListener::OnChildRemoved](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_node2_d_listener.html#a1acb5635774ed5caa1cfc955bc1d0d67): this is invoked whenever a child of the node is removed.

---

</div></div></div>#### TextNode2D cloning strategy

[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.") adopts the unified cloning mechanism, with the introduction of [DeepTextNode2DCloneStrategy](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_deep_text_node2_d_clone_strategy.html "This is the default clone strategy for deep cloning TextNode2d See DeepNode2DCloneStrategy for rules...").

For more information see <span style="color: rgb(230, 126, 35);">[Unified Cloning Interface](https://doc316en.candera.eu/link/977#bkmrk-unified-cloning-inte)</span>, <span style="color: rgb(230, 126, 35);">[Tree Cloning Strategies](https://doc316en.candera.eu/link/977#bkmrk-tree-cloning-strateg)</span> and <span style="color: rgb(230, 126, 35);">[Tree Cloner](https://doc316en.candera.eu/link/977#bkmrk-tree-cloner)</span>

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

</div></div></div>#### Improved Pixel Accuracy

Scissoring is now utilized on platforms that support it. This improves pixel accuracy in 2D rendering when a dirty area or a camera scissor is used.

---