Struct wayland_protocols::wp::linux_explicit_synchronization::zv1::server::zwp_linux_buffer_release_v1::ZwpLinuxBufferReleaseV1
source · pub struct ZwpLinuxBufferReleaseV1 { /* private fields */ }
Expand description
buffer release explicit synchronization
This object is instantiated in response to a zwp_linux_surface_synchronization_v1.get_release request.
It provides an alternative to wl_buffer.release events, providing a unique release from a single wl_surface.commit request. The release event also supports explicit synchronization, providing a fence FD for the client to synchronize against.
Exactly one event, either a fenced_release or an immediate_release, will be emitted for the wl_surface.commit request. The compositor can choose release by release which event it uses.
This event does not replace wl_buffer.release events; servers are still required to send those events.
Once a buffer release object has delivered a ‘fenced_release’ or an ‘immediate_release’ event it is automatically destroyed.
This interface has no requests.
Implementations§
source§impl ZwpLinuxBufferReleaseV1
impl ZwpLinuxBufferReleaseV1
sourcepub fn fenced_release(&self, fence: BorrowedFd<'_>)
pub fn fenced_release(&self, fence: BorrowedFd<'_>)
release buffer with fence
Sent when the compositor has finalised its usage of the associated buffer for the relevant commit, providing a dma_fence which will be signaled when all operations by the compositor on that buffer for that commit have finished.
Once the fence has signaled, and assuming the associated buffer is not pending release from other wl_surface.commit requests, no additional explicit or implicit synchronization is required to safely reuse or destroy the buffer.
This event destroys the zwp_linux_buffer_release_v1 object.
sourcepub fn immediate_release(&self)
pub fn immediate_release(&self)
release buffer immediately
Sent when the compositor has finalised its usage of the associated buffer for the relevant commit, and either performed no operations using it, or has a guarantee that all its operations on that buffer for that commit have finished.
Once this event is received, and assuming the associated buffer is not pending release from other wl_surface.commit requests, no additional explicit or implicit synchronization is required to safely reuse or destroy the buffer.
This event destroys the zwp_linux_buffer_release_v1 object.
Trait Implementations§
source§impl Borrow<ObjectId> for ZwpLinuxBufferReleaseV1
impl Borrow<ObjectId> for ZwpLinuxBufferReleaseV1
source§impl Clone for ZwpLinuxBufferReleaseV1
impl Clone for ZwpLinuxBufferReleaseV1
source§fn clone(&self) -> ZwpLinuxBufferReleaseV1
fn clone(&self) -> ZwpLinuxBufferReleaseV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ZwpLinuxBufferReleaseV1
impl Debug for ZwpLinuxBufferReleaseV1
source§impl Hash for ZwpLinuxBufferReleaseV1
impl Hash for ZwpLinuxBufferReleaseV1
source§impl PartialEq<Weak<ZwpLinuxBufferReleaseV1>> for ZwpLinuxBufferReleaseV1
impl PartialEq<Weak<ZwpLinuxBufferReleaseV1>> for ZwpLinuxBufferReleaseV1
source§impl PartialEq for ZwpLinuxBufferReleaseV1
impl PartialEq for ZwpLinuxBufferReleaseV1
source§fn eq(&self, other: &ZwpLinuxBufferReleaseV1) -> bool
fn eq(&self, other: &ZwpLinuxBufferReleaseV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Resource for ZwpLinuxBufferReleaseV1
impl Resource for ZwpLinuxBufferReleaseV1
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 ZwpLinuxBufferReleaseV1
Auto Trait Implementations§
impl !RefUnwindSafe for ZwpLinuxBufferReleaseV1
impl Send for ZwpLinuxBufferReleaseV1
impl Sync for ZwpLinuxBufferReleaseV1
impl Unpin for ZwpLinuxBufferReleaseV1
impl !UnwindSafe for ZwpLinuxBufferReleaseV1
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§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
.§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
.§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.§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.