diff options
author | senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-10-11 17:57:47 +0000 |
---|---|---|
committer | senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-10-11 17:57:47 +0000 |
commit | 5e85300729ed7498de94b8ab2b2d8ee7a5f27efe (patch) | |
tree | 653f6b02545b2e5dfc2902b82f6452e61f4b4614 /src | |
parent | e9d61ed8c410ffe88f9dbd07db6778e16dbb0d88 (diff) |
SkRectShaderImageFilter: add a workaround for the zero-sized rects currently passed by Blink.
BUG=306488
R=robertphillips@google.com, robertphillips
Review URL: https://codereview.chromium.org/26799004
git-svn-id: http://skia.googlecode.com/svn/trunk@11733 2bbb7eff-a529-9590-31e7-b0007b416f81
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)); } |