pub struct BufferCopyEngine { /* private fields */ }Expand description
Performs GPU-side buffer-to-buffer copies without CPU readback.
Implementations§
Source§impl BufferCopyEngine
impl BufferCopyEngine
Sourcepub fn copy(
&mut self,
gl: &Context,
src: BufferHandle,
src_offset: usize,
dst: BufferHandle,
dst_offset: usize,
length: usize,
)
pub fn copy( &mut self, gl: &Context, src: BufferHandle, src_offset: usize, dst: BufferHandle, dst_offset: usize, length: usize, )
Copy length bytes from src at src_offset to dst at dst_offset.
All offsets and lengths are in bytes.
Sourcepub fn copy_full(&mut self, gl: &Context, src: BufferHandle, dst: BufferHandle)
pub fn copy_full(&mut self, gl: &Context, src: BufferHandle, dst: BufferHandle)
Copy the entire source buffer into destination at offset 0.
Sourcepub fn copy_regions(
&mut self,
gl: &Context,
src: BufferHandle,
dst: BufferHandle,
regions: &[CopyRegion],
)
pub fn copy_regions( &mut self, gl: &Context, src: BufferHandle, dst: BufferHandle, regions: &[CopyRegion], )
Scatter-copy: copy multiple disjoint regions in a single call.
Sourcepub fn total_bytes_copied(&self) -> u64
pub fn total_bytes_copied(&self) -> u64
Total bytes copied across all operations.
Sourcepub fn copy_count(&self) -> u64
pub fn copy_count(&self) -> u64
Total number of copy operations.
Sourcepub fn reset_stats(&mut self)
pub fn reset_stats(&mut self)
Reset statistics.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BufferCopyEngine
impl RefUnwindSafe for BufferCopyEngine
impl Send for BufferCopyEngine
impl Sync for BufferCopyEngine
impl Unpin for BufferCopyEngine
impl UnsafeUnpin for BufferCopyEngine
impl UnwindSafe for BufferCopyEngine
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.