In order to exploit the full capabilities of the underlying platform, Coherent UI has a multiprocess architecture. It has the following processes:
Almost everything in Coherent UI is asynchronous. Most calls to Coherent UI require same callback or listener, that will be notified the result is ready or some event has occurred.
Coherent::UI::ViewContext::Update
method.Coherent UI is not thread safe, except for parts that are explicitly marked as such. All view manipulations and events triggering must always happen in the same thread that calls Coherent::UI::ViewContext::Update
. In order to support client application that have a multi-threaded rendering architecture however Coherent UI supports fetching surfaces from a thread different than the one that calls Coherent::UI::ViewContext::Update
. This results in Coherent::UI::ViewListener::OnDraw
callback being executed on the other thread. Rendering resource creation and destruction can also happen in secondary threads through the response object mechanism.