pub struct CommandEncoder { /* private fields */ }
Expand description
Encodes a series of GPU operations.
A command encoder can record RenderPass
es, ComputePass
es,
and transfer operations between driver-managed resources like Buffer
s and Texture
s.
When finished recording, call CommandEncoder::finish
to obtain a CommandBuffer
which may
be submitted for execution.
Implementations§
Source§impl CommandEncoder
impl CommandEncoder
Sourcepub fn finish(self) -> CommandBuffer
pub fn finish(self) -> CommandBuffer
Finishes recording and returns a CommandBuffer
that can be submitted for execution.
Sourcepub fn begin_render_pass<'a>(
&'a mut self,
desc: &RenderPassDescriptor<'a, '_>,
) -> RenderPass<'a>
pub fn begin_render_pass<'a>( &'a mut self, desc: &RenderPassDescriptor<'a, '_>, ) -> RenderPass<'a>
Begins recording of a render pass.
This function returns a RenderPass
object which records a single render pass.
Sourcepub fn begin_compute_pass(&mut self) -> ComputePass<'_>
pub fn begin_compute_pass(&mut self) -> ComputePass<'_>
Begins recording of a compute pass.
This function returns a ComputePass
object which records a single compute pass.
Sourcepub fn copy_buffer_to_buffer(
&mut self,
source: &Buffer,
source_offset: BufferAddress,
destination: &Buffer,
destination_offset: BufferAddress,
copy_size: BufferAddress,
)
pub fn copy_buffer_to_buffer( &mut self, source: &Buffer, source_offset: BufferAddress, destination: &Buffer, destination_offset: BufferAddress, copy_size: BufferAddress, )
Copy data from one buffer to another.
§Panics
- Buffer offsets or copy size not a multiple of
COPY_BUFFER_ALIGNMENT
. - Copy would overrun buffer.
Sourcepub fn copy_buffer_to_texture(
&mut self,
source: BufferCopyView<'_>,
destination: TextureCopyView<'_>,
copy_size: Extent3d,
)
pub fn copy_buffer_to_texture( &mut self, source: BufferCopyView<'_>, destination: TextureCopyView<'_>, copy_size: Extent3d, )
Copy data from a buffer to a texture.
§Panics
- Copy would overrun buffer.
- Copy would overrun texture.
source.layout.bytes_per_row
isn’t divisible byCOPY_BYTES_PER_ROW_ALIGNMENT
.
Sourcepub fn copy_texture_to_buffer(
&mut self,
source: TextureCopyView<'_>,
destination: BufferCopyView<'_>,
copy_size: Extent3d,
)
pub fn copy_texture_to_buffer( &mut self, source: TextureCopyView<'_>, destination: BufferCopyView<'_>, copy_size: Extent3d, )
Copy data from a texture to a buffer.
§Panics
- Copy would overrun buffer.
- Copy would overrun texture.
source.layout.bytes_per_row
isn’t divisible byCOPY_BYTES_PER_ROW_ALIGNMENT
.
Sourcepub fn copy_texture_to_texture(
&mut self,
source: TextureCopyView<'_>,
destination: TextureCopyView<'_>,
copy_size: Extent3d,
)
pub fn copy_texture_to_texture( &mut self, source: TextureCopyView<'_>, destination: TextureCopyView<'_>, copy_size: Extent3d, )
Copy data from one texture to another.
§Panics
- Textures are not the same type
- If a depth texture, or a multisampled texture, the entire texture must be copied
- Copy would overrun either texture
Auto Trait Implementations§
impl Freeze for CommandEncoder
impl !RefUnwindSafe for CommandEncoder
impl !Send for CommandEncoder
impl !Sync for CommandEncoder
impl Unpin for CommandEncoder
impl !UnwindSafe for CommandEncoder
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
Mutably borrows from an owned value. Read more