You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2012/02/03 12:57:59 UTC
svn commit: r1240097 -
/incubator/ooo/trunk/main/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx
Author: alg
Date: Fri Feb 3 11:57:58 2012
New Revision: 1240097
URL: http://svn.apache.org/viewvc?rev=1240097&view=rev
Log:
#118824# coreccted mirroring and boundrect when the graphicmanager is used for bitmap output
Modified:
incubator/ooo/trunk/main/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx
Modified: incubator/ooo/trunk/main/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx?rev=1240097&r1=1240096&r2=1240097&view=diff
==============================================================================
--- incubator/ooo/trunk/main/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx (original)
+++ incubator/ooo/trunk/main/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx Fri Feb 3 11:57:58 2012
@@ -52,9 +52,9 @@ namespace drawinglayer
rTransform.decompose(aScale, aTranslate, fRotate, fShearX);
// mirror flags
- aAttributes.SetMirrorFlags(
- (basegfx::fTools::less(aScale.getX(), 0.0) ? BMP_MIRROR_HORZ : 0)|
- (basegfx::fTools::less(aScale.getY(), 0.0) ? BMP_MIRROR_VERT : 0));
+ const bool bMirrorX(basegfx::fTools::less(aScale.getX(), 0.0));
+ const bool bMirrorY(basegfx::fTools::less(aScale.getY(), 0.0));
+ aAttributes.SetMirrorFlags((bMirrorX ? BMP_MIRROR_HORZ : 0)|(bMirrorY ? BMP_MIRROR_VERT : 0));
// rotation
if(!basegfx::fTools::equalZero(fRotate))
@@ -73,9 +73,13 @@ namespace drawinglayer
else
{
// if rotated, create the unrotated output rectangle for the GraphicManager paint
- const basegfx::B2DHomMatrix aSimpleObjectMatrix(basegfx::tools::createScaleTranslateB2DHomMatrix(
- fabs(aScale.getX()), fabs(aScale.getY()),
- aTranslate.getX(), aTranslate.getY()));
+ // #118824# Caution! When mirrored, adapt transformation accordingly
+ const basegfx::B2DHomMatrix aSimpleObjectMatrix(
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ fabs(aScale.getX()),
+ fabs(aScale.getY()),
+ bMirrorX ? aTranslate.getX() - fabs(aScale.getX()): aTranslate.getX(),
+ bMirrorY ? aTranslate.getY() - fabs(aScale.getY()): aTranslate.getY()));
aOutlineRange.transform(aSimpleObjectMatrix);
}