Macros

Pattern that matches an unknown HitTestInteraction member.
Pattern that matches an unknown ScreenCaptureError member.
Pattern that matches an unknown ScreenshotFormat member.

Structs

A Stream of incoming requests for Allocator
A typed wrapper for an eventpair, representing the registry endpoint of a buffer collection.
A typed wrapper for an eventpair, representing the Image import endpoint of a buffer collection.
A Stream of incoming requests for ChildViewWatcher
Represents a color with alpha channel. Values are unorm (i.e. the valid range is [0,1]), and are in linear color space. They are not gamma-corrected nor premultiplied.
A user-defined identifier for a particular piece of Content. See Content creation functions (e.g. [CreateViewport], [CreateImage]) for more information.
A Stream of incoming requests for FlatlandDisplay
A Stream of incoming requests for Flatland
Metadata about the frame rendered by [GetNextFrame].
The arguments passed into the [GetNextFrame] call. All fields are necessary.
An interactive area of a View, placed in the coordinate space of a specific Transform.
The properties of an Image as defined by the client. These properties determine how an Image uses the backing BufferCollection. See [CreateImage] for more information.
The return type of [GetLayout]. This table contains most of the information necessary for a client to decide how to layout their content in a Flatland instance. This data may be provided to the client before the command that creates the View is presented, so that the client may lay out content properly before their first call to [Present].
Fields that a client needs in order to produce its next frame, returned in [OnNextFrameBegin]. Each field is guaranteed to be set and contain valid information.
A Stream of incoming requests for ParentViewportWatcher
Arguments passed into [Present]. All arguments are optional, and if an argument is omitted Flatland will use a reasonable default, specified below.
The table of arguments for [RegisterBufferCollection]. Note that some fields below are REQUIRED.
The possible usages for a registered buffer collection. Can be a combination of options.
The arguments passed into the [Configure] call. Note that not all fields are necessary.
A Stream of incoming requests for ScreenCapture
A Stream of incoming requests for Screenshot
A user-defined identifier for a particular transform. See [CreateTransform] and [ReleaseTransform] for more information.
The protocol endpoints bound to a Flatland ViewCreationToken. These protocols operate on the View that ViewCreationToken created in the Flatland session.
The properties of a Viewport as defined by the parent. This data, along with the set of attached Transforms, will be used to compute the LayoutInfo for the View of the Viewport. ViewportProperties must have logical_size set at least once. This is the initial size that will drive the layout of the child.

Enums

The set of possible blending functions to choose from when determining how an image should be composited on top of other images.
A protocol that provides information about a particular child View which is attached to the Viewport owned by the parent client; connections to this protocol are estabished in [CreateViewport]. Since a Flatland instance may contain any number of Viewports, each of which may or may not be attached to a transform, the client can maintain connections to an equal number of ChildViewWatcher instances.
This API connects to the singleton “primary display”, and allows a tree of Flatland content to be attached underneath. Only one FlatlandDisplay client connection is allowed at one time.
The set of error codes returned in [OnError]. Everything except NO_ERROR, causes Flatland channel to be closed.
Each Flatland instance contains a Graph, which consists of a set of objects, and the relationships between those objects. The client can specify a subset of those objects (specifically, the directed acyclic graph starting at the root transform) to be presented as content to some kind of output – usually, a display.
The kind of hit test interaction expected for a hit region.
The set of possible image flip functions to choose from when determining how the image texture should be displayed.
In Flatland, the +X axis is to the right and +Y axis is down. There is no notion of a Z axis. Due to the lack of a Z axis, there is no mathematical notion of “handedness” (either right or left) with respect to rotation. Thus, we define a counter-clockwise rotation in the same way as if a skeuomorphic clock were to be displayed on the screen, with the hands of said clock moving in a CCW motion from the POV of the observer.
ParentViewportWatchers will be informed when they are actively attached to a output display (either directly, or through a chain of parent Viewports) and when they are not. Until they are connected to a display, some pieces of information (such as pixel scale) may be unavailable.
A protocol that provides information about the parent Viewport attached to a Flatland instance’s sole View. Although Flatland instances can have at most one view, it is possible to have multiple ParentViewportWatchers during the brief transition period when replacing the instance’s View with another, e.g. via [CreateView]. During this period, certain updates may be duplicated and sent to each ParentViewportWatcher connection.
The set of error codes returned by Allocator::RegisterBufferCollection().
The possible usages for registered buffer collection.
The rotation to be applied to the image.
The possible errors from the ScreenCapture protocol.
This protocol provides a low-level ScreenCapture API for clients to use. ScreenCapture clients should familiarize themselves with the [fuchsia.sysmem/BufferCollection] and [fuchsia.ui.composition/Allocator] protocols as those are necessary to create the BufferCollections and images ScreenCapture uses.
The different formats of Screenshot that can be requested.
Collects the current graphical content of a display.

Constants

A maximum of 64 hit regions is enough for the expected usage of these APIs.

Traits

Type Definitions