pub struct CaptureVTable {
pub open: fn(index: u32, width: u32, height: u32) -> u64,
pub read: fn(handle: u64, out: &mut Vec<u8>) -> (u32, u32),
pub close: fn(handle: u64),
}Expand description
A platform frame-capture backend (camera / screen), registered by the dll at
startup so the cross-platform capture widgets can pull real frames
instead of their built-in test pattern. The dll provides one per OS (v4l2 on
Linux, AVFoundation on macOS, Media Foundation on Windows, ScreenCaptureKit /
PipeWire / DXGI for screens, …). These are plain Rust fn pointers - the dll
links azul-layout statically, so registering + calling is a Rust-to-Rust
call, no extern "C"/trait-object dance.
Fields§
§open: fn(index: u32, width: u32, height: u32) -> u64Open source index (camera device / display index) at the requested
width x height. Returns an opaque handle, or 0 on failure (the
worker then falls back to the test pattern).
read: fn(handle: u64, out: &mut Vec<u8>) -> (u32, u32)Block for the next frame, writing tightly-packed RGBA8 into out
(resized as needed). Returns the actual frame (width, height), or
(0, 0) on end-of-stream / error (the worker then stops + closes).
close: fn(handle: u64)Close + free the source.
Trait Implementations§
Source§impl Clone for CaptureVTable
impl Clone for CaptureVTable
Source§fn clone(&self) -> CaptureVTable
fn clone(&self) -> CaptureVTable
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CaptureVTable
Auto Trait Implementations§
impl Freeze for CaptureVTable
impl RefUnwindSafe for CaptureVTable
impl Send for CaptureVTable
impl Sync for CaptureVTable
impl Unpin for CaptureVTable
impl UnsafeUnpin for CaptureVTable
impl UnwindSafe for CaptureVTable
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more