restructure control flow of uw8-window to hopefully make it work on MacOS

This commit is contained in:
2022-07-21 08:51:17 +02:00
parent 57a92ba79a
commit 499bb02f2c
6 changed files with 250 additions and 267 deletions

View File

@@ -4,7 +4,7 @@ fn main() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
let mut framebuffer = vec![0u8; 320 * 240];
let start_time = Instant::now();
let mut start_time = Instant::now();
let mut palette = vec![0u32; 256];
for i in 0..256 {
@@ -18,11 +18,16 @@ fn main() {
let mut fps_start = Instant::now();
let mut fps_counter = 0;
uw8_window::run(true, move |gpu_framebuffer, _gamepads, _reset| {
for _ in 0..1 {
draw_frame(&mut framebuffer, start_time.elapsed().as_secs_f32());
let mut window = uw8_window::Window::new(true).unwrap();
while window.is_open() {
let input = window.begin_frame();
if input.reset {
start_time = Instant::now();
}
gpu_framebuffer.update(&framebuffer, bytemuck::cast_slice(&palette));
draw_frame(&mut framebuffer, start_time.elapsed().as_secs_f32());
window.end_frame(&framebuffer, bytemuck::cast_slice(&palette), Instant::now());
fps_counter += 1;
let elapsed = fps_start.elapsed().as_secs_f32();
if elapsed >= 1.0 {
@@ -30,8 +35,7 @@ fn main() {
fps_start = Instant::now();
fps_counter = 0;
}
Instant::now()
});
}
}
fn draw_frame(framebuffer: &mut [u8], time: f32) {