blob: 02ab3eed07fbb485fd6598acf590c8fa3224d443 [file] [log] [blame]
// 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;
/// Type of the internal value in [`ImageId`].
alias ImageIdValue = uint64;
/// Unique identifier for an image registered with the display coordinator.
///
/// [`fuchsia.hardware.display.types/INVALID_DISP_ID`] represents an invalid
/// value.
///
/// Values are managed by [`fuchsia.hardware.display/Coordinator`] clients, to
/// facilitate feed-forward dataflow.
///
/// Valid values uniquely identify "live" images within a Display Coordinator
/// connection. The identifier of an image destroyed via
/// [`fuchsia.hardware.display/Coordinator.ReleaseImage`] can be reused in a
/// subsequent [`fuchsia.hardware.display/Coordinator.ImportImage`] call.
///
/// An image is a memory buffer whose bytes have a fixed interpretation as an
/// array of pixels. Memory buffers are managed by sysmem, and are accessed by
/// the display stack using a [`fuchsia.sysmem/BufferCollection`]. The buffer's
/// interpretation is described by an
/// [`fuchsia.hardware.display.types/ImageConfig`].
type ImageId = struct {
value ImageIdValue;
};