Re: separating compositing and blending

Rik Cabanier <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CAGN7qDBn34_Uiud_BZrNxBeJnHhX7k49QwabBktg6zzRDzvxxg@mail.gmail.com>
Great!
Yes, that would definitely work.

The work I've done so far on Mozilla and WebKit assumes that there will be
a setter for blending and one for compositing.
This would fit in nicely.

Rik

On Sat, Jan 5, 2013 at 11:26 PM, Adrian Johnson <[email protected]>wrote:

> On 21/10/12 02:09, Rik Cabanier wrote:
> > All,
> >
> > the current cairo compositing operators combine blending and compositing
> > [1].
> > This means that if you do an 'overlay', the result of the 'overlay'
> > blending formula will always be composited with 'src-over'.
> >
> > Nikos (from Canon) and I (from Adobe) have a proposed working draft
> > that allows people to specify blending and compositing in CSS [2]. As
> > an example, this would allow you to do a 'screen' blend on an HTML
> > element with a 'src' compositing mode. This separation could also be
> > extended to canvas.
> >
> > Looking at the Cairo architecture, it seems that this could be added
> > by adding an optional blend mode operator to 'set_operator'.
> > What do people think?
>
> We can't change the cairo_set_operator function since this would break
> API compatibility. We could add a new function:
>
> cairo_set_blend_mode (cairo_r *cr, cairo_blend_mode_t bm);
>
> typedef enum {
>     CAIRO_BLEND_MODE_NORMAL,
>     CAIRO_BLEND_MODE_MULTIPLY,
>     CAIRO_BLEND_MODE_SCREEN,
>     CAIRO_BLEND_MODE_OVERLAY,
>     CAIRO_BLEND_MODE_DARKEN,
>     CAIRO_BLEND_MODE_LIGHTEN,
>     CAIRO_BLEND_MODE_COLOR_DODGE,
>     CAIRO_BLEND_MODE_COLOR_BURN,
>     CAIRO_BLEND_MODE_HARD_LIGHT,
>     CAIRO_BLEND_MODE_SOFT_LIGHT,
>     CAIRO_BLEND_MODE_DIFFERENCE,
>     CAIRO_BLEND_MODE_EXCLUSION,
>     CAIRO_BLEND_MODE_HSL_HUE,
>     CAIRO_BLEND_MODE_HSL_SATURATION,
>     CAIRO_BLEND_MODE_HSL_COLOR,
>     CAIRO_BLEND_MODE_HSL_LUMINOSITY
> } cairo_blend_mode_t;
>
> and specify that setting a blend mode (the enum range
> CAIRO_OPERATOR_MULTIPLY..CAIRO_OPERATOR_HSL_LUMINOSITY) in
> cairo_set_operator ignores the blend mode set by cairo_set_blend_mode
> and always uses Normal.
>
> >
> > Rik
> >
> > 1: http://cairographics.org/operators/
> > 2: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html
> > 3: http://cairographics.org/manual/cairo-cairo-t.html#cairo-set-operator
> >
> >
>
>

-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.