| Index: src/core/SkCanvas.cpp
|
| diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
|
| index 6914963cb9e1fc738f71773af60ffb7fc7759849..df89d9f00faa6cf9492fd50d2ad7be1d2f29e181 100644
|
| --- a/src/core/SkCanvas.cpp
|
| +++ b/src/core/SkCanvas.cpp
|
| @@ -1298,6 +1298,13 @@ void SkCanvas::internalDrawDevice(SkBaseDevice* srcDev, int x, int y,
|
| SkBaseDevice* dstDev = iter.fDevice;
|
| paint = &looper.paint();
|
| SkImageFilter* filter = paint->getImageFilter();
|
| +
|
| + SkAutoTUnref<SkImageFilter> localFilter;
|
| + if (filter) {
|
| + localFilter.reset(filter->newWithLocalMatrix(SkMatrix::I()));
|
| + filter = localFilter;
|
| + }
|
| +
|
| SkIPoint pos = { x - iter.getX(), y - iter.getY() };
|
| if (filter && !dstDev->canHandleImageFilter(filter)) {
|
| SkImageFilter::DeviceProxy proxy(dstDev);
|
| @@ -1350,6 +1357,13 @@ void SkCanvas::onDrawSprite(const SkBitmap& bitmap, int x, int y, const SkPaint*
|
| while (iter.next()) {
|
| paint = &looper.paint();
|
| SkImageFilter* filter = paint->getImageFilter();
|
| +
|
| + SkAutoTUnref<SkImageFilter> localFilter;
|
| + if (filter) {
|
| + localFilter.reset(filter->newWithLocalMatrix(SkMatrix::I()));
|
| + filter = localFilter;
|
| + }
|
| +
|
| SkIPoint pos = { x - iter.getX(), y - iter.getY() };
|
| if (filter && !iter.fDevice->canHandleImageFilter(filter)) {
|
| SkImageFilter::DeviceProxy proxy(iter.fDevice);
|
|
|