Perform degenerate check in device coords in convex path renderer
Review URL: http://codereview.appspot.com/5821053/
git-svn-id: http://skia.googlecode.com/svn/trunk@3401 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrAAConvexPathRenderer.cpp b/src/gpu/GrAAConvexPathRenderer.cpp
index 22a1bb5..45ef699 100644
--- a/src/gpu/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/GrAAConvexPathRenderer.cpp
@@ -242,32 +242,33 @@
GrPathCmd cmd = (GrPathCmd)iter.next(pts);
switch (cmd) {
case kMove_PathCmd:
+ m.mapPoints(pts, 1);
update_degenerate_test(°enerateData, pts[0]);
break;
case kLine_PathCmd: {
- update_degenerate_test(°enerateData, pts[1]);
m.mapPoints(pts + 1, 1);
+ update_degenerate_test(°enerateData, pts[1]);
segments->push_back();
segments->back().fType = Segment::kLine;
segments->back().fPts[0] = pts[1];
break;
}
case kQuadratic_PathCmd:
+ m.mapPoints(pts + 1, 2);
update_degenerate_test(°enerateData, pts[1]);
update_degenerate_test(°enerateData, pts[2]);
- m.mapPoints(pts + 1, 2);
segments->push_back();
segments->back().fType = Segment::kQuad;
segments->back().fPts[0] = pts[1];
segments->back().fPts[1] = pts[2];
break;
case kCubic_PathCmd: {
+ m.mapPoints(pts, 4);
update_degenerate_test(°enerateData, pts[1]);
update_degenerate_test(°enerateData, pts[2]);
update_degenerate_test(°enerateData, pts[3]);
// unlike quads and lines, the pts[0] will also be read (in
// convertCubicToQuads).
- m.mapPoints(pts, 4);
SkSTArray<15, SkPoint, true> quads;
GrPathUtils::convertCubicToQuads(pts, SK_Scalar1, &quads);
int count = quads.count();