Chromium Code Reviews| Index: Source/core/svg/graphics/filters/SVGFEImage.cpp |
| diff --git a/Source/core/svg/graphics/filters/SVGFEImage.cpp b/Source/core/svg/graphics/filters/SVGFEImage.cpp |
| index de94de80f00eacb415afd011cd40f224141faabd..d4e573d341d500a58bd352bb13f7e7b6c2bda2ba 100644 |
| --- a/Source/core/svg/graphics/filters/SVGFEImage.cpp |
| +++ b/Source/core/svg/graphics/filters/SVGFEImage.cpp |
| @@ -72,6 +72,14 @@ static FloatRect getRendererRepaintRect(RenderObject* renderer) |
| renderer->paintInvalidationRectInLocalCoordinates()); |
| } |
| +AffineTransform makeMapBetweenRects(const FloatRect& source, const FloatRect& dest) |
|
chrishtr
2014/09/02 22:05:58
Is this function called anywhere?
Stephen Chennney
2014/09/03 14:19:37
Yep, 3 times in this file only. I wanted to replac
|
| +{ |
| + AffineTransform transform; |
| + transform.translate(dest.x() - source.x(), dest.y() - source.y()); |
| + transform.scale(dest.width() / source.width(), dest.height() / source.height()); |
| + return transform; |
| +} |
| + |
| FloatRect FEImage::determineAbsolutePaintRect(const FloatRect& originalRequestedRect) |
| { |
| RenderObject* renderer = referencedRenderer(); |
| @@ -203,11 +211,13 @@ PassRefPtr<SkImageFilter> FEImage::createImageFilterForRenderer(RenderObject* re |
| if (!context) |
| return adoptRef(SkBitmapSource::Create(SkBitmap())); |
| AffineTransform contentTransformation; |
| + FloatRect bounds(FloatPoint(), dstRect.size()); |
| + RefPtr<DisplayList> displayList = DisplayList::create(bounds); |
| context->save(); |
| - context->beginRecording(FloatRect(FloatPoint(), dstRect.size())); |
| + context->beginRecording(displayList); |
| context->concatCTM(transform); |
| SVGRenderingContext::renderSubtree(context, renderer, contentTransformation); |
| - RefPtr<DisplayList> displayList = context->endRecording(); |
| + context->endRecording(); |
| context->restore(); |
| RefPtr<SkImageFilter> result = adoptRef(SkPictureImageFilter::Create(displayList->picture(), dstRect)); |
| return result.release(); |