diff options
author | 2016-11-29 10:29:22 -0500 | |
---|---|---|
committer | 2016-11-29 18:26:06 +0000 | |
commit | db13a093bec6ac1c06bb7c2ec1bde99c42130280 (patch) | |
tree | 7d09c631f1bdb4d50dae7988abff302ffca97411 /src/core | |
parent | 32ac83ebdc4ac967aae95a48a62c991d459dab73 (diff) |
Use AdditiveBlitter for partial rows
Previously, we forgot to use AdditiveBlitter in two places where partial
rows are blitterred. That causes SkAAClip to complain as in skia:6003.
BUG=skia:6003
Change-Id: I4f4a896072448bdb3f287a2eb61cb64b1256ea78
Reviewed-on: https://skia-review.googlesource.com/5273
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkScan_AAAPath.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/SkScan_AAAPath.cpp b/src/core/SkScan_AAAPath.cpp index bd0d9b0427..554f99d2b3 100644 --- a/src/core/SkScan_AAAPath.cpp +++ b/src/core/SkScan_AAAPath.cpp @@ -1017,8 +1017,13 @@ static inline void aaa_walk_convex_edges(SkAnalyticEdge* prevHead, AdditiveBlitt } } else { // left and rite are within the same pixel if (partialTop > 0) { + #ifdef SK_ANALYTIC_AA_GUARD blitter->getRealBlitter()->blitV(fullLeft - 1, fullTop - 1, 1, f2a(SkFixedMul(partialTop, rite - left))); + #else + blitter->blitAntiH(fullLeft - 1, fullTop - 1, 1, + f2a(SkFixedMul(partialTop, rite - left))); + #endif blitter->flush_if_y_changed(y, y + partialTop); } if (fullBot > fullTop) { @@ -1026,8 +1031,13 @@ static inline void aaa_walk_convex_edges(SkAnalyticEdge* prevHead, AdditiveBlitt f2a(rite - left)); } if (partialBot > 0) { + #ifdef SK_ANALYTIC_AA_GUARD blitter->getRealBlitter()->blitV(fullLeft - 1, fullBot, 1, f2a(SkFixedMul(partialBot, rite - left))); + #else + blitter->blitAntiH(fullLeft - 1, fullBot, 1, + f2a(SkFixedMul(partialBot, rite - left))); + #endif } } |