aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkRectShaderImageFilter.cpp
diff options
context:
space:
mode:
authorGravatar senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-10-11 17:57:47 +0000
committerGravatar senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-10-11 17:57:47 +0000
commit5e85300729ed7498de94b8ab2b2d8ee7a5f27efe (patch)
tree653f6b02545b2e5dfc2902b82f6452e61f4b4614 /src/effects/SkRectShaderImageFilter.cpp
parente9d61ed8c410ffe88f9dbd07db6778e16dbb0d88 (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/effects/SkRectShaderImageFilter.cpp')
-rw-r--r--src/effects/SkRectShaderImageFilter.cpp12
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));
}