通訊協定
SnapshotCallbackDEPRECATED
定義於 fuchsia.ui.gfx/commands.fidl
OnData
要求
名稱 | 類型 |
---|---|
data |
fuchsia.mem/Buffer
|
結構化
AddChildCmd
定義於 fuchsia.ui.gfx/commands.fidl
將節點新增為另一個節點的子項。
限制:
id
會反映具有 has_children 特性的節點。child_id
會參照任何節點。
討論: 子項節點會先從其現有父項移除,就像先套用 DetachCmd 一樣。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
child_id |
uint32
|
無預設 |
AddLayerCmd
定義於 fuchsia.ui.gfx/commands.fidl
新增圖層至圖層堆疊。限制:
layer_stack_id
會參照LayerStack
。layer_id
會參照Layer
。- 圖層不得屬於其他堆疊,必須先卸離。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
layer_stack_id |
uint32
|
無預設 | |
layer_id |
uint32
|
無預設 |
AddLightCmd
定義於 fuchsia.ui.gfx/commands.fidl
將 light_id
指定的光源新增至 scene_id
識別的場景。light_id
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
scene_id |
uint32
|
無預設 | |
light_id |
uint32
|
無預設 |
AddPartCmd
定義於 fuchsia.ui.gfx/commands.fidl
新增節點做為另一個節點的一部分。屬性 (而非子項) 的影響取決於部分的類型。然而,有一個影響是常數:移除節點的所有子項 (例如透過 DetachChildrenCmd) 不會影響其部分。這與網路瀏覽器中的「shadow DOM」類似:
限制:
id
會參照具備 has_parts 特性的節點。part_id
會參照任何節點。
討論: 部分節點會先從其現有的父項移除,如同先套用 DetachCmd 一樣。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
part_id |
uint32
|
無預設 |
AmbientLightArgs
定義於 fuchsia.ui.gfx/resources.fidl
AmbientLight 是以所有方向為中心的光源。
支援的指令:
- SetLightColor
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
BindMeshBuffersCmd
定義於 fuchsia.ui.gfx/commands.fidl
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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
代表根據軸對齊的定界框。
如果有任何維度為負數 (例如,最大值 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
範圍的緩衝區。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
memory_id |
uint32
|
無預設 | |
memory_offset |
uint32
|
無預設 | |
num_bytes |
uint32
|
無預設 |
CameraArgs
定義於 fuchsia.ui.gfx/resources.fidl
相機可用來從特定視角算繪場景。方法是設定轉譯器來使用相機。
下列指令可套用至相機:
- SetCameraTransform
- SetCameraProjection
- SetCameraPoseBuffer
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
scene_id |
uint32
|
攝影機正在瀏覽的場景。 |
無預設 |
CircleArgs
定義於 fuchsia.ui.gfx/shapes.fidl
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
radius |
Value
|
無預設 |
ClipNodeArgs
特色:
- has_parent
- is_clip
- has_parts
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
unused |
uint32
|
0 |
ColorRgb
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
red |
float32
|
無預設 | |
green |
float32
|
無預設 | |
blue |
float32
|
無預設 |
ColorRgbValue
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須是 ColorRgb,且會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
ColorRgb
|
無預設 | |
variable_id |
uint32
|
無預設 |
ColorRgba
sRGB 色域和非線性傳遞函式。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
red |
uint8
|
無預設 | |
green |
uint8
|
無預設 | |
blue |
uint8
|
無預設 | |
alpha |
uint8
|
無預設 |
ColorRgbaValue
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 ColorRgba,且會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
ColorRgba
|
無預設 | |
variable_id |
uint32
|
無預設 |
CompositorArgs
定義於 fuchsia.ui.gfx/resources.fidl
合成器會將其 LayerStack
繪製至其附加的 Display
提供的 framebuffer (如果有的話)。如未連接螢幕,就不會顯示任何內容。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
CreateResourceCmd 資源
定義於 fuchsia.ui.gfx/commands.fidl
指示合成器建立指定的 Resource
,並在表格中註冊,以便在後續的指令參照。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
目前未在工作階段中使用的 ID。 |
無預設 |
resource |
ResourceArgs
|
無預設 |
DetachChildrenCmd
定義於 fuchsia.ui.gfx/commands.fidl
卸離節點的所有子項 (而非其部分)。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 |
DetachCmd
定義於 fuchsia.ui.gfx/commands.fidl
將父項物件從父項 (例如父項節點或圖層堆疊中的圖層) 卸離。將這個指令套用至不可父項的物件是無效行為。如果目標物件目前沒有父項,則為免人工管理。
限制:
id
會參照父項物件
討論:在節點中,此指令會將節點從父項卸離,無論其是其父項的一部分或子項。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 |
DetachLightCmd
定義於 fuchsia.ui.gfx/commands.fidl
將 light_id
指定的光源從附加的場景 (如果有的話) 卸離。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
light_id |
uint32
|
無預設 |
DetachLightsCmd
定義於 fuchsia.ui.gfx/commands.fidl
將 scene_id
指定場景中的所有光源卸離。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
scene_id |
uint32
|
無預設 |
DirectionalLightArgs
定義於 fuchsia.ui.gfx/resources.fidl
DirectionalLight 是一種從無限點發出的光。
雖然光源是方向性,但光源仍有部分角度的離散情形 (即光源未完全經過欄處理)。為求簡單起見,我們假設光源的離散方式與光源的主要方向有對稱。
支援的指令:
- SetLightColor
- SetLightDirection
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
DisplayCompositorArgs
定義於 fuchsia.ui.gfx/resources.fidl
DisplayCompositor 將附加的 LayerStack
繪製到螢幕上顯示的圖片中。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
DisplayInfo
如 fuchsia.ui.gfx/display_info.fidl 定義
提供螢幕的相關資訊。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
width_in_px |
uint32
|
螢幕大小 (以實體像素為單位)。 |
無預設 |
height_in_px |
uint32
|
無預設 |
EntityNodeArgs
特色:
- has_transform
- has_children
- has_parent
- has_parts
- has_clip
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
unused |
uint32
|
0 |
ExportResourceCmd 已淘汰的「資源」
定義於 fuchsia.ui.gfx/commands.fidl
為指定資源建立外部參照,隨後可將控制代碼傳遞至 token
的對等點匯入 ImportResourceCmd,以便匯入另一個工作階段。詳情請參閱該註解。
匯入用戶端的流程通常與匯出工具不同。 我們並未提供特定的機制,用於將憑證從匯出程式轉移到匯入程式;協作者可以選擇想要執行的任何頻外 API。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
token |
handle<eventpair>
|
無預設 |
ExportToken 資源
在 fuchsia.ui.gfx/tokens.fidl 中定義的
專門用於全域場景圖中子圖表根點的符記。每個 ExportToken
都有一個對應的 ImportToken
。
景觀用戶端可以使用這個憑證建立型別資源,以從其他用戶端參照其內容。其他用戶端也必須使用對應的 ImportToken
建立相對應的類型資源。
跨用戶端參照的確切性質取決於憑證建立的特定資源。舉例來說,透過這個權杖建立 View
資源,即可將附加至 View
的所有內容嵌入其他用戶端 ViewHolder
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
handle<eventpair>
|
無預設 |
FactoredTransform
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
translation |
vec3
|
無預設 | |
scale |
vec3
|
無預設 | |
anchor |
vec3
|
旋轉和縮放的點。 |
無預設 |
rotation |
Quaternion
|
無預設 |
FloatValue
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 float32,且會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
float32
|
無預設 | |
variable_id |
uint32
|
無預設 |
ImageArgs
定義於 fuchsia.ui.gfx/resources.fidl
對應至特定 Memory
資源範圍的圖片。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
info |
fuchsia.images/ImageInfo
|
無預設 | |
memory_id |
uint32
|
無預設 | |
memory_offset |
uint32
|
無預設 |
ImageArgs2
定義於 fuchsia.ui.gfx/resources.fidl
對應至特定 Memory
資源範圍的圖片。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
width |
uint32
|
無預設 | |
height |
uint32
|
無預設 | |
buffer_collection_id |
uint32
|
|
無預設 |
buffer_collection_index |
uint32
|
VMO 的索引,來源為備份這個映像檔的 |
無預設 |
ImageArgs3 資源
定義於 fuchsia.ui.gfx/resources.fidl
由 Allocator
註冊的 BufferCollection
支援的映像檔。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
width |
uint32
|
無預設 | |
height |
uint32
|
無預設 | |
import_token |
fuchsia.ui.composition/BufferCollectionImportToken
|
您必須向配置器註冊已分配的 |
無預設 |
buffer_collection_index |
uint32
|
VMO 的索引,來源為備份這個映像檔的 |
無預設 |
ImagePipe2Args 資源
定義於 fuchsia.ui.gfx/resources.fidl
ImagePipe2
是可做為 Material
的 Texture
使用。Resource
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
image_pipe_request |
server_end<fuchsia.images/ImagePipe2>
|
無預設 |
ImportResourceCmd 已淘汰的「資源」
定義於 fuchsia.ui.gfx/commands.fidl
匯入透過 ExportResourceCmd() 匯出的資源。token
是事件配對對等點的控制代碼,用於匯出資源;spec
說明匯入資源的類型,以及可以對其套用的指令。之後,id
可用來參照指令中的資源,但這與 (但並非完全相同:請參閱下文) 參照工作階段中建立的資源。例如,您可以透過 AddChildCmd,將子項新增至匯入的 EntityNode。
不過請注意,匯入工具無法取得匯入資源的完整存取權,只能存取完整功能子集。例如,您無法使用 DetachCmd 從父項卸離匯入的 EntityNode。
與 ExportResourceCmd 不同,沒有可設定的逾時時間。您預期匯出資源會在短時間內提供使用。任務:這需要多加處理...例如:假如我們確定永遠不會建立連結 (例如匯入憑證的對等點遭到刪除),我們可能會透過 SessionListener 通知。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
token |
handle<eventpair>
|
無預設 | |
spec |
ImportSpec
|
無預設 |
ImportToken 資源
在 fuchsia.ui.gfx/tokens.fidl 中定義的
專門用於全域場景圖中子圖表附件點的符記。每個 ImportToken
都有一個對應的 ExportToken
。
景觀用戶端可以使用這個憑證建立型別資源,藉此參照其他用戶端的內容。其他用戶端也必須使用對應的 ExportToken
建立對應的類型資源。
跨用戶端參照的確切性質取決於憑證建立的特定資源。舉例來說,透過這個權杖建立 ViewHolder
資源後,用戶端就能嵌入其他用戶端的 View
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
handle<eventpair>
|
無預設 |
ImportUnboundEvent
在 fuchsia.ui.gfx/events.fidl 中定義
當具有指定 ID 的匯入資源不再繫結至其主機資源,或如果匯入的資源因無法使用主機資源而無法繫結時,就會提供此項目。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
resource_id |
uint32
|
無預設 |
LayerArgs
定義於 fuchsia.ui.gfx/resources.fidl
圖層是合成器所繪製的 2D 圖片。圖層堆疊中每個圖層的內容彼此獨立。除非圖層具有相機、紋理或顏色,否則系統不會繪製圖層。
支援的指令:
- 卸離
- SetCamera
- SetColor
- SetTexture
- SetSize (深度必須為零)
- SetSize
- SetTranslation (Z 元件會決定圖層的相對 Z 順序)
- 設定旋轉 (必須沿著 Z 軸旋轉)
- SetScale
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
LayerStackArgs
定義於 fuchsia.ui.gfx/resources.fidl
LayerStack 是連結到 Compositor 的多層堆疊,會按照 Z 順序遞增繪製這些圖層 (或者顯示按照該順序繪製的錯覺:有可能會套用任何不影響輸出的最佳化)。
支援的指令:
- AddLayer
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
MaterialArgs
定義於 fuchsia.ui.gfx/resources.fidl
簡易紋理對應材質。
支援的指令:
- SetTextureCmd:設定紋理,也可以設為零 (無紋理)。紋理可以是 Image 或 ImagePipe2。
- SetColorCmd:設定顏色。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
Matrix4Value
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 vec4,且會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
mat4
|
無預設 | |
variable_id |
uint32
|
無預設 |
MemoryArgs 資源
定義於 fuchsia.ui.gfx/resources.fidl
Memory
是 Resource
,包裝由用戶端提供的 Zircon vmo 以透過 View 註冊。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
vmo |
handle<vmo>
|
用來備份這個記憶體的 VMO。 |
無預設 |
allocation_size |
uint64
|
|
無預設 |
memory_type |
fuchsia.images/MemoryType
|
儲存在 VMO 中的記憶體類型,也就是 GPU 記憶體或主機記憶體。 |
無預設 |
MeshArgs
定義於 fuchsia.ui.gfx/shapes.fidl
網格必須繫結至頂點/索引緩衝區,才能算繪;請參閱 BindMeshBuffersCmd。
<EMPTY>
MeshVertexFormat
定義於 fuchsia.ui.gfx/commands.fidl
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
position_type |
ValueType
|
kVector2 或 kVector3。 |
無預設 |
normal_type |
ValueType
|
kVector2 或 kVector3 (必須與 position_type 相符) 或 kNone。 |
無預設 |
tex_coord_type |
ValueType
|
kVector2 或 kNone。 |
無預設 |
指標
算繪與節點相關聯的目標指標。另請參閱 MetricsEvent
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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
從停用狀態轉換為已啟用狀態後已有變化。
訂閱此事件即可接收資訊,瞭解在為節點產生紋理時,應套用的縮放比例係數。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
metrics |
Metrics
|
無預設 |
OpacityNodeArgsHACK
特色:
- has_transform
- has_parent
- has_children
- has_parts
- has_opacity
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
unused |
uint32
|
0 |
Plane3
由中向量描述的方向平面,以及該向量與起點之間的距離。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dir |
vec3
|
無預設 | |
dist |
float32
|
無預設 |
PointLightArgs
定義於 fuchsia.ui.gfx/resources.fidl
PointLight 是一種能朝任何方向發光的光源。根據預設,光線強度會根據實際使用的「反平方法」(請參閱維基百科),但可以調整為其他值,以符合藝術效果。
支援的指令:
- SetLightColor
- SetPointLightPosition
- SetPointLightFalloff
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
四元數
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
x |
float32
|
無預設 | |
y |
float32
|
無預設 | |
z |
float32
|
無預設 | |
w |
float32
|
無預設 |
QuaternionValue
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為四元,且系統會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
Quaternion
|
無預設 | |
variable_id |
uint32
|
無預設 |
RectangleArgs
定義於 fuchsia.ui.gfx/shapes.fidl
以 (0,0) 為中心的矩形。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
width |
Value
|
無預設 | |
height |
Value
|
無預設 |
ReleaseResourceCmd
定義於 fuchsia.ui.gfx/commands.fidl
釋出用戶端對資源的參照;如此一來,在後續的指令中使用 ID 是違法的。資源的其他參照可能存在,因此釋出資源並不會立即刪除資源,只有在最後一個參照釋出後,才會刪除資源。例如,轉譯進行中的影格可能需要資源,或者可以由其他資源參照。不過,ID 會立即取消註冊,並可以重複使用來建立新的資源。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
要去參照的資源 ID。 |
無預設 |
RemoveAllLayersCmd
定義於 fuchsia.ui.gfx/commands.fidl
移除圖層堆疊中的所有圖層。限制
layer_stack_id
會參照LayerStack
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
layer_stack_id |
uint32
|
無預設 |
RemoveLayerCmd
定義於 fuchsia.ui.gfx/commands.fidl
移除圖層堆疊中的圖層。限制:
layer_stack_id
會參照LayerStack
。layer_id
會參照Layer
。- 圖層必須屬於此堆疊。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
layer_stack_id |
uint32
|
無預設 | |
layer_id |
uint32
|
無預設 |
RendererArgs
定義於 fuchsia.ui.gfx/resources.fidl
轉譯器透過相機算繪場景。
支援的指令:
- SetCamera
- SetRendererParam
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
RoundedRectangleArgs
定義於 fuchsia.ui.gfx/shapes.fidl
以 (0,0) 為中心的圓角矩形。法務參數值必須符合矩形的平坦長度非負數的限制。也就是說,必須遵守下列限制:
- top_left_半徑 + top_right_半徑 <= 寬度
- 左下角半徑 + 右下方半徑 <= 寬度
- 上左半徑 + 左下角半徑 <= 高度
- top_right_半徑 + 底部_right_半徑 <= 高度
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
scene_id |
uint32
|
無預設 | |
light_id |
uint32
|
無預設 |
SceneAddDirectionalLightCmd
定義於 fuchsia.ui.gfx/commands.fidl
將 light_id
指定的光源新增至 scene_id
識別的場景。light_id
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
scene_id |
uint32
|
無預設 | |
light_id |
uint32
|
無預設 |
SceneAddPointLightCmd
定義於 fuchsia.ui.gfx/commands.fidl
將 light_id
指定的光源新增至 scene_id
識別的場景。light_id
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
scene_id |
uint32
|
無預設 | |
light_id |
uint32
|
無預設 |
SceneArgs
定義於 fuchsia.ui.gfx/resources.fidl
場景是場景圖的根層級,其下方節點的樹狀結構定義了算繪環境 (光源等)。
支援的指令:
- 新增/RemoveLight
- AddChild
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
dummy |
uint32
|
0 |
SendSizeChangeHintCmdHACK
定義於 fuchsia.ui.gfx/commands.fidl
將關於待處理大小變更的提示傳送至指定節點和下方所有節點。這通常是在動畫之前傳送。
width_change_factor
和 height_change_factor
是該項目未來的預期尺寸。這個數字會封裝縮放比例,以及版面配置寬度和高度的變更。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
width_change_factor |
float32
|
無預設 | |
height_change_factor |
float32
|
無預設 |
SetAnchorCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定資源 (通常是節點) 的錨點。
限制:
id
會參照具有 has_transform 特性的資源。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
value |
Vector3Value
|
無預設 |
SetCameraClipSpaceTransformCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定相機的 2D 裁切空間轉換。
限制:
camera_id
會參照Camera
。translation
是所需的轉譯功能,搭配 Vulkan NDC 即可。scale
是轉譯前要套用至 X/Y 平面的比例因數。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
camera_id |
uint32
|
無預設 | |
translation |
vec2
|
無預設 | |
scale |
float32
|
無預設 |
SetCameraCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定轉譯器的相機。
限制:
renderer_id
會參照Renderer
。camera_id
會修正Camera
,或傳遞零以停止轉譯。matrix
是 kMatrix4x4 類型的值或變數,
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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] 的範圍內有效,且應在該間隔期間持續不進行同步處理)。如果為多個非不可分割的作業需要單一擺設值,則應該將值鎖住,並儲存在放置緩衝區之外。
由於沒有任何同步基元保護姿勢,因此如果姿勢已鎖住,便可能只有部分更新,而讀取的姿勢會包含姿勢更新前的某些元件,以及更新姿勢中的部分元件。使用這種「色情」姿勢的安全,必須仰賴兩項因素:
-
編寫姿勢 [index(t)] 的連續姿勢,彼此之間非常相似,因此如果部分元件是從第一種取得,並從另一個結果取得,則結果數值大同小異
-
位置和四元數的空間會保證在本機平放,因為連續更新之間的變更規模會保持本機平放,這可保證其中兩個姿勢看起來很類似,也代表語意相似的姿態 (亦即沒有停電,因此會使圖像的四元數位置在位子位置或四元數位置上產生明顯的數值變化),因此會確保這個如要進一步瞭解四分位數旋轉的編碼方式,請參閱 https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation
此指令適用於延遲傾斜攝影機姿勢,以支援低延遲動作追蹤算繪。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
camera_id |
uint32
|
無預設 | |
buffer_id |
uint32
|
無預設 | |
num_entries |
uint32
|
無預設 | |
base_time |
int64
|
無預設 | |
time_interval |
uint64
|
無預設 |
SetCameraProjectionCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定相機的投影矩陣。 這項作業無法套用至 StereoCamera。
限制:
camera_id
會參照非StereoCamera
的Camera
。fovy
是 Y 軸的視野,以弧度為單位。
注意:透過將 fovy
設為零,即可指定預設的正方投影。在此情況下,相機轉換會被忽略。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
camera_id |
uint32
|
無預設 | |
fovy |
FloatValue
|
無預設 |
SetCameraTransformCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定攝影機的檢視矩陣。這項作業可同時套用至攝影機和立體攝影機。
限制:
camera_id
會參照Camera
。eye_position
是眼睛的位置。eye_look_at
是眼睛指向的場景。eye_up
會定義相機的「向上」向量。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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 部分決定)。
討論:如果節點含有短片,則該節點會同時套用至節點的各個部分和子項。在某些情況下 (待定),片段不適用於節點;在此情況下,會是並沒有為節點指定剪輯。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
clip_id |
uint32
|
無預設 | |
clip_to_self |
bool
|
無預設 |
SetClipPlanesCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定套用至節點及其所有子項的短片平面清單。取代先前的 SetClipPlanesCmd 清單。
node_id
會參照具有 has_clip 特性的Node
。clip_planes
是新的導向式裁剪平面清單。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
clip_planes |
vector<Plane3>
|
無預設 |
SetColorCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定材質的顏色。
限制:
material_id
會參照Material
。
如果已在材質上設定紋理,系統會將從紋理取樣的值乘以顏色。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
material_id |
uint32
|
無預設 | |
color |
ColorRgbaValue
|
無預設 |
SetDisableClippingCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定是否要停用指定的轉譯器裁剪功能。如果是新建的轉譯器,系統「不會」停用裁剪功能 (也就是會啟用)。
注意:這項設定只會停用影像裁剪功能,但為了達到命中測試的目的,物件仍會裁剪。
renderer_id
會對應目標轉譯器。disable_clipping
會指定是否應停用剪輯功能。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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]
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
compositor_id |
uint32
|
無預設 | |
preoffsets |
float32[3]
|
無預設 | |
matrix |
float32[9]
|
無預設 | |
postoffsets |
float32[3]
|
無預設 |
SetDisplayMinimumRgbCmdHACK
定義於 fuchsia.ui.gfx/commands.fidl
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
min_value |
uint8
|
無預設 |
SetDisplayRotationCmdHACK
定義於 fuchsia.ui.gfx/commands.fidl
視裝置而定,螢幕可能會根據較低層級的裝置控制器認定的像素實體方向旋轉。合成器和圖層必須與基礎的實體方向保持一致,也就是說,對於螢幕截圖等特定作業,除非知道較高層級的螢幕如何決定畫面方向,否則這些作業無法提供正確的方向結果。輪替作業的唯一法律值是 0、90、180 和 270,這些值會逆時針套用。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
compositor_id |
uint32
|
無預設 | |
rotation_degrees |
uint32
|
無預設 |
SetEnableDebugViewBoundsCmd
定義於 fuchsia.ui.gfx/commands.fidl
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_id |
uint32
|
無預設 | |
enable |
bool
|
無預設 |
SetEventMaskCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定資源應向工作階段事件監聽器傳送哪些事件。這個指令會取代資源之前的所有事件遮罩。
資源的初始事件遮罩為零,代表不會回報任何事件。
限制:
resource_id
是有效的資源 IDevent_mask
是 0,或是k*EventMask
位元「或」的組合。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
event_mask |
uint32
|
無預設 |
SetHitTestBehaviorCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定節點的命中測試行為。
討論:根據預設,命中測試會對節點的內容、其部分及子項進行。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
hit_test_behavior |
HitTestBehavior
|
無預設 |
SetImportFocusCmdDEPRECATED
定義於 fuchsia.ui.gfx/commands.fidl
<EMPTY>
SetLabelCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定/清除標籤,幫助開發人員在使用診斷工具時識別資源的用途。
標籤在場景圖中並無任何功能用途。這項資訊只是協助開發人員瞭解其結構。場景管理員可能會視需求截斷或捨棄標籤。
限制:
- 標籤的長度上限為
kLabelMaxLength
個字元。 - 將標籤設為空字串即可清除。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
label |
string
|
無預設 |
SetLayerStackCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定合成器的圖層堆疊,取代目前的堆疊 (如有)。限制:
compositor_id
會參照DisplayCompositor
。layer_stack_id
會參照LayerStack
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
compositor_id |
uint32
|
無預設 | |
layer_stack_id |
uint32
|
無預設 |
SetLightColorCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定 light_id
識別的光源顏色。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
light_id |
uint32
|
無預設 | |
color |
ColorRgbValue
|
無預設 |
SetLightDirectionCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定 light_id
識別的 DirectionalLight 方向。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
light_id |
uint32
|
無預設 | |
direction |
Vector3Value
|
無預設 |
SetMaterialCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定/清除節點的材質。
限制:
node_id
會傳遞具備 has_material 特性的Node
。material_id
表示Material
,或者不含任何。- 如果這項指令導致目標同時具有
Shape
和Material
,則兩者必須彼此相容 (請參閱 README.md 中有關「形狀/材質相容性」的說明)。
討論:如要繪製,節點需要同時具備 Shape
和 Material
。如果沒有材質,節點仍然可以參與命中測試和剪輯。如果沒有形狀,節點就無法執行上述任一動作。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
material_id |
uint32
|
無預設 |
SetOpacityCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定節點的不透明度。
限制:
node_id
會修飾具有 has_opacity 特性的Node
。opacity
在 [0, 1] 的範圍中。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
opacity |
float32
|
無預設 |
SetPointLightFalloffCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定 PointLight 識別的 PointLight 的掉落因數 (由 light_id
識別)。值 1.0 代表實體單位的「反方定法」(請參閱維基百科)。其他值可用於藝術效果。舉例來說,如果值為 0.0,表示途徑的輻射不會取決於光與光線的距離。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
light_id |
uint32
|
無預設 | |
falloff |
FloatValue
|
無預設 |
SetPointLightPositionCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定由 light_id
識別的 PointLight 位置。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
light_id |
uint32
|
無預設 | |
position |
Vector3Value
|
無預設 |
SetRendererCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定圖層的轉譯器,取代目前的轉譯器 (如果有的話)。限制:
layer_id
會參照Layer
。renderer_id
會參照Renderer
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
layer_id |
uint32
|
無預設 | |
renderer_id |
uint32
|
無預設 |
SetRendererParamCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定會影響轉譯器轉譯場景的參數。
renderer_id
會處理正在修改的轉譯器。param
會說明應設定的參數和內容。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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 的語意相同。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
value |
QuaternionValue
|
無預設 |
SetScaleCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定資源 (通常是節點的) 比例。
限制:
id
會參照具有 has_transform 特性的資源。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
value |
Vector3Value
|
無預設 |
SetSemanticVisibilityCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定節點的語意瀏覽權限。
討論:根據預設,所有節點都會在語意上清楚顯示。對無障礙功能執行的命中測試會忽略語意化節點及其子項。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
visible |
bool
|
true |
SetShapeCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定/清除節點的形狀。
限制:
node_id
會解析具有 has_shape 特性的Node
。shape_id
表示Shape
,或者不含任何。- 如果這項指令導致目標同時具有
Shape
和Material
,則兩者必須彼此相容 (請參閱 README.md 中有關「形狀/材質相容性」的說明)。
討論:如要繪製,節點需要同時具備 Shape
和 Material
。如果沒有材質,節點仍然可以參與命中測試和剪輯。如果沒有形狀,節點就無法執行上述任一動作。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
shape_id |
uint32
|
無預設 |
SetSizeCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定物件的大小。
限制:
id
會修正可調整大小的物件。- 部分支援這個指令的物件可能有其他限制 (例如在某些情況下,
depth
必須是零)。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
value |
Vector2Value
|
無預設 |
SetStereoCameraProjectionCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定立體攝影機投影矩陣。這項作業只能套用至立體相機。
限制:
camera_id
會參照StereoCamera
。left_projection
是左眼的投影矩陣。right_projection
是右眼的投影矩陣。
如有需要,這些投影矩陣也可能在相機空間中加入轉換效果,方便大眾查看。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
camera_id |
uint32
|
無預設 | |
left_projection |
Matrix4Value
|
無預設 | |
right_projection |
Matrix4Value
|
無預設 |
SetTagCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定/清除節點的標記值。
工作階段可將標記值套用至任何有權存取的節點,包括匯入的節點。這些標記僅供工作階段使用,無法由其他工作階段讀取或修改。如果多個工作階段匯入同一個節點,每個工作階段都只會觀察本身的標記值。
工作階段的命中測試結果只會包含工作階段標記為非零值的節點。因此,選取時,工作階段可以使用標記值,將節點與其功能用途建立關聯。
限制:
node_id
會參照Node
。tag_value
是要指派的標記值,0 則是移除標記。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
tag_value |
uint32
|
無預設 |
SetTextureCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定/清除材質的紋理。
限制:
material_id
會參照Material
。texture_id
表示Image
、ImagePipe2
或不含任何項目。
如未提供紋理 (亦即 texture_id
為零),則會使用純色。如果提供紋理,系統會將從紋理取樣的值乘以顏色。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
material_id |
uint32
|
無預設 | |
texture_id |
uint32
|
無預設 |
SetTranslationCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定資源 (通常是節點的) 轉譯。
限制:
id
會參照具有 has_transform 特性的資源。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
id |
uint32
|
無預設 | |
value |
Vector3Value
|
無預設 |
SetViewHolderBoundsColorCmd
定義於 fuchsia.ui.gfx/commands.fidl
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_holder_id |
uint32
|
無預設 | |
color |
ColorRgbValue
|
無預設 |
SetViewPropertiesCmd
定義於 fuchsia.ui.gfx/commands.fidl
設定 ViewHolder 附加的 View 屬性。
限制:
view_holder_id
會參照ViewHolder
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_holder_id |
uint32
|
無預設 | |
properties |
ViewProperties
|
無預設 |
ShapeNodeArgs
特色:
- has_parent
- has_shape
- has_material
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
unused |
uint32
|
0 |
SizeChangeHintEvent
在 fuchsia.ui.gfx/events.fidl 中定義
用於回應父項節點 (SendSizeChangeHintCmd) 的大小變更提示。
符合下列條件時,系統會傳送此事件:
- 這個節點的
kSizeChangeEventMask
已設為已啟用狀態。 - 上層節點已傳送 SendSizeChangeHintCmd。
訂閱此事件即可接收近期節點所需的大型紋理資訊。標準用途是預先分配記憶體,避免重複重新配置。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
width_change_factor |
float32
|
無預設 | |
height_change_factor |
float32
|
無預設 |
StereoCameraArgs
定義於 fuchsia.ui.gfx/resources.fidl
立體聲攝影機能以並排立體聲的方式轉譯場景。
任何可套用至攝影機的指令都可以套用至立體聲相機。其他支援的指令:
- SetStereoCameraProjection
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
scene_id |
uint32
|
攝影機正在瀏覽的場景。 |
無預設 |
TakeSnapshotCmdDEPRECATED 資源
定義於 fuchsia.ui.gfx/commands.fidl
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
node_id |
uint32
|
無預設 | |
callback |
SnapshotCallbackDEPRECATED
|
無預設 |
VariableArgs
定義於 fuchsia.ui.gfx/resources.fidl
說明已輸入、用戶端可修改的值。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
type |
ValueType
|
無預設 | |
initial_value |
Value
|
無預設 |
Vector2Value
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須是 vec2,系統會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
vec2
|
無預設 | |
variable_id |
uint32
|
無預設 |
Vector3Value
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 vec3,系統會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
vec3
|
無預設 | |
variable_id |
uint32
|
無預設 |
Vector4Value
如果 variable_id
為零,則 value
明確指定的值,或 variable_id
識別的資源產生的值,例如動畫或運算式。如果是後者,資源產生的值必須為 vec4,且會忽略 value
。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
vec4
|
無預設 | |
variable_id |
uint32
|
無預設 |
ViewArgs 資源
定義於 fuchsia.ui.gfx/resources.fidl
代表大型場景圖中子圖表的根層級。您可以將節點以子項的形式附加至 View
。這些節點會自行套用 View
的座標轉換,並裁剪至 View
的定界框。查看《ViewProperties
》。
每個 View
都會透過共用權杖配對連結至配對的 ViewHolder
。
一般來說,View
和相關聯的 ViewHolder
屬於不同的程序。透過合併這些元件,系統可使用不同程序提供的內容,建構整個系統的 UI。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
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
不得重複,請勿複製。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
token |
fuchsia.ui.views/ViewToken
|
無預設 | |
control_ref |
fuchsia.ui.views/ViewRefControl
|
|
無預設 |
view_ref |
fuchsia.ui.views/ViewRef
|
|
無預設 |
debug_name |
string?
|
無預設 |
ViewAttachedToSceneEvent
在 fuchsia.ui.gfx/events.fidl 中定義
當特定檢視畫面的父項 ViewHolder 成為場景的一部分時,就會傳送至檢視畫面的工作階段。
如果 Scene 節點與 ViewHolder 節點之間存在未中斷的父項-子項關聯,ViewHolder 就會視為場景的一部分。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_id |
uint32
|
無預設 | |
properties |
ViewProperties
|
無預設 |
ViewConnectedEvent
在 fuchsia.ui.gfx/events.fidl 中定義
與 ViewHolder 的對等檢視區塊連線後,就會傳送至 ViewHolder 的工作階段。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_holder_id |
uint32
|
無預設 |
ViewDetachedFromSceneEvent
在 fuchsia.ui.gfx/events.fidl 中定義
當特定檢視畫面的父項 ViewHolder 不再屬於場景時,就會傳送至檢視畫面的工作階段。
如果 ViewHolder 是直接從場景卸離,或其中有一個父項節點,就可能發生這種情況。
如果 Scene 節點與 ViewHolder 節點之間存在未中斷的父項-子項關聯,ViewHolder 就會視為場景的一部分。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_id |
uint32
|
無預設 |
ViewDisconnectedEvent
在 fuchsia.ui.gfx/events.fidl 中定義
當其對等畫面中斷連線或刪除時,就會傳送至 ViewHolder 的工作階段。
如果在連線建立前刪除 View,則當 ViewHolder 嘗試連線時,會立即傳送這個事件。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_holder_id |
uint32
|
無預設 |
ViewHolderArgs 資源
定義於 fuchsia.ui.gfx/resources.fidl
代表較大場景圖中子圖表的附件點。ViewHolder
可以做為子項連接至節點,而連結的 View
內容也會成為節點的子項。
每個 ViewHolder
都會透過共用權杖配對連結至配對的 View
。
一般來說,ViewHolder
和相關聯的 View
屬於不同的程序。透過合併這些元件,系統可使用不同程序提供的內容,建構整個系統的 UI。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
token |
fuchsia.ui.views/ViewHolderToken
|
無預設 | |
debug_name |
string?
|
無預設 |
ViewHolderConnectedEvent
在 fuchsia.ui.gfx/events.fidl 中定義
當其對等的 ViewHolder 連線時,系統已將檢視到檢視畫面的工作階段。
如果在建立連線前就已刪除 ViewHolder,系統就不會傳送這個事件。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_id |
uint32
|
無預設 |
ViewHolderDisconnectedEvent
在 fuchsia.ui.gfx/events.fidl 中定義
當其對等 ViewHolder 中斷連線或刪除時,就會傳送至檢視畫面的工作階段。
如果在連線建立前就刪除 ViewHolder,則當 View 嘗試連線時,會立即傳送這個事件。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_id |
uint32
|
無預設 |
ViewProperties
代表檢視畫面的屬性。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
bounding_box |
BoundingBox
|
View 的定界框範圍可定義為: { bounding_box.min, bounding_box.max } 檢視畫面中包含的內容會裁剪到這個邊框。 |
無預設 |
inset_from_min |
vec3
|
這些屬性不會嚴格依據 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 變更檢視畫面屬性時,會傳送這個項目。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_id |
uint32
|
無預設 | |
properties |
ViewProperties
|
無預設 |
ViewState
代表景觀中的檢視畫面狀態。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
is_rendering |
bool
|
檢視畫面是否顯示。預設值為 False 在檢視畫面的第一個影格轉譯要求後,傳送至檢視畫面對應的 ViewHolder。 |
無預設 |
ViewStateChangedEvent
在 fuchsia.ui.gfx/events.fidl 中定義
當 ViewHolder 的狀態變更時,就會傳送至 ViewHolder 的工作階段。
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
view_holder_id |
uint32
|
無預設 | |
state |
ViewState
|
無預設 |
mat4
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
matrix |
float32[16]
|
資料欄主要順序。 |
無預設 |
vec2
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
x |
float32
|
無預設 | |
y |
float32
|
無預設 |
vec3
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
x |
float32
|
無預設 | |
y |
float32
|
無預設 | |
z |
float32
|
無預設 |
vec4
廣闊 | 類型 | 說明 | 預設 |
---|---|---|---|
x |
float32
|
無預設 | |
y |
float32
|
無預設 | |
z |
float32
|
無預設 | |
w |
float32
|
無預設 |
ENUMS
HitTestBehavior 嚴格
類型:uint32
說明節點與命中測試的互動方式。
名稱 | 值 | 說明 |
---|---|---|
kDefault |
0 |
對節點的內容、部分及其子項進行命中測試。 |
kSuppress |
1 |
針對節點和其中的所有內容執行命中測試 |
ImportSpec strict
類型:uint32
定義於 fuchsia.ui.gfx/resources.fidl
說明要由 ImportResourceCmd 匯入的匯出資源。
注意:目前只是可匯入資源類型的列舉,稍後可能會擴展以表達「具有特定頂點格式的虛線」等概念。
名稱 | 值 | 說明 |
---|---|---|
節點 |
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,因為未提供一般的表面標準。
名稱 | 值 | 說明 |
---|---|---|
kUint16 |
1 |
|
kUint32 |
2 |
顯示頻率嚴格
類型:uint32
在 fuchsia.ui.gfx/renderer.fidl 中定義的
名稱 | 值 | 說明 |
---|---|---|
WHEN_REQUESTED |
0 |
|
持續 |
1 |
ShadowTechnique 嚴格
類型:uint32
在 fuchsia.ui.gfx/renderer.fidl 中定義的
代表 Renderer
在照明場景時應使用的陰影演算法。
名稱 | 值 | 說明 |
---|---|---|
未劃出 |
0 |
沒有陰影。 |
SCREEN_SPACE |
1 |
預設。螢幕空間、深度緩衝區型陰影;SSDO 暗。 |
SHADOW_MAP |
2 |
基本陰影地圖。 |
MOMENT_SHADOW_MAP |
3 |
時刻陰影地圖 (請參閱 http:///momentsingraphics.de)。 |
STENCIL_SHADOW_VOLUME |
4 |
模板陰影音量。 |
ValueType strict
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
kNone |
0 |
|
kVector1 |
1 |
|
kVector2 |
2 |
|
kVector3 |
3 |
|
kVector4 |
4 |
|
kMatrix4 |
5 |
|
kColorRgb |
6 |
|
kColorRgba |
7 |
|
kQuaternion |
8 |
|
kFactoredTransform |
9 |
聯合國
指令嚴格 資源
定義於 fuchsia.ui.gfx/commands.fidl
用於修改 Session
狀態的指令。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
create_resource |
CreateResourceCmd
|
|
2 |
release_resource |
ReleaseResourceCmd
|
|
3 |
export_resource |
ExportResourceCmdDeprecated
|
|
4 |
import_resource |
ImportResourceCmdDeprecated
|
|
5 |
set_tag |
SetTagCmd
|
標記指令。 |
6 |
detach |
DetachCmd
|
。 |
7 |
set_translation |
SetTranslationCmd
|
空間指令。 |
8 |
set_scale |
SetScaleCmd
|
|
9 |
set_rotation |
SetRotationCmd
|
|
10 |
set_anchor |
SetAnchorCmd
|
|
11 |
set_size |
SetSizeCmd
|
|
12 |
set_opacity |
SetOpacityCmd
|
|
13 |
send_size_change_hint_hack |
SendSizeChangeHintCmdHACK
|
|
14 |
add_child |
AddChildCmd
|
節點專屬指令。 |
15 |
add_part |
AddPartCmd
|
重拾育兒的背景? |
16 |
detach_children |
DetachChildrenCmd
|
|
17 |
set_shape |
SetShapeCmd
|
|
18 |
set_material |
SetMaterialCmd
|
|
19 |
set_clip |
SetClipCmd
|
|
20 |
set_hit_test_behavior |
SetHitTestBehaviorCmd
|
|
21 |
set_view_properties |
SetViewPropertiesCmd
|
|
22 |
take_snapshot_cmd |
TakeSnapshotCmdDEPRECATED
|
|
23 |
set_camera |
SetCameraCmd
|
攝影機和照明指令。 |
24 |
set_camera_transform |
SetCameraTransformCmd
|
|
25 |
set_camera_projection |
SetCameraProjectionCmd
|
|
26 |
set_stereo_camera_projection |
SetStereoCameraProjectionCmd
|
|
27 |
set_camera_pose_buffer |
SetCameraPoseBufferCmd
|
|
28 |
set_light_color |
SetLightColorCmd
|
|
29 |
set_light_direction |
SetLightDirectionCmd
|
|
30 |
add_light |
AddLightCmd
|
|
31 |
detach_light |
DetachLightCmd
|
|
32 |
detach_lights |
DetachLightsCmd
|
|
33 |
set_texture |
SetTextureCmd
|
|
34 |
set_color |
SetColorCmd
|
|
35 |
bind_mesh_buffers |
BindMeshBuffersCmd
|
。 |
36 |
add_layer |
AddLayerCmd
|
圖層和轉譯器指令 |
37 |
remove_layer |
RemoveLayerCmd
|
|
38 |
remove_all_layers |
RemoveAllLayersCmd
|
|
39 |
set_layer_stack |
SetLayerStackCmd
|
|
400 |
set_renderer |
SetRendererCmd
|
|
41 |
set_renderer_param |
SetRendererParamCmd
|
|
傳奇 42 號 |
set_event_mask |
SetEventMaskCmd
|
「活動」。 |
43 |
set_label |
SetLabelCmd
|
診斷指令。 |
44 |
set_disable_clipping |
SetDisableClippingCmd
|
偵錯指令。 |
45 |
set_import_focus |
SetImportFocusCmdDEPRECATED
|
|
46 |
set_clip_planes |
SetClipPlanesCmd
|
|
47 |
set_point_light_position |
SetPointLightPositionCmd
|
|
48 |
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
|
|
52 |
set_display_color_conversion |
SetDisplayColorConversionCmdHACK
|
|
53 |
set_display_rotation |
SetDisplayRotationCmdHACK
|
|
54 |
set_enable_view_debug_bounds |
SetEnableDebugViewBoundsCmd
|
|
55 種 |
set_view_holder_bounds_color |
SetViewHolderBoundsColorCmd
|
|
56 |
set_camera_clip_space_transform |
SetCameraClipSpaceTransformCmd
|
|
57 |
set_display_minimum_rgb |
SetDisplayMinimumRgbCmdHACK
|
|
58 |
set_semantic_visibility |
SetSemanticVisibilityCmd
|
活動嚴格
在 fuchsia.ui.gfx/events.fidl 中定義
這些是 Session
可以回報的所有事件類型。使用 SetEventMaskCmd
為資源啟用事件傳送功能。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
metrics |
MetricsEvent
|
由遮罩控制的事件。 |
2 |
size_change_hint |
SizeChangeHintEvent
|
|
3 |
import_unbound |
ImportUnboundEvent
|
無論遮罩為何,一律傳送的事件。 |
4 |
view_connected |
ViewConnectedEvent
|
|
5 |
view_disconnected |
ViewDisconnectedEvent
|
|
6 |
view_holder_disconnected |
ViewHolderDisconnectedEvent
|
|
7 |
view_attached_to_scene |
ViewAttachedToSceneEvent
|
|
8 |
view_detached_from_scene |
ViewDetachedFromSceneEvent
|
|
9 |
view_properties_changed |
ViewPropertiesChangedEvent
|
|
10 |
view_state_changed |
ViewStateChangedEvent
|
|
11 |
view_holder_connected |
ViewHolderConnectedEvent
|
RendererParam 嚴格
在 fuchsia.ui.gfx/renderer.fidl 中定義的
這些都是可設定 Renderer
的參數類型。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
shadow_technique |
ShadowTechnique
|
|
2 |
reserved |
RenderFrequency
|
已淘汰 |
3 |
enable_debugging |
bool
|
ResourceArgs 嚴格 資源
定義於 fuchsia.ui.gfx/resources.fidl
這些都是在 Session
中可以建立的所有資源類型。只在清單底部新增欄位。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
memory |
MemoryArgs
|
|
2 |
image |
ImageArgs
|
|
4 |
buffer |
BufferArgs
|
|
5 |
view |
ViewArgs
|
|
6 |
view_holder |
ViewHolderArgs
|
|
7 |
rectangle |
RectangleArgs
|
|
8 |
rounded_rectangle |
RoundedRectangleArgs
|
|
9 |
circle |
CircleArgs
|
|
10 |
mesh |
MeshArgs
|
|
11 |
shape_node |
ShapeNodeArgs
|
|
12 |
clip_node |
ClipNodeArgs
|
|
13 |
entity_node |
EntityNodeArgs
|
|
14 |
opacity_node |
OpacityNodeArgsHACK
|
|
15 |
material |
MaterialArgs
|
|
16 |
compositor |
CompositorArgs
|
|
17 |
display_compositor |
DisplayCompositorArgs
|
|
19 |
layer_stack |
LayerStackArgs
|
|
20 |
layer |
LayerArgs
|
|
21 |
scene |
SceneArgs
|
|
22 |
camera |
CameraArgs
|
|
23 |
stereo_camera |
StereoCameraArgs
|
|
24 |
renderer |
RendererArgs
|
|
25 |
ambient_light |
AmbientLightArgs
|
|
26 |
directional_light |
DirectionalLightArgs
|
|
27 |
variable |
VariableArgs
|
|
28 |
point_light |
PointLightArgs
|
|
31 |
view3 |
ViewArgs3
|
|
32 |
image_pipe2 |
ImagePipe2Args
|
|
33 |
image2 |
ImageArgs2
|
|
34 |
image3 |
ImageArgs3
|
值嚴格
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
vector1 |
float32
|
|
2 |
vector2 |
vec2
|
|
3 |
vector3 |
vec3
|
|
4 |
vector4 |
vec4
|
|
5 |
matrix4x4 |
mat4
|
|
6 |
color_rgba |
ColorRgba
|
|
7 |
color_rgb |
ColorRgb
|
|
8 |
degrees |
float32
|
XY 平面中逆時針旋轉的度。 |
9 |
quaternion |
Quaternion
|
|
10 |
transform |
FactoredTransform
|
|
11 |
variable_id |
uint32
|
產生值的資源 (動畫或運算式)。這個值的類型會與指定資源產生的類型相符。 |
業者
名稱 | 值 | 類型 | 說明 |
---|---|---|---|
kLabelMaxLength |
32
|
uint32 |
資源標籤的長度上限。 已移除:17 已淘汰:13
|
kMetricsEventMask |
1
|
uint32 |
回報指標資訊。 系統只會針對節點資源回報這個事件類型。 已移除:17 已淘汰:13
|
kSizeChangeHintEventMask |
2
|
uint32 |
已移除:17 已淘汰:13
|