Fix submission in integration example

This commit is contained in:
Héctor Ramón Jiménez 2025-04-03 20:36:30 +02:00
parent 33d20763c8
commit cd27dae8ab
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -35,9 +35,10 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
Loading,
Ready {
window: Arc<winit::window::Window>,
queue: wgpu::Queue,
device: wgpu::Device,
surface: wgpu::Surface<'static>,
format: wgpu::TextureFormat,
device: wgpu::Device,
renderer: Renderer,
scene: Scene,
state: program::State<Controls>,
@ -143,10 +144,18 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
// Initialize iced
let mut debug = Debug::new();
let engine =
Engine::new(&adapter, device.clone(), queue, format, None);
let mut renderer =
Renderer::new(engine, Font::default(), Pixels::from(16));
let mut renderer = {
let engine = Engine::new(
&adapter,
device.clone(),
queue.clone(),
format,
None,
);
Renderer::new(engine, Font::default(), Pixels::from(16))
};
let state = program::State::new(
controls,
@ -160,10 +169,11 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
*self = Self::Ready {
window,
device,
queue,
renderer,
surface,
format,
device,
renderer,
scene,
state,
cursor_position: None,
@ -185,6 +195,7 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
let Self::Ready {
window,
device,
queue,
surface,
format,
renderer,
@ -230,18 +241,18 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
match surface.get_current_texture() {
Ok(frame) => {
let mut encoder = device.create_command_encoder(
&wgpu::CommandEncoderDescriptor { label: None },
);
let program = state.program();
let view = frame.texture.create_view(
&wgpu::TextureViewDescriptor::default(),
);
let mut encoder = device.create_command_encoder(
&wgpu::CommandEncoderDescriptor { label: None },
);
{
// We clear the frame
// Clear the frame
let mut render_pass = Scene::clear(
&view,
&mut encoder,
@ -252,7 +263,10 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
scene.draw(&mut render_pass);
}
// And then iced on top
// Submit the scene
queue.submit([encoder.finish()]);
// Draw iced on top
renderer.present(
None,
frame.texture.format(),
@ -261,7 +275,7 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
&debug.overlay(),
);
// Then we submit the work
// Present the frame
frame.present();
// Update the mouse cursor