diff options
Diffstat (limited to 'src/gpu/GrTessellator.cpp')
-rw-r--r-- | src/gpu/GrTessellator.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gpu/GrTessellator.cpp b/src/gpu/GrTessellator.cpp index b8ec6551c9..00e5c8a21c 100644 --- a/src/gpu/GrTessellator.cpp +++ b/src/gpu/GrTessellator.cpp @@ -1421,6 +1421,12 @@ bool simplify(VertexList* mesh, Comparator& c, SkArenaAlloc& alloc) { LOG("\nvertex %g: (%g,%g), alpha %d\n", v->fID, v->fPoint.fX, v->fPoint.fY, v->fAlpha); restartChecks = false; find_enclosing_edges(v, &activeEdges, &leftEnclosingEdge, &rightEnclosingEdge); + if (rightEnclosingEdge && !rightEnclosingEdge->isRightOf(v)) { + split_edge(rightEnclosingEdge, v, &activeEdges, &v, c, alloc); + restartChecks = true; + continue; + } + SkASSERT(!rightEnclosingEdge || rightEnclosingEdge->isRightOf(v)); v->fLeftEnclosingEdge = leftEnclosingEdge; v->fRightEnclosingEdge = rightEnclosingEdge; if (v->fFirstEdgeBelow) { |