我正在使用 cairo 绘制一些弧线,这是函数。
cairo_t* drawCircle(cairo_surface_t *container, int x, int y, int r, int cr, int cg, int cb, int ca)
{
cairo_t *cairoInstance; //Create instance
cairoInstance = cairo_create(container);
cairo_set_source_rgba(cairoInstance, 0,0,1,0.5);
cairo_arc(cairoInstance, x, y, r, 0, 2*M_PI);
cairo_stroke_preserve(cairoInstance);
cairo_fill(cairoInstance);
gtk_widget_queue_draw_area(GTK_WIDGET(window), 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); //Redraws the window
return cairoInstance;
}
第一个问题:当我稍后更改 source_rgba 然后填充时,它会填充以前的颜色。有没有办法在用不同的颜色再次填充之前重置填充?
其次,如果我想稍后取消渲染/删除弧/圆,我该怎么做?我尝试使用 cairo_destroy 但它似乎破坏了实例而不删除实际对象。
谢谢!