我正在尝试使用 rust 中的 glium 制作游戏循环。我的目标是让屏幕每秒重绘 60 次。使用我拥有的当前事件循环代码,只有在窗口大小发生变化时才会重绘框架。我在 glutin docs 中读到,我需要在某个地方调用 request_redraw,但我不确定如何/在哪里。到目前为止,这是我的代码:
event_loop.run(move |event, _target, control_flow| match event {
Event::LoopDestroyed => return,
Event::WindowEvent {
window_id: _window_id,
event: winevent,
} => match winevent {
WindowEvent::Resized(physical_size) => display.gl_window().resize(physical_size),
WindowEvent::CloseRequested => {
*control_flow = ControlFlow::Exit;
}
_ => {}
},
Event::RedrawRequested(_window_id) => {
let mut target = display.draw();
target.clear_color_srgb(rng.gen(), rng.gen(), rng.gen(), 1.0);
target.finish().unwrap();
}
_ => {}
});