aboutsummaryrefslogtreecommitdiff
path: root/vgcodec/src/app.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-11-21 19:47:13 +0100
committermetamuffin <metamuffin@disroot.org>2022-11-21 19:47:13 +0100
commitb7e7bc086ff450f6234db5e868f1dde7d3e0c51b (patch)
treeb8a0b0a0a897379c9fe631676fd7e3763e68768e /vgcodec/src/app.rs
parent6ef7ada9edb817ef636048d0f8fba29e7729404c (diff)
downloadvideo-codec-experiments-b7e7bc086ff450f6234db5e868f1dde7d3e0c51b.tar
video-codec-experiments-b7e7bc086ff450f6234db5e868f1dde7d3e0c51b.tar.bz2
video-codec-experiments-b7e7bc086ff450f6234db5e868f1dde7d3e0c51b.tar.zst
stuff
Diffstat (limited to 'vgcodec/src/app.rs')
-rw-r--r--vgcodec/src/app.rs24
1 files changed, 23 insertions, 1 deletions
diff --git a/vgcodec/src/app.rs b/vgcodec/src/app.rs
index 0c063a5..b51284c 100644
--- a/vgcodec/src/app.rs
+++ b/vgcodec/src/app.rs
@@ -1,6 +1,6 @@
use std::sync::Arc;
-use wgpu::{Adapter, Device, Instance, Queue};
+use wgpu::{Adapter, Device, Extent3d, ImageCopyTexture, Instance, Origin3d, Queue, Texture};
pub struct App {
pub instance: Instance,
@@ -34,4 +34,26 @@ impl App {
queue,
})
}
+
+ pub fn copy_texture(&self, source: &Texture, destination: &Texture, size: Extent3d) {
+ let mut encoder = self
+ .device
+ .create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None });
+ encoder.copy_texture_to_texture(
+ ImageCopyTexture {
+ aspect: wgpu::TextureAspect::All,
+ mip_level: 0,
+ origin: Origin3d::ZERO,
+ texture: source,
+ },
+ ImageCopyTexture {
+ aspect: wgpu::TextureAspect::All,
+ mip_level: 0,
+ origin: Origin3d::ZERO,
+ texture: destination,
+ },
+ size,
+ );
+ self.queue.submit(Some(encoder.finish()));
+ }
}