[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - vcl/inc vcl/win

Marco Cecchetti marco.cecchetti at collabora.com
Mon Mar 21 09:45:36 UTC 2016


 vcl/inc/opengl/salbmp.hxx      |    1 +
 vcl/win/source/gdi/salgdi2.cxx |   12 +++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

New commits:
commit d0cfcb6f1afe4022b322988627d8dccc9e05acc3
Author: Marco Cecchetti <marco.cecchetti at collabora.com>
Date:   Sun Mar 20 12:23:41 2016 +0100

    tdf#98324 - PNG prints as black block with OpenGL - fixed
    
    Now the correct color palette is used.
    
    Change-Id: Ice532091713788c7c6b380550c65e26bc4b76c74
    Reviewed-on: https://gerrit.libreoffice.org/23377
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/vcl/inc/opengl/salbmp.hxx b/vcl/inc/opengl/salbmp.hxx
index 8917a5a..15c0832 100644
--- a/vcl/inc/opengl/salbmp.hxx
+++ b/vcl/inc/opengl/salbmp.hxx
@@ -87,6 +87,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/source/gdi/salgdi2.cxx b/vcl/win/source/gdi/salgdi2.cxx
index 6f0e5d4..6433921 100644
--- a/vcl/win/source/gdi/salgdi2.cxx
+++ b/vcl/win/source/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/bmpacc.hxx"
@@ -36,7 +37,6 @@
 #include "salgdiimpl.hxx"
 #include "opengl/win/gdiimpl.hxx"
 
-
 bool WinSalGraphics::supportsOperation( OutDevSupportType eType ) const
 {
     static bool bAllowForTest(true);
@@ -76,9 +76,15 @@ namespace
 
 void convertToWinSalBitmap(SalBitmap& rSalBitmap, WinSalBitmap& rWinSalBitmap)
 {
-        BitmapBuffer* pRead = rSalBitmap.AcquireBuffer(BITMAP_READ_ACCESS);
+        BitmapPalette aBitmapPalette;
+        OpenGLSalBitmap* pGLSalBitmap = dynamic_cast<OpenGLSalBitmap*>(&rSalBitmap);
+        if (pGLSalBitmap != nullptr)
+        {
+            aBitmapPalette = pGLSalBitmap->GetBitmapPalette();
+        }
 
-        rWinSalBitmap.Create(rSalBitmap.GetSize(), rSalBitmap.GetBitCount(), BitmapPalette());
+        BitmapBuffer* pRead = rSalBitmap.AcquireBuffer(BITMAP_READ_ACCESS);
+        rWinSalBitmap.Create(rSalBitmap.GetSize(), rSalBitmap.GetBitCount(), aBitmapPalette);
         BitmapBuffer* pWrite = rWinSalBitmap.AcquireBuffer(BITMAP_WRITE_ACCESS);
 
         sal_uInt8* pSource(pRead->mpBits);


More information about the Libreoffice-commits mailing list