vcl/source/gdi/bitmapex.cxx | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-)
New commits: commit baebeb7de4c5f9511e45c2846ec2a72861a948c0 Author: Armin Le Grand <a...@apache.org> Date: Fri Jul 27 14:04:19 2012 +0000 Resolves: #i120165# Adapt Mask/Alpha at BitmapEx construction... when size differs from base bitmap Original patch by: pengyunquan Changed patch by: alg Review by: alg(cherry picked from commit 3cfc24693469fb9b682e9c76c28610be1e004799) Change-Id: I6f09cb18206487c1df01147a902ea0f390d65c65 diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx index f29bfbe..5087f18 100644 --- a/vcl/source/gdi/bitmapex.cxx +++ b/vcl/source/gdi/bitmapex.cxx @@ -117,8 +117,15 @@ BitmapEx::BitmapEx( const Bitmap& rBmp, const Bitmap& rMask ) : eTransparent ( !rMask ? TRANSPARENT_NONE : TRANSPARENT_BITMAP ), bAlpha ( sal_False ) { - DBG_ASSERT( !rMask || rBmp.GetSizePixel() == rMask.GetSizePixel(), - "BitmapEx::BitmapEx(): size mismatch for bitmap and mask." ); + if(!rMask) + { + OSL_ENSURE(false, "Empty mask given (!)"); + } + else if(rBmp.GetSizePixel() != rMask.GetSizePixel()) + { + OSL_ENSURE(false, "Mask size differs from Bitmap size, corrected Mask (!)"); + aMask.Scale(rBmp.GetSizePixel()); + } // Ensure a mask is exactly one bit deep if( !!aMask && aMask.GetBitCount() != 1 ) @@ -135,8 +142,15 @@ BitmapEx::BitmapEx( const Bitmap& rBmp, const AlphaMask& rAlphaMask ) : eTransparent ( !rAlphaMask ? TRANSPARENT_NONE : TRANSPARENT_BITMAP ), bAlpha ( !rAlphaMask ? sal_False : sal_True ) { - DBG_ASSERT( !rAlphaMask || rBmp.GetSizePixel() == rAlphaMask.GetSizePixel(), - "BitmapEx::BitmapEx(): size mismatch for bitmap and alpha mask." ); + if(!rAlphaMask) + { + OSL_ENSURE(false, "Empty alpha given (!)"); + } + else if(rBmp.GetSizePixel() != rAlphaMask.GetSizePixel()) + { + OSL_ENSURE(false, "Alpha size differs from Bitmap size, corrected Mask (!)"); + aMask.Scale(rBmp.GetSizePixel()); + } // #i75531# the workaround below can go when // X11SalGraphics::drawAlphaBitmap()'s render acceleration _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits