ccpr: Cull extremely thin triangles

When triangles get too thin it's possible for FP round-off error to
actually give us the wrong winding direction, causing rendering
artifacts. This change also allows us to unblacklist ANGLE.

Bug: skia:7805
Bug: skia:7820
Change-Id: Ibaa0f033eba625d720e3a594c4515d8264cc413d
Reviewed-on: https://skia-review.googlesource.com/123262
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/ccpr/GrCCPathParser.cpp b/src/gpu/ccpr/GrCCPathParser.cpp
index 2740569..1629a19 100644
--- a/src/gpu/ccpr/GrCCPathParser.cpp
+++ b/src/gpu/ccpr/GrCCPathParser.cpp
@@ -132,7 +132,7 @@
                 insideContour = false;
                 continue;
             case SkPath::kLine_Verb:
-                fGeometry.lineTo(deviceSpacePts[ptsIdx]);
+                fGeometry.lineTo(&deviceSpacePts[ptsIdx - 1]);
                 ++ptsIdx;
                 continue;
             case SkPath::kQuad_Verb:
@@ -340,8 +340,7 @@
         } else {
             quadPointInstanceData[indices->fWeightedTriangles++].setW(
                     vertices[i].fPos, vertices[i+1].fPos, vertices[i + 2].fPos, atlasOffset,
-                    // Tessellator has opposite winding sense.
-                    -static_cast<float>(vertices[i].fWinding));
+                    static_cast<float>(abs(vertices[i].fWinding)));
         }
     }
 }