summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-03-28 15:32:54 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-03-28 22:16:29 +0200
commit290a954a355852a967a0e7e8a28447b0b9d2a46b (patch)
treef5cec9ab8cab6da0532ae8365392046ee8ba7f74
parent0cb17267174ae02c9fb19bf6d9f2637844a267ee (diff)
tdf#116646 Slideshows with transitions page swap rendering issues
regression from commit 5b75a1697250d8b2b6003c37067f39270a5ad828 move cairo extract bitmap code from canvas to vcl Change-Id: Ic8d7cd9d54010ae272073877da18a985e931e22a Reviewed-on: https://gerrit.libreoffice.org/52005 Tested-by: Jenkins <ci@libreoffice.org> Tested-by: Xisco FaulĂ­ <xiscofauli@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--canvas/source/cairo/cairo_canvashelper.cxx6
-rw-r--r--include/vcl/BitmapTools.hxx2
-rw-r--r--vcl/source/bitmap/BitmapTools.cxx6
3 files changed, 7 insertions, 7 deletions
diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx
index 2ed3d0472c04..ec76b51bacb5 100644
--- a/canvas/source/cairo/cairo_canvashelper.cxx
+++ b/canvas/source/cairo/cairo_canvashelper.cxx
@@ -363,10 +363,10 @@ namespace cairocanvas
if( !pSurface )
{
- vcl::bitmap::CanvasCairoExtractBitmapData(aBmpEx, aBitmap, data, bHasAlpha);
+ long nWidth;
+ long nHeight;
+ vcl::bitmap::CanvasCairoExtractBitmapData(aBmpEx, aBitmap, data, bHasAlpha, nWidth, nHeight);
- const long nWidth = aBmpEx.GetPrefSize().Width();
- const long nHeight = aBmpEx.GetPrefSize().Height();
SurfaceSharedPtr pImageSurface = rSurfaceProvider->getOutputDevice()->CreateSurface(
CairoSurfaceSharedPtr(
cairo_image_surface_create_for_data(
diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx
index 43f0d07579f7..75c68e9ab67a 100644
--- a/include/vcl/BitmapTools.hxx
+++ b/include/vcl/BitmapTools.hxx
@@ -102,7 +102,7 @@ VCL_DLLPUBLIC css::uno::Sequence< sal_Int8 > GetMaskDIB(BitmapEx const & aBmpEx)
* @param data will be filled with alpha data, if xBitmap is alpha/transparent image
* @param bHasAlpha will be set to true if resulting surface has alpha
**/
-VCL_DLLPUBLIC void CanvasCairoExtractBitmapData( BitmapEx & rBmpEx, Bitmap & rBitmap, unsigned char*& data, bool& bHasAlpha );
+VCL_DLLPUBLIC void CanvasCairoExtractBitmapData( BitmapEx & rBmpEx, Bitmap & rBitmap, unsigned char*& data, bool& bHasAlpha, long& rnWidth, long& rnHeight );
VCL_DLLPUBLIC css::uno::Sequence< sal_Int8 > CanvasExtractBitmapData(BitmapEx & rBitmapEx, const css::geometry::IntegerRectangle2D& rect);
diff --git a/vcl/source/bitmap/BitmapTools.cxx b/vcl/source/bitmap/BitmapTools.cxx
index cfc4734c8aa0..28fc6f0b962a 100644
--- a/vcl/source/bitmap/BitmapTools.cxx
+++ b/vcl/source/bitmap/BitmapTools.cxx
@@ -719,14 +719,14 @@ static bool readAlpha( BitmapReadAccess const * pAlphaReadAcc, long nY, const lo
* @param data will be filled with alpha data, if xBitmap is alpha/transparent image
* @param bHasAlpha will be set to true if resulting surface has alpha
**/
-void CanvasCairoExtractBitmapData( BitmapEx & aBmpEx, Bitmap & aBitmap, unsigned char*& data, bool& bHasAlpha )
+void CanvasCairoExtractBitmapData( BitmapEx & aBmpEx, Bitmap & aBitmap, unsigned char*& data, bool& bHasAlpha, long& rnWidth, long& rnHeight )
{
AlphaMask aAlpha = aBmpEx.GetAlpha();
::BitmapReadAccess* pBitmapReadAcc = aBitmap.AcquireReadAccess();
::BitmapReadAccess* pAlphaReadAcc = nullptr;
- const long nWidth = pBitmapReadAcc->Width();
- const long nHeight = pBitmapReadAcc->Height();
+ const long nWidth = rnWidth = pBitmapReadAcc->Width();
+ const long nHeight = rnHeight = pBitmapReadAcc->Height();
long nX, nY;
bool bIsAlpha = false;