协议
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
指定的 light_id
指定的光源添加到 scene_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
在 fuchsia.ui.gfx/types.fidl 中定义
表示轴对齐的边界框。
如果任何维度的范围为负(例如 max.x < min.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 中定义
Camera 用于从特定视角渲染场景。这通过将渲染程序设置为使用相机来实现。
以下命令可应用于 Camera:
- SetCameraTransform
- SetCameraProjection
- SetCameraPoseBuffer
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
scene_id |
uint32
|
相机正在观察的场景。 |
无默认取景方式 |
CircleArgs
在 fuchsia.ui.gfx/shapes.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
radius |
Value
|
无默认取景方式 |
ClipNodeArgs
在 fuchsia.ui.gfx/nodes.fidl 中定义
特征:
- has_parent
- is_clip
- has_parts
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
unused |
uint32
|
0 |
ColorRgb
在 fuchsia.ui.gfx/types.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
red |
float32
|
无默认取景方式 | |
green |
float32
|
无默认取景方式 | |
blue |
float32
|
无默认取景方式 |
ColorRgbValue
在 fuchsia.ui.gfx/types.fidl 中定义
当 variable_id
为零时,由 value
明确指定的值,或者是由 variable_id
标识的资源(例如动画或表达式)生成的值。在后一种情况下,资源生成的值必须是 ColorRgb,并且 value
会被忽略。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
ColorRgb
|
无默认取景方式 | |
variable_id |
uint32
|
无默认取景方式 |
ColorRgba
在 fuchsia.ui.gfx/types.fidl 中定义
sRGB 颜色空间和非线性转换函数。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
red |
uint8
|
无默认取景方式 | |
green |
uint8
|
无默认取景方式 | |
blue |
uint8
|
无默认取景方式 | |
alpha |
uint8
|
无默认取景方式 |
ColorRgbaValue
在 fuchsia.ui.gfx/types.fidl 中定义
当 variable_id
为零时,由 value
明确指定的值,或者是由 variable_id
标识的资源(例如动画或表达式)生成的值。在后一种情况下,资源生成的值必须是 ColorRgba,value
会被忽略。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
ColorRgba
|
无默认取景方式 | |
variable_id |
uint32
|
无默认取景方式 |
CompositorArgs
在 fuchsia.ui.gfx/resources.fidl 中定义
合成器将其 LayerStack
绘制到由其附加的 Display
提供的帧缓冲区(如果有)。如果未连接任何显示屏,则系统不会呈现任何内容。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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
在 fuchsia.ui.gfx/nodes.fidl 中定义
特征:
- 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
在 fuchsia.ui.gfx/types.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
translation |
vec3
|
无默认取景方式 | |
scale |
vec3
|
无默认取景方式 | |
anchor |
vec3
|
旋转和缩放所围绕的点。 |
无默认取景方式 |
rotation |
Quaternion
|
无默认取景方式 |
FloatValue
在 fuchsia.ui.gfx/types.fidl 中定义
当 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
|
支持此映像的 |
无默认取景方式 |
ImageArgs3 资源
在 fuchsia.ui.gfx/resources.fidl 中定义
由向 Allocator
注册的 BufferCollection
支持的映像。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
width |
uint32
|
无默认取景方式 | |
height |
uint32
|
无默认取景方式 | |
import_token |
fuchsia.ui.composition/BufferCollectionImportToken
|
必须在分配器中注册已分配的 |
无默认取景方式 |
buffer_collection_index |
uint32
|
支持此映像的 |
无默认取景方式 |
ImagePipe2Args 资源
在 fuchsia.ui.gfx/resources.fidl 中定义
ImagePipe2
是一个 Resource
,可用作 Material
的 Texture
。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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 中定义
图层是由合成器绘制的二维图像。层堆栈中每个层的内容都彼此独立。只有设置了镜头、纹理或颜色的图层才会绘制。
支持的命令:
- 分离
- SetCamera
- SetColor
- SetTexture
- SetSize(深度必须为零)
- SetSize
- SetTranslation(z 组件用于确定层的相对 Z 顺序)
- SetRotation(必须围绕 Z 轴旋转)
- SetScale
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
dummy |
uint32
|
0 |
LayerStackArgs
在 fuchsia.ui.gfx/resources.fidl 中定义
LayerStack 是附加到一个合成器的层的堆栈,合成器会按 Z 轴顺序递增的顺序绘制这些层(或者,呈现出按此顺序绘制的错觉:它可以应用任何不影响输出的优化)。
支持的命令:
- AddLayer
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
dummy |
uint32
|
0 |
MaterialArgs
在 fuchsia.ui.gfx/resources.fidl 中定义
简单的纹理映射材质。
支持的命令:
- SetTextureCmd:设置纹理,也可以将其保留为零(无纹理)。 纹理可以是 Image 或 ImagePipe2。
- SetColorCmd:设置颜色。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
dummy |
uint32
|
0 |
Matrix4Value
在 fuchsia.ui.gfx/types.fidl 中定义
当 variable_id
为零时,由 value
明确指定的值,或者是由 variable_id
标识的资源(例如动画或表达式)生成的值。在后一种情况下,资源生成的值必须是 vec4,并且 value
会被忽略。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
mat4
|
无默认取景方式 | |
variable_id |
uint32
|
无默认取景方式 |
MemoryArgs 资源
在 fuchsia.ui.gfx/resources.fidl 中定义
Memory
是一个 Resource
,用于封装客户端提供的 Zircon vmo,以便向 Views 进行注册。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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。 |
无默认取景方式 |
指标
在 fuchsia.ui.gfx/types.fidl 中定义
渲染与节点关联的目标指标。
另请参阅 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
在 fuchsia.ui.gfx/nodes.fidl 中定义
特征:
- has_transform
- has_parent
- has_children
- has_parts
- has_opacity
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
unused |
uint32
|
0 |
Plane3
在 fuchsia.ui.gfx/types.fidl 中定义
用法线向量与沿着该向量原点的距离描述的定向平面。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
dir |
vec3
|
无默认取景方式 | |
dist |
float32
|
无默认取景方式 |
PointLightArgs
在 fuchsia.ui.gfx/resources.fidl 中定义
PointLight 是一种向各个方向发光的光。默认情况下,光的强度根据基于物理的“反平方定律”(请参阅维基百科)减弱,但也可以将其调整为其他值以实现艺术效果。
支持的命令:
- SetLightColor
- SetPointLightPosition
- SetPointLightFalloff
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
dummy |
uint32
|
0 |
四元数
在 fuchsia.ui.gfx/types.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
x |
float32
|
无默认取景方式 | |
y |
float32
|
无默认取景方式 | |
z |
float32
|
无默认取景方式 | |
w |
float32
|
无默认取景方式 |
QuaternionValue
在 fuchsia.ui.gfx/types.fidl 中定义
当 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 来创建新资源。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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) 为中心的 RoundedRectangle。合法参数值必须满足矩形的平面长度为非负长度的约束条件。换言之,必须满足以下约束条件:
- top_left_radius + top_right_radius <= 宽度
- 左下角半径 + 底部右半径 <= 宽度
- top_left_radius + bottom_left_radius <= 高度
- top_right_radius + bottom_right_radius <= 高度
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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
指定的 light_id
指定的光源添加到 scene_id
标识的场景中。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
scene_id |
uint32
|
无默认取景方式 | |
light_id |
uint32
|
无默认取景方式 |
SceneAddDirectionalLightCmd
在 fuchsia.ui.gfx/commands.fidl 中定义
将由 light_id
指定的 light_id
指定的光源添加到 scene_id
标识的场景中。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
scene_id |
uint32
|
无默认取景方式 | |
light_id |
uint32
|
无默认取景方式 |
SceneAddPointLightCmd
在 fuchsia.ui.gfx/commands.fidl 中定义
将由 light_id
指定的 light_id
指定的光源添加到 scene_id
标识的场景中。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
scene_id |
uint32
|
无默认取景方式 | |
light_id |
uint32
|
无默认取景方式 |
SceneArgs
在 fuchsia.ui.gfx/resources.fidl 中定义
场景是场景图的根,定义了其下节点树的渲染环境(光照等)。
支持的命令:
- 添加/移除浅色
- 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
标识的相机设置“姿势缓冲区”。此操作可以应用于相机和立体相机。
这将替换为相机设置的任何位置和旋转角度,并使其根据每一帧的呈现时间从姿态缓冲区中获取其位置和旋转角度。
姿势缓冲区表示未来固定数量的时间点的姿势环形缓冲区。缓冲区中由 buffer_id
标识的每个条目都是一个四元数和一个位置,布局如下:
struct Pose { // Quaternion float32 a; float32 b; float32 c; float32 d;
// 位置 float32 x; float32 y; float32 z;
// 预留/填充字节 [4] 预留; }
该缓冲区可以视为 num_entries
Pose 结构体的打包数组,且必须至少为 num_entries * sizeof(Pose) 字节。
四元数和位置在镜头父节点的空间中指定。
base_time
是以纳秒为单位的 CLOCK_MONOTONIC
时基基准时间点,而 time_interval
是缓冲区中各条目之间的时间(以纳秒为单位)。“base_time
”必须是过去的时间。
对于 CLOCK_MONOTONIC
时基中以纳秒表示的给定时间点 t
,姿势缓冲区中相应姿势的索引可按如下方式计算:
index(t) = ((t - base_time) / time_interval) 条目数所占百分比
poss[index(t)] 对时间间隔 (t - time_interval, t] 内的 t 有效,应在该时间间隔内持续更新,而不同步。如果多个非原子操作需要单个姿态值,则应该锁存该值,并存储在姿势缓冲区之外。
由于姿势不受任何同步基元保护,因此可能当姿势被锁存时,只会部分更新,并且正在读取的姿势将包含姿势更新前的一些组成部分,以及更新后的姿势中的一些组件。使用这些“破裂”姿势的安全性取决于两个方面:
-
写入 poses[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
引用的Camera
不是StereoCamera
。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 中定义
设置应用于合成器屏幕的颜色转换。该转换根据以下公式应用到各个像素:
(矩阵 *(像素 + 预设))+ 后偏移值
其中,pixel 是由该像素的 3 个分量组成的列矢量。
matrix
按行主要顺序传递。客户端将负责在需要时传递默认值。Fidl 目前不支持默认值。默认值:preoffsets = [0 0 0] Matrix = [1 0 0 0 1 0 0 0 1] postoffsets = [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
是零或者k*EventMask
位通过 OR 进行组合的组合。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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 中定义
设置由 light_id
标识的 PointLight 的衰减因数。值为 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 中定义
设置 StereoCamera 的投影矩阵。 此操作只能应用于 StereoCamera。
限制:
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_holder_id
引用ViewHolder
。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
view_holder_id |
uint32
|
无默认取景方式 | |
properties |
ViewProperties
|
无默认取景方式 |
ShapeNodeArgs
在 fuchsia.ui.gfx/nodes.fidl 中定义
特征:
- 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 中定义
StereoCamera 是一种并排立体呈现场景的相机。
任何可应用于相机的命令也能够应用于立体相机。其他受支持的命令:
- 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
在 fuchsia.ui.gfx/types.fidl 中定义
当 variable_id
为零时,由 value
明确指定的值,或者是由 variable_id
标识的资源(例如动画或表达式)生成的值。在后一种情况下,资源生成的值必须是 vec2,并且 value
会被忽略。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
vec2
|
无默认取景方式 | |
variable_id |
uint32
|
无默认取景方式 |
Vector3Value
在 fuchsia.ui.gfx/types.fidl 中定义
当 variable_id
为零时,由 value
明确指定的值,或者是由 variable_id
标识的资源(例如动画或表达式)生成的值。在后一种情况下,资源生成的值必须是 vec3,并且 value
会被忽略。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
vec3
|
无默认取景方式 | |
variable_id |
uint32
|
无默认取景方式 |
Vector4Value
在 fuchsia.ui.gfx/types.fidl 中定义
当 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
存在于不同的进程中。通过将它们组合起来,可以使用来自许多不同进程的内容构建整个系统的界面。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
token |
fuchsia.ui.views/ViewToken
|
无默认取景方式 | |
debug_name |
string?
|
无默认取景方式 |
ViewArgs3 资源
在 fuchsia.ui.gfx/resources.fidl 中定义
表示较大场景图中子图的根。节点可以作为子节点附加到 View
上,这些节点除了会被裁剪至 View
的边界框之外,还会对它们自身应用 View
的坐标转换。请参阅 ViewProperties
。
每个 View
都通过共享令牌对与配对 ViewHolder
相关联。
通常情况下,View
及其关联的 ViewHolder
存在于不同的进程中。通过将它们组合起来,可以使用来自许多不同进程的内容构建整个系统的界面。
客户端使用 ViewRef
自标识其View
,这是一个稳定的标识符,可以克隆并以前馈方式传递给其他组件。它附带 ViewRefControl
,Sce 使用它来指示整个系统中 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 的对等视图断开连接或销毁时,传送到 ViewHolder 的会话。
如果在建立连接前销毁 View,则当 ViewHolder 尝试连接时,系统会立即传送此事件。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
view_holder_id |
uint32
|
无默认取景方式 |
ViewHolderArgs 资源
在 fuchsia.ui.gfx/resources.fidl 中定义
表示较大场景图中子图的连接点。ViewHolder
可以作为子节点附加到 Node,关联的 View
的内容也将成为该 Node 的子节点。
每个 ViewHolder
都通过共享令牌对与配对 View
相关联。
通常情况下,ViewHolder
及其关联的 View
存在于不同的进程中。通过将它们组合起来,可以使用来自许多不同进程的内容构建整个系统的界面。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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 中定义
当某个 View 的对等 ViewHolder 断开连接或销毁时,将其传送到 View 的会话。
如果在建立连接之前 ViewHolder 被销毁,则系统会在 View 尝试连接时立即传送此事件。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
view_id |
uint32
|
无默认取景方式 |
ViewProperties
在 fuchsia.ui.gfx/types.fidl 中定义
表示 View 的属性。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
bounding_box |
BoundingBox
|
视图的边界框范围可定义为: { bounds_box.min, bounds_box.max } 视图中包含的内容会裁剪为此边界框。 |
无默认取景方式 |
inset_from_min |
vec3
|
shortcuts 不会严格强制执行以下属性,而只会用作客户端和其他接收 ViewProperties 的组件的提示: 视图客户端可以假设在 {bound_box.min + inset_from_min, bounds_box.max - inset_from_max } 之外绘制的任何内容都可能会被祖先视图遮挡。模糊的原因及其相关的规则因产品而异。 |
无默认取景方式 |
inset_from_max |
vec3
|
无默认取景方式 | |
focus_change |
bool
|
视图是否可以接收焦点事件;默认值为 true。如果为 false,并且该 View 可以接收焦点事件,则系统实际上不会向任何 View 发送焦点/取消焦点事件。 |
true |
downward_input |
bool
|
View 是否允许基于几何图形的 View 接收输入;默认值为 true。为 false 时,Scape 不会向底层 View 发送输入事件。 |
true |
ViewPropertiesChangedEvent
在 fuchsia.ui.gfx/events.fidl 中定义
当给定视图的父 ViewHolder 更改视图的属性时传递。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
view_id |
uint32
|
无默认取景方式 | |
properties |
ViewProperties
|
无默认取景方式 |
ViewState
在 fuchsia.ui.gfx/types.fidl 中定义
表示景观中 View 的状态。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
is_rendering |
bool
|
View 是否正在渲染。默认值为 false。在视图的第一帧渲染请求之后传送到视图的相应 ViewHolder。 |
无默认取景方式 |
ViewStateChangedEvent
在 fuchsia.ui.gfx/events.fidl 中定义
在 ViewHolder 的会话的状态发生更改时传送到 ViewHolder 的会话。
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
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 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
x |
float32
|
无默认取景方式 | |
y |
float32
|
无默认取景方式 | |
z |
float32
|
无默认取景方式 | |
w |
float32
|
无默认取景方式 |
枚举
HitTestBehavior 严格
类型:uint32
在 fuchsia.ui.gfx/types.fidl 中定义
描述节点如何与点击测试进行交互。
名称 | 值 | 说明 |
---|---|---|
kDefault |
0 |
对节点的内容、部分及其子节点应用点击测试。 |
kSuppress |
1 |
抑制节点及其包含的所有内容的点击测试。 |
ImportSpec strict
类型:uint32
在 fuchsia.ui.gfx/resources.fidl 中定义
描述将由 ImportResourceCmd 导入的导出资源。
注意:目前只是可导入资源类型的枚举,但以后可能会进行扩展,以表达“与特定顶点格式的网格”等概念。
名称 | 值 | 说明 |
---|---|---|
节点 |
0 |
MeshIndexFormat 严格
类型: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
必须包含指定范围内的所有顶点。
MeshVertexFormat 定义了网格提供哪些逐顶点属性,以及每个属性的大小(从而确定每个顶点的大小)。属性在顶点内按照它们在 MeshVertexFormat 结构体中出现的顺序进行排序。例如,如果值为 kVector3、kNone 和 kVector2,则:
- 每个顶点都有位置和 UV 坐标,但没有表面法线。
- 3D 位置占用 0-11 个字节(3 个维度 * 每个 float32 4 个字节)。
- UV 坐标会占用 12-19 字节,因为未提供 Surface 法线。
名称 | 值 | 说明 |
---|---|---|
kUint16 |
1 |
|
kUint32 |
2 |
RenderFrequency 严格
类型: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 严格
类型:uint32
在 fuchsia.ui.gfx/types.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
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
状态的命令。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
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
|
|
40 |
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_Directionlight" 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
为资源启用事件传送功能。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
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
而可以设置的所有类型的参数。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
shadow_technique |
ShadowTechnique
|
|
2 |
reserved |
RenderFrequency
|
已弃用 |
3 |
enable_debugging |
bool
|
ResourceArgs 严格 资源
在 fuchsia.ui.gfx/resources.fidl 中定义
这些是可以在 Session
中创建的所有资源类型。仅将新字段添加到列表底部。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
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
|
值严格
在 fuchsia.ui.gfx/types.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
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
|
生成值的资源(动画或表达式)的 ID。 此值的类型与命名资源生成的类型一致。 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
kLabelMaxLength |
32
|
uint32 |
资源标签的长度上限。 已移除:17 已弃用:13
|
kMetricsEventMask |
1
|
uint32 |
报告指标信息。 系统仅针对节点资源报告此事件类型。 已移除:17 已弃用:13
|
kSizeChangeHintEventMask |
2
|
uint32 |
已移除:17 已弃用:13
|