提问人:Manuel 提问时间:11/8/2023 更新时间:11/8/2023 访问量:27
如何在 SDL2 的 rust 绑定中管理和呈现曲面?
How do I manage and present a surface in SDL2's rust bindings?
问:
我正在尝试编写一个用作白板的程序。但是,随着我继续画画,程序必须跟踪越来越多的点,这会减慢程序的速度并导致其滞后。
我想尝试保持帧的先前状态,并且只绘制我添加的任何新点。
这是我的程序的骨架:
#[derive(Copy, Clone, PartialEq, Eq)]
struct Center {
point: Point,
radius: i32,
}
fn main() {
//...
let mut canvas = window.into_canvas().build().unwrap();
let mut points: Vec<Center> = Vec::new();
'running: loop {
for event in event_pump.poll_iter() {
match event {
// other events here, like quit
Event::MouseMotion {
x, y, mousestate, ..
} => 'draw: {
// here, I add new points if the mouse is held
}
canvas.set_draw_color(Color::RGB(255, 255, 255)); // make the background white
canvas.clear();
canvas.set_draw_color(Color::RGB(0, 0, 0));
draw_centers(&mut canvas, &points);
canvas.present();
}
我试过不调用每一帧,但这只会使整个窗口变黑。canvas.clear()
答: 暂无答案
评论
canvas.set_draw_color(Color::RGB(255, 255, 255))
canvas.clear()