add isolate (init-with-previous) savelayer flag
BUG=skia:4884
Change-Id: If7fabf5cc2c87b870f48dfb87e27a2524fec5ae5
Reviewed-on: https://skia-review.googlesource.com/9045
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 04cead4..5c7039f 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1148,7 +1148,9 @@
draw.fClipStack = clipStack;
SkPaint p;
- p.setImageFilter(filter->makeWithLocalMatrix(ctm));
+ if (filter) {
+ p.setImageFilter(filter->makeWithLocalMatrix(ctm));
+ }
int x = src->getOrigin().x() - dstOrigin.x();
int y = src->getOrigin().y() - dstOrigin.y();
@@ -1275,7 +1277,7 @@
fMCRec->fLayer = layer;
fMCRec->fTopLayer = layer; // this field is NOT an owner of layer
- if (rec.fBackdrop) {
+ if ((rec.fSaveLayerFlags & kInitWithPrevious_SaveLayerFlag) || rec.fBackdrop) {
DrawDeviceWithFilter(priorDevice, rec.fBackdrop, newDevice.get(), { ir.fLeft, ir.fTop },
fMCRec->fMatrix, this->getClipStack());
}