Struct wayland_protocols::wp::presentation_time::generated::client::wp_presentation::WpPresentation
source · pub struct WpPresentation {
id: ObjectId,
version: u32,
data: Option<Arc<dyn ObjectData>>,
backend: WeakBackend,
}
Expand description
timed presentation related wl_surface requests
The main feature of this interface is accurate presentation timing feedback to ensure smooth video playback while maintaining audio/video synchronization. Some features use the concept of a presentation clock, which is defined in the presentation.clock_id event.
A content update for a wl_surface is submitted by a wl_surface.commit request. Request ‘feedback’ associates with the wl_surface.commit and provides feedback on the content update, particularly the final realized presentation time.
When the final realized presentation time is available, e.g. after a framebuffer flip completes, the requested presentation_feedback.presented events are sent. The final presentation time can differ from the compositor’s predicted display update time and the update’s target time, especially when the compositor misses its target vertical blanking period.
See also the Event enum for this interface.
Fields§
§id: ObjectId
§version: u32
§data: Option<Arc<dyn ObjectData>>
§backend: WeakBackend
Implementations§
source§impl WpPresentation
impl WpPresentation
sourcepub fn destroy(&self)
pub fn destroy(&self)
unbind from the presentation 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 feedback<U: Send + Sync + 'static, D: Dispatch<WpPresentationFeedback, U> + 'static>(
&self,
surface: &WlSurface,
qh: &QueueHandle<D>,
udata: U,
) -> WpPresentationFeedback
pub fn feedback<U: Send + Sync + 'static, D: Dispatch<WpPresentationFeedback, U> + 'static>( &self, surface: &WlSurface, qh: &QueueHandle<D>, udata: U, ) -> WpPresentationFeedback
request presentation feedback information
Request presentation feedback for the current content submission on the given surface. This creates a new presentation_feedback object, which will deliver the feedback information once. If multiple presentation_feedback objects are created for the same submission, they will all deliver the same information.
For details on what information is returned, see the presentation_feedback interface.
Trait Implementations§
source§impl Borrow<ObjectId> for WpPresentation
impl Borrow<ObjectId> for WpPresentation
source§impl Clone for WpPresentation
impl Clone for WpPresentation
source§fn clone(&self) -> WpPresentation
fn clone(&self) -> WpPresentation
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WpPresentation
impl Debug for WpPresentation
source§impl Hash for WpPresentation
impl Hash for WpPresentation
source§impl PartialEq<Weak<WpPresentation>> for WpPresentation
impl PartialEq<Weak<WpPresentation>> for WpPresentation
source§impl PartialEq for WpPresentation
impl PartialEq for WpPresentation
source§fn eq(&self, other: &WpPresentation) -> bool
fn eq(&self, other: &WpPresentation) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Proxy for WpPresentation
impl Proxy for WpPresentation
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 WpPresentation
Auto Trait Implementations§
impl Freeze for WpPresentation
impl !RefUnwindSafe for WpPresentation
impl Send for WpPresentation
impl Sync for WpPresentation
impl Unpin for WpPresentation
impl !UnwindSafe for WpPresentation
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.