// 'mode' attribute - default is 'normal'
CompositeRule rule = convertMode(filterElement);
// 'in' attribute
Filter in = getIn(filterElement,
filteredElement,
filteredNode,
inputFilter,
filterMap,
ctx);
if (in == null) {
return null; // disable the filter
}
// 'in2' attribute - required
Filter in2 = getIn2(filterElement,
filteredElement,
filteredNode,
inputFilter,
filterMap,
ctx);
if (in2 == null) {
return null; // disable the filter
}
Rectangle2D defaultRegion;
defaultRegion = (Rectangle2D)in.getBounds2D().clone();
defaultRegion.add(in2.getBounds2D());
// get filter primitive chain region
Rectangle2D primitiveRegion
= SVGUtilities.convertFilterPrimitiveRegion(filterElement,
filteredElement,
filteredNode,
defaultRegion,
filterRegion,
ctx);
// build the blend filter
List srcs = new ArrayList(2);
srcs.add(in2);
srcs.add(in);
Filter filter = new CompositeRable8Bit(srcs, rule, true);
// handle the 'color-interpolation-filters' property
handleColorInterpolationFilters(filter, filterElement);
filter = new PadRable8Bit(filter, primitiveRegion, PadMode.ZERO_PAD);