Struct CaptureState

Source
pub struct CaptureState {
    pub texture: Texture,
    /* private fields */
}
Expand description

A texture and a buffer for reading the rendered frame back to the cpu. The texture is required since wgpu::TextureUsages::COPY_SRC is not an allowed flag for the surface texture on all platforms. This means that anytime we want to capture the frame, we first render it to this texture, and then we can copy it to both the surface texture (via a render pass) and the buffer (via a texture to buffer copy), from where we can pull it back to the cpu.

Fields§

§texture: Texture

Implementations§

Source§

impl CaptureState

Source

pub fn new(device: &Device, surface_texture: &Texture) -> Self

Source

pub fn update(&mut self, device: &Device, texture: &Texture)

Updates the CaptureState if the size of the surface texture has changed

Source

pub fn copy_textures( &mut self, device: &Device, output_frame: &SurfaceTexture, encoder: &mut CommandEncoder, ) -> Buffer

Handles copying from the CaptureState texture to the surface texture and the buffer. Pass the returned buffer to CaptureState::read_screen_rgba to read the data back to the cpu.

Source

pub fn read_screen_rgba( &self, ctx: Context, buffer: Buffer, data: Vec<UserData>, tx: CaptureSender, viewport_id: ViewportId, )

Handles copying from the CaptureState texture to the surface texture and the cpu This function is non-blocking and will send the data to the given sender when it’s ready. Pass in the buffer returned from CaptureState::copy_textures. Make sure to call this after the encoder has been submitted.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,