[cairo] Redoing SOURCE and CLEAR
behdad at cs.toronto.edu
Wed Aug 17 09:38:02 PDT 2005
On Wed, 17 Aug 2005, Owen Taylor wrote:
> On Wed, 2005-08-17 at 11:55 -0400, Behdad Esfahbod wrote:
> - What is useful for people
> - What makes sense to people
So far I've been escaping from understanding what's going on by
not touching cairo_set_operator at all, and that's what people
need most of the time! The question here is what do SOURCE with
your proposed definition would offer that OVER doesn't offer.
> (And it's tailoring, unless I'm doing it. :-)
Sorry about that. Silly me. :)
> > Moreover, it reduces SOURCE to IN somehow, but a broken one. The
> > fact that it's differentiating between a alpha of 0 in the
> > source, and a point ouside the mask is confusing.
> I don't see the relationship between the new SOURCE and IN.
> But what's *wrong* with doing:
> cr = cairo_create (canvas);
> cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
> cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
> cairo_set_source_rgba (cr, 0, 0, 0);
> cairo_rectangle (cr, x, y, width, height);
> cairo_fill (cr);
> cairo_destroy (cr);
> Yes, it touches the pixels in the rectangle twice, but it's not
> going to be a big performance difference. And it's more apparent
> what it is doing.
Ok, then what's wrong with simply using OVER? In other words,
why should people use SOURCE at all?
> (Note also that create_similar() clears the surface, for better
> or worse.)
I personally have been keeping my scratch buffers around and only
recreate on resize...
More information about the cairo