Index: src/gpu/SkGpuDevice.cpp |
=================================================================== |
--- src/gpu/SkGpuDevice.cpp (revision 11903) |
+++ src/gpu/SkGpuDevice.cpp (working copy) |
@@ -620,11 +620,11 @@ |
SkScalar width = paint.getStrokeWidth(); |
/* |
- We have special code for hairline strokes, miter-strokes, and fills. |
- Anything else we just call our path code. |
+ We have special code for hairline strokes, miter-strokes, bevel-stroke |
+ and fills. Anything else we just call our path code. |
*/ |
bool usePath = doStroke && width > 0 && |
- paint.getStrokeJoin() != SkPaint::kMiter_Join; |
+ paint.getStrokeJoin() == SkPaint::kRound_Join; |
// another two reasons we might need to call drawPath... |
if (paint.getMaskFilter() || paint.getPathEffect()) { |
usePath = true; |
@@ -640,12 +640,6 @@ |
} |
#endif |
} |
- // small miter limit means right angles show bevel... |
- if (SkPaint::kMiter_Join == paint.getStrokeJoin() && |
- paint.getStrokeMiter() < SK_ScalarSqrt2) |
- { |
- usePath = true; |
- } |
// until we can both stroke and fill rectangles |
if (paint.getStyle() == SkPaint::kStrokeAndFill_Style) { |
usePath = true; |
@@ -662,7 +656,9 @@ |
if (!skPaint2GrPaintShader(this, paint, true, &grPaint)) { |
return; |
} |
- fContext->drawRect(grPaint, rect, doStroke ? width : -1); |
+ |
robertphillips
2013/10/30 14:36:08
How expensive is it to create the SkStrokeRect all
yunchao
2013/10/31 07:47:23
Agree. create the SkStrokeRec when it is needed to
|
+ SkStrokeRec stroke(paint); |
+ fContext->drawRect(grPaint, rect, doStroke ? &stroke : NULL, NULL); |
} |
/////////////////////////////////////////////////////////////////////////////// |