Struct ZwlrExportDmabufFrameV1
pub struct ZwlrExportDmabufFrameV1 { /* private fields */ }wayland and Linux only.Expand description
a DMA-BUF frame
This object represents a single DMA-BUF frame.
If the capture is successful, the compositor will first send a “frame” event, followed by one or several “object”. When the frame is available for readout, the “ready” event is sent.
If the capture failed, the “cancel” event is sent. This can happen anytime before the “ready” event.
Once either a “ready” or a “cancel” event is received, the client should destroy the frame. Once an “object” event is received, the client is responsible for closing the associated file descriptor.
All frames are read-only and may not be written into or altered.
See also the Request enum for this interface.
Implementations§
§impl ZwlrExportDmabufFrameV1
impl ZwlrExportDmabufFrameV1
pub fn frame(
&self,
width: u32,
height: u32,
offset_x: u32,
offset_y: u32,
buffer_flags: u32,
flags: Flags,
format: u32,
mod_high: u32,
mod_low: u32,
num_objects: u32,
)
pub fn frame( &self, width: u32, height: u32, offset_x: u32, offset_y: u32, buffer_flags: u32, flags: Flags, format: u32, mod_high: u32, mod_low: u32, num_objects: u32, )
a frame description
Main event supplying the client with information about the frame. If the capture didn’t fail, this event is always emitted first before any other events.
This event is followed by a number of “object” as specified by the “num_objects” argument.
pub fn object(
&self,
index: u32,
fd: BorrowedFd<'_>,
size: u32,
offset: u32,
stride: u32,
plane_index: u32,
)
pub fn object( &self, index: u32, fd: BorrowedFd<'_>, size: u32, offset: u32, stride: u32, plane_index: u32, )
an object description
Event which serves to supply the client with the file descriptors containing the data for each object.
After receiving this event, the client must always close the file descriptor as soon as they’re done with it and even if the frame fails.
pub fn ready(&self, tv_sec_hi: u32, tv_sec_lo: u32, tv_nsec: u32)
pub fn ready(&self, tv_sec_hi: u32, tv_sec_lo: u32, tv_nsec: u32)
indicates frame is available for reading
This event is sent as soon as the frame is presented, indicating it is available for reading. This event includes the time at which presentation happened at.
The timestamp is expressed as tv_sec_hi, tv_sec_lo, tv_nsec triples, each component being an unsigned 32-bit value. Whole seconds are in tv_sec which is a 64-bit value combined from tv_sec_hi and tv_sec_lo, and the additional fractional part in tv_nsec as nanoseconds. Hence, for valid timestamps tv_nsec must be in [0, 999999999]. The seconds part may have an arbitrary offset at start.
After receiving this event, the client should destroy this object.
pub fn cancel(&self, reason: CancelReason)
pub fn cancel(&self, reason: CancelReason)
indicates the frame is no longer valid
If the capture failed or if the frame is no longer valid after the “frame” event has been emitted, this event will be used to inform the client to scrap the frame.
If the failure is temporary, the client may capture again the same source. If the failure is permanent, any further attempts to capture the same source will fail again.
After receiving this event, the client should destroy this object.
Trait Implementations§
§impl Borrow<ObjectId> for ZwlrExportDmabufFrameV1
impl Borrow<ObjectId> for ZwlrExportDmabufFrameV1
§impl Clone for ZwlrExportDmabufFrameV1
impl Clone for ZwlrExportDmabufFrameV1
§fn clone(&self) -> ZwlrExportDmabufFrameV1
fn clone(&self) -> ZwlrExportDmabufFrameV1
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for ZwlrExportDmabufFrameV1
impl Debug for ZwlrExportDmabufFrameV1
§impl Hash for ZwlrExportDmabufFrameV1
impl Hash for ZwlrExportDmabufFrameV1
§impl PartialEq<Weak<ZwlrExportDmabufFrameV1>> for ZwlrExportDmabufFrameV1
impl PartialEq<Weak<ZwlrExportDmabufFrameV1>> for ZwlrExportDmabufFrameV1
§impl PartialEq for ZwlrExportDmabufFrameV1
impl PartialEq for ZwlrExportDmabufFrameV1
§impl Resource for ZwlrExportDmabufFrameV1
impl Resource for ZwlrExportDmabufFrameV1
§fn object_data(&self) -> Option<&Arc<dyn Any + Sync + Send>>
fn object_data(&self) -> Option<&Arc<dyn Any + Sync + Send>>
§fn from_id(
conn: &DisplayHandle,
id: ObjectId,
) -> Result<ZwlrExportDmabufFrameV1, InvalidId>
fn from_id( conn: &DisplayHandle, id: ObjectId, ) -> Result<ZwlrExportDmabufFrameV1, InvalidId>
§fn send_event(
&self,
evt: <ZwlrExportDmabufFrameV1 as Resource>::Event<'_>,
) -> Result<(), InvalidId>
fn send_event( &self, evt: <ZwlrExportDmabufFrameV1 as Resource>::Event<'_>, ) -> Result<(), InvalidId>
§fn parse_request(
conn: &DisplayHandle,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(ZwlrExportDmabufFrameV1, <ZwlrExportDmabufFrameV1 as Resource>::Request), DispatchError>
fn parse_request( conn: &DisplayHandle, msg: Message<ObjectId, OwnedFd>, ) -> Result<(ZwlrExportDmabufFrameV1, <ZwlrExportDmabufFrameV1 as Resource>::Request), DispatchError>
§fn write_event<'a>(
&self,
conn: &DisplayHandle,
msg: <ZwlrExportDmabufFrameV1 as Resource>::Event<'a>,
) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
fn write_event<'a>( &self, conn: &DisplayHandle, msg: <ZwlrExportDmabufFrameV1 as Resource>::Event<'a>, ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
impl Eq for ZwlrExportDmabufFrameV1
Auto Trait Implementations§
impl Freeze for ZwlrExportDmabufFrameV1
impl !RefUnwindSafe for ZwlrExportDmabufFrameV1
impl Send for ZwlrExportDmabufFrameV1
impl Sync for ZwlrExportDmabufFrameV1
impl Unpin for ZwlrExportDmabufFrameV1
impl !UnwindSafe for ZwlrExportDmabufFrameV1
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more