4 # High Level Design {#dali-hld}
6 ## Components {#dali-components}
8 + **DALi Core:** Event handling, Scene Graph, Rendering, Resource Management
9 + **DALi Adaptor:** Threading Model, Integration with the main loop.
10 + **DALi Platform Abstraction:** Resource loading & decoding in multiple threads (part of dali-adaptor)
11 + **DALi Toolkit:** Reusable UI Controls, Effects & Scripting Support
13 ![ ](architecture.png)
15 ## Main, Update & Render Threads {#dali-threads}
17 DALi uses a multithreaded architecture in order to provide the best performance and scalability.
19 + **Event Thread:** The main thread in which application code and event handling runs.
20 + **Update Thread:** Updates the nodes on the scene as well as running animations & constraints
21 + **Render Thread:** OpenGL drawing, texture and geometry uploading etc.
22 + **Resource Threads:** Loads images and decodes into bitmaps etc.
24 ![ ](dali-threads.png)