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>
diff --git a/tools/debugger/SkDebugCanvas.cpp b/tools/debugger/SkDebugCanvas.cpp
index ace39a4..522f4ed 100644
--- a/tools/debugger/SkDebugCanvas.cpp
+++ b/tools/debugger/SkDebugCanvas.cpp
@@ -149,6 +149,39 @@
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 @@
r.outset(SK_Scalar1, SK_Scalar1);
filterCanvas.clipRect(r, kReplace_SkClipOp);
}
+ // visualize existing clips
+ SkDebugClipVisitor visitor(&filterCanvas);
+
+ filterCanvas.replayClips(&visitor);
+
filterCanvas.restore();
}
if (pathOpsMode) {