summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Cecchetti <marco.cecchetti@collabora.com>2016-03-20 20:37:31 +0100
committerMichael Meeks <michael.meeks@collabora.com>2016-03-21 09:45:36 +0000
commitf5a53794e188c8ee49173749578a6b81b52a82f4 (patch)
treed26a8febd713d6935f5f20df0002904735b728f6
parent3dbcae4df48426ec6115ce4d3b5fa2afad96226b (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.hxx1
-rw-r--r--vcl/win/gdi/salgdi2.cxx10
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);