扁平景觀傾印

本指南適合在為 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 執行個體已建立兩個轉換 (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) 具有可視區域/檢視關係,其中根 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 映像檔。每張圖片的相關資訊以三行表示。

第一行顯示圖片屬性。具體措施包括:

第二行顯示建立映像檔的 Transform 節點。

第三行會列出圖片矩形的屬性。具體措施包括:

  • 原點,代表矩形左上角。
  • 代表矩形寬度和高度的範圍。
  • 順時針對應 UV。從左上角開始並順時針旋轉,每個角落的 (x, y) 取樣點都會以 [0.0, 1.0] 範圍內的值表示。因此,順時針包含樣本區域、裁剪區域和旋轉的資訊。