什麼是Scenic
Scenic作爲Fuchsia最重要Garnet Service之一,提供了包括圖形合成,渲染,動畫的圖形系統功能
詳細介紹請參考Google的官方文檔Link
Bouncing Ball Example
Fuchsia提供了示例代碼展示客戶端應用進程如何使用Scenic提供的服務來繪製GUI和顯示GUI 到屏幕上,本文試圖通過時序圖來說明Scenic圖形系統與Client應用交互工作原理,包括
- Scenic進程啓動的初始化工作時序
- BouncingBall示例應用與Scenic交互中Scenic進程中重要interface的工作時序
- Fuchsia官網文檔https://fuchsia.googlesource.com/fuchsia/+/master/docs/the-book/ui/life_of_a_pixel.md#life-of-a-pixel 的時序
- Scenic Server端核心數據結構類圖以及對應關係
Server端的對應關係是:
- 1個gfx Engine 對應 1個SceneGraph
- 1個SceneGraph 對應 n個Compositor
- 1個Compositor 對應 1個LayerStack
- 1個LayerStack 對應 n個Layer
- 1個Layer 對應 1個 Renderer
- 1個Renderer 對應 1個Camera
- 1個Camera 對應 1個Scene
- 1個Scene 對應 n個child或者parts Nodes或者n個Light光照效果