diff options
author | Ben Wagner <bungeman@google.com> | 2016-10-17 15:20:02 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-10-17 21:10:38 +0000 |
commit | c03e1c55a79f00d02ab528945425ff50cb700402 (patch) | |
tree | 4b9ab4bb4baa827bc6f28725cd5e19a97cd42d09 /tools/debugger/SkDebugCanvas.cpp | |
parent | 6bff1573c1a1c27fa09b2ddb13ffd46f94e57750 (diff) |
Re-enable overdraw mode in debugger.
Debugger is the last user of the deprecated SkPaintFilterCanvas
constructor. Stop using it and remove the constructor.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3268
Change-Id: I3e9180d48abdf86cb2c05bd8d95acabcdaa70427
Reviewed-on: https://skia-review.googlesource.com/3268
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Diffstat (limited to 'tools/debugger/SkDebugCanvas.cpp')
-rw-r--r-- | tools/debugger/SkDebugCanvas.cpp | 52 |
1 files changed, 11 insertions, 41 deletions
diff --git a/tools/debugger/SkDebugCanvas.cpp b/tools/debugger/SkDebugCanvas.cpp index 1da995b284..74e65daa94 100644 --- a/tools/debugger/SkDebugCanvas.cpp +++ b/tools/debugger/SkDebugCanvas.cpp @@ -9,7 +9,6 @@ #include "SkClipStack.h" #include "SkDebugCanvas.h" #include "SkDrawCommand.h" -#include "SkOverdrawMode.h" #include "SkPaintFilterCanvas.h" #include "SkTextBlob.h" @@ -27,23 +26,22 @@ class DebugPaintFilterCanvas : public SkPaintFilterCanvas { public: - DebugPaintFilterCanvas(int width, - int height, + DebugPaintFilterCanvas(SkCanvas* canvas, bool overdrawViz, bool overrideFilterQuality, SkFilterQuality quality) - : INHERITED(width, height) - , fOverdrawXfermode(overdrawViz ? SkOverdrawMode::Make() : nullptr) + : INHERITED(canvas) + , fOverdrawViz(overdrawViz) , fOverrideFilterQuality(overrideFilterQuality) , fFilterQuality(quality) {} protected: bool onFilter(SkTCopyOnFirstWrite<SkPaint>* paint, Type) const override { if (*paint) { - if (nullptr != fOverdrawXfermode.get()) { - paint->writable()->setAntiAlias(false); - // TODO: replace overdraw mode with something else -// paint->writable()->setXfermode(fOverdrawXfermode); + if (fOverdrawViz) { + paint->writable()->setColor(SK_ColorRED); + paint->writable()->setAlpha(0x08); + paint->writable()->setBlendMode(SkBlendMode::kSrcOver); } if (fOverrideFilterQuality) { @@ -72,8 +70,7 @@ protected: } private: - sk_sp<SkXfermode> fOverdrawXfermode; - + bool fOverdrawViz; bool fOverrideFilterQuality; SkFilterQuality fFilterQuality; @@ -227,11 +224,9 @@ void SkDebugCanvas::drawTo(SkCanvas* canvas, int index, int m) { } this->applyUserTransform(canvas); - if (fPaintFilterCanvas) { - fPaintFilterCanvas->addCanvas(canvas); - canvas = fPaintFilterCanvas.get(); - - } + DebugPaintFilterCanvas fPaintFilterCanvas(canvas, fOverdrawViz, + fOverrideFilterQuality, fFilterQuality); + canvas = &fPaintFilterCanvas; if (fMegaVizMode) { this->markActiveCommands(index); @@ -338,10 +333,6 @@ void SkDebugCanvas::drawTo(SkCanvas* canvas, int index, int m) { canvas->restoreToCount(saveCount); - if (fPaintFilterCanvas) { - fPaintFilterCanvas->removeAll(); - } - #if SK_SUPPORT_GPU // draw any batches if required and issue a full reset onto GrAuditTrail if (at) { @@ -514,34 +505,13 @@ Json::Value SkDebugCanvas::toJSONBatchList(int n, SkCanvas* canvas) { return parsedFromString; } -void SkDebugCanvas::updatePaintFilterCanvas() { - if (!fOverdrawViz && !fOverrideFilterQuality) { - fPaintFilterCanvas.reset(nullptr); - return; - } - - const SkImageInfo info = this->imageInfo(); - fPaintFilterCanvas.reset(new DebugPaintFilterCanvas(info.width(), info.height(), fOverdrawViz, - fOverrideFilterQuality, fFilterQuality)); -} - void SkDebugCanvas::setOverdrawViz(bool overdrawViz) { - if (fOverdrawViz == overdrawViz) { - return; - } - fOverdrawViz = overdrawViz; - this->updatePaintFilterCanvas(); } void SkDebugCanvas::overrideTexFiltering(bool overrideTexFiltering, SkFilterQuality quality) { - if (fOverrideFilterQuality == overrideTexFiltering && fFilterQuality == quality) { - return; - } - fOverrideFilterQuality = overrideTexFiltering; fFilterQuality = quality; - this->updatePaintFilterCanvas(); } void SkDebugCanvas::onClipPath(const SkPath& path, ClipOp op, ClipEdgeStyle edgeStyle) { |