aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/debugger/SkDebugCanvas.cpp
diff options
context:
space:
mode:
authorGravatar Ben Wagner <bungeman@google.com>2016-10-17 15:20:02 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-10-17 21:10:38 +0000
commitc03e1c55a79f00d02ab528945425ff50cb700402 (patch)
tree4b9ab4bb4baa827bc6f28725cd5e19a97cd42d09 /tools/debugger/SkDebugCanvas.cpp
parent6bff1573c1a1c27fa09b2ddb13ffd46f94e57750 (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.cpp52
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) {