1
0
Fork 0
forked from wry/wry

autocommit 2022-03-11 20:04:41 CET

This commit is contained in:
Julian Orth 2022-03-11 20:04:41 +01:00
parent 0ae73ab9c4
commit eb1d500561
10 changed files with 93 additions and 75 deletions

View file

@ -1,10 +1,19 @@
mod sys;
use std::cell::RefCell;
use crate::drm::drm::sys::{create_lease, drm_mode_modeinfo, get_cap, get_device_name_from_fd2, get_minor_name_from_fd, get_node_type_from_fd, get_nodes, is_master, mode_addfb2, mode_atomic, mode_create_blob, mode_destroy_blob, mode_get_resources, mode_getconnector, mode_getencoder, mode_getplane, mode_getplaneresources, mode_getproperty, mode_obj_getproperties, mode_rmfb, set_client_cap, DRM_DISPLAY_MODE_LEN, DRM_MODE_ATOMIC_TEST_ONLY, DRM_MODE_FB_MODIFIERS, DRM_MODE_OBJECT_BLOB, DRM_MODE_OBJECT_CONNECTOR, DRM_MODE_OBJECT_CRTC, DRM_MODE_OBJECT_ENCODER, DRM_MODE_OBJECT_FB, DRM_MODE_OBJECT_MODE, DRM_MODE_OBJECT_PLANE, DRM_MODE_OBJECT_PROPERTY, gem_close, prime_fd_to_handle, drm_event, drm_event_vblank};
use crate::drm::drm::sys::{
create_lease, drm_event, drm_event_vblank, drm_mode_modeinfo, gem_close, get_cap,
get_device_name_from_fd2, get_minor_name_from_fd, get_node_type_from_fd, get_nodes, is_master,
mode_addfb2, mode_atomic, mode_create_blob, mode_destroy_blob, mode_get_resources,
mode_getconnector, mode_getencoder, mode_getplane, mode_getplaneresources, mode_getproperty,
mode_obj_getproperties, mode_rmfb, prime_fd_to_handle, set_client_cap, DRM_DISPLAY_MODE_LEN,
DRM_MODE_ATOMIC_TEST_ONLY, DRM_MODE_FB_MODIFIERS, DRM_MODE_OBJECT_BLOB,
DRM_MODE_OBJECT_CONNECTOR, DRM_MODE_OBJECT_CRTC, DRM_MODE_OBJECT_ENCODER, DRM_MODE_OBJECT_FB,
DRM_MODE_OBJECT_MODE, DRM_MODE_OBJECT_PLANE, DRM_MODE_OBJECT_PROPERTY,
};
use crate::utils::oserror::OsError;
use ahash::AHashMap;
use bstr::{BString, ByteSlice};
use std::cell::RefCell;
use std::ffi::CString;
use std::fmt::{Debug, Display, Formatter};
use std::mem;
@ -17,12 +26,12 @@ use uapi::{c, Errno, OwnedFd, Ustring};
use crate::drm::gbm::GbmBo;
use crate::drm::INVALID_MODIFIER;
use crate::utils::stack::Stack;
use crate::utils::syncqueue::SyncQueue;
use crate::ErrorFmt;
pub use sys::{
DRM_CLIENT_CAP_ATOMIC, DRM_MODE_ATOMIC_ALLOW_MODESET, DRM_MODE_ATOMIC_NONBLOCK,
DRM_MODE_PAGE_FLIP_EVENT,
};
use crate::utils::syncqueue::SyncQueue;
#[derive(Debug, Error)]
pub enum DrmError {
@ -188,6 +197,7 @@ impl DrmMaster {
mode_get_resources(self.raw())
}
#[allow(dead_code)]
pub fn get_cap(&self, cap: u64) -> Result<u64, OsError> {
get_cap(self.raw(), cap)
}
@ -329,7 +339,7 @@ impl DrmMaster {
crtc_id: DrmCrtc(event.crtc_id),
});
}
_ => { },
_ => {}
}
buf = &mut buf[len as usize..];
}
@ -586,6 +596,7 @@ pub struct ObjectChange<'a> {
}
impl Change {
#[allow(dead_code)]
pub fn test(&self) -> Result<(), DrmError> {
mode_atomic(
self.master.raw(),