pub struct RawFrame<'swap_chain> { /* private fields */ }
Expand description
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§
source§impl<'swap_chain> RawFrame<'swap_chain>
impl<'swap_chain> RawFrame<'swap_chain>
sourcepub fn command_encoder(&self) -> RefMut<'_, CommandEncoder>
pub fn command_encoder(&self) -> RefMut<'_, CommandEncoder>
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.
sourcepub fn window_id(&self) -> Id
pub fn window_id(&self) -> Id
The Id
of the window whose wgpu surface is associated with this frame.
sourcepub fn rect(&self) -> Rect
pub fn rect(&self) -> Rect
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.
sourcepub fn nth(&self) -> u64
pub fn nth(&self) -> u64
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.
sourcepub fn swap_chain_texture(&self) -> &TextureViewHandle
pub fn swap_chain_texture(&self) -> &TextureViewHandle
The swap chain texture that will be the target for drawing this frame.
sourcepub fn texture_format(&self) -> TextureFormat
pub fn texture_format(&self) -> TextureFormat
The texture format of the frame’s swap chain texture.
sourcepub fn device_queue_pair(&self) -> &Arc<DeviceQueuePair>
pub fn device_queue_pair(&self) -> &Arc<DeviceQueuePair>
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.
sourcepub fn submit(self)
pub fn submit(self)
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.
sourcepub fn clear(&self, texture_view: &TextureView, color: Color)
pub fn clear(&self, texture_view: &TextureView, color: Color)
Clear the texture with the given color.
Trait Implementations§
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§
source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
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, U> ConvertInto<U> for Twhere
U: ConvertFrom<T>,
impl<T, U> ConvertInto<U> for Twhere
U: ConvertFrom<T>,
source§fn convert_into(self) -> U
fn convert_into(self) -> U
source§fn convert_unclamped_into(self) -> U
fn convert_unclamped_into(self) -> U
source§fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains the unclamped color. Read more