diff --git a/basegfx/source/tools/gradienttools.cxx b/basegfx/source/tools/gradienttools.cxx index 337f9bd8e52b..447eac056c55 100644 --- a/basegfx/source/tools/gradienttools.cxx +++ b/basegfx/source/tools/gradienttools.cxx @@ -72,31 +72,28 @@ namespace basegfx fTargetSizeY = fNewY; } - double fSizeWithoutBorder=0; - double fTranslateY=0; + const double fSizeWithoutBorder=1.0 - fBorder; if( bAxial ) { - fSizeWithoutBorder = (1.0 - fBorder) * 0.5; - fTranslateY = 0.5; + o_rGradientInfo.maTextureTransform.scale(1.0, fSizeWithoutBorder * .5); + o_rGradientInfo.maTextureTransform.translate(0.0, 0.5); } else { - fSizeWithoutBorder = 1.0 - fBorder; - fTranslateY = fBorder; + if(!fTools::equal(fSizeWithoutBorder, 1.0)) + { + o_rGradientInfo.maTextureTransform.scale(1.0, fSizeWithoutBorder); + o_rGradientInfo.maTextureTransform.translate(0.0, fBorder); + } } - if(!fTools::equal(fSizeWithoutBorder, 0.0)) - o_rGradientInfo.maTextureTransform.scale(1.0, fSizeWithoutBorder); - - o_rGradientInfo.maTextureTransform.translate(0.0, fTranslateY); o_rGradientInfo.maTextureTransform.scale(fTargetSizeX, fTargetSizeY); // add texture rotate after scale to keep perpendicular angles if(0.0 != fAngle) { - B2DPoint aCenter(0.5, 0.5); - aCenter *= o_rGradientInfo.maTextureTransform; - + const B2DPoint aCenter(0.5*fTargetSizeX, + 0.5*fTargetSizeY); o_rGradientInfo.maTextureTransform.translate(-aCenter.getX(), -aCenter.getY()); o_rGradientInfo.maTextureTransform.rotate(fAngle); o_rGradientInfo.maTextureTransform.translate(aCenter.getX(), aCenter.getY()); @@ -153,8 +150,7 @@ namespace basegfx } const double fHalfBorder((1.0 - fBorder) * 0.5); - if(!fTools::equal(fHalfBorder, 0.0)) - o_rGradientInfo.maTextureTransform.scale(fHalfBorder, fHalfBorder); + o_rGradientInfo.maTextureTransform.scale(fHalfBorder, fHalfBorder); o_rGradientInfo.maTextureTransform.translate(0.5, 0.5); o_rGradientInfo.maTextureTransform.scale(fTargetSizeX, fTargetSizeY); @@ -226,8 +222,7 @@ namespace basegfx } const double fHalfBorder((1.0 - fBorder) * 0.5); - if(!fTools::equal(fHalfBorder, 0.0)) - o_rGradientInfo.maTextureTransform.scale(fHalfBorder, fHalfBorder); + o_rGradientInfo.maTextureTransform.scale(fHalfBorder, fHalfBorder); o_rGradientInfo.maTextureTransform.translate(0.5, 0.5); o_rGradientInfo.maTextureTransform.scale(fTargetSizeX, fTargetSizeY); diff --git a/canvas/prj/build.lst b/canvas/prj/build.lst index df1f8e9f31d3..76cf17f3af7b 100644 --- a/canvas/prj/build.lst +++ b/canvas/prj/build.lst @@ -7,5 +7,4 @@ cv canvas\source\simplecanvas nmake - all cv_simplecanvas cv_tools cv_inc cv canvas\source\cairo nmake - all cv_cairo cv_tools cv_inc NULL cv canvas\source\directx nmake - w cv_directx cv_tools cv_inc NULL cv canvas\source\null nmake - all cv_null cv_tools cv_inc NULL -cv canvas\source\java nmake - all cv_java cv_inc NULL cv canvas\source\factory nmake - all cv_factory cv_inc NULL