[Libreoffice-commits] core.git: vcl/opengl vcl/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Oct 30 12:25:23 UTC 2018
vcl/opengl/salbmp.cxx | 2 +-
vcl/source/image/ImplImageTree.cxx | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
New commits:
commit b0c475a00ced9ec1e4ef1efb9d184ee8e2a3eaab
Author: Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Mon Oct 29 09:39:17 2018 +0100
Commit: Jan-Marek Glogowski <glogow at fbihome.de>
CommitDate: Tue Oct 30 13:25:00 2018 +0100
tdf#119020 always scale icons as 24bit RGB
We don't really care for the palette or even lower bitness of the
original icons, when scaling them. So just convert them to 24bit
to get the best scaling quality.
And also actually fail the OpenGL scaling for 8bit color icons,
instead of handling them as a grayscale image, which results in
"funny" luminance based color icons.
Change-Id: I62ff9e7cd45dbffba81b0db5a0252737b6189059
Reviewed-on: https://gerrit.libreoffice.org/62505
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx
index 8a07f5ceb4a5..67b49e1ce185 100644
--- a/vcl/opengl/salbmp.cxx
+++ b/vcl/opengl/salbmp.cxx
@@ -581,7 +581,7 @@ bool OpenGLSalBitmap::ReadTexture()
xContext->state().scissor().disable();
xContext->state().stencil().disable();
- if (mnBits == 8 || mnBits == 16 || mnBits == 24 || mnBits == 32)
+ if ((mnBits == 8 && maPalette.IsGreyPalette()) || mnBits == 16 || mnBits == 24 || mnBits == 32)
{
determineTextureFormat(mnBits, nFormat, nType);
diff --git a/vcl/source/image/ImplImageTree.cxx b/vcl/source/image/ImplImageTree.cxx
index af5329ec379e..1fed00908365 100644
--- a/vcl/source/image/ImplImageTree.cxx
+++ b/vcl/source/image/ImplImageTree.cxx
@@ -182,6 +182,8 @@ void loadImageFromStream(std::shared_ptr<SvStream> const & xStream, OUString con
{
rParameters.mbWriteImageToCache = true; // Cache the scaled variant
double aScaleFactor(aScalePercentage / 100.0);
+ // when scaling use the full 24bit RGB values
+ rParameters.mrBitmap.Convert(BmpConversion::N24Bit);
rParameters.mrBitmap.Scale(aScaleFactor, aScaleFactor, BmpScaleFlag::Fast);
}
}
More information about the Libreoffice-commits
mailing list