diff options
author | 2017-02-28 17:45:27 -0500 | |
---|---|---|
committer | 2017-03-01 02:11:08 +0000 | |
commit | c61abeed8958a757c6b49937f28b63066148dd67 (patch) | |
tree | 483450579dc12b2c9e38a07c3d38feb008aeab10 /src | |
parent | 822128b475c1782788f96e7a1a848d0affb878b1 (diff) |
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>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkCanvas.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 04cead44fb..5c7039fc50 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -1148,7 +1148,9 @@ void SkCanvas::DrawDeviceWithFilter(SkBaseDevice* src, const SkImageFilter* filt 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 @@ void SkCanvas::internalSaveLayer(const SaveLayerRec& rec, SaveLayerStrategy stra 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()); } |