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/src@11733 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/effects/SkRectShaderImageFilter.cpp b/effects/SkRectShaderImageFilter.cpp
index b1faebc..37d6af2 100644
--- a/effects/SkRectShaderImageFilter.cpp
+++ b/effects/SkRectShaderImageFilter.cpp
@@ -16,9 +16,17 @@
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));
}