vcl/skia/gdiimpl.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
New commits: commit a6f9edbd3bf74022083302c6d857b644d71d2b48 Author: Luboš Luňák <l.lu...@collabora.com> AuthorDate: Mon May 25 12:55:45 2020 +0200 Commit: Luboš Luňák <l.lu...@collabora.com> CommitDate: Mon May 25 13:52:08 2020 +0200 high quality scale when drawing scaled Skia image (tdf#133339) Apparently even drawBitmap() may lead to image scaling. Change-Id: I8665dfc4d12768c3824bbc45aaa72277168acc8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94781 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lu...@collabora.com> diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx index b280f732425f..a2ccb12d406d 100644 --- a/vcl/skia/gdiimpl.cxx +++ b/vcl/skia/gdiimpl.cxx @@ -978,6 +978,9 @@ void SkiaSalGraphicsImpl::copyBits(const SalTwoRect& rPosAry, SalGraphics* pSrcG sk_sp<SkImage> image = src->mSurface->makeImageSnapshot(); SkPaint paint; paint.setBlendMode(SkBlendMode::kSrc); // copy as is, including alpha + if (rPosAry.mnSrcWidth != rPosAry.mnDestWidth + || rPosAry.mnSrcHeight != rPosAry.mnDestHeight) + paint.setFilterQuality(kHigh_SkFilterQuality); getDrawCanvas()->drawImageRect(image, SkIRect::MakeXYWH(rPosAry.mnSrcX, rPosAry.mnSrcY, rPosAry.mnSrcWidth, rPosAry.mnSrcHeight), @@ -1365,9 +1368,12 @@ void SkiaSalGraphicsImpl::drawImage(const SalTwoRect& rPosAry, const sk_sp<SkIma SkPaint aPaint; aPaint.setBlendMode(eBlendMode); + if (rPosAry.mnSrcWidth != rPosAry.mnDestWidth || rPosAry.mnSrcHeight != rPosAry.mnDestHeight) + aPaint.setFilterQuality(kHigh_SkFilterQuality); preDraw(); - SAL_INFO("vcl.skia.trace", "drawimage(" << this << "): " << rPosAry << ":" << int(eBlendMode)); + SAL_INFO("vcl.skia.trace", + "drawimage(" << this << "): " << rPosAry << ":" << SkBlendMode_Name(eBlendMode)); getDrawCanvas()->drawImageRect(aImage, aSourceRect, aDestinationRect, &aPaint); addXorRegion(aDestinationRect); postDraw(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits