diff options
author | 2014-02-21 12:20:45 +0000 | |
---|---|---|
committer | 2014-02-21 12:20:45 +0000 | |
commit | ab5827354e2c23624acc3fc1fe4a83788bc99e96 (patch) | |
tree | bd2f93c0c642b3ba13ac55279680692e87a2c164 /src | |
parent | b39d5617f60e8c26f76011cfcd984d7ad42d9fa9 (diff) |
override new virtual onDrawDRRect in util canvas subclasses
BUG=skia:
R=robertphillips@google.com, reed@google.com
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/174593003
git-svn-id: http://skia.googlecode.com/svn/trunk@13529 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/utils/SkDeferredCanvas.cpp | 7 | ||||
-rw-r--r-- | src/utils/SkDumpCanvas.cpp | 11 | ||||
-rw-r--r-- | src/utils/SkLuaCanvas.cpp | 8 | ||||
-rw-r--r-- | src/utils/SkNWayCanvas.cpp | 8 | ||||
-rw-r--r-- | src/utils/SkProxyCanvas.cpp | 5 | ||||
-rw-r--r-- | src/utils/debugger/SkDebugCanvas.cpp | 5 | ||||
-rw-r--r-- | src/utils/debugger/SkDebugCanvas.h | 3 |
7 files changed, 46 insertions, 1 deletions
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp index fc85711cb7..3911fd0dfa 100644 --- a/src/utils/SkDeferredCanvas.cpp +++ b/src/utils/SkDeferredCanvas.cpp @@ -880,6 +880,13 @@ void SkDeferredCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } } +void SkDeferredCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, + const SkPaint& paint) { + AutoImmediateDrawIfNeeded autoDraw(*this, &paint); + this->drawingCanvas()->drawDRRect(outer, inner, paint); + this->recordedDrawCommand(); +} + void SkDeferredCanvas::drawPath(const SkPath& path, const SkPaint& paint) { AutoImmediateDrawIfNeeded autoDraw(*this, &paint); this->drawingCanvas()->drawPath(path, paint); diff --git a/src/utils/SkDumpCanvas.cpp b/src/utils/SkDumpCanvas.cpp index 5f3a572ab9..c8a94f4058 100644 --- a/src/utils/SkDumpCanvas.cpp +++ b/src/utils/SkDumpCanvas.cpp @@ -324,7 +324,16 @@ void SkDumpCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { void SkDumpCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { SkString str; toString(rrect, &str); - this->dump(kDrawRRect_Verb, &paint, "drawRRect(%s)", str.c_str()); + this->dump(kDrawDRRect_Verb, &paint, "drawRRect(%s)", str.c_str()); +} + +void SkDumpCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, + const SkPaint& paint) { + SkString str0, str1; + toString(outer, &str0); + toString(inner, &str0); + this->dump(kDrawRRect_Verb, &paint, "drawDRRect(%s,%s)", + str0.c_str(), str1.c_str()); } void SkDumpCanvas::drawPath(const SkPath& path, const SkPaint& paint) { diff --git a/src/utils/SkLuaCanvas.cpp b/src/utils/SkLuaCanvas.cpp index 7f127403ae..8c25dc0401 100644 --- a/src/utils/SkLuaCanvas.cpp +++ b/src/utils/SkLuaCanvas.cpp @@ -194,6 +194,14 @@ void SkLuaCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { lua.pushPaint(paint, "paint"); } +void SkLuaCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, + const SkPaint& paint) { + AUTO_LUA("drawDRRect"); + lua.pushRRect(outer, "outer"); + lua.pushRRect(inner, "inner"); + lua.pushPaint(paint, "paint"); +} + void SkLuaCanvas::drawPath(const SkPath& path, const SkPaint& paint) { AUTO_LUA("drawPath"); lua.pushPath(path, "path"); diff --git a/src/utils/SkNWayCanvas.cpp b/src/utils/SkNWayCanvas.cpp index 831d7bf6cf..27adc6d51d 100644 --- a/src/utils/SkNWayCanvas.cpp +++ b/src/utils/SkNWayCanvas.cpp @@ -205,6 +205,14 @@ void SkNWayCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } } +void SkNWayCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, + const SkPaint& paint) { + Iter iter(fList); + while (iter.next()) { + iter->drawDRRect(outer, inner, paint); + } +} + void SkNWayCanvas::drawPath(const SkPath& path, const SkPaint& paint) { Iter iter(fList); while (iter.next()) { diff --git a/src/utils/SkProxyCanvas.cpp b/src/utils/SkProxyCanvas.cpp index f530313b16..245e0a6969 100644 --- a/src/utils/SkProxyCanvas.cpp +++ b/src/utils/SkProxyCanvas.cpp @@ -95,6 +95,11 @@ void SkProxyCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { fProxy->drawRRect(rrect, paint); } +void SkProxyCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, + const SkPaint& paint) { + fProxy->drawDRRect(outer, inner, paint); +} + void SkProxyCanvas::drawPath(const SkPath& path, const SkPaint& paint) { fProxy->drawPath(path, paint); } diff --git a/src/utils/debugger/SkDebugCanvas.cpp b/src/utils/debugger/SkDebugCanvas.cpp index 07cb09f381..88088542bc 100644 --- a/src/utils/debugger/SkDebugCanvas.cpp +++ b/src/utils/debugger/SkDebugCanvas.cpp @@ -401,6 +401,11 @@ void SkDebugCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { addDrawCommand(new SkDrawRRectCommand(rrect, paint)); } +void SkDebugCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, + const SkPaint& paint) { + // TODO: add DRRect to debugger +} + void SkDebugCanvas::drawSprite(const SkBitmap& bitmap, int left, int top, const SkPaint* paint = NULL) { addDrawCommand(new SkDrawSpriteCommand(bitmap, left, top, paint)); diff --git a/src/utils/debugger/SkDebugCanvas.h b/src/utils/debugger/SkDebugCanvas.h index 262619e7f1..94316d5f59 100644 --- a/src/utils/debugger/SkDebugCanvas.h +++ b/src/utils/debugger/SkDebugCanvas.h @@ -233,6 +233,9 @@ public: static const int kVizImageHeight = 256; static const int kVizImageWidth = 256; +protected: + virtual void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) SK_OVERRIDE; + private: SkTDArray<SkDrawCommand*> fCommandVector; int fWidth; |