Skip to content

Commit 51b3fd9

Browse files
committed
Merge remote-tracking branch 'pwfff/pwf/pub-render-to'
2 parents b9d6fb5 + c7b45a6 commit 51b3fd9

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/lib.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use context::WgpuContext;
1010
use lazy_regex::regex;
1111
use num::Integer;
1212
use pp::{SourceMap, WGSLError};
13+
use wgpu::{Maintain, SubmissionIndex};
1314
use std::collections::HashMap;
1415
use std::mem::{size_of, take};
1516
use std::sync::atomic::{AtomicBool, Ordering};
@@ -156,7 +157,8 @@ impl WgpuToyRenderer {
156157
SurfaceError::Timeout => log::warn!("Surface Timeout"),
157158
},
158159
Ok(f) => {
159-
let staging_buffer = self.render_to(f);
160+
let (staging_buffer, _) = self.render_to(&f);
161+
f.present();
160162
wasm_bindgen_futures::spawn_local(Self::postrender(
161163
staging_buffer,
162164
self.screen_width * self.screen_height,
@@ -184,7 +186,8 @@ impl WgpuToyRenderer {
184186
SurfaceError::Timeout => log::warn!("Surface Timeout"),
185187
},
186188
Ok(f) => {
187-
let staging_buffer = self.render_to(f);
189+
let (staging_buffer, _) = self.render_to(&f);
190+
f.present();
188191
Self::postrender(
189192
staging_buffer,
190193
self.screen_width * self.screen_height,
@@ -195,7 +198,7 @@ impl WgpuToyRenderer {
195198
}
196199
}
197200

198-
fn render_to(&mut self, frame: wgpu::SurfaceTexture) -> Option<wgpu::Buffer> {
201+
pub fn render_to(&mut self, frame: &wgpu::SurfaceTexture) -> (Option<wgpu::Buffer>, SubmissionIndex) {
199202
let mut encoder = self.wgpu.device.create_command_encoder(&Default::default());
200203
self.bindings.stage(&self.wgpu.queue);
201204
if self.bindings.time.host.frame % STATS_PERIOD == 0 {
@@ -305,9 +308,9 @@ impl WgpuToyRenderer {
305308
&mut encoder,
306309
&frame.texture.create_view(&Default::default()),
307310
);
308-
self.wgpu.queue.submit(Some(encoder.finish()));
309-
frame.present();
310-
staging_buffer
311+
312+
let i = self.wgpu.queue.submit(Some(encoder.finish()));
313+
(staging_buffer, i)
311314
}
312315

313316
async fn postrender(

0 commit comments

Comments
 (0)