Split local state from Engine in iced_wgpu

This commit is contained in:
Héctor Ramón Jiménez 2025-03-24 01:28:39 +01:00
parent 4b075b9731
commit 576dd22733
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
22 changed files with 768 additions and 641 deletions

View file

@ -35,11 +35,9 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
Loading,
Ready {
window: Arc<winit::window::Window>,
device: wgpu::Device,
queue: wgpu::Queue,
surface: wgpu::Surface<'static>,
format: wgpu::TextureFormat,
engine: Engine,
device: wgpu::Device,
renderer: Renderer,
scene: Scene,
state: program::State<Controls>,
@ -146,13 +144,9 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
// Initialize iced
let mut debug = Debug::new();
let engine =
Engine::new(&adapter, &device, &queue, format, None);
let mut renderer = Renderer::new(
&device,
&engine,
Font::default(),
Pixels::from(16),
);
Engine::new(&adapter, device.clone(), queue, format, None);
let mut renderer =
Renderer::new(engine, Font::default(), Pixels::from(16));
let state = program::State::new(
controls,
@ -166,11 +160,9 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
*self = Self::Ready {
window,
device,
queue,
surface,
format,
engine,
device,
renderer,
scene,
state,
@ -193,10 +185,8 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
let Self::Ready {
window,
device,
queue,
surface,
format,
engine,
renderer,
scene,
state,
@ -264,10 +254,6 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
// And then iced on top
renderer.present(
engine,
device,
queue,
&mut encoder,
None,
frame.texture.format(),
&view,
@ -276,7 +262,6 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
);
// Then we submit the work
engine.submit(queue, encoder);
frame.present();
// Update the mouse cursor

View file

@ -1 +1 @@
0e355b080ad33905145e9f70a3b29e2481197c8fc8f42491acd5358238ebbd5f
804a1bb6d49e3b3158463202960447d9e7820b967280f41dd0c34c00d3edf2c3