blob: 6a5de78dfb1cf0a7bb8f7e2d64ca8455fba521e6 [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`.
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;
};
/// Get information about Scenic's primary display.
// TODO(fxbug.dev/23687): in the future there will probably be a DisplayManager, and
// info about which displays to use will be explicitly specified to Scenic.
@discoverable
protocol Info {
GetMetrics() -> (struct {
info Metrics;
});
};