Update drm and nix dependencies

This commit is contained in:
Ian Douglas Scott 2023-10-12 22:15:14 -07:00
parent 888a9963ad
commit e667df2da6
3 changed files with 17 additions and 18 deletions

View file

@ -4,7 +4,9 @@
use drm::buffer::{Buffer, DrmFourcc};
use drm::control::dumbbuffer::{DumbBuffer, DumbMapping};
use drm::control::{connector, crtc, framebuffer, plane, Device as CtrlDevice, PageFlipFlags};
use drm::control::{
connector, crtc, framebuffer, plane, ClipRect, Device as CtrlDevice, PageFlipFlags,
};
use drm::Device;
use raw_window_handle::{DrmDisplayHandle, DrmWindowHandle};
@ -308,20 +310,18 @@ impl BufferImpl<'_> {
.iter()
.map(|&rect| {
let err = || SoftBufferError::DamageOutOfRange { rect };
Ok(drm_sys::drm_clip_rect {
x1: rect.x.try_into().map_err(|_| err())?,
y1: rect.y.try_into().map_err(|_| err())?,
x2: rect
.x
Ok(ClipRect::new(
rect.x.try_into().map_err(|_| err())?,
rect.y.try_into().map_err(|_| err())?,
rect.x
.checked_add(rect.width.get())
.and_then(|x| x.try_into().ok())
.ok_or_else(err)?,
y2: rect
.y
rect.y
.checked_add(rect.height.get())
.and_then(|y| y.try_into().ok())
.ok_or_else(err)?,
})
))
})
.collect::<Result<Vec<_>, _>>()?;

View file

@ -2,7 +2,7 @@ use memmap2::MmapMut;
use std::{
ffi::CStr,
fs::File,
os::unix::prelude::{AsFd, AsRawFd, FromRawFd},
os::unix::prelude::{AsFd, AsRawFd},
slice,
sync::{
atomic::{AtomicBool, Ordering},
@ -30,11 +30,11 @@ fn create_memfile() -> File {
)
.expect("Failed to create memfd to store buffer.");
let _ = fcntl(
fd,
fd.as_raw_fd(),
FcntlArg::F_ADD_SEALS(SealFlag::F_SEAL_SHRINK | SealFlag::F_SEAL_SEAL),
)
.expect("Failed to seal memfd.");
unsafe { File::from_raw_fd(fd) }
File::from(fd)
}
#[cfg(not(any(target_os = "linux", target_os = "freebsd")))]
@ -64,10 +64,10 @@ fn create_memfile() -> File {
OFlag::O_RDWR | OFlag::O_CREAT | OFlag::O_EXCL,
Mode::S_IRWXU,
);
if fd != Err(Errno::EEXIST) {
if !matches!(fd, Err(Errno::EEXIST)) {
let fd = fd.expect("Failed to create POSIX shm to store buffer.");
let _ = shm_unlink(name);
return unsafe { File::from_raw_fd(fd) };
return File::from(fd);
}
}