blob: aba8e97f012aa2795aefd0e8ef37f8e147bf12fe [file] [log] [blame]
// Copyright 2022 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.ui.display.singleton;
using fuchsia.math;
/// Describes the physical display, and how to map between physical and logical pixels.
type Metrics = table {
/// Same meaning as `horizontal_resolution` and `vertical_resolution`
/// in `fuchsia.hardware.display.Mode`. Given in physical pixels.
1: extent_in_px fuchsia.math.SizeU;
/// Same meaning as `horizontal_size_mm` and `vertical_size_mm`
/// in `fuchsia.hardware.display.Info`.
2: extent_in_mm fuchsia.math.SizeU;
/// The number of physical pixels per "logical" pixel, for example as in
/// `fuchsia.ui.composition.LayoutInfo.logical_size`. It provides an indication
/// of the size of image buffers that should be allocated. This value would typically
/// be used by a component near the root of the scene graph to set a scale for the rest
/// of the scene beneath.
3: recommended_device_pixel_ratio fuchsia.math.VecF;
/// The maximum mumber of images transmitted to the display in 1000 seconds.
/// This is the display's maximum vertical refresh rate, in millihertz (0.001 Hz).
@available(added=16)
4: maximum_refresh_rate_in_millihertz uint32;
};
/// Get information about Scenic's primary display.
// TODO(https://fxbug.dev/42097799): in the future there will probably be a DisplayManager, and
// info about which displays to use will be explicitly specified to Scenic.
@discoverable
closed protocol Info {
strict GetMetrics() -> (struct {
info Metrics;
});
};