GrTessellator (AA): Fix for missing fill artifacts.
authorStephen White <senorblanco@chromium.org>
Fri, 3 Feb 2017 15:15:16 +0000 (10:15 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Fri, 3 Feb 2017 15:47:07 +0000 (15:47 +0000)
commit48ded38da99c1171ba1bb469f6500f8214e9105c
tree436983de2d33153e7eefe22ec9c0c8faf9590efc
parent0f90668c122ba4c9a39b57a9b3d0880e3feb5e17
GrTessellator (AA): Fix for missing fill artifacts.

Some regions were being incorrectly filled due to setting
connector edges winding to zero *after* merging collinear edges.
This would cause the merge to add the wrong winding value. Putting the
adjust before the call to merge_collinear_edges() fixes the problem.

Also, some pixels were not getting coverage due the inner edge being
+1 winding. Using -2 winding for inner edges ensure the interior
regions are -1 winding, which gives coverage in more cases of
self-intersection. This required flipping the comparisons on the
intruding-vertices workaround.

BUG=skia:

Change-Id: I216fa3d30c196a6b7773637e48802f6572c993c7
Reviewed-on: https://skia-review.googlesource.com/7962
Commit-Queue: Stephan White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
src/gpu/GrTessellator.cpp