我在锈蚀中使用xcb
和cairo
绑定在X上绘制一些东西。然后我使用一个函数绘制多边形(下面的代码):
fn polygon(&self, points: &[Position], color: Color) {
if points.len() >= 2 {
let context = cairo::Context::new(&self.cairo_surface);
context.set_source_rgb(color.r, color.g, color.b);
context.move_to(points[0].x as f64, points[0].y as f64);
for i in 1..(points.len()) {
context.line_to(points[i].x as f64, points[i].y as f64);
}
context.close_path();
context.fill();
}
}
绘制后,我会冲洗开罗表面和xcb连接。但是,直到我移动窗口或切换窗口(使用Alt + Tab),多边形才会出现。
我还使用pangocairo
在其上绘制文本。没问题。