X-Git-Url: https://codewiz.org/gitweb?p=mandelwow.git;a=blobdiff_plain;f=main.rs;h=b492676cfb51527ce537c9c86679b735a44101af;hp=395809257143d0935f85bcfccc594b93f7ea0298;hb=595fa92af6e72783e2b7624f5b8e5f5418d4e757;hpb=e32ed61e109663b6bd6e418670c5e5b6771bf568 diff --git a/main.rs b/main.rs index 3958092..b492676 100644 --- a/main.rs +++ b/main.rs @@ -14,6 +14,7 @@ use glutin::Event::KeyboardInput; use glutin::VirtualKeyCode; use mandelwow_lib::*; use std::f32::consts::PI; +use std::time::{Duration, Instant}; #[cfg(target_os = "emscripten")] use std::os::raw::{c_int, c_void}; @@ -125,8 +126,13 @@ fn main() { } } + let mut frame_cnt = 0; + let mut last_report_time = Instant::now(); + let mut last_report_frame_cnt = 0; + set_main_loop_callback(|| { camera.update(); + let perspview = camera.get_perspview(); if !pause { // Increment time @@ -169,8 +175,7 @@ fn main() { let model = Matrix4::from_translation(sea[x][z] + Vector3 {x: 0., y: wave, z: 0.}); let uniforms = uniform! { model: array4x4(model), - view: camera.get_view(), - perspective: camera.get_perspective(), + perspview: perspview, }; shaded_cube.draw(&mut frame, &uniforms); } @@ -218,6 +223,16 @@ fn main() { } } + frame_cnt += 1; + let now = Instant::now(); + if now - last_report_time > Duration::from_secs(10) { + let fps = (frame_cnt - last_report_frame_cnt) as f32 / + (now - last_report_time).as_secs() as f32; + println!("fps={}", fps); + last_report_time = now; + last_report_frame_cnt = frame_cnt; + } + support::Action::Continue }); }