mirror of
https://github.com/hannobraun/Fornjot
synced 2025-05-08 20:08:30 +00:00
Add Renderer::new
This commit is contained in:
parent
e6e9eeaabc
commit
8e2ec045c3
@ -32,31 +32,7 @@ impl ApplicationHandler for App {
|
||||
.unwrap(),
|
||||
);
|
||||
|
||||
let instance = wgpu::Instance::default();
|
||||
let surface = instance.create_surface(window.clone()).unwrap();
|
||||
let adapter = pollster::block_on(instance.request_adapter(
|
||||
&wgpu::RequestAdapterOptions {
|
||||
compatible_surface: Some(&surface),
|
||||
..Default::default()
|
||||
},
|
||||
))
|
||||
.unwrap();
|
||||
let (device, queue) = pollster::block_on(
|
||||
adapter.request_device(&wgpu::DeviceDescriptor::default(), None),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let size = window.inner_size();
|
||||
let config = surface
|
||||
.get_default_config(&adapter, size.width, size.height)
|
||||
.unwrap();
|
||||
surface.configure(&device, &config);
|
||||
|
||||
let renderer = Renderer {
|
||||
surface,
|
||||
device,
|
||||
queue,
|
||||
};
|
||||
let renderer = Renderer::new(window.clone());
|
||||
|
||||
self.window = Some(window);
|
||||
self.renderer = Some(renderer);
|
||||
|
@ -1,5 +1,39 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use winit::window::Window;
|
||||
|
||||
pub struct Renderer {
|
||||
pub surface: wgpu::Surface<'static>,
|
||||
pub device: wgpu::Device,
|
||||
pub queue: wgpu::Queue,
|
||||
}
|
||||
|
||||
impl Renderer {
|
||||
pub fn new(window: Arc<Window>) -> Self {
|
||||
let instance = wgpu::Instance::default();
|
||||
let surface = instance.create_surface(window.clone()).unwrap();
|
||||
let adapter = pollster::block_on(instance.request_adapter(
|
||||
&wgpu::RequestAdapterOptions {
|
||||
compatible_surface: Some(&surface),
|
||||
..Default::default()
|
||||
},
|
||||
))
|
||||
.unwrap();
|
||||
let (device, queue) = pollster::block_on(
|
||||
adapter.request_device(&wgpu::DeviceDescriptor::default(), None),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let size = window.inner_size();
|
||||
let config = surface
|
||||
.get_default_config(&adapter, size.width, size.height)
|
||||
.unwrap();
|
||||
surface.configure(&device, &config);
|
||||
|
||||
Self {
|
||||
surface,
|
||||
device,
|
||||
queue,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user