Chromium Code Reviews| Index: src/effects/SkTileImageFilter.cpp |
| diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp |
| index ca4c15d4191900fc644cdb3961096bcb8b4bf125..5d74295fd8373057aa44b51d608b1c7accac6c99 100644 |
| --- a/src/effects/SkTileImageFilter.cpp |
| +++ b/src/effects/SkTileImageFilter.cpp |
| @@ -9,6 +9,7 @@ |
| #include "SkBitmap.h" |
| #include "SkCanvas.h" |
| #include "SkDevice.h" |
| +#include "SkOffsetImageFilter.h" |
| #include "SkReadBuffer.h" |
| #include "SkWriteBuffer.h" |
| #include "SkMatrix.h" |
| @@ -21,6 +22,17 @@ SkImageFilter* SkTileImageFilter::Create(const SkRect& srcRect, const SkRect& ds |
| if (!SkIsValidRect(srcRect) || !SkIsValidRect(dstRect)) { |
| return nullptr; |
| } |
|
robertphillips
2016/01/12 14:18:29
Can this fit on one line ?
Stephen White
2016/01/12 14:23:12
Done.
|
| + if (srcRect.width() == dstRect.width() && |
| + srcRect.height() == dstRect.height()) { |
| + SkRect ir = dstRect; |
| + if (!ir.intersect(srcRect)) { |
| + return SkSafeRef(input); |
| + } |
| + CropRect cropRect(ir); |
| + return SkOffsetImageFilter::Create(dstRect.x() - srcRect.x(), |
| + dstRect.y() - srcRect.y(), |
| + input, &cropRect); |
| + } |
| return new SkTileImageFilter(srcRect, dstRect, input); |
| } |