Struct wayland_protocols::wp::linux_explicit_synchronization::zv1::client::zwp_linux_explicit_synchronization_v1::ZwpLinuxExplicitSynchronizationV1
source · pub struct ZwpLinuxExplicitSynchronizationV1 {
id: ObjectId,
version: u32,
data: Option<Arc<dyn ObjectData>>,
backend: WeakBackend,
}
Expand description
protocol for providing explicit synchronization
This global is a factory interface, allowing clients to request explicit synchronization for buffers on a per-surface basis.
See zwp_linux_surface_synchronization_v1 for more information.
This interface is derived from Chromium’s zcr_linux_explicit_synchronization_v1.
Note: this protocol is superseded by linux-drm-syncobj.
Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the ‘z’ prefix and the version number in the protocol and interface names are removed and the interface version number is reset.
This interface has no events.
Fields§
§id: ObjectId
§version: u32
§data: Option<Arc<dyn ObjectData>>
§backend: WeakBackend
Implementations§
source§impl ZwpLinuxExplicitSynchronizationV1
impl ZwpLinuxExplicitSynchronizationV1
sourcepub fn destroy(&self)
pub fn destroy(&self)
destroy explicit synchronization factory object
Destroy this explicit synchronization factory object. Other objects, including zwp_linux_surface_synchronization_v1 objects created by this factory, shall not be affected by this request.
sourcepub fn get_synchronization<U: Send + Sync + 'static, D: Dispatch<ZwpLinuxSurfaceSynchronizationV1, U> + 'static>(
&self,
surface: &WlSurface,
qh: &QueueHandle<D>,
udata: U,
) -> ZwpLinuxSurfaceSynchronizationV1
pub fn get_synchronization<U: Send + Sync + 'static, D: Dispatch<ZwpLinuxSurfaceSynchronizationV1, U> + 'static>( &self, surface: &WlSurface, qh: &QueueHandle<D>, udata: U, ) -> ZwpLinuxSurfaceSynchronizationV1
extend surface interface for explicit synchronization
Instantiate an interface extension for the given wl_surface to provide explicit synchronization.
If the given wl_surface already has an explicit synchronization object associated, the synchronization_exists protocol error is raised.
Graphics APIs, like EGL or Vulkan, that manage the buffer queue and commits of a wl_surface themselves, are likely to be using this extension internally. If a client is using such an API for a wl_surface, it should not directly use this extension on that surface, to avoid raising a synchronization_exists protocol error.
Trait Implementations§
source§impl Clone for ZwpLinuxExplicitSynchronizationV1
impl Clone for ZwpLinuxExplicitSynchronizationV1
source§fn clone(&self) -> ZwpLinuxExplicitSynchronizationV1
fn clone(&self) -> ZwpLinuxExplicitSynchronizationV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl PartialEq<Weak<ZwpLinuxExplicitSynchronizationV1>> for ZwpLinuxExplicitSynchronizationV1
impl PartialEq<Weak<ZwpLinuxExplicitSynchronizationV1>> for ZwpLinuxExplicitSynchronizationV1
source§impl PartialEq for ZwpLinuxExplicitSynchronizationV1
impl PartialEq for ZwpLinuxExplicitSynchronizationV1
source§fn eq(&self, other: &ZwpLinuxExplicitSynchronizationV1) -> bool
fn eq(&self, other: &ZwpLinuxExplicitSynchronizationV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Proxy for ZwpLinuxExplicitSynchronizationV1
impl Proxy for ZwpLinuxExplicitSynchronizationV1
source§fn data<U: Send + Sync + 'static>(&self) -> Option<&U>
fn data<U: Send + Sync + 'static>(&self) -> Option<&U>
source§fn object_data(&self) -> Option<&Arc<dyn ObjectData>>
fn object_data(&self) -> Option<&Arc<dyn ObjectData>>
source§fn backend(&self) -> &WeakBackend
fn backend(&self) -> &WeakBackend
source§fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>
fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>
source§fn send_constructor<I: Proxy>(
&self,
req: Self::Request<'_>,
data: Arc<dyn ObjectData>,
) -> Result<I, InvalidId>
fn send_constructor<I: Proxy>( &self, req: Self::Request<'_>, data: Arc<dyn ObjectData>, ) -> Result<I, InvalidId>
source§fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>
fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>
source§fn inert(backend: WeakBackend) -> Self
fn inert(backend: WeakBackend) -> Self
source§fn parse_event(
conn: &Connection,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(Self, Self::Event), DispatchError>
fn parse_event( conn: &Connection, msg: Message<ObjectId, OwnedFd>, ) -> Result<(Self, Self::Event), DispatchError>
source§fn write_request<'a>(
&self,
conn: &Connection,
msg: Self::Request<'a>,
) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>
fn write_request<'a>( &self, conn: &Connection, msg: Self::Request<'a>, ) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>
impl Eq for ZwpLinuxExplicitSynchronizationV1
Auto Trait Implementations§
impl Freeze for ZwpLinuxExplicitSynchronizationV1
impl !RefUnwindSafe for ZwpLinuxExplicitSynchronizationV1
impl Send for ZwpLinuxExplicitSynchronizationV1
impl Sync for ZwpLinuxExplicitSynchronizationV1
impl Unpin for ZwpLinuxExplicitSynchronizationV1
impl !UnwindSafe for ZwpLinuxExplicitSynchronizationV1
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> 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.