aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMichael Ludwig <michaelludwig@google.com>2019-01-23 11:14:29 -0500
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2019-01-23 16:45:01 +0000
commit7545190e32b2bee7472f7a91bd5d841298963f6d (patch)
treed04d3493d2fcbfdb6233b868ab054009fb6b90f8 /tools
parent84e0064bc54399ccc7cd535af645bec67bea4185 (diff)
downloadplatform_external_skqp-7545190e32b2bee7472f7a91bd5d841298963f6d.tar.gz
platform_external_skqp-7545190e32b2bee7472f7a91bd5d841298963f6d.tar.bz2
platform_external_skqp-7545190e32b2bee7472f7a91bd5d841298963f6d.zip
Add new experimental API for rectangles with per-edge AA control
Also updates GM_draw_quad_set to use this API instead of the bulk API on GrRenderTargetContext. Bug: skia:8506 Change-Id: Ia342d83c509f9db69f06f01599c7041c98aabdb6 Reviewed-on: https://skia-review.googlesource.com/c/184488 Commit-Queue: Michael Ludwig <michaelludwig@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/debugger/SkDebugCanvas.cpp5
-rw-r--r--tools/debugger/SkDebugCanvas.h1
-rw-r--r--tools/debugger/SkDrawCommand.cpp13
-rw-r--r--tools/debugger/SkDrawCommand.h16
4 files changed, 35 insertions, 0 deletions
diff --git a/tools/debugger/SkDebugCanvas.cpp b/tools/debugger/SkDebugCanvas.cpp
index 7f5c544651..a6681a0bac 100644
--- a/tools/debugger/SkDebugCanvas.cpp
+++ b/tools/debugger/SkDebugCanvas.cpp
@@ -402,6 +402,11 @@ void SkDebugCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) {
addDrawCommand(new SkDrawRectCommand(rect, paint));
}
+void SkDebugCanvas::onDrawEdgeAARect(const SkRect& rect, SkCanvas::QuadAAFlags aa, SkColor color,
+ SkBlendMode mode) {
+ this->addDrawCommand(new SkDrawEdgeAARectCommand(rect, aa, color, mode));
+}
+
void SkDebugCanvas::onDrawRRect(const SkRRect& rrect, const SkPaint& paint) {
this->addDrawCommand(new SkDrawRRectCommand(rrect, paint));
}
diff --git a/tools/debugger/SkDebugCanvas.h b/tools/debugger/SkDebugCanvas.h
index 43598ca454..df54198f47 100644
--- a/tools/debugger/SkDebugCanvas.h
+++ b/tools/debugger/SkDebugCanvas.h
@@ -131,6 +131,7 @@ protected:
void onDrawPaint(const SkPaint&) override;
void onDrawRect(const SkRect&, const SkPaint&) override;
+ void onDrawEdgeAARect(const SkRect&, SkCanvas::QuadAAFlags, SkColor, SkBlendMode) override;
void onDrawOval(const SkRect&, const SkPaint&) override;
void onDrawArc(const SkRect&, SkScalar, SkScalar, bool, const SkPaint&) override;
void onDrawRRect(const SkRRect&, const SkPaint&) override;
diff --git a/tools/debugger/SkDrawCommand.cpp b/tools/debugger/SkDrawCommand.cpp
index a77c76429c..3726d75487 100644
--- a/tools/debugger/SkDrawCommand.cpp
+++ b/tools/debugger/SkDrawCommand.cpp
@@ -1980,6 +1980,19 @@ Json::Value SkDrawRectCommand::toJSON(UrlDataManager& urlDataManager) const {
return result;
}
+SkDrawEdgeAARectCommand::SkDrawEdgeAARectCommand(const SkRect& rect, SkCanvas::QuadAAFlags aa,
+ SkColor color, SkBlendMode mode)
+ : INHERITED(kDrawEdgeAARect_OpType) {
+ fRect = rect;
+ fAA = aa;
+ fColor = color;
+ fMode = mode;
+}
+
+void SkDrawEdgeAARectCommand::execute(SkCanvas* canvas) const {
+ canvas->experimental_DrawEdgeAARectV1(fRect, fAA, fColor, fMode);
+}
+
SkDrawRRectCommand::SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint)
: INHERITED(kDrawRRect_OpType) {
fRRect = rrect;
diff --git a/tools/debugger/SkDrawCommand.h b/tools/debugger/SkDrawCommand.h
index 057001cf76..a6ca3414f2 100644
--- a/tools/debugger/SkDrawCommand.h
+++ b/tools/debugger/SkDrawCommand.h
@@ -51,6 +51,7 @@ public:
kDrawPath_OpType,
kDrawPoints_OpType,
kDrawRect_OpType,
+ kDrawEdgeAARect_OpType,
kDrawRRect_OpType,
kDrawRegion_OpType,
kDrawShadow_OpType,
@@ -543,6 +544,21 @@ private:
typedef SkDrawCommand INHERITED;
};
+class SkDrawEdgeAARectCommand : public SkDrawCommand {
+public:
+ SkDrawEdgeAARectCommand(const SkRect& rect, SkCanvas::QuadAAFlags aa, SkColor color,
+ SkBlendMode mode);
+ void execute(SkCanvas* canvas) const override;
+
+private:
+ SkRect fRect;
+ SkCanvas::QuadAAFlags fAA;
+ SkColor fColor;
+ SkBlendMode fMode;
+
+ typedef SkDrawCommand INHERITED;
+};
+
class SkDrawRRectCommand : public SkDrawCommand {
public:
SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint);