Struct wayland_protocols::wp::linux_drm_syncobj::v1::server::wp_linux_drm_syncobj_surface_v1::WpLinuxDrmSyncobjSurfaceV1
source · pub struct WpLinuxDrmSyncobjSurfaceV1 { /* private fields */ }
Expand description
per-surface explicit synchronization
This object is an add-on interface for wl_surface to enable explicit synchronization.
Each surface can be associated with only one object of this interface at any time.
Explicit synchronization is guaranteed to be supported for buffers created with any version of the linux-dmabuf protocol. Compositors are free to support explicit synchronization for additional buffer types. If at surface commit time the attached buffer does not support explicit synchronization, an unsupported_buffer error is raised.
As long as the wp_linux_drm_syncobj_surface_v1 object is alive, the compositor may ignore implicit synchronization for buffers attached and committed to the wl_surface. The delivery of wl_buffer.release events for buffers attached to the surface becomes undefined.
Clients must set both acquire and release points if and only if a non-null buffer is attached in the same surface commit. See the no_buffer, no_acquire_point and no_release_point protocol errors.
If at surface commit time the acquire and release DRM syncobj timelines are identical, the acquire point value must be strictly less than the release point value, or else the conflicting_points protocol error is raised.
See also the Request enum for this interface.
Trait Implementations§
source§impl Borrow<ObjectId> for WpLinuxDrmSyncobjSurfaceV1
impl Borrow<ObjectId> for WpLinuxDrmSyncobjSurfaceV1
source§impl Clone for WpLinuxDrmSyncobjSurfaceV1
impl Clone for WpLinuxDrmSyncobjSurfaceV1
source§fn clone(&self) -> WpLinuxDrmSyncobjSurfaceV1
fn clone(&self) -> WpLinuxDrmSyncobjSurfaceV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WpLinuxDrmSyncobjSurfaceV1
impl Debug for WpLinuxDrmSyncobjSurfaceV1
source§impl Hash for WpLinuxDrmSyncobjSurfaceV1
impl Hash for WpLinuxDrmSyncobjSurfaceV1
source§impl PartialEq<Weak<WpLinuxDrmSyncobjSurfaceV1>> for WpLinuxDrmSyncobjSurfaceV1
impl PartialEq<Weak<WpLinuxDrmSyncobjSurfaceV1>> for WpLinuxDrmSyncobjSurfaceV1
source§impl PartialEq for WpLinuxDrmSyncobjSurfaceV1
impl PartialEq for WpLinuxDrmSyncobjSurfaceV1
source§fn eq(&self, other: &WpLinuxDrmSyncobjSurfaceV1) -> bool
fn eq(&self, other: &WpLinuxDrmSyncobjSurfaceV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Resource for WpLinuxDrmSyncobjSurfaceV1
impl Resource for WpLinuxDrmSyncobjSurfaceV1
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 WpLinuxDrmSyncobjSurfaceV1
Auto Trait Implementations§
impl !RefUnwindSafe for WpLinuxDrmSyncobjSurfaceV1
impl Send for WpLinuxDrmSyncobjSurfaceV1
impl Sync for WpLinuxDrmSyncobjSurfaceV1
impl Unpin for WpLinuxDrmSyncobjSurfaceV1
impl !UnwindSafe for WpLinuxDrmSyncobjSurfaceV1
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.