[css compositing] clipping and isolation

The blending specification currently calls out that clipping should
introduce isolation [1].
So if you have content as follows:

<circle id="a"/>
<g clip-path="...">

<circle id="b" style="mix-blend-mode:difference"/>

</g>

circle 'b' won't blend with circle 'a'.

I added this because we were worried that graphics libraries wouldn't not
be able to support this.
Now that we started implementing the feature, it turns out that this
limitation is not needed when the browser uses the clipping capabilities of
the underlying graphics library.

For 'simple' clips (that are the vast majority), all browsers use the
clipping code.
However, for more complex clips, certain browsers turn the clip into a mask
and this will execute a different code path that does isolate.

There are three options (from my least to most desired):
1. keep behavior as specified in the spec.
2. specify that complex clips cause isolation but not simple clips.
3. specify that clipping never isolates. Browsers will need to find a way
(ie planarization/path collapsing) to keep using the clipping code path.

Thoughts?

1: http://www.w3.org/TR/compositing-1/#csscompositingrules_SVG

Received on Wednesday, 7 August 2013 09:05:50 UTC