Re: [css-filters-2] Clarify 'backdrop-filter' in circular case

On Thu, Aug 13, 2015 at 1:44 PM, Tab Atkins Jr. <jackalmage@gmail.com>
wrote:

> In our recent Intent To Implement for backdrop-filter, Enne brought up
> a case that is seemingly circular:
>
> <body>
>   AAA
>   <div style="opacity: .5">
>     BBB
>     <div style="backdrop-filter: blur(5px)">foo</div>
>   </div>
> </body>
>
> What does BBB look like blur filter?  Is it half-opaque, as if you'd
> already done all compositing of its ancestors?  If that's the case,
> then when you composite the page for real, it'll get double-opacity'd,
> right?
>
> Or is it fully opaque, like you'd pretended the opacity effect doesn't
> yet apply for the purpose of calculating the backdrop?  Presumably
> this would mean recursively unwrapping any effects up to the root?
>
> Or is there something else going on?  The spec isn't written clearly
> enough for me to figure this out, but *maybe* the backdrop only goes
> to the nearest isolation context, so the backdrop in this case would
> just be BBB?
>

You execute an extra pass where you render everything upto your nearest
sibling, but you ignore any opacity, filters and compositiing.
Then you use this as input to the backdrop filter.
http://www.w3.org/TR/SVG/filters.html#EnableBackgroundProperty describes
the algorithm in more details.

This is the same problem that we faced when we planning on introducing
non-isolated blending. https://codereview.chromium.org/23455060/#msg33
describes the notes from enne on how to implement this.

Received on Thursday, 13 August 2015 21:20:35 UTC