#[non_exhaustive]pub enum Request<'a> {
SetBarrier,
WaitBarrier,
Destroy,
}
staging
and client
only.Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
SetBarrier
sets the start point for a fifo constraint
When the content update containing the “set_barrier” is applied, it sets a “fifo_barrier” condition on the surface associated with the fifo object. The condition is cleared immediately after the following latching deadline for non-tearing presentation.
The compositor may clear the condition early if it must do so to ensure client forward progress assumptions.
To wait for this condition to clear, use the “wait_barrier” request.
“set_barrier” is double-buffered state, see wl_surface.commit.
Requesting set_barrier after the fifo object’s surface is destroyed will generate a “surface_destroyed” error.
WaitBarrier
adds a fifo constraint to a content update
Indicate that this content update is not ready while a “fifo_barrier” condition is present on the surface.
This means that when the content update containing “set_barrier” was made active at a latching deadline, it will be active for at least one refresh cycle. A content update which is allowed to tear might become active after a latching deadline if no content update became active at the deadline.
The constraint must be ignored if the surface is a subsurface in synchronized mode. If the surface is not being updated by the compositor (off-screen, occluded) the compositor may ignore the constraint. Clients must use an additional mechanism such as frame callbacks or timestamps to ensure throttling occurs under all conditions.
“wait_barrier” is double-buffered state, see wl_surface.commit.
Requesting “wait_barrier” after the fifo object’s surface is destroyed will generate a “surface_destroyed” error.
Destroy
destroy the fifo interface
Informs the server that the client will no longer be using this protocol object.
Surface state changes previously made by this protocol are unaffected by this object’s destruction.
This is a destructor, once sent this object cannot be used any longer.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Request<'a>
impl<'a> RefUnwindSafe for Request<'a>
impl<'a> Send for Request<'a>
impl<'a> Sync for Request<'a>
impl<'a> Unpin for Request<'a>
impl<'a> UnwindSafe for Request<'a>
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.