mirror of
https://github.com/pinnacle-comp/pinnacle.git
synced 2025-01-14 08:01:14 +01:00
Add transform to Rust output setup
This commit is contained in:
parent
d28f520b07
commit
b77e9fa9b1
2 changed files with 21 additions and 1 deletions
|
@ -422,6 +422,7 @@ pub struct OutputSetup {
|
||||||
mode: Option<Mode>,
|
mode: Option<Mode>,
|
||||||
scale: Option<f32>,
|
scale: Option<f32>,
|
||||||
tag_names: Option<Vec<String>>,
|
tag_names: Option<Vec<String>>,
|
||||||
|
transform: Option<Transform>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl OutputSetup {
|
impl OutputSetup {
|
||||||
|
@ -432,6 +433,7 @@ impl OutputSetup {
|
||||||
mode: None,
|
mode: None,
|
||||||
scale: None,
|
scale: None,
|
||||||
tag_names: None,
|
tag_names: None,
|
||||||
|
transform: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -444,6 +446,7 @@ impl OutputSetup {
|
||||||
mode: None,
|
mode: None,
|
||||||
scale: None,
|
scale: None,
|
||||||
tag_names: None,
|
tag_names: None,
|
||||||
|
transform: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,6 +474,14 @@ impl OutputSetup {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Makes this setup apply the given transform to its outputs.
|
||||||
|
pub fn with_transform(self, transform: Transform) -> Self {
|
||||||
|
Self {
|
||||||
|
transform: Some(transform),
|
||||||
|
..self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn apply(&self, output: &OutputHandle, tag: &Tag) {
|
fn apply(&self, output: &OutputHandle, tag: &Tag) {
|
||||||
if let Some(mode) = &self.mode {
|
if let Some(mode) = &self.mode {
|
||||||
output.set_mode(
|
output.set_mode(
|
||||||
|
@ -485,6 +496,9 @@ impl OutputSetup {
|
||||||
if let Some(tag_names) = &self.tag_names {
|
if let Some(tag_names) = &self.tag_names {
|
||||||
tag.add(output, tag_names);
|
tag.add(output, tag_names);
|
||||||
}
|
}
|
||||||
|
if let Some(transform) = self.transform {
|
||||||
|
output.set_transform(transform);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,8 @@ mod output {
|
||||||
pixel_width: 6900,
|
pixel_width: 6900,
|
||||||
pixel_height: 420,
|
pixel_height: 420,
|
||||||
refresh_rate_millihertz: 69420,
|
refresh_rate_millihertz: 69420,
|
||||||
}),
|
})
|
||||||
|
.with_transform(pinnacle_api::output::Transform::_90),
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -108,6 +109,11 @@ mod output {
|
||||||
assert_eq!(second_mode.size.w, 6900);
|
assert_eq!(second_mode.size.w, 6900);
|
||||||
assert_eq!(second_mode.size.h, 420);
|
assert_eq!(second_mode.size.h, 420);
|
||||||
assert_eq!(second_mode.refresh, 69420);
|
assert_eq!(second_mode.refresh, 69420);
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
second_op.current_transform(),
|
||||||
|
smithay::utils::Transform::_90
|
||||||
|
);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue