diff options
author | Florin Malita <fmalita@chromium.org> | 2017-04-28 13:48:37 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-01 14:07:10 +0000 |
commit | 53f77bd4fdd76525b66b7f26d1c5c550858120df (patch) | |
tree | d7516fa1c29a35a3e6b62aae82f3bb6e72928cf4 /src/pipe/SkPipeCanvas.cpp | |
parent | 57061eea444a8d85189827f014a451de63b49d1a (diff) |
Initial clip-mask-layer support
SkBitmapDevice-only implementation.
Will add A8 fast path specializations in a follow-up.
Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1
BUG=skia:6005
Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1
Reviewed-on: https://skia-review.googlesource.com/14183
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/pipe/SkPipeCanvas.cpp')
-rw-r--r-- | src/pipe/SkPipeCanvas.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/pipe/SkPipeCanvas.cpp b/src/pipe/SkPipeCanvas.cpp index 1473b843f6..91e74eeca5 100644 --- a/src/pipe/SkPipeCanvas.cpp +++ b/src/pipe/SkPipeCanvas.cpp @@ -240,6 +240,12 @@ SkCanvas::SaveLayerStrategy SkPipeCanvas::getSaveLayerStrategy(const SaveLayerRe if (rec.fBackdrop) { extra |= kHasBackdrop_SaveLayerMask; } + if (rec.fClipMask) { + extra |= kHasClipMask_SaveLayerMask; + } + if (rec.fClipMatrix) { + extra |= kHasClipMatrix_SaveLayerMask; + } writer.write32(pack_verb(SkPipeVerb::kSaveLayer, extra)); if (rec.fBounds) { @@ -251,6 +257,13 @@ SkCanvas::SaveLayerStrategy SkPipeCanvas::getSaveLayerStrategy(const SaveLayerRe if (rec.fBackdrop) { writer.writeFlattenable(rec.fBackdrop); } + if (rec.fClipMask) { + writer.writeImage(rec.fClipMask.get()); + } + if (rec.fClipMatrix) { + writer.writeMatrix(*rec.fClipMatrix); + } + return kNoLayer_SaveLayerStrategy; } |