Layer
PUBLISHED
A layer acts like a transparent sheet upon which shapes can be placed, sub-layers within layers to any desired depth are supported. Layers provide a mechanism for overlaying groups of views on top of each other. Layers can also clip their contents to exclude any content outside a user defined area.
Layers can be 2D or 3D, defined by their behaviour property.
When a layer is added to the stage, it is assigned a unique depth value. By default the stage has a root layer with a depth value of 0.
Layers are actors and inherit the position, orientation and scale of their parent actor. Layers are drawn in an order determined by a layer depth value.
Layers can be positioned anywhere in the actor tree. The layer draw order is always defined by the depth value.
// C++ example of adding a actor to the root layer // using stage.add() will automatically add actor to the root layer Stage stage = Stage::GetCurrent(); stage.add( myActor ); // Or you can explicitly add an actor to the root layer. Layer rootLayer = stage.GetRootLayer(); rootLayer.add( myActor ); // adds an actor to the root layer
Layer Specific Properties
Layer::Property::CLIPPING_ENABLE
Layer::Property::CLIPPING_BOX
Layer::Property::BEHAVIOR
: which can beDali::Layer::LAYER_UI
(default), orDali::Layer::LAYER_3D
Layer clipping
Clips the contents of the layer to a rectangle.
Re-ordering layers
A range of functions are provided to change the draw order of the layers.
Rendering order of Actors inside of a layer
Layer_UI
Background
- Graphics are drawn in DALi using renderers
- Actors can have zero or many renderers
- Renderers can be shared by actors
- Renderers have a depth index property
With Dali::Layer::LAYER_UI
, the draw order of the renderers is defined by both:
- Renderer depth index.
- Position of actor in the actor tree
Layer_3D
Set Layer behavior to Dali::Layer::LAYER_3D
;
Opaque renderers are drawn first and written to the depth buffer.
Transparent renderers are drawn in order of distance from the camera ( painter’s algorithm ).
Actor drawing mode
DrawMode::OVERLAY_2D
Inside a layer, it is possible to force tree views to be drawn on top of everything else in the layer.
Was this document helpful?
We value your feedback. Please let us know what you think.