Redesign iced_wgpu layering architecture

This commit is contained in:
Héctor Ramón Jiménez 2024-04-03 21:07:54 +02:00
parent 99a904112c
commit b05e61f5c8
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
36 changed files with 2781 additions and 2048 deletions

View file

@ -5,12 +5,12 @@ use controls::Controls;
use scene::Scene;
use iced_wgpu::graphics::Viewport;
use iced_wgpu::{wgpu, Backend, Renderer, Settings};
use iced_wgpu::{wgpu, Engine, Renderer, Settings};
use iced_winit::conversion;
use iced_winit::core::mouse;
use iced_winit::core::renderer;
use iced_winit::core::window;
use iced_winit::core::{Color, Font, Pixels, Size, Theme};
use iced_winit::core::{Color, Size, Theme};
use iced_winit::futures;
use iced_winit::runtime::program;
use iced_winit::runtime::Debug;
@ -155,11 +155,8 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize iced
let mut debug = Debug::new();
let mut renderer = Renderer::new(
Backend::new(&adapter, &device, &queue, Settings::default(), format),
Font::default(),
Pixels(16.0),
);
let mut engine = Engine::new(&adapter, &device, &queue, format, None);
let mut renderer = Renderer::new(Settings::default(), &engine);
let mut state = program::State::new(
controls,
@ -228,19 +225,17 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
}
// And then iced on top
renderer.with_primitives(|backend, primitive| {
backend.present(
&device,
&queue,
&mut encoder,
None,
frame.texture.format(),
&view,
primitive,
&viewport,
&debug.overlay(),
);
});
renderer.present(
&mut engine,
&device,
&queue,
&mut encoder,
None,
frame.texture.format(),
&view,
&viewport,
&debug.overlay(),
);
// Then we submit the work
queue.submit(Some(encoder.finish()));