diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-12-12 19:15:31 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-12-12 19:15:31 +0000 |
commit | 25c1408c3da9ca90509b84f21a1161ef40052bd1 (patch) | |
tree | 4455a49c8761c38b489ab5dd2733d9066ef503de /src/core/SkCanvas.cpp | |
parent | 9b0fd9aa663612c983e4dfa1323cecda6e1e9029 (diff) |
revert 6762-6763, since those require new skps to be generated, and we can't
do that immediately right now... will re-submit when we can.
git-svn-id: http://skia.googlecode.com/svn/trunk@6766 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkCanvas.cpp')
-rw-r--r-- | src/core/SkCanvas.cpp | 79 |
1 files changed, 28 insertions, 51 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 3efdd22c3c..34310c8248 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -17,7 +17,6 @@ #include "SkMetaData.h" #include "SkPicture.h" #include "SkRasterClip.h" -#include "SkRRect.h" #include "SkScalarCompare.h" #include "SkSurface_Base.h" #include "SkTemplates.h" @@ -1126,18 +1125,6 @@ static bool clipPathHelper(const SkCanvas* canvas, SkRasterClip* currClip, } } -bool SkCanvas::clipRRect(const SkRRect& rrect, SkRegion::Op op, bool doAA) { - if (rrect.isRect()) { - // call the non-virtual version - return this->SkCanvas::clipRect(rrect.getBounds(), op, doAA); - } else { - SkPath path; - path.addRRect(rrect); - // call the non-virtual version - return this->SkCanvas::clipPath(path, op, doAA); - } -} - bool SkCanvas::clipPath(const SkPath& path, SkRegion::Op op, bool doAA) { #ifdef SK_ENABLE_CLIP_QUICKREJECT if (SkRegion::kIntersect_Op == op && !path.isInverseFillType()) { @@ -1479,40 +1466,6 @@ void SkCanvas::drawRect(const SkRect& r, const SkPaint& paint) { LOOPER_END } -void SkCanvas::drawOval(const SkRect& oval, const SkPaint& paint) { - if (paint.canComputeFastBounds()) { - SkRect storage; - if (this->quickReject(paint.computeFastBounds(oval, &storage))) { - return; - } - } - - SkPath path; - path.addOval(oval); - // call the non-virtual version - this->SkCanvas::drawPath(path, paint); -} - -void SkCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { - if (paint.canComputeFastBounds()) { - SkRect storage; - if (this->quickReject(paint.computeFastBounds(rrect.getBounds(), &storage))) { - return; - } - } - - if (rrect.isRect()) { - // call the non-virtual version - this->SkCanvas::drawRect(rrect.getBounds(), paint); - } else { - SkPath path; - path.addRRect(rrect); - // call the non-virtual version - this->SkCanvas::drawPath(path, paint); - } -} - - void SkCanvas::drawPath(const SkPath& path, const SkPaint& paint) { if (!path.isFinite()) { return; @@ -1945,7 +1898,17 @@ void SkCanvas::drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, SkRect r; r.set(cx - radius, cy - radius, cx + radius, cy + radius); - this->drawOval(r, paint); + + if (paint.canComputeFastBounds()) { + SkRect storage; + if (this->quickReject(paint.computeFastBounds(r, &storage))) { + return; + } + } + + SkPath path; + path.addOval(r); + this->drawPath(path, paint); } void SkCanvas::drawRoundRect(const SkRect& r, SkScalar rx, SkScalar ry, @@ -1957,14 +1920,28 @@ void SkCanvas::drawRoundRect(const SkRect& r, SkScalar rx, SkScalar ry, return; } } - SkRRect rrect; - rrect.setRectXY(r, rx, ry); - this->drawRRect(rrect, paint); + + SkPath path; + path.addRoundRect(r, rx, ry, SkPath::kCW_Direction); + this->drawPath(path, paint); } else { this->drawRect(r, paint); } } +void SkCanvas::drawOval(const SkRect& oval, const SkPaint& paint) { + if (paint.canComputeFastBounds()) { + SkRect storage; + if (this->quickReject(paint.computeFastBounds(oval, &storage))) { + return; + } + } + + SkPath path; + path.addOval(oval); + this->drawPath(path, paint); +} + void SkCanvas::drawArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool useCenter, const SkPaint& paint) { |