| // Copyright 2023 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.types; |
| |
| /// The result of checking a draft display config. |
| /// |
| /// Values are produced by [`fuchsia.hardware.display/Coordinator.CheckConfig`]. |
| type ConfigResult = strict enum : uint32 { |
| /// The config is compatible with the current hardware. |
| OK = 0; |
| |
| /// The config is not compatible with any hardware. |
| INVALID_CONFIG = 1; |
| |
| /// The config layer assignment is not supported by the current hardware. |
| UNSUPPORTED_CONFIG = 2; |
| |
| /// The config uses more than the number of connected displays. |
| TOO_MANY_DISPLAYS = 3; |
| |
| /// The config display modes are not supported by the current hardware. |
| /// |
| /// The client should try a different set of displays or display modes. |
| UNSUPPORTED_DISPLAY_MODES = 4; |
| }; |
| |
| /// Identifies an accepted display config. |
| /// |
| /// This is a type-safe wrapper for a |
| /// [`fuchsia.hardware.display.types/ConfigStampValue`], which is a raw numeric |
| /// value. |
| /// |
| /// Each successful call to [`fuchsia.hardware.display/Coordinator.ApplyConfig`] |
| /// generates a valid value. Values are reported in |
| /// [`fuchsia.hardware.display/Coordinator.Vsync`] events. |
| /// |
| /// Generated values are strictly increasing (unique, strictly monotonic) within |
| /// the lifetime of a [`fuchsia.display/Coordinator`] connection. |
| /// |
| /// [`fuchsia.hardware.display.types/INVALID_CONFIG_STAMP_VALUE`] represents an |
| /// invalid value. |
| type ConfigStamp = struct { |
| value ConfigStampValue; |
| }; |
| |
| /// See [`fuchsia.hardware.display.types/ConfigStamp`]. |
| alias ConfigStampValue = uint64; |
| |
| const INVALID_CONFIG_STAMP_VALUE ConfigStampValue = 0; |