平坦场景转储

场景并读取输出。如果您想在为 Fuchsia 开发时调试 Flatland 场景的状态,并使用 Flatland 创建图形视图,本指南会很有用。如需详细了解 Flatland,请参阅 Flatland

检查您的 Flatland 场景

您可以使用组件检查来转储有关 Flatland 场景的信息:

ffx inspect show core/ui/scenic:root/scenic/FlatlandEngine:scene_dump

了解场景转储输出

场景信息可分为三个不同的部分:

拓扑学

输出示例:


Topology:

2:0-| <-- (FlatlandDisplay)
 | 2:1-|
 |  | 4:1-|
 |  |  | 4:0-| <-- (SceneManager Display)
 |  |  |  | 4:2-|
 |  |  |  |  | 4:3-|
 |  |  |  |  |  | 4:4-|
 |  |  |  |  |  |  | 3:1-|
 |  |  | 4:5-|
 |  |  |  | 4:6-|
 |  |  |  |  | 5:1

拓扑部分会创建整个 Flatland 场景的 ASCII 表示法。

每个 Flatland 该对中的第一个数字是 *Flatland 实例 ID*。它表示是哪个 Flatland 实例创建了该特定转换。该对中的第二个数字是转换 ID。这是转换的用户定义标识符,在实例创建的所有转换中是唯一的。在上面的示例中,(2:0)(2:1)(4:1) 等代表 Transform 节点。标识符为 2 的 Flatland 实例创建了两个转换(02)。

每行仅包含一个转换节点,并且可以包含调试名称。您可以使用 fuchsia.ui.composition.Flatland.SetDebugName 指定调试名称。在上面的示例中,节点 (2:0) 具有调试名称 FlatlandDisplay

-|”符号表示节点之间的父/子关系,从而创建图结构。例如,节点 (2:1) 是节点 (2:0) 的子级。如需详细了解相关影响,请参阅 fuchsia.ui.composition.Flatland。简而言之,这意味着节点 (2:1) 将在节点 (2:0) 上方呈现。同样,系统会捕获两个 Flatland 实例之间的关系。节点 (2:1) 和节点 (4:1) 具有视口/视图关系,其中根转换节点 (4:1) 的内容(以及呈现的生成的子节点图表)显示为节点 (2:1) 中的内容。

请注意,在上例中,节点 (4:1) 有两个子节点:(4:0)(4:5)。直属子节点会显示在同一缩进列中。这两个节点之间的线条表示子节点 (4:0) 的子图。节点 (4:1) 后面的线条表示节点 (4:1) 的子图。

拓扑始终从显示屏的根节点开始。这意味着,任何未与显示图表关联的 Flatland 实例转换都不会显示在 ASCII 表示法中。

所有实例

输出示例:


All Instances:

Instance 2 (FlatlandDisplay):
2:0-|
 | 2:1-|

Instance 4 (SceneManager Display):
4:1-|
 | 4:0-|
 |  | 4:2-|
 |  |  | 4:3-|
 |  |  |  | 4:4-|
   4:5-|
      4:6

Instance 3:
3:1-|

Instance 5:
5:1-|

Instance 6:
6:1-|
   6:2-|
      6-3-|

本部分列出了 Flatland 实例的拓扑,但不会显示实例之间的视口/视图连接。ASCII 表示法类似,但每个平面实例都会单独列出。

请注意,拓扑部分指出,系统只会显示与根显示屏节点连接的实例的拓扑。在此输出中,系统会列出所有实例,无论它们是否已连接到根显示屏拓扑。在上面的示例中,实例 6 未连接到根节点拓扑,因此未显示在拓扑部分的示例中。

图片和图片矩形

输出示例:


Frame display-list contains 2 images and image-rectangles.
        image: size=1280x800  multiply_color=(1,1,1,1)  blend_mode=SRC
        transform: (4:3)
        rect: Rectangle2D[origin:(0, 0) extent:(1280, 800) clockwise_uvs:[(1, 0),(1, 1),(0, 1),(0, 0)]]
        image: size=64x64  multiply_color=(1,1,1,1)  blend_mode=SRC_OVER
        transform: (3:1)
        rect: Rectangle2D[origin:(128, 128) extent:(64, 64) clockwise_uvs:[(1, 0),(1, 1),(0, 1),(0, 0)]]

本部分列出了使用 fuchsia.ui.composition.Flatland.CreateImage 创建的 Flatland 图片。每张图片的相关信息都显示在三行中。

第一行显示图片属性。其中包括:

第二行显示了创建图片的 Transform 节点。

第三行列出了 Image Rectangle 的属性。其中包括:

  • 原点,表示矩形的左上角。
  • 表示矩形的宽度和高度的范围。
  • 顺时针映射 UV。从左上角开始顺时针旋转,每个角的 (x, y) 样本点都用 [0.0, 1.0] 范围内的值表示。因此,顺时针 UV 包含有关采样区域、剪裁区域和旋转的信息。