Move Renderer from per-window to per-instance
This commit is contained in:
parent
f0a2e1b57c
commit
b4da999c24
|
@ -30,7 +30,7 @@ pub struct Window {
|
|||
pub surface_config: wgpu::SurfaceConfiguration,
|
||||
pub device: Arc<wgpu::Device>,
|
||||
pub queue: Arc<wgpu::Queue>,
|
||||
pub renderer: Renderer,
|
||||
pub renderer: Arc<Renderer>,
|
||||
pub panel: Panel,
|
||||
pub last_update: Instant,
|
||||
pub cursor_pos: Vec2,
|
||||
|
@ -44,6 +44,7 @@ impl Window {
|
|||
adapter: &wgpu::Adapter,
|
||||
device: Arc<wgpu::Device>,
|
||||
queue: Arc<wgpu::Queue>,
|
||||
renderer: Arc<Renderer>,
|
||||
event_loop: &EventLoopWindowTarget<WindowMessage>,
|
||||
) -> anyhow::Result<Self> {
|
||||
let window = WindowBuilder::new().build(&event_loop)?;
|
||||
|
@ -67,8 +68,6 @@ impl Window {
|
|||
|
||||
surface.configure(&device, &surface_config);
|
||||
|
||||
let renderer = Renderer::new(device.to_owned(), queue.to_owned());
|
||||
|
||||
Ok(Self {
|
||||
window,
|
||||
surface,
|
||||
|
@ -183,6 +182,7 @@ pub struct WindowStore {
|
|||
pub adapter: wgpu::Adapter,
|
||||
pub device: Arc<wgpu::Device>,
|
||||
pub queue: Arc<wgpu::Queue>,
|
||||
pub renderer: Arc<Renderer>,
|
||||
}
|
||||
|
||||
impl WindowStore {
|
||||
|
@ -204,13 +204,18 @@ impl WindowStore {
|
|||
&wgpu::DeviceDescriptor {
|
||||
label: None,
|
||||
features: wgpu::Features::empty(),
|
||||
limits: wgpu::Limits::downlevel_defaults(),
|
||||
limits: wgpu::Limits::default(),
|
||||
},
|
||||
None,
|
||||
)
|
||||
.block_on()
|
||||
.unwrap();
|
||||
|
||||
let device = Arc::new(device);
|
||||
let queue = Arc::new(queue);
|
||||
let renderer = Renderer::new(device.to_owned(), queue.to_owned());
|
||||
let renderer = Arc::new(renderer);
|
||||
|
||||
Self {
|
||||
ipc_sender,
|
||||
ipc_to_window: Default::default(),
|
||||
|
@ -218,8 +223,9 @@ impl WindowStore {
|
|||
runtime,
|
||||
instance,
|
||||
adapter,
|
||||
device: Arc::new(device),
|
||||
queue: Arc::new(queue),
|
||||
device,
|
||||
queue,
|
||||
renderer,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -247,6 +253,7 @@ impl WindowStore {
|
|||
&self.adapter,
|
||||
self.device.to_owned(),
|
||||
self.queue.to_owned(),
|
||||
self.renderer.to_owned(),
|
||||
&event_loop,
|
||||
)?;
|
||||
let window_id = window.get_id();
|
||||
|
|
Loading…
Reference in New Issue