https://bugs.documentfoundation.org/show_bug.cgi?id=161480

Patrick (volunteer) <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|[email protected] |[email protected]
                   |desktop.org                 |

--- Comment #8 from Patrick (volunteer) <[email protected]> ---
(In reply to Telesto from comment #6)
> Is this still an issue on other platforms?
> 
> I'm not seeing any issue rendering gif in the screencast here: attachment
> 198406 [details] 
> posted at bug 161480 comment 10 with

I have uploaded the following patch that fixes this bug on macOS:

https://gerrit.libreoffice.org/c/core/+/179848

Not sure if Windows or Linux has the same issue, but what I found is that on
macOS this bug occurs when upscaling images. With a Retina display on macOS,
upscaling is done very frequently (because Retina holds 4 pixels of memory for
every 1 pixel of screen size).

So maybe this bug might occur if Windows or Linux has a scaled display of 150%
or more. But I wouldn't be surprised if this is a bug only on macOS so I
limited my fix to only macOS.

If anyone has a Windows or Linux build and they can reproduce this build, try
applying the following patch. This will apply my macOS fix to all platforms:

diff --git a/vcl/inc/skia/utils.hxx b/vcl/inc/skia/utils.hxx
index 08d3ad4da44e..a0a6ea2da427 100644
--- a/vcl/inc/skia/utils.hxx
+++ b/vcl/inc/skia/utils.hxx
@@ -161,7 +161,6 @@ inline bool isUnitTestRunning(const char* name = nullptr)
 // algorithm done by VCL does as well).
 inline BmpScaleFlag goodScalingQuality(bool isGPU, bool isUpscale = false)
 {
-#ifdef MACOSX
     // tdf#161480 use BmpScaleFlag::NearestNeighbor when upscaling on macOS
     // On macOS, due to Retina window scaling, it is very common to
     // have Skia surfaces that are 2 times the size of their respective
@@ -172,9 +171,6 @@ inline BmpScaleFlag goodScalingQuality(bool isGPU, bool
isUpscale = false)
     // the bitmap correctly.
     if (isUpscale)
         return BmpScaleFlag::NearestNeighbor;
-#else
-    (void)isUpscale;
-#endif

     return isGPU ? BmpScaleFlag::BestQuality : BmpScaleFlag::Default;
 }

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to