# DALi introduction ## DALi 3D ( Dynamic Animation Library ) DALi is a quick and easy way of allowing developers to create Rich UI Applications like: + Image & Video galleries + Music players + Games + Maps + Homescreens / launch pads + Advanced watch faces for wearable devices DALi is based on OpenGL ES 2.0 & 3.0, however it hides the complexity of the OpenGL API from developers and provides a clean cross-platform C++ & JavaScript framework. + Create Images, Text and Meshes + Create shaders using GLSL + Provide multiple cameras and render targets + Provides Layers to aid in 2D UI layout + Easy to use Animation framework + Automatic background loading of resources ( images / text / meshes ) + Runs all animations in a seperate thread. This helps maintain 60 FPS even if JavaScript is performing a long operation ( e.g. Garbage Collection ). + Provides keyboard / touch / mouse handling ![ ](screen-shot.png) ## Introduction - \link fundamentals Dali Fundamentals \endlink - \link dali-application Dali Application and Adaptor \endlink - \link hello-world Hello World - explained \endlink - \link handle-body-idiom Handle – body idiom \endlink ## Actors - \link image-mesh-actor Image and Mesh actors \endlink - \link event-system Event Handling \endlink - \link custom-actor Custom Actor \endlink ## ShaderEffects - \link shader-intro Shader Effects\endlink ## Animation - \link animation-example Example and Usage\endlink - \link animation-rotation Rotation with quaternions \endlink - \link animation-shader Shader Animation \endlink - \link animation-multi-threading-notes Multi-threading Notes \endlink ## Constraints - \link constraints Introduction to Constraints \endlink ## Size Negotation - \link size-negotiation Size Negotiation \endlink ## UI Controls - \link text-label Text Label\endlink - \link scroll-view Scroll View \endlink - \link size-negotiation-controls Size Negotiation for Controls \endlink - \link type-registration Type Registration \endlink - \link properties Properties \endlink - \link background Background \endlink ## Dynamics - \link dynamics-intro Introduction to Dynamics\endlink - \link dynamics-initialization Initializing the Simulation\endlink - \link dynamics-bodies Bodies - adding and controlling dynamic objects \endlink - \link dynamics-joints Joints - linking objects\endlink - \link dynamics-collisions Collision Detection and Filtering\endlink ## Scripting - \link scriptoverview JSON and JavaScript Overview \endlink - \link script-json-specification JSON Specification\endlink - \link script-hello Hello World in script \endlink - \link javascriptwrapping JavaScript Wrapping Guide for DALi developers\endlink ## Rendering - \link viewing-modes Viewing modes \endlink ## Profiling - \link performanceprofiling Performance Profiling \endlink - \link resourcetracking Resource Tracking \endlink ## Performance - \link performancetips Performance Tips \endlink - \link textureatlases Texture Atlases \endlink - \link texturecompression Compressing Textures \endlink ## Testing See [Automated Tests](@ref auto_testing) for instructions. ## Modifying this documentation - \link documentationguide Modifying this documentation \endlink