Struct nannou::wgpu::Textue5cfe74reSnapshot [−][src]
pub struct Textue5cfe74reSnapshot { /* fields omitted */ }
A snapshot captured by a Capturer.
A snapshot is a thin wrapper around a wgpu::BufferImage that knows that the image format is specifically non-linear sRGBA8.
Implementations
impl Snapshot
[src]
pub async fn read_async<'buffer>(
&'buffer self
) -> Result<Rgba8AsyncMappedImageBuffer<'buffer>, BufferAsyncError>
[src]
&'buffer self
) -> Result<Rgba8AsyncMappedImageBuffer<'buffer>, BufferAsyncError>
Reads the non-linear sRGBA image from mapped memory and convert it to an owned buffer.
pub fn read<F>(
self,
callback: F
) -> Result<(), AwaitWorkerTimeout<impl Future<Output = ()>>> where
F: 'static + Send + FnOnce(Result<Rgba8AsyncMappedImageBuffer<'_>, BufferAsyncError>),
[src]
self,
callback: F
) -> Result<(), AwaitWorkerTimeout<impl Future<Output = ()>>> where
F: 'static + Send + FnOnce(Result<Rgba8AsyncMappedImageBuffer<'_>, BufferAsyncError>),
The same as read_async
, but runs the resulting future on an inner threadpool and calls
the given callback with the mapped image buffer once complete.
Note: The given callback will not be called until the memory is mapped and the device is polled. You should not rely on the callback being called immediately.
Note: The given callback will be called on the inner thread pool and will not be called on the current thread.
Note: This method may block if the associated wgpu::TextureCapturer
has an
active_futures
count that is greater than the number of worker threads with which it was
created. This is necessary in order to avoid “out of memory” errors resulting from an
accumulating queue of pending texture buffers waiting to be mapped. To avoid blocking, you
can try using a higher thread count, capturing a smaller texture, or using read_async
instead and running the resulting future on a custom runtime or threadpool.
Auto Trait Implementations
impl !RefUnwindSafe for Snapshot
impl Send for Snapshot
impl Sync for Snapshot
impl Unpin for Snapshot
impl !UnwindSafe for Snapshot
Blanket Implementations
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
T: Component + Float,
D: AdaptFrom<S, Swp, Dwp, T>,
Swp: WhitePoint,
Dwp: WhitePoint,
[src]
T: Component + Float,
D: AdaptFrom<S, Swp, Dwp, T>,
Swp: WhitePoint,
Dwp: WhitePoint,
pub fn adapt_into_using<M>(self, method: M) -> D where
M: TransformMatrix<Swp, Dwp, T>,
[src]
M: TransformMatrix<Swp, Dwp, T>,
pub fn adapt_into(self) -> D
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> ConvertInto<U> for T where
U: ConvertFrom<T>,
[src]
U: ConvertFrom<T>,
pub fn convert_into(self) -> U
[src]
pub fn convert_unclamped_into(self) -> U
[src]
pub fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
[src]
impl<T> Downcast<T> for T
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> SetParameter for T
pub fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Upcast<T> for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,