| Index: trunk/src/core/SkStroke.cpp
|
| ===================================================================
|
| --- trunk/src/core/SkStroke.cpp (revision 8043)
|
| +++ trunk/src/core/SkStroke.cpp (working copy)
|
| @@ -303,13 +303,23 @@
|
| SkAssertResult(set_normal_unitnormal(cd, fRadius, normalCD, unitNormalCD));
|
| bool degenerateBC = !set_normal_unitnormal(pts[1], pts[2], fRadius,
|
| &normalBC, &unitNormalBC);
|
| -
|
| +#ifndef SK_IGNORE_CUBIC_STROKE_FIX
|
| + if (subDivide <= 0) {
|
| + if (degenerateBC) {
|
| + goto DRAW_LINE;
|
| + } else {
|
| + goto DRAW_CUBIC;
|
| + }
|
| + }
|
| +#endif
|
| if (degenerateBC || normals_too_curvy(unitNormalAB, unitNormalBC) ||
|
| normals_too_curvy(unitNormalBC, *unitNormalCD)) {
|
| +#ifdef SK_IGNORE_CUBIC_STROKE_FIX
|
| // subdivide if we can
|
| if (--subDivide < 0) {
|
| goto DRAW_LINE;
|
| }
|
| +#endif
|
| SkPoint tmp[7];
|
| SkVector norm, unit, dummy, unitDummy;
|
|
|
| @@ -320,6 +330,9 @@
|
| // normals for CD
|
| this->cubic_to(&tmp[3], norm, unit, &dummy, &unitDummy, subDivide);
|
| } else {
|
| +#ifndef SK_IGNORE_CUBIC_STROKE_FIX
|
| + DRAW_CUBIC:
|
| +#endif
|
| SkVector normalB, normalC;
|
|
|
| // need normals to inset/outset the off-curve pts B and C
|
|
|