aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-02-28 17:45:27 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-01 02:11:08 +0000
commitc61abeed8958a757c6b49937f28b63066148dd67 (patch)
tree483450579dc12b2c9e38a07c3d38feb008aeab10 /src
parent822128b475c1782788f96e7a1a848d0affb878b1 (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.cpp6
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());
}