[cairo] How to draw a inverted area?

Magicloud Magiclouds magicloud.magiclouds at gmail.com
Mon Jun 7 04:44:21 PDT 2010


I cannot find that operator. I think you meant cairo_operator_t?
typedef enum _cairo_operator {
    CAIRO_OPERATOR_CLEAR,

    CAIRO_OPERATOR_SOURCE,
    CAIRO_OPERATOR_OVER,
    CAIRO_OPERATOR_IN,
    CAIRO_OPERATOR_OUT,
    CAIRO_OPERATOR_ATOP,

    CAIRO_OPERATOR_DEST,
    CAIRO_OPERATOR_DEST_OVER,
    CAIRO_OPERATOR_DEST_IN,
    CAIRO_OPERATOR_DEST_OUT,
    CAIRO_OPERATOR_DEST_ATOP,

    CAIRO_OPERATOR_XOR,
    CAIRO_OPERATOR_ADD,
    CAIRO_OPERATOR_SATURATE
} cairo_operator_t;

On Mon, Jun 7, 2010 at 6:03 PM, Carlos Garcia Campos <carlosgc at gnome.org> wrote:
> Excerpts from Magicloud Magiclouds's message of lun jun 07 09:44:10 +0200 2010:
>> Hi, sorry the subject is not clear.
>> I mean that, first I draw something in the cairo context, then I draw
>> a circle in it, which acts like a invert mask. All colors in its area
>> are inverted.
>
> I think filling with white with the difference operator is what you
> want
>
> cairo_set_source_rgb (cr, 1., 1., 1.);
> cairo_set_operator (cr, CAIRO_OPERATOR_DIFFERENCE);
> cairo_fill(cr);
>
>> I thought xor operator helped, but it did not....
>> Thanks.
>
> Regards,
> --
> Carlos Garcia Campos
> PGP key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x523E6462
>



-- 
竹密岂妨流水过
山高哪阻野云飞


More information about the cairo mailing list