1
0
mirror of https://github.com/emilk/egui.git synced 2026-08-30 13:20:05 -04:00

Kinetic windows

This commit is contained in:
Emil Ernerfeldt
2020-05-03 13:28:47 +02:00
parent bfbb669d02
commit 45564f952b
12 changed files with 398 additions and 229 deletions

View File

@@ -26,7 +26,7 @@ pub struct State {
emigui: Emigui,
webgl_painter: emigui_wasm::webgl::Painter,
frame_times: std::collections::VecDeque<f64>,
frame_times: emigui::MovementTracker<f32>,
}
impl State {
@@ -37,7 +37,7 @@ impl State {
example_app: Default::default(),
emigui,
webgl_painter: emigui_wasm::webgl::Painter::new(canvas_id)?,
frame_times: Default::default(),
frame_times: emigui::MovementTracker::new(1000, 1.0),
})
}
@@ -69,15 +69,17 @@ impl State {
region.add_label(self.webgl_painter.debug_info());
});
let mean_frame_time = if self.frame_times.is_empty() {
0.0
} else {
self.frame_times.iter().sum::<f64>() / (self.frame_times.len() as f64)
};
region.add(
label!(
"Frame time: {:.1} ms (excludes painting)",
1e3 * mean_frame_time
"CPU usage: {:.2} ms (excludes painting)",
1e3 * self.frame_times.average().unwrap_or_default()
)
.text_style(TextStyle::Monospace),
);
region.add(
label!(
"FPS: {:.1}",
1.0 / self.frame_times.mean_time_interval().unwrap_or_default()
)
.text_style(TextStyle::Monospace),
);
@@ -101,10 +103,8 @@ impl State {
let bg_color = srgba(0, 0, 0, 0); // Use background css color.
let (output, batches) = self.emigui.end_frame();
self.frame_times.push_back(now_sec() - everything_start);
while self.frame_times.len() > 30 {
self.frame_times.pop_front();
}
let now = now_sec();
self.frame_times.add(now, (now - everything_start) as f32);
self.webgl_painter.paint_batches(
bg_color,