Enum wayland_client::protocol::wl_surface::Event
source · #[non_exhaustive]pub enum Event {
Enter {
output: WlOutput,
},
Leave {
output: WlOutput,
},
PreferredBufferScale {
factor: i32,
},
PreferredBufferTransform {
transform: WEnum<Transform>,
},
}
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Enter
surface enters an output
This is emitted whenever a surface’s creation, movement, or resizing results in some part of it being within the scanout region of an output.
Note that a surface may be overlapping with zero or more outputs.
Leave
surface leaves an output
This is emitted whenever a surface’s creation, movement, or resizing results in it no longer having any part of it within the scanout region of an output.
Clients should not use the number of outputs the surface is on for frame throttling purposes. The surface might be hidden even if no leave event has been sent, and the compositor might expect new surface content updates even if no enter event has been sent. The frame event should be used instead.
PreferredBufferScale
preferred buffer scale for the surface
This event indicates the preferred buffer scale for this surface. It is sent whenever the compositor’s preference changes.
Before receiving this event the preferred buffer scale for this surface is 1.
It is intended that scaling aware clients use this event to scale their content and use wl_surface.set_buffer_scale to indicate the scale they have rendered with. This allows clients to supply a higher detail buffer.
The compositor shall emit a scale value greater than 0.
Only available since version 6 of the interface
PreferredBufferTransform
preferred buffer transform for the surface
This event indicates the preferred buffer transform for this surface. It is sent whenever the compositor’s preference changes.
Before receiving this event the preferred buffer transform for this surface is normal.
Applying this transformation to the surface buffer contents and using wl_surface.set_buffer_transform might allow the compositor to use the surface buffer more efficiently.
Only available since version 6 of the interface
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Event
impl !RefUnwindSafe for Event
impl Send for Event
impl Sync for Event
impl Unpin for Event
impl !UnwindSafe for Event
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.