]> git.pld-linux.org Git - packages/libreoffice.git/blame - openoffice-icon-render.patch
- up
[packages/libreoffice.git] / openoffice-icon-render.patch
CommitLineData
efef92ce 1Index: vcl/source/gdi/bitmapex.cxx
2===================================================================
3--- vcl/source/gdi/bitmapex.cxx.orig 2003-04-11 19:28:27.000000000 +0200
4+++ vcl/source/gdi/bitmapex.cxx 2003-10-22 22:42:23.000000000 +0200
5@@ -113,6 +113,12 @@ BitmapEx::BitmapEx( const Bitmap& rBmp )
6 eTransparent( TRANSPARENT_NONE ),
7 bAlpha ( FALSE )
8 {
9+ if (aBitmap.GetBitCount () == 32)
10+ {
11+ eTransparent = TRANSPARENT_BITMAP;
12+ bAlpha = TRUE;
13+ aMask = aBitmap.GetAlphaMask();
14+ }
15 }
16
17 // ------------------------------------------------------------------
18@@ -124,12 +130,8 @@ BitmapEx::BitmapEx( const Bitmap& rBmp,
19 eTransparent ( !rMask ? TRANSPARENT_NONE : TRANSPARENT_BITMAP ),
20 bAlpha ( FALSE )
21 {
22- // #105489# Ensure a mask is exactly one bit deep
23 if( !!aMask && aMask.GetBitCount() != 1 )
24- {
25- OSL_TRACE("BitmapEx: forced mask to monochrome");
26- aMask.ImplMakeMono( 255 );
27- }
28+ bAlpha = TRUE;
29 }
30
31 // ------------------------------------------------------------------
32@@ -152,7 +154,13 @@ BitmapEx::BitmapEx( const Bitmap& rBmp,
33 eTransparent ( TRANSPARENT_BITMAP ),
34 bAlpha ( FALSE )
35 {
36- aMask = aBitmap.CreateMask( aTransparentColor );
37+ if( rBmp.GetBitCount() > 24 )
38+ {
39+ aMask = rBmp.GetAlphaMask();
40+ bAlpha = TRUE;
41+ }
42+ else
43+ aMask = aBitmap.CreateMask( aTransparentColor );
44 }
45
46 // ------------------------------------------------------------------
47@@ -287,12 +295,7 @@ BitmapEx BitmapEx::GetColorTransformedBi
48
49 Bitmap BitmapEx::GetMask() const
50 {
51- Bitmap aRet( aMask );
52-
53- if( IsAlpha() )
54- aRet.ImplMakeMono( 255 );
55-
56- return aRet;
57+ return Bitmap( aMask );
58 }
59
60 // ------------------------------------------------------------------
61@@ -395,7 +398,7 @@ BOOL BitmapEx::Scale( const double& rSca
62 bRet = aBitmap.Scale( rScaleX, rScaleY, nScaleFlag );
63
64 if( bRet && ( eTransparent == TRANSPARENT_BITMAP ) && !!aMask )
65- aMask.Scale( rScaleX, rScaleY, BMP_SCALE_FAST );
66+ aMask.Scale( rScaleX, rScaleY, aMask.GetBitCount() == 1 ? BMP_SCALE_FAST : nScaleFlag);
67
68 aBitmapSize = aBitmap.GetSizePixel();
69 }
This page took 0.050401 seconds and 4 git commands to generate.