| Index: src/effects/SkOffsetImageFilter.cpp
|
| diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/SkOffsetImageFilter.cpp
|
| index 16ce36f13cb60800caae661ae1e2f2dd8fccf2c4..e19a3275d12fb4edd0bca4dac6beca767f15590b 100644
|
| --- a/src/effects/SkOffsetImageFilter.cpp
|
| +++ b/src/effects/SkOffsetImageFilter.cpp
|
| @@ -72,16 +72,19 @@ void SkOffsetImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) cons
|
| } else {
|
| *dst = src;
|
| }
|
| + SkRect copy = *dst;
|
| dst->offset(fOffset.fX, fOffset.fY);
|
| + dst->join(copy);
|
| }
|
|
|
| bool SkOffsetImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm,
|
| - SkIRect* dst) {
|
| + SkIRect* dst) const {
|
| SkVector vec;
|
| ctm.mapVectors(&vec, &fOffset, 1);
|
|
|
| *dst = src;
|
| - dst->offset(SkScalarRoundToInt(vec.fX), SkScalarRoundToInt(vec.fY));
|
| + dst->offset(-SkScalarCeilToInt(vec.fX), -SkScalarCeilToInt(vec.fY));
|
| + dst->join(src);
|
| return true;
|
| }
|
|
|
|
|