fill the layer if there is a backdrop filter
Bug: skia:8783
Change-Id: I92448382117b1bd05a0ad5cf7ecd72181631389b
Reviewed-on: https://skia-review.googlesource.com/c/194601
Auto-Submit: Mike Reed <reed@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 225b9e5..a8541d6 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -973,6 +973,12 @@
const SkPaint* paint = rec.fPaint;
SaveLayerFlags saveLayerFlags = rec.fSaveLayerFlags;
+ // If we have a backdrop filter, then we must apply it to the entire layer (clip-bounds)
+ // regardless of any hint-rect from the caller. skbug.com/8783
+ if (rec.fBackdrop) {
+ bounds = nullptr;
+ }
+
SkLazyPaint lazyP;
SkImageFilter* imageFilter = paint ? paint->getImageFilter() : nullptr;
SkMatrix stashedMatrix = fMCRec->fMatrix;