| // Copyright 2024 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| library fuchsia.hardware.display.engine; |
| |
| /// Type of the internal value in [`ImageId`]. |
| alias ImageIdValue = uint64; |
| |
| /// Unique identifier for an image registered with a display engine driver. |
| /// |
| /// [`INVALID_ID`] represents an invalid value. |
| /// |
| /// Valid values uniquely identify "live" images within a display engine driver |
| /// connection. The identifier of an image destroyed via [`Engine.ReleaseImage`] |
| /// can be reused as the return value of a subsequent [`Engine.ImportImage`] |
| /// call. |
| type ImageId = struct { |
| value ImageIdValue; |
| }; |
| |
| const INVALID_ID uint64 = 0; |
| |
| /// Type of the internal value in [`BufferCollectionId`]. |
| alias BufferCollectionIdValue = uint64; |
| |
| /// Identifies a sysmem BufferCollection owned by a display engine driver. |
| /// |
| /// Each value uniquely identifies a [`fuchsia.sysmem/BufferCollection`] (as |
| /// well as its token [`fuchsia.sysmem/BufferCollectionToken`]) owned by a |
| /// display engine driver. The identifier of a BufferCollection destroyed via |
| /// [`Engine.ReleaseBufferCollection`] can be reused in a subsequent |
| /// [`Engine.ImportBufferCollection`] call. |
| type BufferCollectionId = struct { |
| value BufferCollectionIdValue; |
| }; |
| |
| /// Identifies a single buffer within a sysmem BufferCollection owned by a |
| /// display engine driver. |
| /// |
| /// A [`fuchsia.sysmem/BufferCollection`] may allocate multiple buffers at a |
| /// time. This identifies a specific buffer of `index` within the shared |
| /// BufferCollection identified by `collection_id`. |
| type BufferId = struct { |
| buffer_collection_id BufferCollectionId; |
| buffer_index uint32; |
| }; |