Fuchsia.ui.gfx

新增日期:7

通訊協定

SnapshotCallbackDEPRECATED

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

OnData

要求

名稱類型
data fuchsia.mem/Buffer

結構化

AddChildCmd

定義於 fuchsia.ui.gfx/commands.fidl

將節點新增為另一個節點的子項。

限制:

  • id 會反映具有 has_children 特性的節點。
  • child_id 會參照任何節點。

討論: 子項節點會先從其現有父項移除,就像先套用 DetachCmd 一樣。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
child_id uint32 無預設

AddLayerCmd

定義於 fuchsia.ui.gfx/commands.fidl

新增圖層至圖層堆疊。限制:

  • layer_stack_id 會參照 LayerStack
  • layer_id 會參照 Layer
  • 圖層不得屬於其他堆疊,必須先卸離。
已移除:17 已淘汰:13

廣闊類型說明預設
layer_stack_id uint32 無預設
layer_id uint32 無預設

AddLightCmd

定義於 fuchsia.ui.gfx/commands.fidl

light_id 指定的光源新增至 scene_id 識別的場景。light_id

已移除:17 已淘汰:13

廣闊類型說明預設
scene_id uint32 無預設
light_id uint32 無預設

AddPartCmd

定義於 fuchsia.ui.gfx/commands.fidl

新增節點做為另一個節點的一部分。屬性 (而非子項) 的影響取決於部分的類型。然而,有一個影響是常數:移除節點的所有子項 (例如透過 DetachChildrenCmd) 不會影響其部分。這與網路瀏覽器中的「shadow DOM」類似:

限制:

  • id 會參照具備 has_parts 特性的節點。
  • part_id 會參照任何節點。

討論: 部分節點會先從其現有的父項移除,如同先套用 DetachCmd 一樣。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
part_id uint32 無預設

AmbientLightArgs

定義於 fuchsia.ui.gfx/resources.fidl

AmbientLight 是以所有方向為中心的光源。

支援的指令:

  • SetLightColor
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

BindMeshBuffersCmd

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
mesh_id uint32 無預設
index_buffer_id uint32 無預設
index_format MeshIndexFormat 無預設
index_offset uint64 無預設
index_count uint32 無預設
vertex_buffer_id uint32 無預設
vertex_format MeshVertexFormat 無預設
vertex_offset uint64 無預設
vertex_count uint32 無預設
bounding_box BoundingBox 無預設

BoundingBox

定義於 fuchsia.ui.gfx/types.fidl

代表根據軸對齊的定界框。

如果有任何維度為負數 (例如,最大值 x <最小值.x),系統會將定界框視為空白。用戶端定義空白的定界框則有效。

