summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2020-06-24 10:38:41 +0200
committerAdolfo Jayme Barrientos <fitojb@ubuntu.com>2020-06-26 12:49:10 +0200
commitd00d56db1b5552e5db52caa9058e5d6ca0ff1de4 (patch)
tree4287569aa4e0d9562170993bb25eb257701052af /vcl
parent7b2f854754065354ccd50a42e0b7d28ee7c745dd (diff)
in Skia raster mode cache even enlarging of images (tdf#134160)
Change-Id: I842b55cd922eb0e411fd7450e84224b41ba82a2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96989 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> (cherry picked from commit 4654ac5aa75abc59226e15d12e77bd9fa95f7528) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97004 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/skia/gdiimpl.cxx21
1 files changed, 14 insertions, 7 deletions
diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index b632f6369363..c33a035329ed 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -1263,16 +1263,23 @@ static sk_sp<SkImage> mergeBitmaps(const SkiaSalBitmap& bitmap, const SkiaSalBit
{
sk_sp<SkImage> image;
OString key;
+ // Probably not much point in caching of just doing a copy.
if (alphaBitmap == nullptr && targetSize == bitmap.GetSize())
- blockCaching = true; // probably not much point in caching of just doing a copy
- if (targetSize.Width() > bitmap.GetSize().Width()
- || targetSize.Height() > bitmap.GetSize().Height())
- blockCaching = true; // caching enlarging is probably wasteful and not worth it
- if (bitmap.GetSize().Width() < 100 && bitmap.GetSize().Height() < 100)
- blockCaching = true; // image too small to be worth caching
+ blockCaching = true;
+ // Caching enlarging is probably wasteful and not worth it.
+ // With Raster it may make a difference though (tdf#134160).
+ if (SkiaHelper::renderMethodToUse() != SkiaHelper::RenderRaster
+ && (targetSize.Width() > bitmap.GetSize().Width()
+ || targetSize.Height() > bitmap.GetSize().Height()))
+ blockCaching = true;
+ // Image too small to be worth caching.
+ if (bitmap.GetSize().Width() < 100 && bitmap.GetSize().Height() < 100
+ && targetSize.Width() < 100 && targetSize.Height() < 100)
+ blockCaching = true;
+ // GPU-accelerated shouldn't need caching of applying alpha.
if (SkiaHelper::renderMethodToUse() != SkiaHelper::RenderRaster
&& targetSize == bitmap.GetSize())
- blockCaching = true; // GPU-accelerated shouldn't need caching of applying alpha
+ blockCaching = true;
if (!blockCaching)
{
OStringBuffer keyBuf;