如何在不使用 png 图像的情况下清洁开罗表面区域

cxl*_*cxl 2 gtk cairo

这将清洁整个表面:

void surface_clean(Mpaint *mpaint)
{
    mpaint->surface=cairo_image_surface_create_from_png("cxl.cache.png");
}
Run Code Online (Sandbox Code Playgroud)

我只想以、、和cairo_surface_t方式清洁该区域。xywidthheight

有没有这方面的接口?

小智 6

检查CAIRO_OPERATOR_* 这里。下面是一些 PyCairo 展示了如何使用它:

ctx.set_source_rgba(0.0, 0.0, 0.0, 0.0)
ctx.set_operator(cairo.OPERATOR_CLEAR)
ctx.rectangle(x, y, width, height)
ctx.paint_with_alpha(1.0)
Run Code Online (Sandbox Code Playgroud)