aboutsummaryrefslogtreecommitdiff
path: root/vgcodec/src/app.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-11-21 16:59:50 +0100
committermetamuffin <metamuffin@disroot.org>2022-11-21 16:59:50 +0100
commit5248831232fa22a1f3d6515f7f6c7bee8994faf2 (patch)
treefdbff884248948d124ab864e21d65fe49c6ca0e2 /vgcodec/src/app.rs
downloadvideo-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar
video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.bz2
video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.zst
unify repos
Diffstat (limited to 'vgcodec/src/app.rs')
-rw-r--r--vgcodec/src/app.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/vgcodec/src/app.rs b/vgcodec/src/app.rs
new file mode 100644
index 0000000..0c063a5
--- /dev/null
+++ b/vgcodec/src/app.rs
@@ -0,0 +1,37 @@
+use std::sync::Arc;
+
+use wgpu::{Adapter, Device, Instance, Queue};
+
+pub struct App {
+ pub instance: Instance,
+ pub device: Device,
+ pub adapter: Adapter,
+ pub queue: Queue,
+}
+
+impl App {
+ pub async fn new() -> Arc<Self> {
+ let instance = wgpu::Instance::new(wgpu::Backends::all());
+ let adapter = instance
+ .request_adapter(&wgpu::RequestAdapterOptions::default())
+ .await
+ .unwrap();
+ let (device, queue) = adapter
+ .request_device(
+ &wgpu::DeviceDescriptor {
+ label: None,
+ features: wgpu::Features::empty(),
+ limits: wgpu::Limits::downlevel_defaults(),
+ },
+ None,
+ )
+ .await
+ .unwrap();
+ Arc::new(Self {
+ adapter,
+ device,
+ instance,
+ queue,
+ })
+ }
+}