Struct wayland_protocols::wp::commit_timing::v1::client::wp_commit_timing_manager_v1::WpCommitTimingManagerV1
source · pub struct WpCommitTimingManagerV1 {
id: ObjectId,
version: u32,
data: Option<Arc<dyn ObjectData>>,
backend: WeakBackend,
}
Expand description
commit timing
When a compositor latches on to new content updates it will check for any number of requirements of the available content updates (such as fences of all buffers being signalled) to consider the update ready.
This protocol provides a method for adding a time constraint to surface content. This constraint indicates to the compositor that a content update should be presented as closely as possible to, but not before, a specified time.
This protocol does not change the Wayland property that content updates are applied in the order they are received, even when some content updates contain timestamps and others do not.
To provide timestamps, this global factory interface must be used to acquire a wp_commit_timing_v1 object for a surface, which may then be used to provide timestamp information for commits.
Warning! The protocol described in this file is currently in the testing phase. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes can only be done by creating a new major version of the extension.
This interface has no events.
Fields§
§id: ObjectId
§version: u32
§data: Option<Arc<dyn ObjectData>>
§backend: WeakBackend
Implementations§
source§impl WpCommitTimingManagerV1
impl WpCommitTimingManagerV1
sourcepub fn destroy(&self)
pub fn destroy(&self)
unbind from the commit timing interface
Informs the server that the client will no longer be using this protocol object. Existing objects created by this object are not affected.
sourcepub fn get_timer<U: Send + Sync + 'static, D: Dispatch<WpCommitTimerV1, U> + 'static>(
&self,
surface: &WlSurface,
qh: &QueueHandle<D>,
udata: U,
) -> WpCommitTimerV1
pub fn get_timer<U: Send + Sync + 'static, D: Dispatch<WpCommitTimerV1, U> + 'static>( &self, surface: &WlSurface, qh: &QueueHandle<D>, udata: U, ) -> WpCommitTimerV1
request commit timer interface for surface
Establish a timing controller for a surface.
Only one commit timer can be created for a surface, or a commit_timer_exists protocol error will be generated.
Trait Implementations§
source§impl Borrow<ObjectId> for WpCommitTimingManagerV1
impl Borrow<ObjectId> for WpCommitTimingManagerV1
source§impl Clone for WpCommitTimingManagerV1
impl Clone for WpCommitTimingManagerV1
source§fn clone(&self) -> WpCommitTimingManagerV1
fn clone(&self) -> WpCommitTimingManagerV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WpCommitTimingManagerV1
impl Debug for WpCommitTimingManagerV1
source§impl Hash for WpCommitTimingManagerV1
impl Hash for WpCommitTimingManagerV1
source§impl PartialEq<Weak<WpCommitTimingManagerV1>> for WpCommitTimingManagerV1
impl PartialEq<Weak<WpCommitTimingManagerV1>> for WpCommitTimingManagerV1
source§impl PartialEq for WpCommitTimingManagerV1
impl PartialEq for WpCommitTimingManagerV1
source§fn eq(&self, other: &WpCommitTimingManagerV1) -> bool
fn eq(&self, other: &WpCommitTimingManagerV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Proxy for WpCommitTimingManagerV1
impl Proxy for WpCommitTimingManagerV1
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 WpCommitTimingManagerV1
Auto Trait Implementations§
impl Freeze for WpCommitTimingManagerV1
impl !RefUnwindSafe for WpCommitTimingManagerV1
impl Send for WpCommitTimingManagerV1
impl Sync for WpCommitTimingManagerV1
impl Unpin for WpCommitTimingManagerV1
impl !UnwindSafe for WpCommitTimingManagerV1
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.