什么是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端核心数据结构类图以及对应关系
BouncingBall示例应用与Scenic图形系统交互时序图
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光照效果
|