[SkScan_AAA] Only round y in updateQuadratic if dx/dy isn't too large

When our slope is too large the accuracy of the slope is limited due
to conversion to SkFDot6 and division. This causes an ASSERT statement to go off in SkAnalyticQuadraticEdge::keepContinuous() later because our snapped x value is much different than the x value we expect (taken from goY(SkFixed, int) function). Thus when our slope is too large we can opt to snap to the nearest 1/4 pixel y value instead of integer for more fidelity/no extra x translation and accuracy of snapped x value.


Bug: 398075927
Change-Id: I31dfe83e7c8aa67f92c0032645a91657848eb60d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/962096
Reviewed-by: Kaylee Lubick <kjlubick@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Daniel Dilan <danieldilan@google.com>
Auto-Submit: Daniel Dilan <danieldilan@google.com>
2 files changed