autocommit 2022-03-11 20:04:41 CET
This commit is contained in:
parent
0ae73ab9c4
commit
eb1d500561
10 changed files with 93 additions and 75 deletions
|
|
@ -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(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue