diff options
author | Armin Le Grand <alg@apache.org> | 2013-08-28 12:23:58 +0000 |
---|---|---|
committer | Armin Le Grand <alg@apache.org> | 2013-08-28 12:23:58 +0000 |
commit | 2178fea0941c4abb624ecddf2453f670ba68878f (patch) | |
tree | 8e7c5da564704b8c11066f15a423b7a889d97fb0 /drawinglayer | |
parent | 07302c14ad5e5983720a1d4514ff355b9930e5be (diff) |
i122923 optimize place to add alpha to bitmaps which need rotation
Notes
Notes:
merged as: 03e73d57f1bf7da4f4a19ae1cff9c104e8fedd5e
Diffstat (limited to 'drawinglayer')
-rw-r--r-- | drawinglayer/source/processor2d/vclprocessor2d.cxx | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index b14fdb04ab71..59ef189d4240 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -409,28 +409,8 @@ namespace drawinglayer } } - // decompose matrix to check for shear, rotate and mirroring - basegfx::B2DVector aScale, aTranslate; - double fRotate, fShearX; - - aLocalTransform.decompose(aScale, aTranslate, fRotate, fShearX); - - const bool bRotated(!basegfx::fTools::equalZero(fRotate)); - const bool bSheared(!basegfx::fTools::equalZero(fShearX)); - - if(!aBitmapEx.IsTransparent() && (bSheared || bRotated)) - { - // parts will be uncovered, extend aBitmapEx with a mask bitmap - const Bitmap aContent(aBitmapEx.GetBitmap()); -#if defined(MACOSX) - AlphaMask aMaskBmp( aContent.GetSizePixel()); - aMaskBmp.Erase( 0); -#else - Bitmap aMaskBmp( aContent.GetSizePixel(), 1); - aMaskBmp.Erase(Color(COL_BLACK)); // #122758# Initialize to non-transparent -#endif - aBitmapEx = BitmapEx(aContent, aMaskBmp); - } + // #122923# do no longer add Alpha channel here; the right place to do this is when really + // the own transformer is used (see OutputDevice::DrawTransformedBitmapEx). // draw using OutputDevice'sDrawTransformedBitmapEx mpOutputDevice->DrawTransformedBitmapEx(aLocalTransform, aBitmapEx); |