Skip to content

Commit cd27dae

Browse files
committed
Fix submission in integration example
1 parent 33d2076 commit cd27dae

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

examples/integration/src/main.rs

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
3535
Loading,
3636
Ready {
3737
window: Arc<winit::window::Window>,
38+
queue: wgpu::Queue,
39+
device: wgpu::Device,
3840
surface: wgpu::Surface<'static>,
3941
format: wgpu::TextureFormat,
40-
device: wgpu::Device,
4142
renderer: Renderer,
4243
scene: Scene,
4344
state: program::State<Controls>,
@@ -143,10 +144,18 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
143144

144145
// Initialize iced
145146
let mut debug = Debug::new();
146-
let engine =
147-
Engine::new(&adapter, device.clone(), queue, format, None);
148-
let mut renderer =
149-
Renderer::new(engine, Font::default(), Pixels::from(16));
147+
148+
let mut renderer = {
149+
let engine = Engine::new(
150+
&adapter,
151+
device.clone(),
152+
queue.clone(),
153+
format,
154+
None,
155+
);
156+
157+
Renderer::new(engine, Font::default(), Pixels::from(16))
158+
};
150159

151160
let state = program::State::new(
152161
controls,
@@ -160,10 +169,11 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
160169

161170
*self = Self::Ready {
162171
window,
163-
surface,
164-
format,
165172
device,
173+
queue,
166174
renderer,
175+
surface,
176+
format,
167177
scene,
168178
state,
169179
cursor_position: None,
@@ -185,6 +195,7 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
185195
let Self::Ready {
186196
window,
187197
device,
198+
queue,
188199
surface,
189200
format,
190201
renderer,
@@ -230,18 +241,18 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
230241

231242
match surface.get_current_texture() {
232243
Ok(frame) => {
233-
let mut encoder = device.create_command_encoder(
234-
&wgpu::CommandEncoderDescriptor { label: None },
235-
);
236-
237244
let program = state.program();
238245

239246
let view = frame.texture.create_view(
240247
&wgpu::TextureViewDescriptor::default(),
241248
);
242249

250+
let mut encoder = device.create_command_encoder(
251+
&wgpu::CommandEncoderDescriptor { label: None },
252+
);
253+
243254
{
244-
// We clear the frame
255+
// Clear the frame
245256
let mut render_pass = Scene::clear(
246257
&view,
247258
&mut encoder,
@@ -252,7 +263,10 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
252263
scene.draw(&mut render_pass);
253264
}
254265

255-
// And then iced on top
266+
// Submit the scene
267+
queue.submit([encoder.finish()]);
268+
269+
// Draw iced on top
256270
renderer.present(
257271
None,
258272
frame.texture.format(),
@@ -261,7 +275,7 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
261275
&debug.overlay(),
262276
);
263277

264-
// Then we submit the work
278+
// Present the frame
265279
frame.present();
266280

267281
// Update the mouse cursor

0 commit comments

Comments
 (0)