Hummingbird draws the UI (a View) in a user-provided texture. The Unity integration takes care of that by calling UnitySetRenderTexture
method followed by a SetRenderTarget
render event.
Hummingbird performs incremental rendering by updating only the parts of the UI texture that have changed. It will not redraw everything in the UI, which improves performance significantly. The user should not draw anything on the UI texture except the output of Hummingbird. Internally Hummingbird uses the Coherent Labs Renoir graphics library.
Hummingbird asynchronously records rendering commands that are later executed in the render thread when the DrawView
render event is issued.
This is the reason every View
object has a corresponding ViewRenderer
. The View
lives on the main thread and "controls" the page, while the ViewRenderer
is only in charge of drawing it and lives on the render thread.
On different platforms, Hummingbird can draw with different rendering APIs. The API specific code is encapsulated in a Renoir backend. The Hummingbird Unity plugin uses different backends depending on the selected graphics rendering API in the project settings.
Hummingbird supports the following rendering APIs: