screencopy: Use new error types

This commit is contained in:
Victoria Brekenfeld 2022-11-04 14:14:11 +01:00
parent 1eef3b3d78
commit 6eb7493ad7
3 changed files with 45 additions and 13 deletions

View file

@ -26,6 +26,7 @@ use smithay::{
allocator::dmabuf::Dmabuf,
drm::DrmNode,
renderer::{
buffer_dimensions,
damage::{
DamageTrackedRenderer, DamageTrackedRendererError as RenderError, OutputNoMode,
},
@ -36,7 +37,7 @@ use smithay::{
},
},
output::Output,
utils::{Physical, Rectangle},
utils::{Physical, Rectangle, Transform},
};
pub mod cursor;
@ -254,6 +255,13 @@ where
if let Some((source, buffers)) = screencopy {
if res.is_ok() {
for (session, params) in buffers {
let mode = output.current_mode().unwrap().size;
let buffer_size = buffer_dimensions(&params.buffer).unwrap();
if mode.to_logical(1).to_buffer(1, Transform::Normal) != buffer_size {
session.failed(FailureReason::InvalidSize);
continue;
}
match render_to_buffer(
gpu.cloned(),
renderer,