本指南適合在為 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
拓撲區段會建立以 ASCII 呈現整個平地情境的 ASCII 表示法。
配對中的第一個數字是 *Flatland Instance Id*。它代表特定 Transform 建立的 Flatland 執行個體。組合中的第二個數字是轉換 ID。這是使用者定義的轉換 ID,在執行個體建立的所有轉換中不會重複。在上述範例中,(2:0)
、(2:1)
、(4:1)
(依此類推) 代表轉換節點。ID 為 2
的 Flatland 執行個體已建立兩個轉換 (0
和 2
)。
每一行只包含一個「轉換」節點,可包含偵錯名稱。您可以使用 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)
具有可視區域/檢視關係,其中根 Transform 節點 (4:1)
的內容 (以及產生的子節點圖表) 會以節點 (2:1)
的內容中顯示。
請注意,在上述範例中,節點 (4:1)
有兩個子節點:(4:0)
和 (4:5)
。直接子項節點會以相同的縮排資料欄表示。這兩個節點之間的線條代表子節點 (4:0)
的子圖表。節點 (4:1)
後的程式碼行代表節點 (4:1)
的子圖表。
拓撲一律從 Display 的根節點開始。這表示任何未連結至顯示圖表的 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 表示法很類似,但只列出每個 Flatland 執行個體。
請記住,「Topology」區段只會顯示連線至根顯示節點的執行個體拓撲。這個輸出會列出所有執行個體,無論是否連線至根螢幕拓撲。在上例中,執行個體 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 映像檔。每張圖片的相關資訊以三行表示。
第一行顯示圖片屬性。具體措施包括:
- 以像素為單位,以「
[width]x[height]
」表示 - RGBA 顏色,範圍內每個值
[0.0, 1.0]
- fuchsia.ui.composition.Flatland.BlendMode
第二行顯示建立映像檔的 Transform 節點。
第三行會列出圖片矩形的屬性。具體措施包括:
- 原點,代表矩形左上角。
- 代表矩形寬度和高度的範圍。
- 順時針對應 UV。從左上角開始並順時針旋轉,每個角落的
(x, y)
取樣點都會以[0.0, 1.0]
範圍內的值表示。因此,順時針包含樣本區域、裁剪區域和旋轉的資訊。