diff options
author | 2013-10-22 16:54:15 +0000 | |
---|---|---|
committer | 2013-10-22 16:54:15 +0000 | |
commit | 7ce564cccb246ec56427085872b2e1458fe74bd1 (patch) | |
tree | 0018fffb8bb19b9cbee7b12cbf802f746aaf0bbd /src | |
parent | c294a97842d6d24b220e7512a8043b93554ed40e (diff) |
Revert "If the path is a rect, call drawRect to raster the geometry in SkCanvas::drawPath to get better performance."
This reverts commit r11904
Review URL: https://codereview.chromium.org/35543002
git-svn-id: http://skia.googlecode.com/svn/trunk@11909 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkBBoxRecord.cpp | 10 | ||||
-rw-r--r-- | src/core/SkBBoxRecord.h | 6 | ||||
-rw-r--r-- | src/core/SkCanvas.cpp | 4 | ||||
-rw-r--r-- | src/core/SkPictureRecord.cpp | 4 | ||||
-rw-r--r-- | src/core/SkPictureRecord.h | 6 | ||||
-rw-r--r-- | src/pipe/SkGPipeWrite.cpp | 11 | ||||
-rw-r--r-- | src/utils/SkDeferredCanvas.cpp | 4 | ||||
-rw-r--r-- | src/utils/SkDumpCanvas.cpp | 4 | ||||
-rw-r--r-- | src/utils/SkLuaCanvas.cpp | 4 | ||||
-rw-r--r-- | src/utils/SkNWayCanvas.cpp | 4 | ||||
-rw-r--r-- | src/utils/SkProxyCanvas.cpp | 4 | ||||
-rw-r--r-- | src/utils/debugger/SkDebugCanvas.cpp | 4 | ||||
-rw-r--r-- | src/utils/debugger/SkDebugCanvas.h | 9 |
13 files changed, 33 insertions, 41 deletions
diff --git a/src/core/SkBBoxRecord.cpp b/src/core/SkBBoxRecord.cpp index 08ae990135..1e6c69ba09 100644 --- a/src/core/SkBBoxRecord.cpp +++ b/src/core/SkBBoxRecord.cpp @@ -20,23 +20,23 @@ void SkBBoxRecord::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } } -void SkBBoxRecord::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkBBoxRecord::drawRect(const SkRect& rect, const SkPaint& paint) { if (this->transformBounds(rect, &paint)) { - INHERITED::onDrawRect(rect, paint); + INHERITED::drawRect(rect, paint); } } -void SkBBoxRecord::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkBBoxRecord::drawPath(const SkPath& path, const SkPaint& paint) { if (path.isInverseFillType()) { // If path is inverse filled, use the current clip bounds as the // path's device-space bounding box. SkIRect clipBounds; if (this->getClipDeviceBounds(&clipBounds)) { this->handleBBox(SkRect::MakeFromIRect(clipBounds)); - INHERITED::onDrawPath(path, paint); + INHERITED::drawPath(path, paint); } } else if (this->transformBounds(path.getBounds(), &paint)) { - INHERITED::onDrawPath(path, paint); + INHERITED::drawPath(path, paint); } } diff --git a/src/core/SkBBoxRecord.h b/src/core/SkBBoxRecord.h index e95ece4954..fa8b282247 100644 --- a/src/core/SkBBoxRecord.h +++ b/src/core/SkBBoxRecord.h @@ -31,6 +31,8 @@ public: virtual void drawOval(const SkRect& rect, const SkPaint& paint) SK_OVERRIDE; virtual void drawRRect(const SkRRect& rrect, const SkPaint& paint) SK_OVERRIDE; + virtual void drawRect(const SkRect& rect, const SkPaint& paint) SK_OVERRIDE; + virtual void drawPath(const SkPath& path, const SkPaint& paint) SK_OVERRIDE; virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint) SK_OVERRIDE; virtual void drawPaint(const SkPaint& paint) SK_OVERRIDE; @@ -63,10 +65,6 @@ public: const SkPaint& paint) SK_OVERRIDE; virtual void drawPicture(SkPicture& picture) SK_OVERRIDE; -protected: - virtual void onDrawRect(const SkRect& rect, const SkPaint& paint) SK_OVERRIDE; - virtual void onDrawPath(const SkPath& path, const SkPaint& paint) SK_OVERRIDE; - private: /** * Takes a bounding box in current canvas view space, accounts for stroking and effects, and diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 511f39f6a9..6036186fc2 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -1631,7 +1631,7 @@ void SkCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[], LOOPER_END } -void SkCanvas::onDrawRect(const SkRect& r, const SkPaint& paint) { +void SkCanvas::drawRect(const SkRect& r, const SkPaint& paint) { CHECK_SHADER_NOSETCONTEXT(paint); if (paint.canComputeFastBounds()) { @@ -1699,7 +1699,7 @@ void SkCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } -void SkCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkCanvas::drawPath(const SkPath& path, const SkPaint& paint) { CHECK_SHADER_NOSETCONTEXT(paint); if (!path.isFinite()) { diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp index bf7a34eef0..f7a7633faa 100644 --- a/src/core/SkPictureRecord.cpp +++ b/src/core/SkPictureRecord.cpp @@ -868,7 +868,7 @@ void SkPictureRecord::drawOval(const SkRect& oval, const SkPaint& paint) { this->validate(initialOffset, size); } -void SkPictureRecord::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkPictureRecord::drawRect(const SkRect& rect, const SkPaint& paint) { // op + paint index + rect uint32_t size = 2 * kUInt32Size + sizeof(rect); size_t initialOffset = this->addDraw(DRAW_RECT, &size); @@ -895,7 +895,7 @@ void SkPictureRecord::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } } -void SkPictureRecord::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkPictureRecord::drawPath(const SkPath& path, const SkPaint& paint) { // op + paint index + path index uint32_t size = 3 * kUInt32Size; size_t initialOffset = this->addDraw(DRAW_PATH, &size); diff --git a/src/core/SkPictureRecord.h b/src/core/SkPictureRecord.h index 33229cf45d..d80182cf8c 100644 --- a/src/core/SkPictureRecord.h +++ b/src/core/SkPictureRecord.h @@ -53,7 +53,9 @@ public: virtual void drawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint&) SK_OVERRIDE; virtual void drawOval(const SkRect&, const SkPaint&) SK_OVERRIDE; + virtual void drawRect(const SkRect&, const SkPaint&) SK_OVERRIDE; virtual void drawRRect(const SkRRect&, const SkPaint&) SK_OVERRIDE; + virtual void drawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE; virtual void drawBitmap(const SkBitmap&, SkScalar left, SkScalar top, const SkPaint*) SK_OVERRIDE; virtual void drawBitmapRectToRect(const SkBitmap&, const SkRect* src, @@ -104,10 +106,6 @@ public: void beginRecording(); void endRecording(); -protected: - virtual void onDrawRect(const SkRect&, const SkPaint&) SK_OVERRIDE; - virtual void onDrawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE; - private: void handleOptimization(int opt); void recordRestoreOffsetPlaceholder(SkRegion::Op); diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp index f14cdacc9b..57d4a0fdc3 100644 --- a/src/pipe/SkGPipeWrite.cpp +++ b/src/pipe/SkGPipeWrite.cpp @@ -224,7 +224,9 @@ public: virtual void drawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint&) SK_OVERRIDE; virtual void drawOval(const SkRect&, const SkPaint&) SK_OVERRIDE; + virtual void drawRect(const SkRect& rect, const SkPaint&) SK_OVERRIDE; virtual void drawRRect(const SkRRect&, const SkPaint&) SK_OVERRIDE; + virtual void drawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE; virtual void drawBitmap(const SkBitmap&, SkScalar left, SkScalar top, const SkPaint*) SK_OVERRIDE; virtual void drawBitmapRectToRect(const SkBitmap&, const SkRect* src, @@ -262,11 +264,6 @@ public: * according to slot. */ bool shuttleBitmap(const SkBitmap&, int32_t slot); - -protected: - virtual void onDrawRect(const SkRect& rect, const SkPaint&) SK_OVERRIDE; - virtual void onDrawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE; - private: enum { kNoSaveLayer = -1, @@ -718,7 +715,7 @@ void SkGPipeCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { } } -void SkGPipeCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkGPipeCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { NOTIFY_SETUP(this); this->writePaint(paint); if (this->needOpBytes(sizeof(SkRect))) { @@ -736,7 +733,7 @@ void SkGPipeCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } } -void SkGPipeCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkGPipeCanvas::drawPath(const SkPath& path, const SkPaint& paint) { NOTIFY_SETUP(this); this->writePaint(paint); if (this->needOpBytes(path.writeToMemory(NULL))) { diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp index bc00ab00d3..ce5eb5e6ab 100644 --- a/src/utils/SkDeferredCanvas.cpp +++ b/src/utils/SkDeferredCanvas.cpp @@ -846,7 +846,7 @@ void SkDeferredCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { this->recordedDrawCommand(); } -void SkDeferredCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkDeferredCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { if (fDeferredDrawing && this->isFullFrame(&rect, &paint) && isPaintOpaque(&paint)) { this->getDeferredDevice()->skipPendingCommands(); @@ -869,7 +869,7 @@ void SkDeferredCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } } -void SkDeferredCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkDeferredCanvas::drawPath(const SkPath& path, const SkPaint& paint) { AutoImmediateDrawIfNeeded autoDraw(*this, &paint); this->drawingCanvas()->drawPath(path, paint); this->recordedDrawCommand(); diff --git a/src/utils/SkDumpCanvas.cpp b/src/utils/SkDumpCanvas.cpp index 6658ee2a93..0e1a2321e1 100644 --- a/src/utils/SkDumpCanvas.cpp +++ b/src/utils/SkDumpCanvas.cpp @@ -323,7 +323,7 @@ void SkDumpCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { this->dump(kDrawOval_Verb, &paint, "drawOval(%s)", str.c_str()); } -void SkDumpCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkDumpCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { SkString str; toString(rect, &str); this->dump(kDrawRect_Verb, &paint, "drawRect(%s)", str.c_str()); @@ -335,7 +335,7 @@ void SkDumpCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { this->dump(kDrawRRect_Verb, &paint, "drawRRect(%s)", str.c_str()); } -void SkDumpCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkDumpCanvas::drawPath(const SkPath& path, const SkPaint& paint) { SkString str; toString(path, &str); this->dump(kDrawPath_Verb, &paint, "drawPath(%s)", str.c_str()); diff --git a/src/utils/SkLuaCanvas.cpp b/src/utils/SkLuaCanvas.cpp index 3b74596a8e..c5ec006913 100644 --- a/src/utils/SkLuaCanvas.cpp +++ b/src/utils/SkLuaCanvas.cpp @@ -187,7 +187,7 @@ void SkLuaCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { lua.pushPaint(paint, "paint"); } -void SkLuaCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkLuaCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { AUTO_LUA("drawRect"); lua.pushRect(rect, "rect"); lua.pushPaint(paint, "paint"); @@ -199,7 +199,7 @@ void SkLuaCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { lua.pushPaint(paint, "paint"); } -void SkLuaCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkLuaCanvas::drawPath(const SkPath& path, const SkPaint& paint) { AUTO_LUA("drawPath"); lua.pushPath(path, "path"); lua.pushPaint(paint, "paint"); diff --git a/src/utils/SkNWayCanvas.cpp b/src/utils/SkNWayCanvas.cpp index 8075bc4f35..eeb1bc2a09 100644 --- a/src/utils/SkNWayCanvas.cpp +++ b/src/utils/SkNWayCanvas.cpp @@ -190,7 +190,7 @@ void SkNWayCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { } } -void SkNWayCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkNWayCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { Iter iter(fList); while (iter.next()) { iter->drawRect(rect, paint); @@ -204,7 +204,7 @@ void SkNWayCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { } } -void SkNWayCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkNWayCanvas::drawPath(const SkPath& path, const SkPaint& paint) { Iter iter(fList); while (iter.next()) { iter->drawPath(path, paint); diff --git a/src/utils/SkProxyCanvas.cpp b/src/utils/SkProxyCanvas.cpp index 3bc9652d29..f530313b16 100644 --- a/src/utils/SkProxyCanvas.cpp +++ b/src/utils/SkProxyCanvas.cpp @@ -87,7 +87,7 @@ void SkProxyCanvas::drawOval(const SkRect& rect, const SkPaint& paint) { fProxy->drawOval(rect, paint); } -void SkProxyCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkProxyCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { fProxy->drawRect(rect, paint); } @@ -95,7 +95,7 @@ void SkProxyCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { fProxy->drawRRect(rrect, paint); } -void SkProxyCanvas::onDrawPath(const SkPath& path, const SkPaint& 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 41d268368d..53b531cf2d 100644 --- a/src/utils/debugger/SkDebugCanvas.cpp +++ b/src/utils/debugger/SkDebugCanvas.cpp @@ -363,7 +363,7 @@ void SkDebugCanvas::drawPaint(const SkPaint& paint) { addDrawCommand(new SkDrawPaintCommand(paint)); } -void SkDebugCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { +void SkDebugCanvas::drawPath(const SkPath& path, const SkPaint& paint) { addDrawCommand(new SkDrawPathCommand(path, paint)); } @@ -387,7 +387,7 @@ void SkDebugCanvas::drawPosTextH(const void* text, size_t byteLength, new SkDrawPosTextHCommand(text, byteLength, xpos, constY, paint)); } -void SkDebugCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { +void SkDebugCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { // NOTE(chudy): Messing up when renamed to DrawRect... Why? addDrawCommand(new SkDrawRectCommand(rect, paint)); } diff --git a/src/utils/debugger/SkDebugCanvas.h b/src/utils/debugger/SkDebugCanvas.h index 93444ac10b..7d1166286a 100644 --- a/src/utils/debugger/SkDebugCanvas.h +++ b/src/utils/debugger/SkDebugCanvas.h @@ -189,6 +189,8 @@ public: virtual void drawPaint(const SkPaint& paint) SK_OVERRIDE; + virtual void drawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE; + virtual void drawPicture(SkPicture& picture) SK_OVERRIDE; virtual void drawPoints(PointMode, size_t count, const SkPoint pts[], @@ -201,6 +203,8 @@ public: const SkScalar xpos[], SkScalar constY, const SkPaint&) SK_OVERRIDE; + virtual void drawRect(const SkRect& rect, const SkPaint&) SK_OVERRIDE; + virtual void drawRRect(const SkRRect& rrect, const SkPaint& paint) SK_OVERRIDE; virtual void drawSprite(const SkBitmap&, int left, int top, @@ -238,11 +242,6 @@ public: static const int kVizImageHeight = 256; static const int kVizImageWidth = 256; -protected: - virtual void onDrawRect(const SkRect& rect, const SkPaint&) SK_OVERRIDE; - - virtual void onDrawPath(const SkPath& path, const SkPaint&) SK_OVERRIDE; - private: SkTDArray<SkDrawCommand*> fCommandVector; int fHeight; |