「空白定界框」是指不承載某一點的邊界。請注意,如果是零音量的零區域定界框 (例如如 (0,0,0)-(0,0,0) 或像是 (0,0,0)-(1,0,0) 這類的點,就不是空白的。

廣闊類型說明預設
min vec3 無預設
max vec3 無預設

BufferArgs

定義於 fuchsia.ui.gfx/resources.fidl

對應至 Memory 範圍的緩衝區。

已移除:17 已淘汰:13

廣闊類型說明預設
memory_id uint32 無預設
memory_offset uint32 無預設
num_bytes uint32 無預設

CameraArgs

定義於 fuchsia.ui.gfx/resources.fidl

相機可用來從特定視角算繪場景。方法是設定轉譯器來使用相機。

下列指令可套用至相機:

  • SetCameraTransform
  • SetCameraProjection
  • SetCameraPoseBuffer
已移除:17 已淘汰:13

廣闊類型說明預設
scene_id uint32

攝影機正在瀏覽的場景。

無預設

CircleArgs

定義於 fuchsia.ui.gfx/shapes.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
radius Value 無預設

ClipNodeArgs

定義於 fuchsia.ui.gfx/nodes.fidl

特色:

  • has_parent
  • is_clip
  • has_parts
已移除:17 已淘汰:13

廣闊類型說明預設
unused uint32 0

ColorRgb

定義於 fuchsia.ui.gfx/types.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
red float32 無預設
green float32 無預設
blue float32 無預設

ColorRgbValue

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須是 ColorRgb,且會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value ColorRgb 無預設
variable_id uint32 無預設

ColorRgba

定義於 fuchsia.ui.gfx/types.fidl

sRGB 色域和非線性傳遞函式。

已移除:17 已淘汰:13

廣闊類型說明預設
red uint8 無預設
green uint8 無預設
blue uint8 無預設
alpha uint8 無預設

ColorRgbaValue

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 ColorRgba,且會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value ColorRgba 無預設
variable_id uint32 無預設

CompositorArgs

定義於 fuchsia.ui.gfx/resources.fidl

合成器會將其 LayerStack 繪製至其附加的 Display 提供的 framebuffer (如果有的話)。如未連接螢幕,就不會顯示任何內容。

已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

CreateResourceCmd 資源

定義於 fuchsia.ui.gfx/commands.fidl

指示合成器建立指定的 Resource,並在表格中註冊,以便在後續的指令參照。

已移除:17 已淘汰:13

廣闊類型說明預設
id uint32

目前未在工作階段中使用的 ID。

無預設
resource ResourceArgs 無預設

DetachChildrenCmd

定義於 fuchsia.ui.gfx/commands.fidl

卸離節點的所有子項 (而非其部分)。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設

DetachCmd

定義於 fuchsia.ui.gfx/commands.fidl

將父項物件從父項 (例如父項節點或圖層堆疊中的圖層) 卸離。將這個指令套用至不可父項的物件是無效行為。如果目標物件目前沒有父項,則為免人工管理。

限制:

  • id 會參照父項物件

討論:在節點中,此指令會將節點從父項卸離,無論其是其父項的一部分或子項。

已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設

DetachLightCmd

定義於 fuchsia.ui.gfx/commands.fidl

light_id 指定的光源從附加的場景 (如果有的話) 卸離。

已移除:17 已淘汰:13

廣闊類型說明預設
light_id uint32 無預設

DetachLightsCmd

定義於 fuchsia.ui.gfx/commands.fidl

scene_id 指定場景中的所有光源卸離。

已移除:17 已淘汰:13

廣闊類型說明預設
scene_id uint32 無預設

DirectionalLightArgs

定義於 fuchsia.ui.gfx/resources.fidl

DirectionalLight 是一種從無限點發出的光。

雖然光源是方向性,但光源仍有部分角度的離散情形 (即光源未完全經過欄處理)。為求簡單起見,我們假設光源的離散方式與光源的主要方向有對稱。

支援的指令:

  • SetLightColor
  • SetLightDirection
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

DisplayCompositorArgs

定義於 fuchsia.ui.gfx/resources.fidl

DisplayCompositor 將附加的 LayerStack 繪製到螢幕上顯示的圖片中。

已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

DisplayInfo

fuchsia.ui.gfx/display_info.fidl 定義

提供螢幕的相關資訊。

已淘汰:13

廣闊類型說明預設
width_in_px uint32

螢幕大小 (以實體像素為單位)。

無預設
height_in_px uint32 無預設

EntityNodeArgs

定義於 fuchsia.ui.gfx/nodes.fidl

特色:

  • has_transform
  • has_children
  • has_parent
  • has_parts
  • has_clip
已移除:17 已淘汰:13

廣闊類型說明預設
unused uint32 0

ExportResourceCmd 已淘汰的「資源」

定義於 fuchsia.ui.gfx/commands.fidl

為指定資源建立外部參照,隨後可將控制代碼傳遞至 token 的對等點匯入 ImportResourceCmd,以便匯入另一個工作階段。詳情請參閱該註解。

匯入用戶端的流程通常與匯出工具不同。 我們並未提供特定的機制,用於將憑證從匯出程式轉移到匯入程式;協作者可以選擇想要執行的任何頻外 API。

已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
token handle<eventpair> 無預設

ExportToken 資源

fuchsia.ui.gfx/tokens.fidl 中定義的

專門用於全域場景圖中子圖表根點的符記。每個 ExportToken 都有一個對應的 ImportToken

景觀用戶端可以使用這個憑證建立型別資源,以從其他用戶端參照其內容。其他用戶端也必須使用對應的 ImportToken 建立相對應的類型資源。

跨用戶端參照的確切性質取決於憑證建立的特定資源。舉例來說,透過這個權杖建立 View 資源,即可將附加至 View 的所有內容嵌入其他用戶端 ViewHolder

已移除:17 已淘汰:13

廣闊類型說明預設
value handle<eventpair> 無預設

FactoredTransform

定義於 fuchsia.ui.gfx/types.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
translation vec3 無預設
scale vec3 無預設
anchor vec3

旋轉和縮放的點。

無預設
rotation Quaternion 無預設

FloatValue

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 float32,且會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value float32 無預設
variable_id uint32 無預設

ImageArgs

定義於 fuchsia.ui.gfx/resources.fidl

對應至特定 Memory 資源範圍的圖片。

已移除:17 已淘汰:13

廣闊類型說明預設
info fuchsia.images/ImageInfo 無預設
memory_id uint32 無預設
memory_offset uint32 無預設

ImageArgs2

定義於 fuchsia.ui.gfx/resources.fidl

對應至特定 Memory 資源範圍的圖片。

已移除:17 已淘汰:13

廣闊類型說明預設
width uint32 無預設
height uint32 無預設
buffer_collection_id uint32

BufferCollection 的 ID。建立這項資源前,應使用 RegisterBufferCollection 在相同的 Session 上註冊緩衝區集合,且應設定其限制。成功分配緩衝區後 (例如在呼叫 WaitForBuffersAllocated 後),可使用集合的 ID 建立圖片資源。

無預設
buffer_collection_index uint32

VMO 的索引,來源為備份這個映像檔的 BufferCollection

無預設

ImageArgs3 資源

定義於 fuchsia.ui.gfx/resources.fidl

Allocator 註冊的 BufferCollection 支援的映像檔。

已移除:17 已淘汰:13

廣闊類型說明預設
width uint32 無預設
height uint32 無預設
import_token fuchsia.ui.composition/BufferCollectionImportToken

您必須向配置器註冊已分配的 BufferCollection,才能建立映像檔。import_token 必須是成功註冊的 BufferCollectionExportToken 的另一端。指定 BufferCollection 的所有用戶端都必須設定其限制,且在呼叫之前應分配緩衝區。

無預設
buffer_collection_index uint32

VMO 的索引,來源為備份這個映像檔的 BufferCollection

無預設

ImagePipe2Args 資源

定義於 fuchsia.ui.gfx/resources.fidl

ImagePipe2 是可做為 MaterialTexture 使用。Resource

已移除:17 已淘汰:13

廣闊類型說明預設
image_pipe_request server_end<fuchsia.images/ImagePipe2> 無預設

ImportResourceCmd 已淘汰的「資源」

定義於 fuchsia.ui.gfx/commands.fidl

匯入透過 ExportResourceCmd() 匯出的資源。token 是事件配對對等點的控制代碼,用於匯出資源;spec 說明匯入資源的類型,以及可以對其套用的指令。之後,id 可用來參照指令中的資源,但這與 (但並非完全相同:請參閱下文) 參照工作階段中建立的資源。例如,您可以透過 AddChildCmd,將子項新增至匯入的 EntityNode。

不過請注意,匯入工具無法取得匯入資源的完整存取權,只能存取完整功能子集。例如,您無法使用 DetachCmd 從父項卸離匯入的 EntityNode。

與 ExportResourceCmd 不同,沒有可設定的逾時時間。您預期匯出資源會在短時間內提供使用。任務:這需要多加處理...例如:假如我們確定永遠不會建立連結 (例如匯入憑證的對等點遭到刪除),我們可能會透過 SessionListener 通知。

已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
token handle<eventpair> 無預設
spec ImportSpec 無預設

ImportToken 資源

fuchsia.ui.gfx/tokens.fidl 中定義的

專門用於全域場景圖中子圖表附件點的符記。每個 ImportToken 都有一個對應的 ExportToken

景觀用戶端可以使用這個憑證建立型別資源,藉此參照其他用戶端的內容。其他用戶端也必須使用對應的 ExportToken 建立對應的類型資源。

跨用戶端參照的確切性質取決於憑證建立的特定資源。舉例來說,透過這個權杖建立 ViewHolder 資源後,用戶端就能嵌入其他用戶端的 View

已移除:17 已淘汰:13

廣闊類型說明預設
value handle<eventpair> 無預設

ImportUnboundEvent

fuchsia.ui.gfx/events.fidl 中定義

當具有指定 ID 的匯入資源不再繫結至其主機資源,或如果匯入的資源因無法使用主機資源而無法繫結時,就會提供此項目。

已移除:17 已淘汰:13

廣闊類型說明預設
resource_id uint32 無預設

LayerArgs

定義於 fuchsia.ui.gfx/resources.fidl

圖層是合成器所繪製的 2D 圖片。圖層堆疊中每個圖層的內容彼此獨立。除非圖層具有相機、紋理或顏色,否則系統不會繪製圖層。

支援的指令:

  • 卸離
  • SetCamera
  • SetColor
  • SetTexture
  • SetSize (深度必須為零)
  • SetSize
  • SetTranslation (Z 元件會決定圖層的相對 Z 順序)
  • 設定旋轉 (必須沿著 Z 軸旋轉)
  • SetScale
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

LayerStackArgs

定義於 fuchsia.ui.gfx/resources.fidl

LayerStack 是連結到 Compositor 的多層堆疊,會按照 Z 順序遞增繪製這些圖層 (或者顯示按照該順序繪製的錯覺:有可能會套用任何不影響輸出的最佳化)。

支援的指令:

  • AddLayer
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

MaterialArgs

定義於 fuchsia.ui.gfx/resources.fidl

簡易紋理對應材質。

支援的指令:

  • SetTextureCmd:設定紋理,也可以設為零 (無紋理)。紋理可以是 Image 或 ImagePipe2。
  • SetColorCmd:設定顏色。
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

Matrix4Value

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 vec4,且會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value mat4 無預設
variable_id uint32 無預設

MemoryArgs 資源

定義於 fuchsia.ui.gfx/resources.fidl

MemoryResource,包裝由用戶端提供的 Zircon vmo 以透過 View 註冊。

已移除:17 已淘汰:13

廣闊類型說明預設
vmo handle<vmo>

用來備份這個記憶體的 VMO。

無預設
allocation_size uint64

vmo 中應使用的記憶體量。

無預設
memory_type fuchsia.images/MemoryType

儲存在 VMO 中的記憶體類型,也就是 GPU 記憶體或主機記憶體。

無預設

MeshArgs

定義於 fuchsia.ui.gfx/shapes.fidl

網格必須繫結至頂點/索引緩衝區,才能算繪;請參閱 BindMeshBuffersCmd。

已移除:17 已淘汰:13

<EMPTY>

MeshVertexFormat

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
position_type ValueType

kVector2 或 kVector3。

無預設
normal_type ValueType

kVector2 或 kVector3 (必須與 position_type 相符) 或 kNone。

無預設
tex_coord_type ValueType

kVector2 或 kNone。

無預設

指標

定義於 fuchsia.ui.gfx/types.fidl

算繪與節點相關聯的目標指標。另請參閱 MetricsEvent

已移除:17 已淘汰:13

廣闊類型說明預設
scale_x float32

節點本機座標系統中一個邏輯像素大小與轉譯目標實體像素大小之間的比率。

此比例係數會隨轉譯目標的解析度和包含節點套用的縮放轉換而改變。一律為正值,且非零。

舉例來說,假設算繪目標是高解析度螢幕,裝置像素比例為 2.0,代表模型中的每個邏輯像素都對應至螢幕上的兩個實體像素。假設沒有任何縮放轉換會影響節點,那麼其指標事件就會回報縮放比例係數為 2.0。

以這個範例為基礎,如果節點的父項對節點套用 0.25 的縮放轉換,則節點的指標事件將回報縮放比例係數為 0.5,表示節點應以較低的實體像素面積 (每個維度的一半大小) 算繪內容,採用較低的解析度和細節層級。

無預設
scale_y float32 無預設
scale_z float32 無預設

MetricsEvent

fuchsia.ui.gfx/events.fidl 中定義

提供有關指定節點的轉譯目標指標資訊。

符合下列條件時,系統會傳送此事件:

  • 節點是 Scene 的子系。
  • 這個節點的 kMetricsEventMask 已設為已啟用狀態。
  • 節點的指標自上次傳送後或 kMetricsEventMask 從停用狀態轉換為已啟用狀態後已有變化。

訂閱此事件即可接收資訊,瞭解在為節點產生紋理時,應套用的縮放比例係數。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
metrics Metrics 無預設

OpacityNodeArgsHACK

定義於 fuchsia.ui.gfx/nodes.fidl

特色:

  • has_transform
  • has_parent
  • has_children
  • has_parts
  • has_opacity
已移除:17 已淘汰:13

廣闊類型說明預設
unused uint32 0

Plane3

定義於 fuchsia.ui.gfx/types.fidl

由中向量描述的方向平面,以及該向量與起點之間的距離。

已移除:17 已淘汰:13

廣闊類型說明預設
dir vec3 無預設
dist float32 無預設

PointLightArgs

定義於 fuchsia.ui.gfx/resources.fidl

PointLight 是一種能朝任何方向發光的光源。根據預設,光線強度會根據實際使用的「反平方法」(請參閱維基百科),但可以調整為其他值,以符合藝術效果。

支援的指令:

  • SetLightColor
  • SetPointLightPosition
  • SetPointLightFalloff
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

四元數

定義於 fuchsia.ui.gfx/types.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
x float32 無預設
y float32 無預設
z float32 無預設
w float32 無預設

QuaternionValue

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為四元,且系統會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value Quaternion 無預設
variable_id uint32 無預設

RectangleArgs

定義於 fuchsia.ui.gfx/shapes.fidl

以 (0,0) 為中心的矩形。

已移除:17 已淘汰:13

廣闊類型說明預設
width Value 無預設
height Value 無預設

ReleaseResourceCmd

定義於 fuchsia.ui.gfx/commands.fidl

釋出用戶端對資源的參照;如此一來,在後續的指令中使用 ID 是違法的。資源的其他參照可能存在,因此釋出資源並不會立即刪除資源,只有在最後一個參照釋出後,才會刪除資源。例如,轉譯進行中的影格可能需要資源,或者可以由其他資源參照。不過,ID 會立即取消註冊,並可以重複使用來建立新的資源。

已移除:17 已淘汰:13

廣闊類型說明預設
id uint32

要去參照的資源 ID。

無預設

RemoveAllLayersCmd

定義於 fuchsia.ui.gfx/commands.fidl

移除圖層堆疊中的所有圖層。限制

  • layer_stack_id 會參照 LayerStack
已移除:17 已淘汰:13

廣闊類型說明預設
layer_stack_id uint32 無預設

RemoveLayerCmd

定義於 fuchsia.ui.gfx/commands.fidl

移除圖層堆疊中的圖層。限制:

  • layer_stack_id 會參照 LayerStack
  • layer_id 會參照 Layer
  • 圖層必須屬於此堆疊。
已移除:17 已淘汰:13

廣闊類型說明預設
layer_stack_id uint32 無預設
layer_id uint32 無預設

RendererArgs

定義於 fuchsia.ui.gfx/resources.fidl

轉譯器透過相機算繪場景。

支援的指令:

  • SetCamera
  • SetRendererParam
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

RoundedRectangleArgs

定義於 fuchsia.ui.gfx/shapes.fidl

以 (0,0) 為中心的圓角矩形。法務參數值必須符合矩形的平坦長度非負數的限制。也就是說,必須遵守下列限制:

  • top_left_半徑 + top_right_半徑 <= 寬度
  • 左下角半徑 + 右下方半徑 <= 寬度
  • 上左半徑 + 左下角半徑 <= 高度
  • top_right_半徑 + 底部_right_半徑 <= 高度
已移除:17 已淘汰:13

廣闊類型說明預設
width Value 無預設
height Value 無預設
top_left_radius Value 無預設
top_right_radius Value 無預設
bottom_right_radius Value 無預設
bottom_left_radius Value 無預設

SceneAddAmbientLightCmd

定義於 fuchsia.ui.gfx/commands.fidl

light_id 指定的光源新增至 scene_id 識別的場景。light_id

已移除:17 已淘汰:13

廣闊類型說明預設
scene_id uint32 無預設
light_id uint32 無預設

SceneAddDirectionalLightCmd

定義於 fuchsia.ui.gfx/commands.fidl

light_id 指定的光源新增至 scene_id 識別的場景。light_id

已移除:17 已淘汰:13

廣闊類型說明預設
scene_id uint32 無預設
light_id uint32 無預設

SceneAddPointLightCmd

定義於 fuchsia.ui.gfx/commands.fidl

light_id 指定的光源新增至 scene_id 識別的場景。light_id

已移除:17 已淘汰:13

廣闊類型說明預設
scene_id uint32 無預設
light_id uint32 無預設

SceneArgs

定義於 fuchsia.ui.gfx/resources.fidl

場景是場景圖的根層級,其下方節點的樹狀結構定義了算繪環境 (光源等)。

支援的指令:

  • 新增/RemoveLight
  • AddChild
已移除:17 已淘汰:13

廣闊類型說明預設
dummy uint32 0

SendSizeChangeHintCmdHACK

定義於 fuchsia.ui.gfx/commands.fidl

將關於待處理大小變更的提示傳送至指定節點和下方所有節點。這通常是在動畫之前傳送。

width_change_factorheight_change_factor 是該項目未來的預期尺寸。這個數字會封裝縮放比例,以及版面配置寬度和高度的變更。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
width_change_factor float32 無預設
height_change_factor float32 無預設

SetAnchorCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定資源 (通常是節點) 的錨點。

限制:

  • id 會參照具有 has_transform 特性的資源。
已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
value Vector3Value 無預設

SetCameraClipSpaceTransformCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定相機的 2D 裁切空間轉換。

限制:

  • camera_id 會參照 Camera
  • translation 是所需的轉譯功能,搭配 Vulkan NDC 即可。
  • scale 是轉譯前要套用至 X/Y 平面的比例因數。
已移除:17 已淘汰:13

廣闊類型說明預設
camera_id uint32 無預設
translation vec2 無預設
scale float32 無預設

SetCameraCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定轉譯器的相機。

限制:

  • renderer_id 會參照 Renderer
  • camera_id 會修正 Camera,或傳遞零以停止轉譯。
  • matrix 是 kMatrix4x4 類型的值或變數,
已移除:17 已淘汰:13

廣闊類型說明預設
renderer_id uint32 無預設
camera_id uint32 無預設

SetCameraPoseBufferCmd

定義於 fuchsia.ui.gfx/commands.fidl

camera_id 識別的相機設定「pose buffer」。這項作業可同時套用至攝影機和立體攝影機。

這會覆寫相機的所有位置和旋轉設定,且會依據每個影格的呈現時間,從每個影格的姿勢緩衝區取得位置和旋轉。

姿勢緩衝區代表未來特定時間點的姿勢環形緩衝區。buffer_id 識別的緩衝區中的每個項目都是四元數,以及位置如下所示:

struct Pose { // Quaternion float32 a; float32 b; float32 c; float32 d;

// 位置 float32 x; float32 y; float32 z;

// 保留/邊框間距 byte[4] 保留項目; }

緩衝區可視為 num_entries Pose 結構的封裝陣列,且需要至少 num_entries * size of(Pose) 個位元組。

四元數和位置會在相機父項節點的空間中指定。

base_time 是以 CLOCK_MONOTONIC 時間基數表示的基本時間點,以奈秒表示,time_interval 則是緩衝區中項目之間的奈秒時間。base_time 必須是過去的時間。

針對指定時間點 (在 CLOCK_MONOTONIC 時間集以奈秒表示) 的 t 時,姿態緩衝區中對應姿勢的索引可以依照以下方式計算:

index(t) = ((t - 基準時間) / time_interval) % num_entries

姿勢 [index(t)] 在時間間隔 (t - time_interval, t] 的範圍內有效,且應在該間隔期間持續不進行同步處理)。如果為多個非不可分割的作業需要單一擺設值,則應該將值鎖住,並儲存在放置緩衝區之外。

由於沒有任何同步基元保護姿勢,因此如果姿勢已鎖住,便可能只有部分更新,而讀取的姿勢會包含姿勢更新前的某些元件,以及更新姿勢中的部分元件。使用這種「色情」姿勢的安全,必須仰賴兩項因素:

  1. 編寫姿勢 [index(t)] 的連續姿勢,彼此之間非常相似,因此如果部分元件是從第一種取得,並從另一個結果取得,則結果數值大同小異

  2. 位置和四元數的空間會保證在本機平放,因為連續更新之間的變更規模會保持本機平放,這可保證其中兩個姿勢看起來很類似,也代表語意相似的姿態 (亦即沒有停電,因此會使圖像的四元數位置在位子位置或四元數位置上產生明顯的數值變化),因此會確保這個如要進一步瞭解四分位數旋轉的編碼方式,請參閱 https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

此指令適用於延遲傾斜攝影機姿勢,以支援低延遲動作追蹤算繪。

已移除:17 已淘汰:13

廣闊類型說明預設
camera_id uint32 無預設
buffer_id uint32 無預設
num_entries uint32 無預設
base_time int64 無預設
time_interval uint64 無預設

SetCameraProjectionCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定相機的投影矩陣。 這項作業無法套用至 StereoCamera。

限制:

  • camera_id 會參照非 StereoCameraCamera
  • fovy 是 Y 軸的視野,以弧度為單位。

注意:透過將 fovy 設為零,即可指定預設的正方投影。在此情況下,相機轉換會被忽略。

已移除:17 已淘汰:13

廣闊類型說明預設
camera_id uint32 無預設
fovy FloatValue 無預設

SetCameraTransformCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定攝影機的檢視矩陣。這項作業可同時套用至攝影機和立體攝影機。

限制:

  • camera_id 會參照 Camera
  • eye_position 是眼睛的位置。
  • eye_look_at 是眼睛指向的場景。
  • eye_up 會定義相機的「向上」向量。
已移除:17 已淘汰:13

廣闊類型說明預設
camera_id uint32 無預設
eye_position Vector3Value 無預設
eye_look_at Vector3Value 無預設
eye_up Vector3Value 無預設

SetClipCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定/清除節點的短片。已淘汰:使用 SetClipPlanesCmd。

限制:

  • node_id 會參照具有 has_clip 特性的 Node
  • clip_id 是包含 is_clip 特性的 Node,或是不含任何字元。如果參照的節點未取得 Root 權限,則不會有任何效果 (因為無法判定其完整的世界轉換)。
  • clip_to_self 如果設為 False,子項只會裁剪至 clip_id 指定的區域。如果為 true,子項會額外裁剪到節點的形狀 (由其 ShapeNode 部分決定)。

討論:如果節點含有短片,則該節點會同時套用至節點的各個部分和子項。在某些情況下 (待定),片段不適用於節點;在此情況下,會是並沒有為節點指定剪輯。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
clip_id uint32 無預設
clip_to_self bool 無預設

SetClipPlanesCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定套用至節點及其所有子項的短片平面清單。取代先前的 SetClipPlanesCmd 清單。

  • node_id 會參照具有 has_clip 特性的 Node
  • clip_planes 是新的導向式裁剪平面清單。
已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
clip_planes vector<Plane3> 無預設

SetColorCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定材質的顏色。

限制:

  • material_id 會參照 Material

如果已在材質上設定紋理,系統會將從紋理取樣的值乘以顏色。

已移除:17 已淘汰:13

廣闊類型說明預設
material_id uint32 無預設
color ColorRgbaValue 無預設

SetDisableClippingCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定是否要停用指定的轉譯器裁剪功能。如果是新建的轉譯器,系統「不會」停用裁剪功能 (也就是會啟用)。

注意:這項設定只會停用影像裁剪功能,但為了達到命中測試的目的,物件仍會裁剪。

renderer_id 會對應目標轉譯器。disable_clipping 會指定是否應停用剪輯功能。

已移除:17 已淘汰:13

廣闊類型說明預設
renderer_id uint32 無預設
disable_clipping bool 無預設

SetDisplayColorConversionCmdHACK

定義於 fuchsia.ui.gfx/commands.fidl

設定套用至合成器螢幕的顏色轉換。系統會依據公式將轉換套用至每個像素:

(矩陣 * (像素 + 預先偏移)) + 後置值

其中像素是欄向量,由像素的 3 個元件組成

matrix 會依列主要順序傳送。用戶端將負責視需要傳送預設值。 fidl 目前不支援預設值。預設值: preoffsets = [0 0 0] 矩陣 = [1 0 0 0 1 0 0 0 1] 事後模式 = [0 0 0]

已移除:17 已淘汰:13

廣闊類型說明預設
compositor_id uint32 無預設
preoffsets float32[3] 無預設
matrix float32[9] 無預設
postoffsets float32[3] 無預設

SetDisplayMinimumRgbCmdHACK

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
min_value uint8 無預設

SetDisplayRotationCmdHACK

定義於 fuchsia.ui.gfx/commands.fidl

視裝置而定,螢幕可能會根據較低層級的裝置控制器認定的像素實體方向旋轉。合成器和圖層必須與基礎的實體方向保持一致,也就是說,對於螢幕截圖等特定作業,除非知道較高層級的螢幕如何決定畫面方向,否則這些作業無法提供正確的方向結果。輪替作業的唯一法律值是 0、90、180 和 270,這些值會逆時針套用。

已移除:17 已淘汰:13

廣闊類型說明預設
compositor_id uint32 無預設
rotation_degrees uint32 無預設

SetEnableDebugViewBoundsCmd

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
view_id uint32 無預設
enable bool 無預設

SetEventMaskCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定資源應向工作階段事件監聽器傳送哪些事件。這個指令會取代資源之前的所有事件遮罩。

資源的初始事件遮罩為零,代表不會回報任何事件。

限制:

  • resource_id 是有效的資源 ID
  • event_mask 是 0,或是 k*EventMask 位元「或」的組合。
已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
event_mask uint32 無預設

SetHitTestBehaviorCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定節點的命中測試行為。

討論:根據預設,命中測試會對節點的內容、其部分及子項進行。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
hit_test_behavior HitTestBehavior 無預設

SetImportFocusCmdDEPRECATED

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

<EMPTY>

SetLabelCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定/清除標籤,幫助開發人員在使用診斷工具時識別資源的用途。

標籤在場景圖中並無任何功能用途。這項資訊只是協助開發人員瞭解其結構。場景管理員可能會視需求截斷或捨棄標籤。

限制:

  • 標籤的長度上限為 kLabelMaxLength 個字元。
  • 將標籤設為空字串即可清除。
已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
label string 無預設

SetLayerStackCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定合成器的圖層堆疊,取代目前的堆疊 (如有)。限制:

  • compositor_id 會參照 DisplayCompositor
  • layer_stack_id 會參照 LayerStack
已移除:17 已淘汰:13

廣闊類型說明預設
compositor_id uint32 無預設
layer_stack_id uint32 無預設

SetLightColorCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定 light_id 識別的光源顏色。

已移除:17 已淘汰:13

廣闊類型說明預設
light_id uint32 無預設
color ColorRgbValue 無預設

SetLightDirectionCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定 light_id 識別的 DirectionalLight 方向。

已移除:17 已淘汰:13

廣闊類型說明預設
light_id uint32 無預設
direction Vector3Value 無預設

SetMaterialCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定/清除節點的材質。

限制:

  • node_id 會傳遞具備 has_material 特性的 Node
  • material_id 表示 Material,或者不含任何。
  • 如果這項指令導致目標同時具有 ShapeMaterial,則兩者必須彼此相容 (請參閱 README.md 中有關「形狀/材質相容性」的說明)。

討論:如要繪製,節點需要同時具備 ShapeMaterial。如果沒有材質,節點仍然可以參與命中測試和剪輯。如果沒有形狀,節點就無法執行上述任一動作。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
material_id uint32 無預設

SetOpacityCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定節點的不透明度。

限制:

  • node_id 會修飾具有 has_opacity 特性的 Node
  • opacity 在 [0, 1] 的範圍中。
已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
opacity float32 無預設

SetPointLightFalloffCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定 PointLight 識別的 PointLight 的掉落因數 (由 light_id 識別)。值 1.0 代表實體單位的「反方定法」(請參閱維基百科)。其他值可用於藝術效果。舉例來說,如果值為 0.0,表示途徑的輻射不會取決於光與光線的距離。

已移除:17 已淘汰:13

廣闊類型說明預設
light_id uint32 無預設
falloff FloatValue 無預設

SetPointLightPositionCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定由 light_id 識別的 PointLight 位置。

已移除:17 已淘汰:13

廣闊類型說明預設
light_id uint32 無預設
position Vector3Value 無預設

SetRendererCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定圖層的轉譯器,取代目前的轉譯器 (如果有的話)。限制:

  • layer_id 會參照 Layer
  • renderer_id 會參照 Renderer
已移除:17 已淘汰:13

廣闊類型說明預設
layer_id uint32 無預設
renderer_id uint32 無預設

SetRendererParamCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定會影響轉譯器轉譯場景的參數。

renderer_id 會處理正在修改的轉譯器。param 會說明應設定的參數和內容。

已移除:17 已淘汰:13

廣闊類型說明預設
renderer_id uint32 無預設
param RendererParam 無預設

SetRotationCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定資源 (通常是節點) 的旋轉設定。

限制:

  • id 會參照具有 has_transform 特性的資源。

討論:四元數代表 3D 座標系統中的任何旋轉。具有 [a,b,c,d], [a] 則代表應套用的旋轉量,而 [b,c,d] 則代表套用旋轉效果的向量。這與 glm::quat 的語意相同。

已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
value QuaternionValue 無預設

SetScaleCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定資源 (通常是節點的) 比例。

限制:

  • id 會參照具有 has_transform 特性的資源。
已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
value Vector3Value 無預設

SetSemanticVisibilityCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定節點的語意瀏覽權限。

討論:根據預設,所有節點都會在語意上清楚顯示。對無障礙功能執行的命中測試會忽略語意化節點及其子項。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
visible bool true

SetShapeCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定/清除節點的形狀。

限制:

  • node_id 會解析具有 has_shape 特性的 Node
  • shape_id 表示 Shape,或者不含任何。
  • 如果這項指令導致目標同時具有 ShapeMaterial,則兩者必須彼此相容 (請參閱 README.md 中有關「形狀/材質相容性」的說明)。

討論:如要繪製,節點需要同時具備 ShapeMaterial。如果沒有材質,節點仍然可以參與命中測試和剪輯。如果沒有形狀,節點就無法執行上述任一動作。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
shape_id uint32 無預設

SetSizeCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定物件的大小。

限制:

  • id 會修正可調整大小的物件。
  • 部分支援這個指令的物件可能有其他限制 (例如在某些情況下,depth 必須是零)。
已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
value Vector2Value 無預設

SetStereoCameraProjectionCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定立體攝影機投影矩陣。這項作業只能套用至立體相機。

限制:

  • camera_id 會參照 StereoCamera
  • left_projection 是左眼的投影矩陣。
  • right_projection 是右眼的投影矩陣。

如有需要,這些投影矩陣也可能在相機空間中加入轉換效果,方便大眾查看。

已移除:17 已淘汰:13

廣闊類型說明預設
camera_id uint32 無預設
left_projection Matrix4Value 無預設
right_projection Matrix4Value 無預設

SetTagCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定/清除節點的標記值。

工作階段可將標記值套用至任何有權存取的節點,包括匯入的節點。這些標記僅供工作階段使用,無法由其他工作階段讀取或修改。如果多個工作階段匯入同一個節點,每個工作階段都只會觀察本身的標記值。

工作階段的命中測試結果只會包含工作階段標記為非零值的節點。因此,選取時,工作階段可以使用標記值,將節點與其功能用途建立關聯。

限制:

  • node_id 會參照 Node
  • tag_value 是要指派的標記值,0 則是移除標記。
已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
tag_value uint32 無預設

SetTextureCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定/清除材質的紋理。

限制:

  • material_id 會參照 Material
  • texture_id 表示 ImageImagePipe2 或不含任何項目。

如未提供紋理 (亦即 texture_id 為零),則會使用純色。如果提供紋理,系統會將從紋理取樣的值乘以顏色。

已移除:17 已淘汰:13

廣闊類型說明預設
material_id uint32 無預設
texture_id uint32 無預設

SetTranslationCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定資源 (通常是節點的) 轉譯。

限制:

  • id 會參照具有 has_transform 特性的資源。
已移除:17 已淘汰:13

廣闊類型說明預設
id uint32 無預設
value Vector3Value 無預設

SetViewHolderBoundsColorCmd

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
view_holder_id uint32 無預設
color ColorRgbValue 無預設

SetViewPropertiesCmd

定義於 fuchsia.ui.gfx/commands.fidl

設定 ViewHolder 附加的 View 屬性。

限制:

  • view_holder_id 會參照 ViewHolder
已移除:17 已淘汰:13

廣闊類型說明預設
view_holder_id uint32 無預設
properties ViewProperties 無預設

ShapeNodeArgs

定義於 fuchsia.ui.gfx/nodes.fidl

特色:

  • has_parent
  • has_shape
  • has_material
已移除:17 已淘汰:13

廣闊類型說明預設
unused uint32 0

SizeChangeHintEvent

fuchsia.ui.gfx/events.fidl 中定義

用於回應父項節點 (SendSizeChangeHintCmd) 的大小變更提示。

符合下列條件時,系統會傳送此事件:

  • 這個節點的 kSizeChangeEventMask 已設為已啟用狀態。
  • 上層節點已傳送 SendSizeChangeHintCmd。

訂閱此事件即可接收近期節點所需的大型紋理資訊。標準用途是預先分配記憶體,避免重複重新配置。

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
width_change_factor float32 無預設
height_change_factor float32 無預設

StereoCameraArgs

定義於 fuchsia.ui.gfx/resources.fidl

立體聲攝影機能以並排立體聲的方式轉譯場景。

任何可套用至攝影機的指令都可以套用至立體聲相機。其他支援的指令:

  • SetStereoCameraProjection
已移除:17 已淘汰:13

廣闊類型說明預設
scene_id uint32

攝影機正在瀏覽的場景。

無預設

TakeSnapshotCmdDEPRECATED 資源

定義於 fuchsia.ui.gfx/commands.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
node_id uint32 無預設
callback SnapshotCallbackDEPRECATED 無預設

VariableArgs

定義於 fuchsia.ui.gfx/resources.fidl

說明已輸入、用戶端可修改的值。

已移除:17 已淘汰:13

廣闊類型說明預設
type ValueType 無預設
initial_value Value 無預設

Vector2Value

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須是 vec2,系統會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value vec2 無預設
variable_id uint32 無預設

Vector3Value

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 vec3,系統會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value vec3 無預設
variable_id uint32 無預設

Vector4Value

定義於 fuchsia.ui.gfx/types.fidl

如果 variable_id 為零,則 value 明確指定的值,或 variable_id 識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 vec4,且會忽略 value

已移除:17 已淘汰:13

廣闊類型說明預設
value vec4 無預設
variable_id uint32 無預設

ViewArgs 資源

定義於 fuchsia.ui.gfx/resources.fidl

代表大型場景圖中子圖表的根層級。您可以將節點以子項的形式附加至 View。這些節點會自行套用 View 的座標轉換,並裁剪至 View 的定界框。查看《ViewProperties》。

每個 View 都會透過共用權杖配對連結至配對的 ViewHolder

一般來說,View 和相關聯的 ViewHolder 屬於不同的程序。透過合併這些元件,系統可使用不同程序提供的內容,建構整個系統的 UI。

已移除:17 已淘汰:13

廣闊類型說明預設
token fuchsia.ui.views/ViewToken 無預設
debug_name string? 無預設

ViewArgs3 資源

定義於 fuchsia.ui.gfx/resources.fidl

代表大型場景圖中子圖表的根層級。您可以將節點以子項的形式附加至 View。這些節點會自行套用 View 的座標轉換,並裁剪至 View 的定界框。查看《ViewProperties》。

每個 View 都會透過共用權杖配對連結至配對的 ViewHolder

一般來說,View 和相關聯的 ViewHolder 屬於不同的程序。透過合併這些元件,系統可使用不同程序提供的內容,建構整個系統的 UI。

用戶端會使用 ViewRef 自我識別其 View,這是可以複製並傳遞至動態消息導向樣式中的其他元件的穩定 ID。其中包含一個 ViewRefControl,其會用來指出整個系統中的 View 刪除作業;ViewRefControl 不得重複,請勿複製。

已移除:17 已淘汰:13

廣闊類型說明預設
token fuchsia.ui.views/ViewToken 無預設
control_ref fuchsia.ui.views/ViewRefControl

control_ref.reference 必須具備預設事件配對權限 (例如有訊號) 減去 ZX_RIGHT_DUPLICATE。

無預設
view_ref fuchsia.ui.views/ViewRef

view_ref.reference 必須具備基本權限 (即無信號)。

無預設
debug_name string? 無預設

ViewAttachedToSceneEvent

fuchsia.ui.gfx/events.fidl 中定義

當特定檢視畫面的父項 ViewHolder 成為場景的一部分時,就會傳送至檢視畫面的工作階段。

如果 Scene 節點與 ViewHolder 節點之間存在未中斷的父項-子項關聯,ViewHolder 就會視為場景的一部分。

已移除:17 已淘汰:13

廣闊類型說明預設
view_id uint32 無預設
properties ViewProperties 無預設

ViewConnectedEvent

fuchsia.ui.gfx/events.fidl 中定義

與 ViewHolder 的對等檢視區塊連線後,就會傳送至 ViewHolder 的工作階段。

已移除:17 已淘汰:13

廣闊類型說明預設
view_holder_id uint32 無預設

ViewDetachedFromSceneEvent

fuchsia.ui.gfx/events.fidl 中定義

當特定檢視畫面的父項 ViewHolder 不再屬於場景時,就會傳送至檢視畫面的工作階段。

如果 ViewHolder 是直接從場景卸離,或其中有一個父項節點,就可能發生這種情況。

如果 Scene 節點與 ViewHolder 節點之間存在未中斷的父項-子項關聯,ViewHolder 就會視為場景的一部分。

已移除:17 已淘汰:13

廣闊類型說明預設
view_id uint32 無預設

ViewDisconnectedEvent

fuchsia.ui.gfx/events.fidl 中定義

當其對等畫面中斷連線或刪除時,就會傳送至 ViewHolder 的工作階段。

如果在連線建立前刪除 View,則當 ViewHolder 嘗試連線時,會立即傳送這個事件。

已移除:17 已淘汰:13

廣闊類型說明預設
view_holder_id uint32 無預設

ViewHolderArgs 資源

定義於 fuchsia.ui.gfx/resources.fidl

代表較大場景圖中子圖表的附件點。ViewHolder 可以做為子項連接至節點,而連結的 View 內容也會成為節點的子項。

每個 ViewHolder 都會透過共用權杖配對連結至配對的 View

一般來說,ViewHolder 和相關聯的 View 屬於不同的程序。透過合併這些元件,系統可使用不同程序提供的內容,建構整個系統的 UI。

已移除:17 已淘汰:13

廣闊類型說明預設
token fuchsia.ui.views/ViewHolderToken 無預設
debug_name string? 無預設

ViewHolderConnectedEvent

fuchsia.ui.gfx/events.fidl 中定義

當其對等的 ViewHolder 連線時,系統已將檢視到檢視畫面的工作階段。

如果在建立連線前就已刪除 ViewHolder,系統就不會傳送這個事件。

已移除:17 已淘汰:13

廣闊類型說明預設
view_id uint32 無預設

ViewHolderDisconnectedEvent

fuchsia.ui.gfx/events.fidl 中定義

當其對等 ViewHolder 中斷連線或刪除時,就會傳送至檢視畫面的工作階段。

如果在連線建立前就刪除 ViewHolder,則當 View 嘗試連線時,會立即傳送這個事件。

已移除:17 已淘汰:13

廣闊類型說明預設
view_id uint32 無預設

ViewProperties

定義於 fuchsia.ui.gfx/types.fidl

代表檢視畫面的屬性。

已移除:17 已淘汰:13

廣闊類型說明預設
bounding_box BoundingBox

View 的定界框範圍可定義為: { bounding_box.min, bounding_box.max } 檢視畫面中包含的內容會裁剪到這個邊框。

無預設
inset_from_min vec3

insets_from_mininsets_from_max 可指定檢視畫面的定界框與其父項之間的距離。

這些屬性不會嚴格依據 View 強制執行,而只會當做用戶端和其他接收 ViewProperties 元件的提示使用:

檢視用戶端可以假設,在 { bounding_box.min + inset_from_min, bounding_box.max - inset_from_max } 之外繪製的內容可能會被祖系檢視畫面遮蔽。每個產品都有專屬的圖片 遭到模糊處理的原因和周圍的規則

無預設
inset_from_max vec3 無預設
focus_change bool

檢視畫面是否可以接收焦點事件;預設值為 true。如果為 false,且這個 View 符合接收焦點事件的資格,則系統不會將任何聚焦/未聚焦事件傳送至任何檢視畫面。

true
downward_input bool

是否允許 View 允許幾何基礎檢視區塊接收輸入;預設值為 true。如果為 false,View 就不會將輸入事件傳送至基礎檢視畫面。

true

ViewPropertiesChangedEvent

fuchsia.ui.gfx/events.fidl 中定義

當指定檢視畫面的父項 ViewHolder 變更檢視畫面屬性時,會傳送這個項目。

已移除:17 已淘汰:13

廣闊類型說明預設
view_id uint32 無預設
properties ViewProperties 無預設

ViewState

定義於 fuchsia.ui.gfx/types.fidl

代表景觀中的檢視畫面狀態。

已移除:17 已淘汰:13

廣闊類型說明預設
is_rendering bool

檢視畫面是否顯示。預設值為 False 在檢視畫面的第一個影格轉譯要求後,傳送至檢視畫面對應的 ViewHolder。

無預設

ViewStateChangedEvent

fuchsia.ui.gfx/events.fidl 中定義

當 ViewHolder 的狀態變更時,就會傳送至 ViewHolder 的工作階段。

已移除:17 已淘汰:13

廣闊類型說明預設
view_holder_id uint32 無預設
state ViewState 無預設

mat4

定義於 fuchsia.ui.gfx/types.fidl

廣闊類型說明預設
matrix float32[16]

資料欄主要順序。

無預設

vec2

定義於 fuchsia.ui.gfx/types.fidl

廣闊類型說明預設
x float32 無預設
y float32 無預設

vec3

定義於 fuchsia.ui.gfx/types.fidl

廣闊類型說明預設
x float32 無預設
y float32 無預設
z float32 無預設

vec4

定義於 fuchsia.ui.gfx/types.fidl

已移除:17 已淘汰:13

廣闊類型說明預設
x float32 無預設
y float32 無預設
z float32 無預設
w float32 無預設

ENUMS

HitTestBehavior 嚴格

類型:uint32

定義於 fuchsia.ui.gfx/types.fidl

說明節點與命中測試的互動方式。

已移除:17 已淘汰:13

名稱說明
0

對節點的內容、部分及其子項進行命中測試。

1

針對節點和其中的所有內容執行命中測試

ImportSpec strict

類型:uint32

定義於 fuchsia.ui.gfx/resources.fidl

說明要由 ImportResourceCmd 匯入的匯出資源。

注意:目前只是可匯入資源類型的列舉,稍後可能會擴展以表達「具有特定頂點格式的虛線」等概念。

已移除:17 已淘汰:13

名稱說明
0

GroupsIndexFormat 嚴格

類型:uint32

定義於 fuchsia.ui.gfx/commands.fidl

設定網格的索引和頂點。

mesh_id 會拒絕要更新的網格。index_buffer_id 會參照包含網格索引的緩衝區。index_format 會定義索引緩衝區資料的解讀方式。從索引緩衝區開始算起的 index_offset 個位元組。index_count 的索引數量。 vertex_buffer_id 會參照包含網格頂點的緩衝區。vertex_format 會定義端點緩衝區資料的解讀方式。從頂點緩衝區開頭算起的 vertex_offset 位元組。 有 vertex_count 個頂點。 bounding_box 必須包含指定範圍內的所有端點。

網格 VertexFormat 會定義網格提供的個別頂點屬性,以及每個屬性的大小 (進而定義每個頂點的大小)。這些屬性在頂點中的排列順序與網格 VertexFormat 結構中的順序相同。舉例來說,如果值為 kVector3、kNone 和 kVector2,則:

  • 每個頂點都有位置和 UV 座標,但沒有表面正常。
  • 3D 位置佔用位元組 0 到 11 (3 個維度 * 每個浮點值 4 個位元組)。
  • 紫外線座標會佔用位元組 12-19,因為未提供一般的表面標準。
已移除:17 已淘汰:13

名稱說明
1
2

顯示頻率嚴格

類型:uint32

fuchsia.ui.gfx/renderer.fidl 中定義的

已移除:17 已淘汰:13

名稱說明
0
1

ShadowTechnique 嚴格

類型:uint32

fuchsia.ui.gfx/renderer.fidl 中定義的

代表 Renderer 在照明場景時應使用的陰影演算法。

已移除:17 已淘汰:13

名稱說明
0

沒有陰影。

1

預設。螢幕空間、深度緩衝區型陰影;SSDO 暗。

2

基本陰影地圖。

3

時刻陰影地圖 (請參閱 http:///momentsingraphics.de)。

4

模板陰影音量。

ValueType strict

類型:uint32

定義於 fuchsia.ui.gfx/types.fidl

已移除:17 已淘汰:13

名稱說明
0
1
2
3
4
5
6
7
8
9

聯合國

指令嚴格 資源

定義於 fuchsia.ui.gfx/commands.fidl

用於修改 Session 狀態的指令。

已移除:17 已淘汰:13
<tr id="Command.scene_add_ambientlight"> <tr id="Command.scene_add_directionallight"> <tr id="Command.scene_add_pointlight">
序數Variant類型說明
create_resource CreateResourceCmd
release_resource ReleaseResourceCmd
export_resource ExportResourceCmdDeprecated
import_resource ImportResourceCmdDeprecated
set_tag SetTagCmd

標記指令。

detach DetachCmd

set_translation SetTranslationCmd

空間指令。

set_scale SetScaleCmd
set_rotation SetRotationCmd
set_anchor SetAnchorCmd
set_size SetSizeCmd
set_opacity SetOpacityCmd
send_size_change_hint_hack SendSizeChangeHintCmdHACK
add_child AddChildCmd

節點專屬指令。

add_part AddPartCmd

重拾育兒的背景?

detach_children DetachChildrenCmd
set_shape SetShapeCmd
set_material SetMaterialCmd
set_clip SetClipCmd
set_hit_test_behavior SetHitTestBehaviorCmd
set_view_properties SetViewPropertiesCmd
take_snapshot_cmd TakeSnapshotCmdDEPRECATED
set_camera SetCameraCmd

攝影機和照明指令。

set_camera_transform SetCameraTransformCmd
set_camera_projection SetCameraProjectionCmd
set_stereo_camera_projection SetStereoCameraProjectionCmd
set_camera_pose_buffer SetCameraPoseBufferCmd
set_light_color SetLightColorCmd
set_light_direction SetLightDirectionCmd
add_light AddLightCmd
detach_light DetachLightCmd
detach_lights DetachLightsCmd
set_texture SetTextureCmd
set_color SetColorCmd
bind_mesh_buffers BindMeshBuffersCmd

add_layer AddLayerCmd

圖層和轉譯器指令

remove_layer RemoveLayerCmd
remove_all_layers RemoveAllLayersCmd
set_layer_stack SetLayerStackCmd
set_renderer SetRendererCmd
set_renderer_param SetRendererParamCmd
set_event_mask SetEventMaskCmd

「活動」。

set_label SetLabelCmd

診斷指令。

set_disable_clipping SetDisableClippingCmd

偵錯指令。

set_import_focus SetImportFocusCmdDEPRECATED
set_clip_planes SetClipPlanesCmd
set_point_light_position SetPointLightPositionCmd
set_point_lightfalloff SetPointLightFalloffCmd
<h3 id="Command.scene_add_ambientlight" class="add-link hide-from-toc">49 scene_add_ambientlight SceneAddAmbientLightCmd
<h3 id="Command.scene_add_directionallight" class="add-link hide-from-toc">50 scene_add_directionallight SceneAddDirectionalLightCmd
<h3 id="Command.scene_add_pointlight" class="add-link hide-from-toc">51 scene_add_point_light SceneAddPointLightCmd
set_display_color_conversion SetDisplayColorConversionCmdHACK
set_display_rotation SetDisplayRotationCmdHACK
set_enable_view_debug_bounds SetEnableDebugViewBoundsCmd
set_view_holder_bounds_color SetViewHolderBoundsColorCmd
set_camera_clip_space_transform SetCameraClipSpaceTransformCmd
set_display_minimum_rgb SetDisplayMinimumRgbCmdHACK
set_semantic_visibility SetSemanticVisibilityCmd

活動嚴格

fuchsia.ui.gfx/events.fidl 中定義

這些是 Session 可以回報的所有事件類型。使用 SetEventMaskCmd 為資源啟用事件傳送功能。

已移除:17 已淘汰:13
序數Variant類型說明
metrics MetricsEvent

由遮罩控制的事件。

size_change_hint SizeChangeHintEvent
import_unbound ImportUnboundEvent

無論遮罩為何,一律傳送的事件。

view_connected ViewConnectedEvent
view_disconnected ViewDisconnectedEvent
view_holder_disconnected ViewHolderDisconnectedEvent
view_attached_to_scene ViewAttachedToSceneEvent
view_detached_from_scene ViewDetachedFromSceneEvent
view_properties_changed ViewPropertiesChangedEvent
view_state_changed ViewStateChangedEvent
view_holder_connected ViewHolderConnectedEvent

RendererParam 嚴格

fuchsia.ui.gfx/renderer.fidl 中定義的

這些都是可設定 Renderer 的參數類型。

已移除:17 已淘汰:13
序數Variant類型說明
shadow_technique ShadowTechnique
reserved RenderFrequency

已淘汰

enable_debugging bool

ResourceArgs 嚴格 資源

定義於 fuchsia.ui.gfx/resources.fidl

這些都是在 Session 中可以建立的所有資源類型。只在清單底部新增欄位。

已移除:17 已淘汰:13
序數Variant類型說明
memory MemoryArgs
image ImageArgs
buffer BufferArgs
view ViewArgs
view_holder ViewHolderArgs
rectangle RectangleArgs
rounded_rectangle RoundedRectangleArgs
circle CircleArgs
mesh MeshArgs
shape_node ShapeNodeArgs
clip_node ClipNodeArgs
entity_node EntityNodeArgs
opacity_node OpacityNodeArgsHACK
material MaterialArgs
compositor CompositorArgs
display_compositor DisplayCompositorArgs
layer_stack LayerStackArgs
layer LayerArgs
scene SceneArgs
camera CameraArgs
stereo_camera StereoCameraArgs
renderer RendererArgs
ambient_light AmbientLightArgs
directional_light DirectionalLightArgs
variable VariableArgs
point_light PointLightArgs
view3 ViewArgs3
image_pipe2 ImagePipe2Args
image2 ImageArgs2
image3 ImageArgs3

嚴格

定義於 fuchsia.ui.gfx/types.fidl

已移除:17 已淘汰:13
序數Variant類型說明
vector1 float32
vector2 vec2
vector3 vec3
vector4 vec4
matrix4x4 mat4
color_rgba ColorRgba
color_rgb ColorRgb
degrees float32

XY 平面中逆時針旋轉的度。

quaternion Quaternion
transform FactoredTransform
variable_id uint32

產生值的資源 (動畫或運算式)。這個值的類型會與指定資源產生的類型相符。

業者

名稱類型說明
kLabelMaxLength 32 uint32

資源標籤的長度上限。

已移除:17 已淘汰:13
kMetricsEventMask 1 uint32

回報指標資訊。 系統只會針對節點資源回報這個事件類型。

已移除:17 已淘汰:13
kSizeChangeHintEventMask 2 uint32
已移除:17 已淘汰:13