diff options
Diffstat (limited to 'src/effects/SkLightingImageFilter.cpp')
-rw-r--r-- | src/effects/SkLightingImageFilter.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp index 54bb1c890b..206be1b62d 100644 --- a/src/effects/SkLightingImageFilter.cpp +++ b/src/effects/SkLightingImageFilter.cpp @@ -946,17 +946,19 @@ bool SkDiffuseLightingImageFilter::onFilterImage(Proxy* proxy, if (src.colorType() != kPMColor_SkColorType) { return false; } - SkIRect bounds; - if (!this->applyCropRect(ctx, proxy, src, &srcOffset, &bounds, &src)) { + SkAutoLockPixels alp(src); + if (!src.getPixels()) { return false; } - if (bounds.width() < 2 || bounds.height() < 2) { + SkIRect bounds; + src.getBounds(&bounds); + bounds.offset(srcOffset); + if (!this->applyCropRect(&bounds, ctx.ctm())) { return false; } - SkAutoLockPixels alp(src); - if (!src.getPixels()) { + if (bounds.width() < 2 || bounds.height() < 2) { return false; } @@ -1037,18 +1039,19 @@ bool SkSpecularLightingImageFilter::onFilterImage(Proxy* proxy, if (src.colorType() != kPMColor_SkColorType) { return false; } - - SkIRect bounds; - if (!this->applyCropRect(ctx, proxy, src, &srcOffset, &bounds, &src)) { + SkAutoLockPixels alp(src); + if (!src.getPixels()) { return false; } - if (bounds.width() < 2 || bounds.height() < 2) { + SkIRect bounds; + src.getBounds(&bounds); + bounds.offset(srcOffset); + if (!this->applyCropRect(&bounds, ctx.ctm())) { return false; } - SkAutoLockPixels alp(src); - if (!src.getPixels()) { + if (bounds.width() < 2 || bounds.height() < 2) { return false; } |