diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/effects/SkRectShaderImageFilter.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/effects/SkRectShaderImageFilter.cpp b/src/effects/SkRectShaderImageFilter.cpp index b1faebc813..37d6af28ad 100644 --- a/src/effects/SkRectShaderImageFilter.cpp +++ b/src/effects/SkRectShaderImageFilter.cpp @@ -16,9 +16,17 @@ SkRectShaderImageFilter* SkRectShaderImageFilter::Create(SkShader* s, const SkRe SkASSERT(s); #ifdef SK_CROP_RECT_IS_INT SkIRect cropRect; - rect.roundOut(&cropRect); + if (rect.width() == 0 || rect.height() == 0) { + cropRect = SkIRect::MakeLargest(); + } else { + rect.roundOut(&cropRect); + } #else - CropRect cropRect(rect); + uint32_t flags = CropRect::kHasAll_CropEdge; + if (rect.width() == 0 || rect.height() == 0) { + flags = 0x0; + } + CropRect cropRect(rect, flags); #endif return SkNEW_ARGS(SkRectShaderImageFilter, (s, &cropRect)); } |