Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1005)

Side by Side Diff: Source/core/svg/SVGFEConvolveMatrixElement.cpp

Issue 19097005: Remove one SVG animated type special case from the bindings generator (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix the regressions Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 2 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 return; 211 return;
212 } 212 }
213 213
214 ASSERT_NOT_REACHED(); 214 ASSERT_NOT_REACHED();
215 } 215 }
216 216
217 bool SVGFEConvolveMatrixElement::setFilterEffectAttribute(FilterEffect* effect, const QualifiedName& attrName) 217 bool SVGFEConvolveMatrixElement::setFilterEffectAttribute(FilterEffect* effect, const QualifiedName& attrName)
218 { 218 {
219 FEConvolveMatrix* convolveMatrix = static_cast<FEConvolveMatrix*>(effect); 219 FEConvolveMatrix* convolveMatrix = static_cast<FEConvolveMatrix*>(effect);
220 if (attrName == SVGNames::edgeModeAttr) 220 if (attrName == SVGNames::edgeModeAttr)
221 return convolveMatrix->setEdgeMode(edgeMode()); 221 return convolveMatrix->setEdgeMode(edgeModeCurrentValue());
222 if (attrName == SVGNames::divisorAttr) 222 if (attrName == SVGNames::divisorAttr)
223 return convolveMatrix->setDivisor(divisor()); 223 return convolveMatrix->setDivisor(divisorCurrentValue());
224 if (attrName == SVGNames::biasAttr) 224 if (attrName == SVGNames::biasAttr)
225 return convolveMatrix->setBias(bias()); 225 return convolveMatrix->setBias(biasCurrentValue());
226 if (attrName == SVGNames::targetXAttr) 226 if (attrName == SVGNames::targetXAttr)
227 return convolveMatrix->setTargetOffset(IntPoint(targetX(), targetY())); 227 return convolveMatrix->setTargetOffset(IntPoint(targetXCurrentValue(), t argetYCurrentValue()));
228 if (attrName == SVGNames::targetYAttr) 228 if (attrName == SVGNames::targetYAttr)
229 return convolveMatrix->setTargetOffset(IntPoint(targetX(), targetY())); 229 return convolveMatrix->setTargetOffset(IntPoint(targetXCurrentValue(), t argetYCurrentValue()));
230 if (attrName == SVGNames::kernelUnitLengthAttr) 230 if (attrName == SVGNames::kernelUnitLengthAttr)
231 return convolveMatrix->setKernelUnitLength(FloatPoint(kernelUnitLengthX() , kernelUnitLengthY())); 231 return convolveMatrix->setKernelUnitLength(FloatPoint(kernelUnitLengthXC urrentValue(), kernelUnitLengthYCurrentValue()));
232 if (attrName == SVGNames::preserveAlphaAttr) 232 if (attrName == SVGNames::preserveAlphaAttr)
233 return convolveMatrix->setPreserveAlpha(preserveAlpha()); 233 return convolveMatrix->setPreserveAlpha(preserveAlphaCurrentValue());
234 234
235 ASSERT_NOT_REACHED(); 235 ASSERT_NOT_REACHED();
236 return false; 236 return false;
237 } 237 }
238 238
239 void SVGFEConvolveMatrixElement::setOrder(float x, float y) 239 void SVGFEConvolveMatrixElement::setOrder(float x, float y)
240 { 240 {
241 setOrderXBaseValue(x); 241 setOrderXBaseValue(x);
242 setOrderYBaseValue(y); 242 setOrderYBaseValue(y);
243 invalidate(); 243 invalidate();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 || attrName == SVGNames::kernelMatrixAttr) { 275 || attrName == SVGNames::kernelMatrixAttr) {
276 invalidate(); 276 invalidate();
277 return; 277 return;
278 } 278 }
279 279
280 ASSERT_NOT_REACHED(); 280 ASSERT_NOT_REACHED();
281 } 281 }
282 282
283 PassRefPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* fil terBuilder, Filter* filter) 283 PassRefPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* fil terBuilder, Filter* filter)
284 { 284 {
285 FilterEffect* input1 = filterBuilder->getEffectById(in1()); 285 FilterEffect* input1 = filterBuilder->getEffectById(in1CurrentValue());
286 286
287 if (!input1) 287 if (!input1)
288 return 0; 288 return 0;
289 289
290 int orderXValue = orderX(); 290 int orderXValue = orderXCurrentValue();
291 int orderYValue = orderY(); 291 int orderYValue = orderYCurrentValue();
292 if (!hasAttribute(SVGNames::orderAttr)) { 292 if (!hasAttribute(SVGNames::orderAttr)) {
293 orderXValue = 3; 293 orderXValue = 3;
294 orderYValue = 3; 294 orderYValue = 3;
295 } 295 }
296 // Spec says order must be > 0. Bail if it is not. 296 // Spec says order must be > 0. Bail if it is not.
297 if (orderXValue < 1 || orderYValue < 1) 297 if (orderXValue < 1 || orderYValue < 1)
298 return 0; 298 return 0;
299 SVGNumberList& kernelMatrix = this->kernelMatrix(); 299 SVGNumberList& kernelMatrix = this->kernelMatrixCurrentValue();
300 int kernelMatrixSize = kernelMatrix.size(); 300 int kernelMatrixSize = kernelMatrix.size();
301 // The spec says this is a requirement, and should bail out if fails 301 // The spec says this is a requirement, and should bail out if fails
302 if (orderXValue * orderYValue != kernelMatrixSize) 302 if (orderXValue * orderYValue != kernelMatrixSize)
303 return 0; 303 return 0;
304 304
305 int targetXValue = targetX(); 305 int targetXValue = targetXCurrentValue();
306 int targetYValue = targetY(); 306 int targetYValue = targetYCurrentValue();
307 if (hasAttribute(SVGNames::targetXAttr) && (targetXValue < 0 || targetXValue >= orderXValue)) 307 if (hasAttribute(SVGNames::targetXAttr) && (targetXValue < 0 || targetXValue >= orderXValue))
308 return 0; 308 return 0;
309 // The spec says the default value is: targetX = floor ( orderX / 2 )) 309 // The spec says the default value is: targetX = floor ( orderX / 2 ))
310 if (!hasAttribute(SVGNames::targetXAttr)) 310 if (!hasAttribute(SVGNames::targetXAttr))
311 targetXValue = static_cast<int>(floorf(orderXValue / 2)); 311 targetXValue = static_cast<int>(floorf(orderXValue / 2));
312 if (hasAttribute(SVGNames::targetYAttr) && (targetYValue < 0 || targetYValue >= orderYValue)) 312 if (hasAttribute(SVGNames::targetYAttr) && (targetYValue < 0 || targetYValue >= orderYValue))
313 return 0; 313 return 0;
314 // The spec says the default value is: targetY = floor ( orderY / 2 )) 314 // The spec says the default value is: targetY = floor ( orderY / 2 ))
315 if (!hasAttribute(SVGNames::targetYAttr)) 315 if (!hasAttribute(SVGNames::targetYAttr))
316 targetYValue = static_cast<int>(floorf(orderYValue / 2)); 316 targetYValue = static_cast<int>(floorf(orderYValue / 2));
317 317
318 // Spec says default kernelUnitLength is 1.0, and a specified length cannot be 0. 318 // Spec says default kernelUnitLength is 1.0, and a specified length cannot be 0.
319 int kernelUnitLengthXValue = kernelUnitLengthX(); 319 int kernelUnitLengthXValue = kernelUnitLengthXCurrentValue();
320 int kernelUnitLengthYValue = kernelUnitLengthY(); 320 int kernelUnitLengthYValue = kernelUnitLengthYCurrentValue();
321 if (!hasAttribute(SVGNames::kernelUnitLengthAttr)) { 321 if (!hasAttribute(SVGNames::kernelUnitLengthAttr)) {
322 kernelUnitLengthXValue = 1; 322 kernelUnitLengthXValue = 1;
323 kernelUnitLengthYValue = 1; 323 kernelUnitLengthYValue = 1;
324 } 324 }
325 if (kernelUnitLengthXValue <= 0 || kernelUnitLengthYValue <= 0) 325 if (kernelUnitLengthXValue <= 0 || kernelUnitLengthYValue <= 0)
326 return 0; 326 return 0;
327 327
328 float divisorValue = divisor(); 328 float divisorValue = divisorCurrentValue();
329 if (hasAttribute(SVGNames::divisorAttr) && !divisorValue) 329 if (hasAttribute(SVGNames::divisorAttr) && !divisorValue)
330 return 0; 330 return 0;
331 if (!hasAttribute(SVGNames::divisorAttr)) { 331 if (!hasAttribute(SVGNames::divisorAttr)) {
332 for (int i = 0; i < kernelMatrixSize; ++i) 332 for (int i = 0; i < kernelMatrixSize; ++i)
333 divisorValue += kernelMatrix.at(i); 333 divisorValue += kernelMatrix.at(i);
334 if (!divisorValue) 334 if (!divisorValue)
335 divisorValue = 1; 335 divisorValue = 1;
336 } 336 }
337 337
338 RefPtr<FilterEffect> effect = FEConvolveMatrix::create(filter, 338 RefPtr<FilterEffect> effect = FEConvolveMatrix::create(filter,
339 IntSize(orderXValue, orderYValue), divisorValue, 339 IntSize(orderXValue, orderYValue), divisorValue,
340 bias(), IntPoint(targetXValue, targetYValue), edgeMode(), 340 biasCurrentValue(), IntPoint(targetXValue, targetYValue), ed geModeCurrentValue(),
341 FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), preserveAlpha(), kernelMatrix); 341 FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), preserveAlphaCurrentValue(), kernelMatrix);
342 effect->inputEffects().append(input1); 342 effect->inputEffects().append(input1);
343 return effect.release(); 343 return effect.release();
344 } 344 }
345 345
346 } // namespace WebCore 346 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698