本文档介绍了如何转储 Flatland 以及读取输出内容。本指南很实用 如果您想在针对生成式 AI 进行开发时调试 Flatland 场景的状态, Fuchsia 并使用 Flatland 创建图形视图。更多信息 有关 Flatland 的信息,请参阅 Flatland。
检查您的 Flatland 场景
您可以使用 要转储的 Component Inspection 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
拓扑部分创建了整个平面的 ASCII 表示法 场景。
各平原地带
Transform
该节点由一对
数字。该对中的第一个数字是 *Flatland 实例 ID*。它
表示创建了该特定 Transform 的 Flatland 实例。通过
转换对中的第二个数字是 Transform Id。这是由用户定义的
转换的标识符,在由
实例。在上面的示例中,(2:0)
、(2:1)
、(4:1)
(等等)表示
转换节点。标识符为 2
的 Flatland 实例创建了两个
转换(0
和 2
)。
每行只包含一个 Transform 节点,并且可以包含一个调试名称。
您可以使用
fuchsia.ui.composition.Flatland.SetDebugName.
在上面的示例中,节点 (2:0)
的调试名称为 FlatlandDisplay
。
“-|
”符号表示节点之间的父/子关系,
创建图表结构。例如,节点 (2:1)
是节点的子级
(2:0)
。请参阅
fuchsia.ui.composition.Flatland
,详细了解相关影响。简而言之,这表示节点 (2:1)
将渲染在节点(2:0)
的上层同样,两个
捕获的是平地实例。节点 (2:1)
和节点 (4:1)
的
视口/视图关系,其中根 Transform 节点的内容
(4:1)
(以及生成的子节点图)在
节点 (2:1)
。
请注意,在上面的示例中,节点 (4:1)
有两个子节点:(4:0)
和
(4:5)
。直接子节点在同一缩进列中表示。
这两个节点之间的线条表示子节点 (4:0)
的子图。
节点 (4:1)
后面的线条表示节点 (4:1)
的子图。
拓扑将始终从显示屏的根节点开始。这意味着 任何未连接到 Display 的 Flatland 实例和 Transforms 便不会以 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 表示形式与此类似, 只不过每个 Flatland 实例是单独列出的。
请记住,拓扑部分指出只有 已显示连接到根显示节点的实例。在此输出中, 系统会列出实例,无论它们是否连接到根显示屏 以及是否使用拓扑。在上面的示例中,实例 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)]]
本部分列出了使用以下选项创建的 Flatland 映像 fuchsia.ui.composition.Flatland.CreateImage. 每张图片的相关信息用三条线表示。
第一行显示了图片属性。其中包括:
- 尺寸(以像素为单位),表示为“
[width]x[height]
” - RGBA 颜色,每个值都在
[0.0, 1.0]
范围内 - 通过 fuchsia.ui.composition.Flatland.BlendMode
第二行显示的是创建图片的转换节点。
第三行列出了图片矩形的属性。其中包括:
- 原点,表示矩形的左上角。
- 范围,表示矩形的宽度和高度。
- 顺时针映射 UV。从左上角开始旋转
顺时针,每个角的
(x, y)
采样点用一个值表示 在[0.0, 1.0]
的范围内。因此,顺时针 UV 包含 关于样本区域、裁剪区域和旋转的信息。