Re: Utility of background-composite and background-blend-mode?

On Monday 2013-03-04 22:45 -0800, Rik Cabanier wrote:
> If you follow the spec [1], each background image is drawn during the step
> '2. background image of element'. The background that is available for the
> blend operation at that time is everything up to an ancestor that created a
> stacking context.

So CSS 2.1 doesn't say any such thing about what background is
available for blending; it only describes the order that things are
painted.

However, what I think you're proposing -- that the background
available for blending is based on what's in the stacking context --
seems like it's potentially quite expensive, in that it would force
implementations to use a separate graphical buffer for anything that
creates a stacking context, or at the very least anything that
creates a stacking context and has a descendant, in the same
stacking context, with background-blend-mode.  I think it would also
require that implementations *not* use a separate graphical buffer
for anything in that stacking context that might end up underneath
the background, since any such elements would need to be
incorporated into the buffer in order to be composited against.

I don't believe your proposed patches to Firefox [2] do this.

It's also, as far as I can tell, not specified in the spec [3].


I think it would make much more sense to limit the first level of a
compositing and blending specification to the compositing/blending
of elements that establish stacking contexts (and are therefore
atomic).  This can include adding new features that cause the
creation of stacking contexts when the features are used.

-David

> 1: http://www.w3.org/TR/CSS21/zindex.html
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=841601
[3] https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#background-blend-mode

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                           http://www.mozilla.org/   𝄂

Received on Wednesday, 6 March 2013 07:05:55 UTC