diff options
author | Mike Reed <reed@google.com> | 2017-03-08 21:42:37 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-08 21:42:51 +0000 |
commit | 8310f0e051e5cb19206428336720bd9988190416 (patch) | |
tree | bb25e8894c83ec124742e23f886fbd6d81d4291a /tools/debugger/SkDebugCanvas.cpp | |
parent | 4749b8c1b899f9f4e440f60c88c880a8765e6dee (diff) |
Revert "remove SkClipVisitor"
This reverts commit 91b961d33d1d3e78c212be8738c1c7c468c358ca.
Reason for revert: need to update caller in android
Original change's description:
> remove SkClipVisitor
>
> With new device clipping, this is unsupported on SkCanvas
>
> BUG=skia:
>
> Change-Id: I39443f213be1005b8b9208d604e4bfb31cbda424
> Reviewed-on: https://skia-review.googlesource.com/9349
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
>
TBR=bsalomon@google.com,robertphillips@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Change-Id: I22df0c66ec564ca32355179d2ee5ea14bff7b1d5
Reviewed-on: https://skia-review.googlesource.com/9456
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'tools/debugger/SkDebugCanvas.cpp')
-rw-r--r-- | tools/debugger/SkDebugCanvas.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/debugger/SkDebugCanvas.cpp b/tools/debugger/SkDebugCanvas.cpp index ace39a471b..522f4edbeb 100644 --- a/tools/debugger/SkDebugCanvas.cpp +++ b/tools/debugger/SkDebugCanvas.cpp @@ -149,6 +149,39 @@ int SkDebugCanvas::getCommandAtPoint(int x, int y, int index) { return layer; } +class SkDebugClipVisitor : public SkCanvas::ClipVisitor { +public: + SkDebugClipVisitor(SkCanvas* canvas) : fCanvas(canvas) {} + + void clipRect(const SkRect& r, SkClipOp, bool doAA) override { + SkPaint p; + p.setColor(SK_ColorRED); + p.setStyle(SkPaint::kStroke_Style); + p.setAntiAlias(doAA); + fCanvas->drawRect(r, p); + } + void clipRRect(const SkRRect& rr, SkClipOp, bool doAA) override { + SkPaint p; + p.setColor(SK_ColorGREEN); + p.setStyle(SkPaint::kStroke_Style); + p.setAntiAlias(doAA); + fCanvas->drawRRect(rr, p); + } + void clipPath(const SkPath& path, SkClipOp, bool doAA) override { + SkPaint p; + p.setColor(SK_ColorBLUE); + p.setStyle(SkPaint::kStroke_Style); + p.setAntiAlias(doAA); + fCanvas->drawPath(path, p); + } + +protected: + SkCanvas* fCanvas; + +private: + typedef SkCanvas::ClipVisitor INHERITED; +}; + // set up the saveLayer commands so that the active ones // return true in their 'active' method void SkDebugCanvas::markActiveCommands(int index) { @@ -265,6 +298,11 @@ void SkDebugCanvas::drawTo(SkCanvas* originalCanvas, int index, int m) { r.outset(SK_Scalar1, SK_Scalar1); filterCanvas.clipRect(r, kReplace_SkClipOp); } + // visualize existing clips + SkDebugClipVisitor visitor(&filterCanvas); + + filterCanvas.replayClips(&visitor); + filterCanvas.restore(); } if (pathOpsMode) { |