Filter Effects: Filter primitive subregion clarification

If the filter primitive subregion is set, should filters access pixels from
the input image from outside the subregion? Here's a fiddle to show what I
mean: http://jsfiddle.net/VFccX/.  It contains a 100x100 green box inset
within a 200x200 red box. It is blurred by an feGaussianBlur with a filter
primitive subregion set to the 100x100 interior box.

On Chrome, the result contains no red. On Firefox, Safari and IE10, the
result contains red bleeding at the corners.

According to my reading of the spec:

‘x’ <http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveXAttribute>,
‘y’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveYAttribute>
, ‘width’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveWidthAttribute>
 and ‘height’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveHeightAttribute>
act
as a hard clip clipping rectangle on both the filter primitive's input
image(s) and the filter primitive result.
it sounds like the input image should be (semantically) clipped, so that
none of the pixels outside the image should be accessed.

On a related note, the subsequent paragraph is a bit confusing:

All intermediate offscreens are defined to not exceed the intersection of
‘x’ <http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveXAttribute>,
‘y’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveYAttribute>
, ‘width’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveWidthAttribute>
 and ‘height’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveHeightAttribute>
with
the filter region<http://www.w3.org/TR/SVG11/filters.html#FilterEffectsRegion>.
The filter region<http://www.w3.org/TR/SVG11/filters.html#FilterEffectsRegion>
and
any of the ‘x’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveXAttribute>
, ‘y’ <http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveYAttribute>,
‘width’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveWidthAttribute>
and ‘height’<http://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveHeightAttribute>
subregions
are to be set up such that all offscreens are made big enough to
accommodate any pixels which even partly intersect with either the filter
region <http://www.w3.org/TR/SVG11/filters.html#FilterEffectsRegion> or the
x,y,width,height subregions.
The last sentence here seems to contradict the first: if the offscreen is
not to exceed the intersection of the subregion and filter region, how can
it accommodate pixels which "intersect with either the filter region or the
subregion" (sounds more like a union)?

Thanks for any insight,

Stephen

Received on Friday, 9 August 2013 16:52:52 UTC