Struct wayland_protocols_wlr::screencopy::v1::client::zwlr_screencopy_frame_v1::ZwlrScreencopyFrameV1
source · pub struct ZwlrScreencopyFrameV1 {
id: ObjectId,
version: u32,
data: Option<Arc<dyn ObjectData>>,
backend: WeakBackend,
}
Expand description
a frame ready for copy
This object represents a single frame.
When created, a series of buffer events will be sent, each representing a supported buffer type. The “buffer_done” event is sent afterwards to indicate that all supported buffer types have been enumerated. The client will then be able to send a “copy” request. If the capture is successful, the compositor will send a “flags” followed by a “ready” event.
For objects version 2 or lower, wl_shm buffers are always supported, ie. the “buffer” event is guaranteed to be sent.
If the capture failed, the “failed” event is sent. This can happen anytime before the “ready” event.
Once either a “ready” or a “failed” event is received, the client should destroy the frame.
See also the Event enum for this interface.
Fields§
§id: ObjectId
§version: u32
§data: Option<Arc<dyn ObjectData>>
§backend: WeakBackend
Implementations§
source§impl ZwlrScreencopyFrameV1
impl ZwlrScreencopyFrameV1
sourcepub fn copy(&self, buffer: &WlBuffer)
pub fn copy(&self, buffer: &WlBuffer)
copy the frame
Copy the frame to the supplied buffer. The buffer must have a the correct size, see zwlr_screencopy_frame_v1.buffer and zwlr_screencopy_frame_v1.linux_dmabuf. The buffer needs to have a supported format.
If the frame is successfully copied, a “flags” and a “ready” events are sent. Otherwise, a “failed” event is sent.
sourcepub fn destroy(&self)
pub fn destroy(&self)
delete this object, used or not
Destroys the frame. This request can be sent at any time by the client.
sourcepub fn copy_with_damage(&self, buffer: &WlBuffer)
pub fn copy_with_damage(&self, buffer: &WlBuffer)
copy the frame when it’s damaged
Same as copy, except it waits until there is damage to copy.
Trait Implementations§
source§impl Borrow<ObjectId> for ZwlrScreencopyFrameV1
impl Borrow<ObjectId> for ZwlrScreencopyFrameV1
source§impl Clone for ZwlrScreencopyFrameV1
impl Clone for ZwlrScreencopyFrameV1
source§fn clone(&self) -> ZwlrScreencopyFrameV1
fn clone(&self) -> ZwlrScreencopyFrameV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ZwlrScreencopyFrameV1
impl Debug for ZwlrScreencopyFrameV1
source§impl Hash for ZwlrScreencopyFrameV1
impl Hash for ZwlrScreencopyFrameV1
source§impl PartialEq<Weak<ZwlrScreencopyFrameV1>> for ZwlrScreencopyFrameV1
impl PartialEq<Weak<ZwlrScreencopyFrameV1>> for ZwlrScreencopyFrameV1
source§impl PartialEq for ZwlrScreencopyFrameV1
impl PartialEq for ZwlrScreencopyFrameV1
source§fn eq(&self, other: &ZwlrScreencopyFrameV1) -> bool
fn eq(&self, other: &ZwlrScreencopyFrameV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Proxy for ZwlrScreencopyFrameV1
impl Proxy for ZwlrScreencopyFrameV1
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 ZwlrScreencopyFrameV1
Auto Trait Implementations§
impl Freeze for ZwlrScreencopyFrameV1
impl !RefUnwindSafe for ZwlrScreencopyFrameV1
impl Send for ZwlrScreencopyFrameV1
impl Sync for ZwlrScreencopyFrameV1
impl Unpin for ZwlrScreencopyFrameV1
impl !UnwindSafe for ZwlrScreencopyFrameV1
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.