PROTOCOLS
SnapshotCallbackDEPRECATED
Defined in fuchsia.ui.gfx/commands.fidl
OnData
Request
Name | Type |
---|---|
data |
fuchsia.mem/Buffer
|
STRUCTS
AddChildCmd
Defined in fuchsia.ui.gfx/commands.fidl
Add a node as a child to another node.
Constraints:
id
refs a Node with the has_children characteristic.child_id
refs any Node.
Discussion: The child node is first removed from its existing parent, as if DetachCmd was applied first.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
child_id |
uint32
|
No default |
AddLayerCmd
Defined in fuchsia.ui.gfx/commands.fidl
Add a layer to a layer stack. Constraints:
layer_stack_id
refs aLayerStack
.layer_id
refs aLayer
.- The layer must not already belong to a different stack; it must first be detached.
Field | Type | Description | Default |
---|---|---|---|
layer_stack_id |
uint32
|
No default | |
layer_id |
uint32
|
No default |
AddLightCmd
Defined in fuchsia.ui.gfx/commands.fidl
Adds the light specified by light_id
specified by light_id
to the scene
identified by scene_id
.
Field | Type | Description | Default |
---|---|---|---|
scene_id |
uint32
|
No default | |
light_id |
uint32
|
No default |
AddPartCmd
Defined in fuchsia.ui.gfx/commands.fidl
Add a node as a part of another node. The implications of being a part rather than a child differ based on the type of the part. However, one implication is constant: removing all of a node's children (e.g. via DetachChildrenCmd) does not affect its parts. This is similar to the "shadow DOM" in a web browser: the controls of a
Constraints:
id
refs a Node with the has_parts characteristic.part_id
refs any Node.
Discussion: The part node is first removed from its existing parent, as if DetachCmd was applied first.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
part_id |
uint32
|
No default |
AmbientLightArgs
Defined in fuchsia.ui.gfx/resources.fidl
An AmbientLight is a Light that is is assumed to be everywhere in the scene, in all directions.
Supported commands:
- SetLightColor
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
BindMeshBuffersCmd
Defined in fuchsia.ui.gfx/commands.fidl
Field | Type | Description | Default |
---|---|---|---|
mesh_id |
uint32
|
No default | |
index_buffer_id |
uint32
|
No default | |
index_format |
MeshIndexFormat
|
No default | |
index_offset |
uint64
|
No default | |
index_count |
uint32
|
No default | |
vertex_buffer_id |
uint32
|
No default | |
vertex_format |
MeshVertexFormat
|
No default | |
vertex_offset |
uint64
|
No default | |
vertex_count |
uint32
|
No default | |
bounding_box |
BoundingBox
|
No default |
BoundingBox
Defined in fuchsia.ui.gfx/types.fidl
Represents an axis-aligned bounding box.
If any of the dimensions has a negative extent (e.g. max.x < min.x) then the bounding box is treated as empty. It is valid for a client to define an empty bounding box.
An "empty bounding box" is one that does not admit a point inhabitant. Note that a zero-volume, zero-area bounding box (e.g., a point like (0,0,0)-(0,0,0), or a line like (0,0,0)-(1,0,0)) is thus not empty.
Field | Type | Description | Default |
---|---|---|---|
min |
vec3
|
No default | |
max |
vec3
|
No default |
BufferArgs
Defined in fuchsia.ui.gfx/resources.fidl
A buffer mapped to a range of Memory
.
Field | Type | Description | Default |
---|---|---|---|
memory_id |
uint32
|
No default | |
memory_offset |
uint32
|
No default | |
num_bytes |
uint32
|
No default |
CameraArgs
Defined in fuchsia.ui.gfx/resources.fidl
A Camera is used to render a Scene from a particular viewpoint. This is achieved by setting a Renderer to use the camera.
The following commands may be applied to a Camera:
- SetCameraTransform
- SetCameraProjection
- SetCameraPoseBuffer
Field | Type | Description | Default |
---|---|---|---|
scene_id |
uint32
|
The scene that the camera is viewing. |
No default |
CircleArgs
Defined in fuchsia.ui.gfx/shapes.fidl
Field | Type | Description | Default |
---|---|---|---|
radius |
Value
|
No default |
ClipNodeArgs
Defined in fuchsia.ui.gfx/nodes.fidl
Characteristics:
- has_parent
- is_clip
- has_parts
Field | Type | Description | Default |
---|---|---|---|
unused |
uint32
|
0 |
ColorRgb
Defined in fuchsia.ui.gfx/types.fidl
Field | Type | Description | Default |
---|---|---|---|
red |
float32
|
No default | |
green |
float32
|
No default | |
blue |
float32
|
No default |
ColorRgbValue
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a ColorRgb, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
ColorRgb
|
No default | |
variable_id |
uint32
|
No default |
ColorRgba
Defined in fuchsia.ui.gfx/types.fidl
sRGB color space and nonlinear transfer function.
Field | Type | Description | Default |
---|---|---|---|
red |
uint8
|
No default | |
green |
uint8
|
No default | |
blue |
uint8
|
No default | |
alpha |
uint8
|
No default |
ColorRgbaValue
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a ColorRgba, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
ColorRgba
|
No default | |
variable_id |
uint32
|
No default |
CompositorArgs
Defined in fuchsia.ui.gfx/resources.fidl
A Compositor draws its LayerStack
into a framebuffer provided by its
attached Display
, if any. If no display is attached, nothing is rendered.
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
CreateResourceCmd resource
Defined in fuchsia.ui.gfx/commands.fidl
Instructs the compositor to create the specified Resource
, and to register
it in a table so that it can be referenced by subsequent commands.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
An ID that is currently not used within the session. |
No default |
resource |
ResourceArgs
|
No default |
DetachChildrenCmd
Defined in fuchsia.ui.gfx/commands.fidl
Detaches all of a node's children (but not its parts).
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default |
DetachCmd
Defined in fuchsia.ui.gfx/commands.fidl
Detaches a parentable object from its parent (e.g. a node from a parent node, or a layer from a layer stack). It is illegal to apply this command to a non-parentable object. No-op if the target object currently has no parent.
Constraints:
id
refs a parentable object
Discussion: For nodes, this command will detach a node from its parent, regardless of whether it is a part or a child of its parent.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default |
DetachLightCmd
Defined in fuchsia.ui.gfx/commands.fidl
Detach the light specified by light_id
from the scene that it is attached
to, if any.
Field | Type | Description | Default |
---|---|---|---|
light_id |
uint32
|
No default |
DetachLightsCmd
Defined in fuchsia.ui.gfx/commands.fidl
Detach all lights from the scene specified by scene_id
.
Field | Type | Description | Default |
---|---|---|---|
scene_id |
uint32
|
No default |
DirectionalLightArgs
Defined in fuchsia.ui.gfx/resources.fidl
A DirectionalLight is a Light that is emitted from a point at infinity.
Although the light is directional, the light has some amount of angular dispersion (i.e., the light is not fully columnated). For simplicity, we assume the dispersion of the light source is symmetric about the light's primary direction.
Supported commands:
- SetLightColor
- SetLightDirection
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
DisplayCompositorArgs
Defined in fuchsia.ui.gfx/resources.fidl
A DisplayCompositor draws its attached LayerStack
into an image that is
presented on a display.
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
DisplayInfo
Defined in fuchsia.ui.gfx/display_info.fidl
Provides information about a display.
Field | Type | Description | Default |
---|---|---|---|
width_in_px |
uint32
|
The size of the display, in physical pixels. |
No default |
height_in_px |
uint32
|
No default |
EntityNodeArgs
Defined in fuchsia.ui.gfx/nodes.fidl
Characteristics:
- has_transform
- has_children
- has_parent
- has_parts
- has_clip
Field | Type | Description | Default |
---|---|---|---|
unused |
uint32
|
0 |
ExportResourceCmdDeprecated resource
Defined in fuchsia.ui.gfx/commands.fidl
Create an external reference to the specified resource, which can then be
imported into another Session by passing a handle to token
's peer to
ImportResourceCmd; see that comment for more details.
The importing client is typically in a different process than the exporter. No specific mechanism is provided for transferring a token from an exporter to an importer; collaborators may choose any out-of-band API they wish to do so.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
token |
handle<eventpair>
|
No default |
ExportToken resource
Defined in fuchsia.ui.gfx/tokens.fidl
Token that uniquely identifies a root point for a subgraph in the global
scene graph. Each ExportToken
has exactly one corresponding ImportToken
.
A Scenic client can have its contents referenced from another client by
creating a typed resource using this token. The other client must also
create a correspondingly typed resource using the corresponding
ImportToken
.
The exact nature of the inter-client reference depends on the specific
resources created from the tokens. For example, creating a View
resource from this token allows everything attached to the View
to be
embedded in another clients ViewHolder
.
Field | Type | Description | Default |
---|---|---|---|
value |
handle<eventpair>
|
No default |
FactoredTransform
Defined in fuchsia.ui.gfx/types.fidl
Field | Type | Description | Default |
---|---|---|---|
translation |
vec3
|
No default | |
scale |
vec3
|
No default | |
anchor |
vec3
|
Point around which rotation and scaling occur. |
No default |
rotation |
Quaternion
|
No default |
FloatValue
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a float32, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
float32
|
No default | |
variable_id |
uint32
|
No default |
ImageArgs
Defined in fuchsia.ui.gfx/resources.fidl
An image mapped to a range of a Memory
resource.
Field | Type | Description | Default |
---|---|---|---|
info |
fuchsia.images/ImageInfo
|
No default | |
memory_id |
uint32
|
No default | |
memory_offset |
uint32
|
No default |
ImageArgs2
Defined in fuchsia.ui.gfx/resources.fidl
An image mapped to a range of a Memory
resource.
Field | Type | Description | Default |
---|---|---|---|
width |
uint32
|
No default | |
height |
uint32
|
No default | |
buffer_collection_id |
uint32
|
The id of a |
No default |
buffer_collection_index |
uint32
|
The index of the VMO from the |
No default |
ImageArgs3 resource
Defined in fuchsia.ui.gfx/resources.fidl
An image that is backed by a BufferCollection
registered with Allocator
.
Field | Type | Description | Default |
---|---|---|---|
width |
uint32
|
No default | |
height |
uint32
|
No default | |
import_token |
fuchsia.ui.composition/BufferCollectionImportToken
|
Image creation requires an allocated |
No default |
buffer_collection_index |
uint32
|
The index of the VMO from the |
No default |
ImagePipe2Args resource
Defined in fuchsia.ui.gfx/resources.fidl
ImagePipe2
is a Resource
that can be used as a Texture
for a Material
.
Field | Type | Description | Default |
---|---|---|---|
image_pipe_request |
server_end<fuchsia.images/ImagePipe2>
|
No default |
ImportResourceCmdDeprecated resource
Defined in fuchsia.ui.gfx/commands.fidl
Import a resource that was exported via ExportResourceCmd(). token
is
a handle to the eventpair peer that was used to export the resource, and
spec
describes the type of the imported resource, and the commands which
can legally be applied to it. Afterward, id
can be used to refer to the
resource in an Command, similarly (but not identically: see below) to a
resource that was created in the session. For example, you can add children
to an imported EntityNode via AddChildCmd.
However, note that the importer does not gain full access to the imported resource, but rather to an attenuated subset of its capabilities. For example, you cannot use a DetachCmd to detach an imported EntityNode from its parent.
Unlike ExportResourceCmd, there is no configurable timeout. There is an expectation that the exported resource will become available in a short amount of time. TODO: this needs elaboration... e.g. we might notify via the SessionListener when we know that the link will never be made (e.g. if the peer of the import token is destroyed).
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
token |
handle<eventpair>
|
No default | |
spec |
ImportSpec
|
No default |
ImportToken resource
Defined in fuchsia.ui.gfx/tokens.fidl
Token that uniquely identifies an attachment point for a subgraph in the
global scene graph. Each ImportToken
has exactly one corresponding
ExportToken
.
A Scenic client can reference contents from another client by creating a
typed resource using this token. The other client must also create a
correspondingly typed resource using the corresponding ExportToken
.
The exact nature of the inter-client reference depends on the specific
resources created from the tokens. For example, creating a ViewHolder
resource from this token allows a client to embed another client's View
.
Field | Type | Description | Default |
---|---|---|---|
value |
handle<eventpair>
|
No default |
ImportUnboundEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered when the imported resource with the given ID is no longer bound to its host resource, or if the imported resource can not be bound because the host resource is not available.
Field | Type | Description | Default |
---|---|---|---|
resource_id |
uint32
|
No default |
LayerArgs
Defined in fuchsia.ui.gfx/resources.fidl
A Layer is a 2-dimensional image that is drawn by a Compositor. The contents of each Layer in a Layerstack are independent of each other. A layer is not drawn unless it has a camera, texture, or color.
Supported commands:
- Detach
- SetCamera
- SetColor
- SetTexture
- SetSize (depth must be zero)
- SetSize
- SetTranslation (z component determines the relative Z-ordering of layers)
- SetRotation (must rotate around Z-axis)
- SetScale
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
LayerStackArgs
Defined in fuchsia.ui.gfx/resources.fidl
A LayerStack is a stack of layers that are attached to a Compositor, which draws them in order of increasing Z-order (or rather, presents the illusion of drawing them in that order: it may apply any optimizations that don't affect the output).
Supported commands:
- AddLayer
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
MaterialArgs
Defined in fuchsia.ui.gfx/resources.fidl
Simple texture-mapped material.
Supported commands:
- SetTextureCmd: sets the texture, or it can be left as zero (no texture). The texture can be an Image or ImagePipe2.
- SetColorCmd: sets the color.
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
Matrix4Value
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a vec4, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
mat4
|
No default | |
variable_id |
uint32
|
No default |
MemoryArgs resource
Defined in fuchsia.ui.gfx/resources.fidl
Memory
is a Resource
that wraps a client-provided Zircon vmo to register
it with Scenic.
Field | Type | Description | Default |
---|---|---|---|
vmo |
handle<vmo>
|
The VMO which backs this memory. |
No default |
allocation_size |
uint64
|
The amount of memory from |
No default |
memory_type |
fuchsia.images/MemoryType
|
The type of memory stored in the VMO, namely whether it's GPU memory or host memory. |
No default |
MeshArgs
Defined in fuchsia.ui.gfx/shapes.fidl
A Mesh cannot be rendered until it has been bound to vertex/index buffers; see BindMeshBuffersCmd.
<EMPTY>
MeshVertexFormat
Defined in fuchsia.ui.gfx/commands.fidl
Field | Type | Description | Default |
---|---|---|---|
position_type |
ValueType
|
kVector2 or kVector3. |
No default |
normal_type |
ValueType
|
kVector2 or kVector3 (must match position_type), or kNone. |
No default |
tex_coord_type |
ValueType
|
kVector2 or kNone. |
No default |
Metrics
Defined in fuchsia.ui.gfx/types.fidl
Rendering target metrics associated with a node.
See also MetricsEvent
.
Field | Type | Description | Default |
---|---|---|---|
scale_x |
float32
|
The ratio between the size of one logical pixel within the node's local coordinate system and the size of one physical pixel of the rendering target. This scale factors change in relation to the resolution of the rendering target and the scale transformations applied by containing nodes. They are always strictly positive and non-zero. For example, suppose the rendering target is a high resolution display with a device pixel ratio of 2.0 meaning that each logical pixel within the model corresponds to two physical pixels of the display. Assuming no scale transformations affect the node, then its metrics event will report a scale factor of 2.0. Building on this example, if instead the node's parent applies a scale transformation of 0.25 to the node, then the node's metrics event will report a scale factor of 0.5 indicating that the node should render its content at a reduced resolution and level of detail since a smaller area of physical pixels (half the size in each dimension) will be rendered. |
No default |
scale_y |
float32
|
No default | |
scale_z |
float32
|
No default |
MetricsEvent
Defined in fuchsia.ui.gfx/events.fidl
Provides rendering target metrics information about the specified node.
This event is delivered when the following conditions are true:
- The node is a descendant of a
Scene
. - The node has
kMetricsEventMask
set to an enabled state. - The node's metrics have changed since they were last delivered, or since
kMetricsEventMask
transitioned from a disabled state to an enabled state.
Subscribe to this event to receive information about the scale factors you should apply when generating textures for your nodes.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
metrics |
Metrics
|
No default |
OpacityNodeArgsHACK
Defined in fuchsia.ui.gfx/nodes.fidl
Characteristics:
- has_transform
- has_parent
- has_children
- has_parts
- has_opacity
Field | Type | Description | Default |
---|---|---|---|
unused |
uint32
|
0 |
Plane3
Defined in fuchsia.ui.gfx/types.fidl
Oriented plane described by a normal vector and a distance from the origin along that vector.
Field | Type | Description | Default |
---|---|---|---|
dir |
vec3
|
No default | |
dist |
float32
|
No default |
PointLightArgs
Defined in fuchsia.ui.gfx/resources.fidl
A PointLight is a Light that emits light in all directions. By default, the intensity of the light falls off according to the physically based "inverse-square law" (see Wikipedia), although it can be adjusted to other values for artistic effect.
Supported commands:
- SetLightColor
- SetPointLightPosition
- SetPointLightFalloff
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
Quaternion
Defined in fuchsia.ui.gfx/types.fidl
Field | Type | Description | Default |
---|---|---|---|
x |
float32
|
No default | |
y |
float32
|
No default | |
z |
float32
|
No default | |
w |
float32
|
No default |
QuaternionValue
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a Quaternion, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
Quaternion
|
No default | |
variable_id |
uint32
|
No default |
RectangleArgs
Defined in fuchsia.ui.gfx/shapes.fidl
Rectangle centered at (0,0).
Field | Type | Description | Default |
---|---|---|---|
width |
Value
|
No default | |
height |
Value
|
No default |
ReleaseResourceCmd
Defined in fuchsia.ui.gfx/commands.fidl
Releases the client's reference to the resource; it is then illegal to use the ID in subsequent Commands. Other references to the resource may exist, so releasing the resource does not result in its immediate destruction; it is only destroyed once the last reference is released. For example, the resource may be required to render an in-progress frame, or it may be referred to by another resource). However, the ID will be immediately unregistered, and may be reused to create a new resource.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
ID of the resource to be dereferenced. |
No default |
RemoveAllLayersCmd
Defined in fuchsia.ui.gfx/commands.fidl
Remove all layers from a layer stack. Constraints
layer_stack_id
refs aLayerStack
.
Field | Type | Description | Default |
---|---|---|---|
layer_stack_id |
uint32
|
No default |
RemoveLayerCmd
Defined in fuchsia.ui.gfx/commands.fidl
Remove a layer from a layer stack. Constraints:
layer_stack_id
refs aLayerStack
.layer_id
refs aLayer
.- The layer must belong to this stack.
Field | Type | Description | Default |
---|---|---|---|
layer_stack_id |
uint32
|
No default | |
layer_id |
uint32
|
No default |
RendererArgs
Defined in fuchsia.ui.gfx/resources.fidl
A Renderer renders a Scene via a Camera.
Supported commands:
- SetCamera
- SetRendererParam
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
RoundedRectangleArgs
Defined in fuchsia.ui.gfx/shapes.fidl
RoundedRectangle centered at (0,0). Legal parameter values must satisfy the constraint that the flat sides of the rectangle have non-negative length. In other words, the following constraints must hold:
- top_left_radius + top_right_radius <= width
- bottom_left_radius + bottom_right_radius <= width
- top_left_radius + bottom_left_radius <= height
- top_right_radius + bottom_right_radius <= height
Field | Type | Description | Default |
---|---|---|---|
width |
Value
|
No default | |
height |
Value
|
No default | |
top_left_radius |
Value
|
No default | |
top_right_radius |
Value
|
No default | |
bottom_right_radius |
Value
|
No default | |
bottom_left_radius |
Value
|
No default |
SceneAddAmbientLightCmd
Defined in fuchsia.ui.gfx/commands.fidl
Adds the light specified by light_id
specified by light_id
to the scene
identified by scene_id
.
Field | Type | Description | Default |
---|---|---|---|
scene_id |
uint32
|
No default | |
light_id |
uint32
|
No default |
SceneAddDirectionalLightCmd
Defined in fuchsia.ui.gfx/commands.fidl
Adds the light specified by light_id
specified by light_id
to the scene
identified by scene_id
.
Field | Type | Description | Default |
---|---|---|---|
scene_id |
uint32
|
No default | |
light_id |
uint32
|
No default |
SceneAddPointLightCmd
Defined in fuchsia.ui.gfx/commands.fidl
Adds the light specified by light_id
specified by light_id
to the scene
identified by scene_id
.
Field | Type | Description | Default |
---|---|---|---|
scene_id |
uint32
|
No default | |
light_id |
uint32
|
No default |
SceneArgs
Defined in fuchsia.ui.gfx/resources.fidl
A Scene is the root of a scene-graph, and defines the rendering environment (lighting, etc.) for the tree of nodes beneath it.
Supported commands:
- Add/RemoveLight
- AddChild
Field | Type | Description | Default |
---|---|---|---|
dummy |
uint32
|
0 |
SendSizeChangeHintCmdHACK
Defined in fuchsia.ui.gfx/commands.fidl
Sends a hint about a pending size change to the given node and all nodes below. This is generally sent before an animation.
width_change_factor
and height_change_factor
is how much bigger or smaller
the item is expected to be in the near future. This one number encapsulate
both changes in scale, as well as changes to layout width and height.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
width_change_factor |
float32
|
No default | |
height_change_factor |
float32
|
No default |
SetAnchorCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a Resource's (typically a Node's) anchor point.
Constraints:
id
refs a Resource with the has_transform characteristic.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
value |
Vector3Value
|
No default |
SetCameraClipSpaceTransformCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a camera's 2D clip-space transform.
Constraints:
camera_id
refs aCamera
.translation
is the desired translation, in Vulkan NDC.scale
is the scale factor to apply on the x/y plane before translation.
Field | Type | Description | Default |
---|---|---|---|
camera_id |
uint32
|
No default | |
translation |
vec2
|
No default | |
scale |
float32
|
No default |
SetCameraCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a renderer's camera.
Constraints:
renderer_id
refs aRenderer
.camera_id
refs aCamera
, or stops rendering by passing zero.matrix
is a value or variable of type kMatrix4x4.
Field | Type | Description | Default |
---|---|---|---|
renderer_id |
uint32
|
No default | |
camera_id |
uint32
|
No default |
SetCameraPoseBufferCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets the "pose buffer" for the camera identified by camera_id
.
This operation can be applied to both Cameras and StereoCameras.
This will override any position and rotation set for the camera and will make it take its position and rotation from the pose buffer each frame based on the presentation time for that frame.
A pose buffer represents a ring buffer of poses for a fixed number of time
points in the future. Each entry in the buffer identified by buffer_id
is
a quaternion and a position layed out as follows:
struct Pose { // Quaternion float32 a; float32 b; float32 c; float32 d;
// Position float32 x; float32 y; float32 z;
// Reserved/Padding byte[4] reserved; }
The buffer can be thought of as a packed array of num_entries
Pose structs
and is required to be at least num_entries * sizeof(Pose) bytes.
The quaternions and positions are specified in the space of the camera's parent node.
base_time
is a base time point expressed in nanoseconds in the
CLOCK_MONOTONIC
timebase and time_interval
is the time in nanoseconds
between entries in the buffer. base_time
must be in the past.
For a given point in time t
expressed in nanoseconds in the
CLOCK_MONOTONIC
timebase the index of the corresponding pose in
the pose buffer can be computed as follows:
index(t) = ((t - base_time) / time_interval) % num_entries
poses[index(t)] is valid for t over the time interval (t - time_interval, t] and should be expected to updated continuously without synchronization for the duration of that interval. If a single pose value is needed for multiple non-atomic operations a value should be latched and stored outside the pose buffer.
Because the poses are not protected by any synchronization primitives it is possible that when a pose is latched it will be only partially updated, and the pose being read will contain some components from the pose before it is updated and some components from the updated pose. The safety of using these "torn" poses relies on two things:
-
Sequential poses written to poses[index(t)] are very similar to each other numerically, so that if some components are taken from the first and some are taken from another the result is numerically similar to both
-
The space of positions and quaternions is locally flat at the scale of changes between sequential updates, which guarantees that two poses which are numerically similar also represent semantically similar poses (i.e. there are no discontinuities which will cause a small numerical change in the position or quaterninon to cause a large change in the encoded pose) For positions this is guaranteed because Scenic uses a Euclidean 3-space which is globally flat and for quaternions this is guaranteed because quaternions encode rotation as points on a unit 4-sphere, and spheres are locally flat. For more details on the encoding of rotations in quaterions see https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation
This commanderation is intended for late latching camera pose to support low-latency motion-tracked rendering.
Field | Type | Description | Default |
---|---|---|---|
camera_id |
uint32
|
No default | |
buffer_id |
uint32
|
No default | |
num_entries |
uint32
|
No default | |
base_time |
int64
|
No default | |
time_interval |
uint64
|
No default |
SetCameraProjectionCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a camera's projection matrix. This operation cannot be applied to a StereoCamera.
Constraints:
camera_id
refs aCamera
that is not aStereoCamera
.fovy
is the Y-axis field of view, in radians.
NOTE: A default orthographic projection is specified by setting fovy
to
zero. In this case, the camera transform is ignored.
Field | Type | Description | Default |
---|---|---|---|
camera_id |
uint32
|
No default | |
fovy |
FloatValue
|
No default |
SetCameraTransformCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a camera's view matrix. This operation can be applied to both Cameras and StereoCameras.
Constraints:
camera_id
refs aCamera
.eye_position
is the position of the eye.eye_look_at
is the point is the scene the that eye is pointed at.eye_up
defines the camera's "up" vector.
Field | Type | Description | Default |
---|---|---|---|
camera_id |
uint32
|
No default | |
eye_position |
Vector3Value
|
No default | |
eye_look_at |
Vector3Value
|
No default | |
eye_up |
Vector3Value
|
No default |
SetClipCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets/clears a node's clip. DEPRECATED: use SetClipPlanesCmd.
Constraints:
node_id
refs aNode
with the has_clip characteristic.clip_id
aNode
with the is_clip characteristic, or nothing. If the referenced node is not rooted, then it will have no effect (since its full world-transform cannot be determined).clip_to_self
If false, children are only clipped to the region specified byclip_id
. If true, children are additionally clipped to the node's shape (as determined by its ShapeNode parts).
Discussion: If a node has a clip, it will be applied to both the parts and the children of the node. Under some circumstances (TBD), a clip will not be applicable to a node; in such cases it will be as though no clip has been specified for the node.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
clip_id |
uint32
|
No default | |
clip_to_self |
bool
|
No default |
SetClipPlanesCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets the list of clip planes that apply to a Node and all of its children. Replaces the list set by any previous SetClipPlanesCmd.
node_id
refs aNode
with the has_clip characteristic.clip_planes
is the new list of oriented clip planes.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
clip_planes |
vector<Plane3>
|
No default |
SetColorCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a material's color.
Constraints:
material_id
refs aMaterial
.
If a texture is set on the material, then the value sampled from the texture is multiplied by the color.
Field | Type | Description | Default |
---|---|---|---|
material_id |
uint32
|
No default | |
color |
ColorRgbaValue
|
No default |
SetDisableClippingCmd
Defined in fuchsia.ui.gfx/commands.fidl
Set whether clipping should be disabled for the specified renderer. For a newly-created renderer, clipping will NOT be disabled (i.e. it will be enabled).
NOTE: this disables visual clipping only; objects are still clipped for the purposes of hit-testing.
renderer_id
refs the target renderer.
disable_clipping
specifies whether the clipping should be disabled.
Field | Type | Description | Default |
---|---|---|---|
renderer_id |
uint32
|
No default | |
disable_clipping |
bool
|
No default |
SetDisplayColorConversionCmdHACK
Defined in fuchsia.ui.gfx/commands.fidl
Set the color conversion applied to the compositor's display. The conversion is applied to to each pixel according to the formula:
(matrix * (pixel + preoffsets)) + postoffsets
where pixel is a column vector consisting of the pixel's 3 components.
matrix
is passed in row-major order. Clients will be responsible
for passing default values, when needed.
Default values are not currently supported in fidl.
Default Values:
preoffsets = [0 0 0]
matrix = [1 0 0 0 1 0 0 0 1]
postoffsets = [0 0 0]
Field | Type | Description | Default |
---|---|---|---|
compositor_id |
uint32
|
No default | |
preoffsets |
float32[3]
|
No default | |
matrix |
float32[9]
|
No default | |
postoffsets |
float32[3]
|
No default |
SetDisplayMinimumRgbCmdHACK
Defined in fuchsia.ui.gfx/commands.fidl
Field | Type | Description | Default |
---|---|---|---|
min_value |
uint8
|
No default |
SetDisplayRotationCmdHACK
Defined in fuchsia.ui.gfx/commands.fidl
Depending on the device, the display might be rotated with respect to what the lower level device controller considers the physical orientation of pixels. The compositors and layers must be in alignment with the underlying physical orientation which means that for certain operations like screenshotting, they cannot provide results with the accurate orientation unless they have information about how the higher-level display is orienting the screen. The only legal values for the rotation are 0, 90, 180, and 270, which are each applied counterclockwise.
Field | Type | Description | Default |
---|---|---|---|
compositor_id |
uint32
|
No default | |
rotation_degrees |
uint32
|
No default |
SetEnableDebugViewBoundsCmd
Defined in fuchsia.ui.gfx/commands.fidl
Field | Type | Description | Default |
---|---|---|---|
view_id |
uint32
|
No default | |
enable |
bool
|
No default |
SetEventMaskCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets which events a resource should deliver to the session listener. This command replaces any prior event mask for the resource.
The initial event mask for a resource is zero, meaning no events are reported.
Constraints:
resource_id
is a valid resource idevent_mask
is zero or a combination ofk*EventMask
bits OR'ed together.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
event_mask |
uint32
|
No default |
SetHitTestBehaviorCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a node's hit test behavior.
Discussion: By default, hit testing is performed on the node's content, its parts, and its children.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
hit_test_behavior |
HitTestBehavior
|
No default |
SetImportFocusCmdDEPRECATED
Defined in fuchsia.ui.gfx/commands.fidl
<EMPTY>
SetLabelCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets/clears a label to help developers identify the purpose of the resource when using diagnostic tools.
The label serves no functional purpose in the scene graph. It exists only to help developers understand its structure. The scene manager may truncate or discard labels at will.
Constraints:
- The label's maximum length is
kLabelMaxLength
characters. - Setting the label to an empty string clears it.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
label |
string
|
No default |
SetLayerStackCmd
Defined in fuchsia.ui.gfx/commands.fidl
Set a compositor's layer stack, replacing the current stack (if any). Constraints:
compositor_id
refs aDisplayCompositor
.layer_stack_id
refs aLayerStack
.
Field | Type | Description | Default |
---|---|---|---|
compositor_id |
uint32
|
No default | |
layer_stack_id |
uint32
|
No default |
SetLightColorCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets the color of the Light identified by light_id
.
Field | Type | Description | Default |
---|---|---|---|
light_id |
uint32
|
No default | |
color |
ColorRgbValue
|
No default |
SetLightDirectionCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets the direction of the DirectionalLight identified by light_id
.
Field | Type | Description | Default |
---|---|---|---|
light_id |
uint32
|
No default | |
direction |
Vector3Value
|
No default |
SetMaterialCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets/clears a node's material.
Constraints:
node_id
refs aNode
with the has_material characteristic.material_id
refs aMaterial
, or nothing.- if this command causes the target to have both a
Shape
and aMaterial
, then these must be compatible with each other (see README.md regarding "Shape/Material Compatibility").
Discussion:
In order to be painted, a node requires both a Shape
and a Material
.
Without a material, a node can still participate in hit-testing and clipping.
Without a shape, a node cannot do any of the above.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
material_id |
uint32
|
No default |
SetOpacityCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a node's opacity.
Constraints:
node_id
refs aNode
with the has_opacity characteristic.opacity
is in the range [0, 1].
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
opacity |
float32
|
No default |
SetPointLightFalloffCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets the falloff factor of the PointLight identified by light_id
.
A value of 1.0 corresponds to the physically-based "inverse-square law"
(see Wikipedia). Other values can be used for artistic effect, e.g. a
value of 0.0 means that the radiance of a surface is not dependant on
its distance from the light.
Field | Type | Description | Default |
---|---|---|---|
light_id |
uint32
|
No default | |
falloff |
FloatValue
|
No default |
SetPointLightPositionCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets the position of the PointLight identified by light_id
.
Field | Type | Description | Default |
---|---|---|---|
light_id |
uint32
|
No default | |
position |
Vector3Value
|
No default |
SetRendererCmd
Defined in fuchsia.ui.gfx/commands.fidl
Set a layer's renderer, replacing the current renderer (if any). Constraints:
layer_id
refs aLayer
.renderer_id
refs aRenderer
.
Field | Type | Description | Default |
---|---|---|---|
layer_id |
uint32
|
No default | |
renderer_id |
uint32
|
No default |
SetRendererParamCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a parameter that affects how a renderer renders a scene.
renderer_id
refs the Renderer that is being modified.
param
describes the parameter that should be set, and to what.
Field | Type | Description | Default |
---|---|---|---|
renderer_id |
uint32
|
No default | |
param |
RendererParam
|
No default |
SetRotationCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a Resource's (typically a Node's) rotation.
Constraints:
id
refs a Resource with the has_transform characteristic.
Discussion: Quaternions represent any rotation in a 3D coordinate system. Consisting of [a,b,c,d], [a] represents the amount of rotation that should be applied and [b,c,d] represents the vector around which the rotation is applied. This conforms to the semantics of glm::quat.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
value |
QuaternionValue
|
No default |
SetScaleCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a Resource's (typically a Node's) scale.
Constraints:
id
refs a Resource with the has_transform characteristic.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
value |
Vector3Value
|
No default |
SetSemanticVisibilityCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a node's semantic visibility.
Discussion: By default, all nodes are semantically visible. Semantically invisible nodes and their children are ignored by hit tests performed for accessibility.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
visible |
bool
|
true |
SetShapeCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets/clears a node's shape.
Constraints:
node_id
refs aNode
with the has_shape characteristic.shape_id
refs aShape
, or nothing.- if this command causes the target to have both a
Shape
and aMaterial
, then these must be compatible with each other (see README.md regarding "Shape/Material Compatibility").
Discussion:
In order to be painted, a node requires both a Shape
and a Material
.
Without a material, a node can still participate in hit-testing and clipping.
Without a shape, a node cannot do any of the above.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
shape_id |
uint32
|
No default |
SetSizeCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets an object's size.
Constraints:
id
refs a resizeable object.- some objects that support this command may have additional constraints
(e.g. in some cases
depth
must be zero).
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
value |
Vector2Value
|
No default |
SetStereoCameraProjectionCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a StereoCamera's projection matrices. This operation can only be applied to a StereoCamera.
Constraints:
camera_id
refs aStereoCamera
.left_projection
is the projection matrix for the left eye.right_projection
is the projection matrix for the right eye.
These projection matrices may also contain a transform in camera space for their eye if needed.
Field | Type | Description | Default |
---|---|---|---|
camera_id |
uint32
|
No default | |
left_projection |
Matrix4Value
|
No default | |
right_projection |
Matrix4Value
|
No default |
SetTagCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets/clears a node's tag value.
A session can apply a tag value to any node to which it has access, including imported nodes. These tags are private to the session and cannot be read or modified by other sessions. When multiple sessions import the same node, each session will only observe its own tag values.
Hit test results for a session only include nodes which the session has tagged with a non-zero value. Therefore a session can use tag values to associate nodes with their functional purpose when picked.
Constraints:
node_id
refs aNode
.tag_value
is the tag value to assign, or 0 to remove the tag.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
tag_value |
uint32
|
No default |
SetTextureCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets/clears a material's texture.
Constraints:
material_id
refs aMaterial
.texture_id
refs aImage
,ImagePipe2
, or nothing.
If no texture is provided (i.e. texture_id
is zero), a solid color is used.
If a texture is provided, then the value sampled from the texture is
multiplied by the color.
Field | Type | Description | Default |
---|---|---|---|
material_id |
uint32
|
No default | |
texture_id |
uint32
|
No default |
SetTranslationCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets a Resource's (typically a Node's) translation.
Constraints:
id
refs a Resource with the has_transform characteristic.
Field | Type | Description | Default |
---|---|---|---|
id |
uint32
|
No default | |
value |
Vector3Value
|
No default |
SetViewHolderBoundsColorCmd
Defined in fuchsia.ui.gfx/commands.fidl
Field | Type | Description | Default |
---|---|---|---|
view_holder_id |
uint32
|
No default | |
color |
ColorRgbValue
|
No default |
SetViewPropertiesCmd
Defined in fuchsia.ui.gfx/commands.fidl
Sets the properties for a ViewHolder's attached View.
Constraints:
view_holder_id
refs aViewHolder
.
Field | Type | Description | Default |
---|---|---|---|
view_holder_id |
uint32
|
No default | |
properties |
ViewProperties
|
No default |
ShapeNodeArgs
Defined in fuchsia.ui.gfx/nodes.fidl
Characteristics:
- has_parent
- has_shape
- has_material
Field | Type | Description | Default |
---|---|---|---|
unused |
uint32
|
0 |
SizeChangeHintEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered in response to a size change hint from a parent node (SendSizeChangeHintCmd).
This event is delivered when the following conditions are true:
- The node has
kSizeChangeEventMask
set to an enabled state. - A parent node has sent a SendSizeChangeHintCmd.
Subscribe to this event to receive information about how large textures you will need in the near future for your nodes. The canonical use case is to pre-allocate memory to avoid repeated re-allocations.
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
width_change_factor |
float32
|
No default | |
height_change_factor |
float32
|
No default |
StereoCameraArgs
Defined in fuchsia.ui.gfx/resources.fidl
A StereoCamera is a Camera that renders the scene in side-by-side stereo.
Any command which can be applied to a Camera can also be applied to a StereoCamera. Additional supported commands:
- SetStereoCameraProjection
Field | Type | Description | Default |
---|---|---|---|
scene_id |
uint32
|
The scene that the camera is viewing. |
No default |
TakeSnapshotCmdDEPRECATED resource
Defined in fuchsia.ui.gfx/commands.fidl
Field | Type | Description | Default |
---|---|---|---|
node_id |
uint32
|
No default | |
callback |
SnapshotCallbackDEPRECATED
|
No default |
VariableArgs
Defined in fuchsia.ui.gfx/resources.fidl
Describes a typed, client-modifiable value.
Field | Type | Description | Default |
---|---|---|---|
type |
ValueType
|
No default | |
initial_value |
Value
|
No default |
Vector2Value
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a vec2, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
vec2
|
No default | |
variable_id |
uint32
|
No default |
Vector3Value
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a vec3, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
vec3
|
No default | |
variable_id |
uint32
|
No default |
Vector4Value
Defined in fuchsia.ui.gfx/types.fidl
A value that is specified explicitly by value
if variable_id
is zero,
or is the value produced by the resource identified by variable_id
, e.g.
an animation or expression. In the latter case, the value produced by the
resource must be a vec4, and value
is ignored.
Field | Type | Description | Default |
---|---|---|---|
value |
vec4
|
No default | |
variable_id |
uint32
|
No default |
ViewArgs resource
Defined in fuchsia.ui.gfx/resources.fidl
Represents the root of a subgraph within a larger scene graph. Nodes can be
attached to the View
as children, and these Nodes will have the View
s'
coordinate transform applied to their own, in addition to being clipped to
the View
s' bounding box.
See ViewProperties
.
Each View
is linked to a paired ViewHolder
via a shared token pair.
Usually the View
and its associated ViewHolder
exist in separate
processes. By combining them, the UI for an entire system can be built
using content contributed from many different processes.
Field | Type | Description | Default |
---|---|---|---|
token |
fuchsia.ui.views/ViewToken
|
No default | |
debug_name |
string?
|
No default |
ViewArgs3 resource
Defined in fuchsia.ui.gfx/resources.fidl
Represents the root of a subgraph within a larger scene graph. Nodes can be
attached to the View
as children, and these Nodes will have the View
s'
coordinate transform applied to their own, in addition to being clipped to
the View
s' bounding box.
See ViewProperties
.
Each View
is linked to a paired ViewHolder
via a shared token pair.
Usually the View
and its associated ViewHolder
exist in separate
processes. By combining them, the UI for an entire system can be built
using content contributed from many different processes.
Clients self-identify their View
with a ViewRef
, which is a stable
identifier that may be cloned and passed to other components in a
feed-forward style. It is accompanied by a ViewRefControl
, which Scenic
uses to signal View
destruction across the system; the ViewRefControl
must be unique - do not clone it.
Field | Type | Description | Default |
---|---|---|---|
token |
fuchsia.ui.views/ViewToken
|
No default | |
control_ref |
fuchsia.ui.views/ViewRefControl
|
|
No default |
view_ref |
fuchsia.ui.views/ViewRef
|
|
No default |
debug_name |
string?
|
No default |
ViewAttachedToSceneEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered to a View's Session when the parent ViewHolder for the given View becomes a part of a Scene.
A ViewHolder is considered to be part of a Scene if there is an unbroken chain of parent-child relationships between the Scene node and the ViewHolder node.
Field | Type | Description | Default |
---|---|---|---|
view_id |
uint32
|
No default | |
properties |
ViewProperties
|
No default |
ViewConnectedEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered to a ViewHolder's Session when its peer View is connected.
Field | Type | Description | Default |
---|---|---|---|
view_holder_id |
uint32
|
No default |
ViewDetachedFromSceneEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered to a View's Session when the parent ViewHolder for the given View is no longer part of a scene.
This can happen if the ViewHolder is detached directly from the scene, or if one of its parent nodes is.
A ViewHolder is considered to be part of a Scene if there is an unbroken chain of parent-child relationships between the Scene node and the ViewHolder node.
Field | Type | Description | Default |
---|---|---|---|
view_id |
uint32
|
No default |
ViewDisconnectedEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered to a ViewHolder's Session when its peer View is disconnected or destroyed.
If the View is destroyed before the connection is established, then this event will be delivered immediately when the ViewHolder attempts to connect.
Field | Type | Description | Default |
---|---|---|---|
view_holder_id |
uint32
|
No default |
ViewHolderArgs resource
Defined in fuchsia.ui.gfx/resources.fidl
Represents an attachment point for a subgraph within a larger scene graph.
The ViewHolder
can be attached to a Node as a child, and the contents of
the linked View
will become a child of the Node as well.
Each ViewHolder
is linked to a paired View
via a shared token pair.
Usually the ViewHolder
and its associated View
exist in separate
processes. By combining them, the UI for an entire system can be built
using content contributed from many different processes.
Field | Type | Description | Default |
---|---|---|---|
token |
fuchsia.ui.views/ViewHolderToken
|
No default | |
debug_name |
string?
|
No default |
ViewHolderConnectedEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered to a View's Session when its peer ViewHolder is connected.
If the ViewHolder is destroyed before the connection is established, then this event will not be delivered.
Field | Type | Description | Default |
---|---|---|---|
view_id |
uint32
|
No default |
ViewHolderDisconnectedEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered to a View's Session when its peer ViewHolder is disconnected or destroyed.
If the ViewHolder is destroyed before the connection is established, then this event will be delivered immediately when the View attempts to connect.
Field | Type | Description | Default |
---|---|---|---|
view_id |
uint32
|
No default |
ViewProperties
Defined in fuchsia.ui.gfx/types.fidl
Represents the properties for a View.
Field | Type | Description | Default |
---|---|---|---|
bounding_box |
BoundingBox
|
The View's bounding box extents can be defined as: { bounding_box.min, bounding_box.max } Content contained within the View is clipped to this bounding box. |
No default |
inset_from_min |
vec3
|
These properties are not strictly enforced by Scenic, but only used as hints for clients and other components that receives ViewProperties: View clients can assume that anything drawn outside of { bounding_box.min + inset_from_min, bounding_box.max - inset_from_max } may be obscured by an ancestor view. The reason for obscuring, and the rules surrounding it, is specific to each product. |
No default |
inset_from_max |
vec3
|
No default | |
focus_change |
bool
|
Whether the View can receive a focus event; default is true. When false, and this View is eligible to receive a focus event, no focus/unfocus event is actually sent to any View. |
true |
downward_input |
bool
|
Whether the View allows geometrically underlying Views to receive input; default is true. When false, Scenic does not send input events to underlying Views. |
true |
ViewPropertiesChangedEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered when the parent ViewHolder for the given View makes a change to the View's properties.
Field | Type | Description | Default |
---|---|---|---|
view_id |
uint32
|
No default | |
properties |
ViewProperties
|
No default |
ViewState
Defined in fuchsia.ui.gfx/types.fidl
Represents the state of a View in Scenic.
Field | Type | Description | Default |
---|---|---|---|
is_rendering |
bool
|
Whether the View is rendering. Default is false. Delivered to the View's corresponding ViewHolder after the View's first frame render request. |
No default |
ViewStateChangedEvent
Defined in fuchsia.ui.gfx/events.fidl
Delivered to a ViewHolder's Session when its peer View's state has changed.
Field | Type | Description | Default |
---|---|---|---|
view_holder_id |
uint32
|
No default | |
state |
ViewState
|
No default |
mat4
Defined in fuchsia.ui.gfx/types.fidl
Field | Type | Description | Default |
---|---|---|---|
matrix |
float32[16]
|
Column major order. |
No default |
vec2
Defined in fuchsia.ui.gfx/types.fidl
Field | Type | Description | Default |
---|---|---|---|
x |
float32
|
No default | |
y |
float32
|
No default |
vec3
Defined in fuchsia.ui.gfx/types.fidl
Field | Type | Description | Default |
---|---|---|---|
x |
float32
|
No default | |
y |
float32
|
No default | |
z |
float32
|
No default |
vec4
Defined in fuchsia.ui.gfx/types.fidl
Field | Type | Description | Default |
---|---|---|---|
x |
float32
|
No default | |
y |
float32
|
No default | |
z |
float32
|
No default | |
w |
float32
|
No default |
ENUMS
HitTestBehavior strict
Type: uint32
Defined in fuchsia.ui.gfx/types.fidl
Describes how nodes interact with hit testings.
Name | Value | Description |
---|---|---|
kDefault |
0 |
Apply hit testing to the node's content, its parts, and its children. |
kSuppress |
1 |
Suppress hit testing of the node and everything it contains. |
ImportSpec strict
Type: uint32
Defined in fuchsia.ui.gfx/resources.fidl
Describes an exported resource that is to be imported by an ImportResourceCmd.
NOTE: Currently just an enum of importable resource types, but may later be expanded to express concepts like "meshes with a particular vertex format".
Name | Value | Description |
---|---|---|
NODE |
0 |
MeshIndexFormat strict
Type: uint32
Defined in fuchsia.ui.gfx/commands.fidl
Set a mesh's indices and vertices.
mesh_id
refs the Mesh to be updated.
index_buffer_id
refs a Buffer that contains the mesh indices.
index_format
defines how the index buffer data is to be interpreted.
index_offset
number of bytes from the start of the index Buffer.
index_count
number of indices.
vertex_buffer_id
refs a Buffer that contains the mesh vertices.
vertex_format
defines how the vertex buffer data is to be interpreted.
vertex_offset
number of bytes from the start of the vertex Buffer.
vertex_count
number of vertices.
bounding_box
must contain all vertices within the specified range.
The MeshVertexFormat defines which per-vertex attributes are provided by the mesh, and the size of each attribute (and therefore the size of each vertex). The attributes are ordered within the vertex in the same order that they appear within the MeshVertexFormat struct. For example, if the values are kVector3, kNone and kVector2, then:
- each vertex has a position and UV-coordinates, but no surface normal.
- the 3D position occupies bytes 0-11 (3 dimensions * 4 bytes per float32).
- the UV coords occupy bytes 12-19, since no surface normal is provided.
Name | Value | Description |
---|---|---|
kUint16 |
1 |
|
kUint32 |
2 |
RenderFrequency strict
Type: uint32
Defined in fuchsia.ui.gfx/renderer.fidl
Name | Value | Description |
---|---|---|
WHEN_REQUESTED |
0 |
|
CONTINUOUSLY |
1 |
ShadowTechnique strict
Type: uint32
Defined in fuchsia.ui.gfx/renderer.fidl
Represents the shadow algorithm that the Renderer
should use when lighting
the scene.
Name | Value | Description |
---|---|---|
UNSHADOWED |
0 |
No shadows. |
SCREEN_SPACE |
1 |
Default. Screen-space, depth-buffer based shadows; SSDO-ish. |
SHADOW_MAP |
2 |
Basic shadow map. |
MOMENT_SHADOW_MAP |
3 |
Moment shadow map (see http:///momentsingraphics.de). |
STENCIL_SHADOW_VOLUME |
4 |
Stencil shadow volume. |
ValueType strict
Type: uint32
Defined in fuchsia.ui.gfx/types.fidl
Name | Value | Description |
---|---|---|
kNone |
0 |
|
kVector1 |
1 |
|
kVector2 |
2 |
|
kVector3 |
3 |
|
kVector4 |
4 |
|
kMatrix4 |
5 |
|
kColorRgb |
6 |
|
kColorRgba |
7 |
|
kQuaternion |
8 |
|
kFactoredTransform |
9 |
UNIONS
Command strict resource
Defined in fuchsia.ui.gfx/commands.fidl
Commands that are used to modify the state of a Session
.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
create_resource |
CreateResourceCmd
|
|
2 |
release_resource |
ReleaseResourceCmd
|
|
3 |
export_resource |
ExportResourceCmdDeprecated
|
|
4 |
import_resource |
ImportResourceCmdDeprecated
|
|
5 |
set_tag |
SetTagCmd
|
Tagging commands. |
6 |
detach |
DetachCmd
|
Grouping commands. |
7 |
set_translation |
SetTranslationCmd
|
Spatial commands. |
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
|
Node-specific commands. |
15 |
add_part |
AddPartCmd
|
re-parenting? |
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
|
Camera and lighting commands. |
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
|
Mesh commands. |
36 |
add_layer |
AddLayerCmd
|
Layer and renderer commands. |
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
|
Events. |
43 |
set_label |
SetLabelCmd
|
Diagnostic commands. |
44 |
set_disable_clipping |
SetDisableClippingCmd
|
Debugging commands. |
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
|
<tr id="Command.scene_add_directionallight"> | <h3 id="Command.scene_add_directionallight" class="add-link hide-from-toc">50 | scene_add_directionallight |
SceneAddDirectionalLightCmd
|
<tr id="Command.scene_add_pointlight"> | <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
|
Event strict
Defined in fuchsia.ui.gfx/events.fidl
These are all of the types of events which can be reported by a Session
.
Use SetEventMaskCmd
to enable event delivery for a resource.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
metrics |
MetricsEvent
|
Events which are controlled by a mask. |
2 |
size_change_hint |
SizeChangeHintEvent
|
|
3 |
import_unbound |
ImportUnboundEvent
|
Events which are always delivered, regardless of mask. |
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 strict
Defined in fuchsia.ui.gfx/renderer.fidl
These are all of the types of parameters that can be set to configure a
Renderer
.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
shadow_technique |
ShadowTechnique
|
|
2 |
reserved |
RenderFrequency
|
DEPRECATED |
3 |
enable_debugging |
bool
|
ResourceArgs strict resource
Defined in fuchsia.ui.gfx/resources.fidl
These are all of the types of resources that can be created within a
Session
. Add new fields only to the bottom of the list.
Ordinal | Variant | Type | Description |
---|---|---|---|
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
|
Value strict
Defined in fuchsia.ui.gfx/types.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
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
|
Degrees of counter-clockwise rotation in the XY plane. |
9 |
quaternion |
Quaternion
|
|
10 |
transform |
FactoredTransform
|
|
11 |
variable_id |
uint32
|
ID of a value-producing resource (an animation or an expression). The type of this value matches the type produced by the named resource. |
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
kLabelMaxLength |
32
|
uint32 |
Maximum length for a resource label. Removed: 17 Deprecated: 13
|
kMetricsEventMask |
1
|
uint32 |
Reports metrics information. This event type is only reported for node resources. Removed: 17 Deprecated: 13
|
kSizeChangeHintEventMask |
2
|
uint32 |
Removed: 17 Deprecated: 13
|