[][src]Struct nannou::frame::raw::RawFrame

pub struct RawFrame<'swap_chain> { /* fields omitted */ }

Allows the user to draw a single RawFrame to the surface of a window.

The application's view function is called each time the application is ready to retrieve a new image that will be displayed to a window. The RawFrame type can be thought of as the canvas to which you draw this image.

Under the hood - WGPU

RawFrame provides access to the wgpu::TextureViewHandle associated with the swap chain's current target texture for a single window.

In the case that your view function is shared between multiple windows, can determine which window the RawFrame is associated with via the RawFrame::window_id method.

The user can draw to the swap chain texture by building a list of commands via a wgpu::CommandEncoder and submitting them to the wgpu::Queue associated with the wgpu::Device that was used to create the swap chain. It is important that the queue matches the device. In an effort to reduce the chance for errors to occur, RawFrame provides access to a wgpu::CommandEncoder whose commands are guaranteed to be submitted to the correct wgpu::Queue at the end of the view function.

Implementations

impl<'swap_chain> RawFrame<'swap_chain>[src]

pub fn command_encoder(&self) -> RefMut<'_, CommandEncoder>[src]

Access the command encoder in order to encode commands that will be submitted to the swap chain queue at the end of the call to view.

pub fn window_id(&self) -> Id[src]

The Id of the window whose wgpu surface is associated with this frame.

pub fn rect(&self) -> Rect[src]

A Rect representing the full surface of the frame.

The returned Rect is equivalent to the result of calling Window::rect on the window associated with this Frame.

pub fn nth(&self) -> u64[src]

The nth frame for the associated window since the application started.

E.g. the first frame yielded will return 0, the second will return 1, and so on.

pub fn swap_chain_texture(&self) -> &TextureViewHandle[src]

The swap chain texture that will be the target for drawing this frame.

pub fn texture_format(&self) -> TextureFormat[src]

The texture format of the frame's swap chain texture.

pub fn device_queue_pair(&self) -> &Arc<DeviceQueuePair>[src]

The device and queue on which the swap chain was created and which will be used to submit the RawFrame's encoded commands.

This refers to the same DeviceQueuePair as held by the window associated with this frame.

pub fn submit(self)[src]

Submit the frame to the GPU!

Specifically, this submits the encoded commands to the queue of the device that was used to create the swap chain texture.

Note: You do not need to call this manually as submission will occur automatically when the Frame is dropped.

Note: Be careful that you do not currently possess a lock to either the frame's command encoder or the queue of the window associated with this frame or this method will lock and block forever.

Trait Implementations

impl<'swap_chain> Drop for RawFrame<'swap_chain>[src]

Auto Trait Implementations

impl<'swap_chain> !RefUnwindSafe for RawFrame<'swap_chain>

impl<'swap_chain> !Send for RawFrame<'swap_chain>

impl<'swap_chain> !Sync for RawFrame<'swap_chain>

impl<'swap_chain> Unpin for RawFrame<'swap_chain>

impl<'swap_chain> !UnwindSafe for RawFrame<'swap_chain>

Blanket Implementations

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    D: AdaptFrom<S, Swp, Dwp, T>,
    Dwp: WhitePoint,
    Swp: WhitePoint,
    T: Component + Float
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, U> ConvertInto<U> for T where
    U: ConvertFrom<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> SetParameter for T

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,