aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrOvalRenderer.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-07 16:34:53 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-07 16:34:53 +0000
commiteacc48978e5467ade489149f3f7bece308f40e2c (patch)
tree57dfb703e0eafe7fe38ffd3179b85d4e2e13b152 /src/gpu/GrOvalRenderer.cpp
parent126f7f5244502c0cbf1e5fec1d2ad7a0f2eb6c34 (diff)
Fix for thin filled and hairline roundrects.
The roundrect renderer was dropping into the ConvexPathRenderer when it didn't need to -- if a stroke is just on the edge of being acceptable it will now use the roundrect renderer. BUG=Skia:1802 R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/59903005 git-svn-id: http://skia.googlecode.com/svn/trunk@12168 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/GrOvalRenderer.cpp')
-rw-r--r--src/gpu/GrOvalRenderer.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp
index 27bd74a88a..aeeb85d2e1 100644
--- a/src/gpu/GrOvalRenderer.cpp
+++ b/src/gpu/GrOvalRenderer.cpp
@@ -909,7 +909,7 @@ bool GrOvalRenderer::drawSimpleRRect(GrDrawTarget* target, GrContext* context, b
// if hairline stroke is greater than radius, we don't handle that right now
SkStrokeRec::Style style = stroke.getStyle();
if (SkStrokeRec::kHairline_Style == style &&
- (SK_ScalarHalf >= xRadius || SK_ScalarHalf >= yRadius)) {
+ (SK_ScalarHalf > xRadius || SK_ScalarHalf > yRadius)) {
return false;
}
@@ -920,7 +920,7 @@ bool GrOvalRenderer::drawSimpleRRect(GrDrawTarget* target, GrContext* context, b
scaledStroke.fY = SkScalarAbs(strokeWidth*(vm[SkMatrix::kMSkewX] + vm[SkMatrix::kMScaleY]));
// if half of strokewidth is greater than radius, we don't handle that right now
- if (SK_ScalarHalf*scaledStroke.fX >= xRadius || SK_ScalarHalf*scaledStroke.fY >= yRadius) {
+ if (SK_ScalarHalf*scaledStroke.fX > xRadius || SK_ScalarHalf*scaledStroke.fY > yRadius) {
return false;
}
@@ -968,7 +968,7 @@ bool GrOvalRenderer::drawSimpleRRect(GrDrawTarget* target, GrContext* context, b
bounds.outset(halfWidth, halfWidth);
}
- isStroked = (isStroked && innerRadius > 0);
+ isStroked = (isStroked && innerRadius >= 0);
GrEffectRef* effect = CircleEdgeEffect::Create(isStroked);
static const int kCircleEdgeAttrIndex = 1;
@@ -1064,7 +1064,7 @@ bool GrOvalRenderer::drawSimpleRRect(GrDrawTarget* target, GrContext* context, b
bounds.outset(scaledStroke.fX, scaledStroke.fY);
}
- isStroked = (isStroked && innerXRadius > 0 && innerYRadius > 0);
+ isStroked = (isStroked && innerXRadius >= 0 && innerYRadius >= 0);
GrDrawTarget::AutoReleaseGeometry geo(target, 16, 0);
if (!geo.succeeded()) {