aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Yuqian Li <liyuqian@google.com>2016-11-29 10:29:22 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-29 18:26:06 +0000
commitdb13a093bec6ac1c06bb7c2ec1bde99c42130280 (patch)
tree7d09c631f1bdb4d50dae7988abff302ffca97411 /src/core
parent32ac83ebdc4ac967aae95a48a62c991d459dab73 (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.cpp10
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
}
}