Revert "Revert "use blitMask for left/right edges in blur-nine""
This reverts commit0e29c633fe
. Reason for revert: The layout tests have been suppressed in https://chromium-review.googlesource.com/c/553239/ - no need to revert Bug: 737714 Original change's description: > Revert "use blitMask for left/right edges in blur-nine" > > This reverts commit3fe44544c9
. > > Reason for revert: I believe this is the cause of the layout test regressions in crbug.com/737714 > > Bug: 737714 > > Original change's description: > > use blitMask for left/right edges in blur-nine > > > > Seems about same speed for legacy blitter, but much faster for raster-pipeline > > > > Bug: skia: > > Change-Id: I19be307c01a199e2477e045fb8c2cca7784564a5 > > Reviewed-on: https://skia-review.googlesource.com/20967 > > Commit-Queue: Mike Reed <reed@google.com> > > Reviewed-by: Mike Klein <mtklein@chromium.org> > > TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com > > Change-Id: Id7be3ff779191175d91ebd51c7d275fd1104ae0d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/21182 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Robert Phillips <robertphillips@google.com> TBR=mtklein@chromium.org,mtklein@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com Change-Id: I9f232e838bcad4e4cf0d8c7226d5e57a349e52be No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 737714, skia: Reviewed-on: https://skia-review.googlesource.com/21183 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
This commit is contained in:
parent
0e29c633fe
commit
e911c63b6a
@ -164,15 +164,30 @@ static void draw_nine_clipped(const SkMask& mask, const SkIRect& outerR,
|
||||
blitter->blitAntiH(r.left(), outerR.bottom() - y - 1, alpha, runs);
|
||||
}
|
||||
}
|
||||
#ifdef SK_SUPPORT_BLITV_FOR_BLUR_NINE
|
||||
const bool useBlitV = true;
|
||||
#else
|
||||
const bool useBlitV = false;
|
||||
#endif
|
||||
// left
|
||||
r.set(outerR.left(), innerR.top(), innerR.left(), innerR.bottom());
|
||||
if (r.intersect(clipR)) {
|
||||
int startX = r.left() - outerR.left();
|
||||
int stopX = startX + r.width();
|
||||
int height = r.height();
|
||||
for (int x = startX; x < stopX; ++x) {
|
||||
blitter->blitV(outerR.left() + x, r.top(), height,
|
||||
*mask.getAddr8(mask.fBounds.left() + x, mask.fBounds.top() + cy));
|
||||
if (useBlitV) {
|
||||
for (int x = startX; x < stopX; ++x) {
|
||||
blitter->blitV(outerR.left() + x, r.top(), height,
|
||||
*mask.getAddr8(mask.fBounds.left() + x, mask.fBounds.top() + cy));
|
||||
}
|
||||
} else {
|
||||
SkMask m;
|
||||
m.fImage = mask.getAddr8(mask.fBounds.left() + r.left() - outerR.left(),
|
||||
mask.fBounds.top() + cy);
|
||||
m.fBounds = r;
|
||||
m.fRowBytes = 0; // so we repeat the scanline for our height
|
||||
m.fFormat = SkMask::kA8_Format;
|
||||
blitter->blitMask(m, r);
|
||||
}
|
||||
}
|
||||
// right
|
||||
@ -181,9 +196,19 @@ static void draw_nine_clipped(const SkMask& mask, const SkIRect& outerR,
|
||||
int startX = outerR.right() - r.right();
|
||||
int stopX = startX + r.width();
|
||||
int height = r.height();
|
||||
for (int x = startX; x < stopX; ++x) {
|
||||
blitter->blitV(outerR.right() - x - 1, r.top(), height,
|
||||
*mask.getAddr8(mask.fBounds.right() - x - 1, mask.fBounds.top() + cy));
|
||||
if (useBlitV) {
|
||||
for (int x = startX; x < stopX; ++x) {
|
||||
blitter->blitV(outerR.right() - x - 1, r.top(), height,
|
||||
*mask.getAddr8(mask.fBounds.right() - x - 1, mask.fBounds.top() + cy));
|
||||
}
|
||||
} else {
|
||||
SkMask m;
|
||||
m.fImage = mask.getAddr8(mask.fBounds.right() - outerR.right() + r.left(),
|
||||
mask.fBounds.top() + cy);
|
||||
m.fBounds = r;
|
||||
m.fRowBytes = 0; // so we repeat the scanline for our height
|
||||
m.fFormat = SkMask::kA8_Format;
|
||||
blitter->blitMask(m, r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user