3 * \section mainintro_sec Introduction
5 * It is a quick and easy way of allowing developers to create Rich UI Applications like Home
6 * screen, Gallery, Music player, Games, Maps...
8 * DALI is based on OpenGL ES 2.0, however it hides the complexity of
9 * the OpenGL API from developers and provides a clean cross-platform C++ framework.
11 * \section Introduction Introduction
12 * - \link fundamentals Dali Fundamentals \endlink
13 * - \link dali-application Dali Application and Adaptor \endlink
14 * - \link hello-world Hello World - explained \endlink
16 * \section Actors Actors
17 * - \link image-text-mesh-actor Image, Text and Mesh actors \endlink
18 * - \link event-system Event Handling \endlink
19 * - \link custom-actor Custom Actor \endlink
21 * \section ShaderEffects Shader Effects
22 * - \link shader-intro Shader Effects\endlink
24 * \section Animation Animation
25 * - \link animation-example Example and Usage\endlink
26 * - \link animation-rotation Rotation with quaternions \endlink
27 * - \link animation-shader Shader Animation \endlink
28 * - \link animation-multi-threading-notes Multi-threading Notes \endlink
30 * \section Constraints
31 * - \link constraints-intro Introduction to Constraints \endlink
33 * \section SizeNegotiation Size Negotiation
34 * - \link size-negotiation Size Negotiation \endlink
36 * \section UIControls UI Controls
37 * - \link item-view Item View \endlink
38 * - \link text-view Text View \endlink
39 * - \link text-input Text Input \endlink
40 * - \link scroll-view Scroll View \endlink
41 * - \link size-negotiation-controls Size Negotiation for Controls \endlink
42 * - \link markup-processor Markup Processor \endlink
43 * - \link type-registration Type Registration \endlink
44 * - \link properties Properties \endlink
45 * - \link background Background \endlink
47 * \section Dynamics Dynamics
48 * - \link dynamics-intro Introduction to Dynamics\endlink
49 * - \link dynamics-initialization Initializing the Simulation\endlink
50 * - \link dynamics-bodies Bodies - adding and controlling dynamic objects \endlink
51 * - \link dynamics-joints Joints - linking objects\endlink
52 * - \link dynamics-collisions Collision Detection and Filtering\endlink
55 * - \link script-overview Overview \endlink
56 * - \link script-howto How to Add a Custom Control \endlink
57 * - \link script-hello Hello World in script \endlink
59 * - \link handle-body-idiom Handle – body idiom \endlink
62 * - \link viewing-modes Viewing modes \endlink
65 * - \link resource-tracking Resource Tracking \endlink
66 * - \link performance-profiling Performance Profiling \endlink
68 * \section Performance
69 * - \link performance-tips Performance Tips \endlink
70 * - \link texture-atlases Texture Atlases \endlink
71 * - \link Texture_Compression Compressing Textures \endlink
74 * See [Automated Tests](@ref auto_testing) for instructions.
79 * \section scene_intro What is a scene graph?
81 * A scene graph is a collection of nodes in a graph or tree structure.
82 * A node may have many children but often only a single parent,
83 * with the effect of a parent applied to all its child nodes;
84 * an operation performed on a group automatically propagates
85 * its effect to all of its members. In many programs, associating
86 * a geometrical transformation matrix (see also transformation and matrix)
87 * at each group level and concatenating such matrices together is an
88 * efficient and natural way to process such operations. A common feature,
89 * for instance, is the ability to group related shapes/objects into a
90 * compound object that can then be moved, transformed, selected,
91 * etc. as easily as a single object.
93 * \section scene_dali How does this relate to the Dali public API?
95 * Actors are effectively nodes that receive input (touch events) and act as a
96 * container for draw-able elements (which are also nodes) and other actors.
98 * For example a Button actor will be an actor with several elements such as button background,
99 * text label and button face. When the actor is moved around, it's child elements will move with it.
100 * When the button is pressed, the actor will receive an event and adjust the color of its button face
103 * \section scene_internal Why does Dali internally have a second scene graph?
104 * Actors and elements are contained in a scene graph which deals with input, layout and some animation
105 * it doesn't perform any drawing.
107 * All the drawing is done via the Render Manager which has it's own render scene graph, where it's nodes
108 * are just for drawing things like image/text and moving them around. So when you create an Image element
109 * it will ask the RenderManager to create an Image node. The separation allows the RenderManager to
110 * run in a separate thread to maintain a high frame rate, without being slowed down by any logic
111 * performed on the actor/element side.