pub struct WpDrmLeaseV1 { /* private fields */ }
staging
and server
only.Expand description
a DRM lease
A DRM lease object is used to transfer the DRM file descriptor to the client and manage the lifetime of the lease.
Some time after the wp_drm_lease_v1 object is created, the compositor will reply with the lease request’s result. If the lease request is granted, the compositor will send a lease_fd event. If the lease request is denied, the compositor will send a finished event without a lease_fd event.
See also the Request enum for this interface.
Implementations§
source§impl WpDrmLeaseV1
impl WpDrmLeaseV1
sourcepub fn lease_fd(&self, leased_fd: BorrowedFd<'_>)
pub fn lease_fd(&self, leased_fd: BorrowedFd<'_>)
shares the DRM file descriptor
This event returns a file descriptor suitable for use with DRM-related ioctls. The client should use drmModeGetLease to enumerate the DRM objects which have been leased to them. The compositor guarantees it will not use the leased DRM objects itself until it sends the finished event. If the compositor cannot or will not grant a lease for the requested connectors, it will not send this event, instead sending the finished event.
The compositor will send this event at most once during this objects lifetime.
sourcepub fn finished(&self)
pub fn finished(&self)
sent when the lease has been revoked
The compositor uses this event to either reject a lease request, or if it previously sent a lease_fd, to notify the client that the lease has been revoked. If the client requires a new lease, they should destroy this object and submit a new lease request. The compositor will send no further events for this object after sending the finish event. Compositors should revoke the lease when any of the leased resources become unavailable, namely when a hot-unplug occurs or when the compositor loses DRM master. Compositors may advertise the connector for leasing again, if the resource is available, by sending the connector event through the wp_drm_lease_device_v1 interface.
Trait Implementations§
source§impl Borrow<ObjectId> for WpDrmLeaseV1
impl Borrow<ObjectId> for WpDrmLeaseV1
source§impl Clone for WpDrmLeaseV1
impl Clone for WpDrmLeaseV1
source§fn clone(&self) -> WpDrmLeaseV1
fn clone(&self) -> WpDrmLeaseV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WpDrmLeaseV1
impl Debug for WpDrmLeaseV1
source§impl Hash for WpDrmLeaseV1
impl Hash for WpDrmLeaseV1
source§impl PartialEq<Weak<WpDrmLeaseV1>> for WpDrmLeaseV1
impl PartialEq<Weak<WpDrmLeaseV1>> for WpDrmLeaseV1
source§impl PartialEq for WpDrmLeaseV1
impl PartialEq for WpDrmLeaseV1
source§impl Resource for WpDrmLeaseV1
impl Resource for WpDrmLeaseV1
source§fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
source§fn handle(&self) -> &WeakHandle
fn handle(&self) -> &WeakHandle
source§fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
source§fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
source§fn parse_request(
conn: &DisplayHandle,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(Self, Self::Request), DispatchError>
fn parse_request( conn: &DisplayHandle, msg: Message<ObjectId, OwnedFd>, ) -> Result<(Self, Self::Request), DispatchError>
source§fn write_event<'a>(
&self,
conn: &DisplayHandle,
msg: Self::Event<'a>,
) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
fn write_event<'a>( &self, conn: &DisplayHandle, msg: Self::Event<'a>, ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
source§fn is_alive(&self) -> bool
fn is_alive(&self) -> bool
impl Eq for WpDrmLeaseV1
Auto Trait Implementations§
impl Freeze for WpDrmLeaseV1
impl !RefUnwindSafe for WpDrmLeaseV1
impl Send for WpDrmLeaseV1
impl Sync for WpDrmLeaseV1
impl Unpin for WpDrmLeaseV1
impl !UnwindSafe for WpDrmLeaseV1
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.