use std::fmt::Display;
use wayland_client::protocol::{wl_output, wl_output::WlOutput};
use crate::region::{LogicalRegion, Size};
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct OutputInfo {
pub wl_output: WlOutput,
pub name: String,
pub description: String,
pub transform: wl_output::Transform,
pub physical_size: Size,
pub logical_region: LogicalRegion,
}
impl Display for OutputInfo {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(
f,
"{name} ({description})",
name = self.name,
description = self.description
)
}
}
impl OutputInfo {
pub(crate) fn scale(&self) -> f64 {
self.physical_size.height as f64 / self.logical_region.inner.size.height as f64
}
}