• A user-defined identifier for a particular piece of Content. See Content creation functions (e.g. [CreateViewport], [CreateImage]) for more information.
  • IdGenerator generates a monotonically-increasing sequence of IDs, either TransformIds or ContentIds, depending on what the caller asks for. The ID values are unique both across and within ID types, e.g. a given IdGenerator will not generate two TransformIds with the same value, nor a TransformId and a ContentId with the same value.
  • 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].
  • Arguments passed into [Present]. All arguments are optional, and if an argument is omitted Flatland will use a reasonable default, specified below.
  • The times we predict for a future presentation, expressed in nanoseconds in the CLOCK_MONOTONIC timebase.
  • 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.
  • Two Flatland instances may be connected in a parent-child relationship. The child endpoint is held in a View. This view is strongly associated with a ViewRef and other related protocols.
  • Two Flatland instances may be connected in a parent-child relationship. The parent endpoint is held in a Viewport.
  • 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.


  • The set of error codes returned in [OnError]. Everything except NO_ERROR, causes Flatland channel to be closed.