Merge "Pass filtering to drawLattice" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-01-28 16:36:25 +00:00
committed by Android (Google) Code Review
3 changed files with 9 additions and 2 deletions

View File

@@ -700,11 +700,14 @@ void SkiaCanvas::drawNinePatch(Bitmap& bitmap, const Res_png_9patch& chunk, floa
NinePatchUtils::SetLatticeFlags(&lattice, flags.get(), numFlags, chunk, colors.get()); NinePatchUtils::SetLatticeFlags(&lattice, flags.get(), numFlags, chunk, colors.get());
} }
SkFilterMode filter = paint && paint->isFilterBitmap() ? SkFilterMode::kLinear
: SkFilterMode::kNearest;
lattice.fBounds = nullptr; lattice.fBounds = nullptr;
SkRect dst = SkRect::MakeLTRB(dstLeft, dstTop, dstRight, dstBottom); SkRect dst = SkRect::MakeLTRB(dstLeft, dstTop, dstRight, dstBottom);
auto image = bitmap.makeImage(); auto image = bitmap.makeImage();
apply_looper(paint, [&](const SkPaint& p) { apply_looper(paint, [&](const SkPaint& p) {
mCanvas->drawImageLattice(image.get(), lattice, dst, &p); mCanvas->drawImageLattice(image.get(), lattice, dst, filter, &p);
}); });
} }

View File

@@ -408,21 +408,24 @@ struct CanvasOp<CanvasOpType::DrawImageLattice> {
const sk_sp<Bitmap>& bitmap, const sk_sp<Bitmap>& bitmap,
SkRect dst, SkRect dst,
SkCanvas::Lattice lattice, SkCanvas::Lattice lattice,
SkFilterMode filter,
SkPaint paint SkPaint paint
): dst(dst), ): dst(dst),
lattice(lattice), lattice(lattice),
filter(filter),
bitmap(bitmap), bitmap(bitmap),
image(bitmap->makeImage()), image(bitmap->makeImage()),
paint(std::move(paint)) {} paint(std::move(paint)) {}
SkRect dst; SkRect dst;
SkCanvas::Lattice lattice; SkCanvas::Lattice lattice;
SkFilterMode filter;
const sk_sp<Bitmap> bitmap; const sk_sp<Bitmap> bitmap;
const sk_sp<SkImage> image; const sk_sp<SkImage> image;
SkPaint paint; SkPaint paint;
void draw(SkCanvas* canvas) const { void draw(SkCanvas* canvas) const {
canvas->drawImageLattice(image.get(), lattice, dst, &paint); canvas->drawImageLattice(image.get(), lattice, dst, filter, &paint);
} }
ASSERT_DRAWABLE() ASSERT_DRAWABLE()
}; };

View File

@@ -528,6 +528,7 @@ TEST(CanvasOp, simpleDrawImageLattice) {
bitmap, bitmap,
SkRect::MakeWH(5, 1), SkRect::MakeWH(5, 1),
lattice, lattice,
SkFilterMode::kNearest,
SkPaint{} SkPaint{}
} }
); );