diff options
author | Marco Cecchetti <marco.cecchetti@collabora.com> | 2016-03-20 20:37:31 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2016-03-21 09:45:36 +0000 |
commit | f5a53794e188c8ee49173749578a6b81b52a82f4 (patch) | |
tree | d26a8febd713d6935f5f20df0002904735b728f6 | |
parent | 3dbcae4df48426ec6115ce4d3b5fa2afad96226b (diff) |
tdf#98324 - PNG prints as black block with OpenGL - fixed
Now the correct color palette is used.
Change-Id: If26c7cb149d1d6c24ae78137ff54669b3091fdb2
Reviewed-on: https://gerrit.libreoffice.org/23378
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r-- | vcl/inc/opengl/salbmp.hxx | 1 | ||||
-rw-r--r-- | vcl/win/gdi/salgdi2.cxx | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/vcl/inc/opengl/salbmp.hxx b/vcl/inc/opengl/salbmp.hxx index 4eb0b019d5b6..5a9270edd61c 100644 --- a/vcl/inc/opengl/salbmp.hxx +++ b/vcl/inc/opengl/salbmp.hxx @@ -85,6 +85,7 @@ public: bool Create( const OpenGLTexture& rTex, long nX, long nY, long nWidth, long nHeight ); OpenGLTexture& GetTexture() const; static rtl::Reference<OpenGLContext> GetBitmapContext(); + const BitmapPalette& GetBitmapPalette() const { return maPalette; } private: diff --git a/vcl/win/gdi/salgdi2.cxx b/vcl/win/gdi/salgdi2.cxx index 1500ae8af312..f8b8fe75f92b 100644 --- a/vcl/win/gdi/salgdi2.cxx +++ b/vcl/win/gdi/salgdi2.cxx @@ -29,6 +29,7 @@ #include <win/salids.hrc> #include <win/salgdi.h> #include <win/salframe.h> +#include <opengl/salbmp.hxx> #include <vcl/salbtype.hxx> #include <vcl/bitmapaccess.hxx> @@ -73,9 +74,16 @@ namespace void convertToWinSalBitmap(SalBitmap& rSalBitmap, WinSalBitmap& rWinSalBitmap) { + BitmapPalette aBitmapPalette; + OpenGLSalBitmap* pGLSalBitmap = dynamic_cast<OpenGLSalBitmap*>(&rSalBitmap); + if (pGLSalBitmap != nullptr) + { + aBitmapPalette = pGLSalBitmap->GetBitmapPalette(); + } + BitmapBuffer* pRead = rSalBitmap.AcquireBuffer(BITMAP_READ_ACCESS); - rWinSalBitmap.Create(rSalBitmap.GetSize(), rSalBitmap.GetBitCount(), BitmapPalette()); + rWinSalBitmap.Create(rSalBitmap.GetSize(), rSalBitmap.GetBitCount(), aBitmapPalette); BitmapBuffer* pWrite = rWinSalBitmap.AcquireBuffer(BITMAP_WRITE_ACCESS); sal_uInt8* pSource(pRead->mpBits); |