| Index: Source/core/svg/SVGFEConvolveMatrixElement.cpp
|
| diff --git a/Source/core/svg/SVGFEConvolveMatrixElement.cpp b/Source/core/svg/SVGFEConvolveMatrixElement.cpp
|
| index 7fff7f6395fcf647a3676f681a1b4ce0a039e97b..4e712ac4ae82a5cbe9c36a3e539bd035e928f4a7 100644
|
| --- a/Source/core/svg/SVGFEConvolveMatrixElement.cpp
|
| +++ b/Source/core/svg/SVGFEConvolveMatrixElement.cpp
|
| @@ -44,7 +44,6 @@ DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetYAttr, Targe
|
| DEFINE_ANIMATED_ENUMERATION(SVGFEConvolveMatrixElement, SVGNames::edgeModeAttr, EdgeMode, edgeMode, EdgeModeType)
|
| DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::kernelUnitLengthAttr, kernelUnitLengthXIdentifier(), KernelUnitLengthX, kernelUnitLengthX)
|
| DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::kernelUnitLengthAttr, kernelUnitLengthYIdentifier(), KernelUnitLengthY, kernelUnitLengthY)
|
| -DEFINE_ANIMATED_BOOLEAN(SVGFEConvolveMatrixElement, SVGNames::preserveAlphaAttr, PreserveAlpha, preserveAlpha)
|
|
|
| BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEConvolveMatrixElement)
|
| REGISTER_LOCAL_ANIMATED_PROPERTY(in1)
|
| @@ -58,15 +57,18 @@ BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEConvolveMatrixElement)
|
| REGISTER_LOCAL_ANIMATED_PROPERTY(edgeMode)
|
| REGISTER_LOCAL_ANIMATED_PROPERTY(kernelUnitLengthX)
|
| REGISTER_LOCAL_ANIMATED_PROPERTY(kernelUnitLengthY)
|
| - REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAlpha)
|
| REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes)
|
| END_REGISTER_ANIMATED_PROPERTIES
|
|
|
| inline SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(Document& document)
|
| : SVGFilterPrimitiveStandardAttributes(SVGNames::feConvolveMatrixTag, document)
|
| + , m_preserveAlpha(SVGAnimatedBoolean::create(this, SVGNames::preserveAlphaAttr, SVGBoolean::create()))
|
| , m_edgeMode(EDGEMODE_DUPLICATE)
|
| {
|
| ScriptWrappable::init(this);
|
| +
|
| + addToPropertyMap(m_preserveAlpha);
|
| +
|
| registerAnimatedPropertiesForSVGFEConvolveMatrixElement();
|
| }
|
|
|
| @@ -201,14 +203,9 @@ void SVGFEConvolveMatrixElement::parseAttribute(const QualifiedName& name, const
|
| }
|
|
|
| if (name == SVGNames::preserveAlphaAttr) {
|
| - if (value == "true")
|
| - setPreserveAlphaBaseValue(true);
|
| - else if (value == "false")
|
| - setPreserveAlphaBaseValue(false);
|
| - else
|
| - document().accessSVGExtensions()->reportWarning(
|
| - "feConvolveMatrix: problem parsing preserveAlphaAttr=\"" + value
|
| - + "\". Filtered element will not be displayed.");
|
| + SVGParsingError parseError = NoError;
|
| + m_preserveAlpha->setBaseValueAsString(value, parseError);
|
| + reportAttributeParsingError(parseError, name, value);
|
| return;
|
| }
|
|
|
| @@ -231,7 +228,7 @@ bool SVGFEConvolveMatrixElement::setFilterEffectAttribute(FilterEffect* effect,
|
| if (attrName == SVGNames::kernelUnitLengthAttr)
|
| return convolveMatrix->setKernelUnitLength(FloatPoint(kernelUnitLengthXCurrentValue(), kernelUnitLengthYCurrentValue()));
|
| if (attrName == SVGNames::preserveAlphaAttr)
|
| - return convolveMatrix->setPreserveAlpha(preserveAlphaCurrentValue());
|
| + return convolveMatrix->setPreserveAlpha(m_preserveAlpha->currentValue()->value());
|
|
|
| ASSERT_NOT_REACHED();
|
| return false;
|
| @@ -339,7 +336,7 @@ PassRefPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* fil
|
| RefPtr<FilterEffect> effect = FEConvolveMatrix::create(filter,
|
| IntSize(orderXValue, orderYValue), divisorValue,
|
| biasCurrentValue(), IntPoint(targetXValue, targetYValue), edgeModeCurrentValue(),
|
| - FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), preserveAlphaCurrentValue(), kernelMatrix.toFloatVector());
|
| + FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), m_preserveAlpha->currentValue()->value(), kernelMatrix.toFloatVector());
|
| effect->inputEffects().append(input1);
|
| return effect.release();
|
| }
|
|
|