do not unnecessarily explicitly force gradient step count (tdf#138581)

Toolkits usually do not provide the ability to specify gradient steps,
which means VCL falls back to its algorithm, which at least with Skia
sometimes causes poor results.

Change-Id: I35dbf87e77d5ed36d8f257db877135a2a0be2ffe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106971
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
This commit is contained in:
Luboš Luňák
2020-12-01 16:28:59 +01:00
parent 4bf54eb22c
commit 8601eca3c8
6 changed files with 8 additions and 14 deletions
@@ -91,7 +91,7 @@ namespace drawinglayer::primitive3d
{
// create TransparenceTexturePrimitive3D with fixed transparence as replacement
const basegfx::BColor aGray(getTransparence(), getTransparence(), getTransparence());
const attribute::FillGradientAttribute aFillGradient(attribute::GradientStyle::Linear, 0.0, 0.0, 0.0, 0.0, aGray, aGray, 1);
const attribute::FillGradientAttribute aFillGradient(attribute::GradientStyle::Linear, 0.0, 0.0, 0.0, 0.0, aGray, aGray);
const Primitive3DReference xRef(new TransparenceTexturePrimitive3D(aFillGradient, getChildren(), getTextureSize()));
return { xRef };
}
@@ -53,7 +53,7 @@ public:
/// constructors/assignmentoperator/destructor
FillGradientAttribute(GradientStyle eStyle, double fBorder, double fOffsetX, double fOffsetY,
double fAngle, const basegfx::BColor& rStartColor,
const basegfx::BColor& rEndColor, sal_uInt16 nSteps);
const basegfx::BColor& rEndColor, sal_uInt16 nSteps = 0);
FillGradientAttribute();
FillGradientAttribute(const FillGradientAttribute&);
FillGradientAttribute(FillGradientAttribute&&);
@@ -644,8 +644,7 @@ namespace drawinglayer::primitive2d
static_cast<double>(rGradient.GetYOffset()) * 0.01,
static_cast<double>(rGradient.GetAngle().get()) * F_PI1800,
basegfx::BColor(fStartLum, fStartLum, fStartLum),
basegfx::BColor(fEndLum, fEndLum, fEndLum),
0);
basegfx::BColor(fEndLum, fEndLum, fEndLum));
}
}
+1 -3
View File
@@ -153,7 +153,6 @@ BitmapEx XGradientList::CreateBitmap( tools::Long nIndex, const Size& rSize ) co
}
}
const sal_uInt16 nSteps((rSize.Width() + rSize.Height()) / 3);
const drawinglayer::attribute::FillGradientAttribute aFillGradient(
aGradientStyle,
static_cast<double>(rGradient.GetBorder()) * 0.01,
@@ -161,8 +160,7 @@ BitmapEx XGradientList::CreateBitmap( tools::Long nIndex, const Size& rSize ) co
static_cast<double>(rGradient.GetYOffset()) * 0.01,
static_cast<double>(rGradient.GetAngle().get()) * F_PI1800,
aStart,
aEnd,
nSteps);
aEnd);
const drawinglayer::primitive2d::Primitive2DReference aGradientPrimitive(
new drawinglayer::primitive2d::PolyPolygonGradientPrimitive2D(
+1 -1
View File
@@ -151,7 +151,7 @@ void SwFrameButtonPainter::PaintButton(drawinglayer::primitive2d::Primitive2DCon
double nAngle = M_PI;
if (bOnTop)
nAngle = 0;
FillGradientAttribute aFillAttrs(drawinglayer::attribute::GradientStyle::Linear, 0.0, 0.0, 0.0, nAngle, aLighterColor, aFillColor, 10);
FillGradientAttribute aFillAttrs(drawinglayer::attribute::GradientStyle::Linear, 0.0, 0.0, 0.0, nAngle, aLighterColor, aFillColor);
rSeq.push_back(drawinglayer::primitive2d::Primitive2DReference(
new drawinglayer::primitive2d::FillGradientPrimitive2D(aGradientRect, aFillAttrs)));
}
@@ -90,8 +90,7 @@ void ShadowPrimitive::create2DDecomposition(
0.5,
F_PI,
basegfx::BColor(230.0/255.0,230.0/255.0,230.0/255.0),
basegfx::BColor(180.0/255.0,180.0/255.0,180.0/255.0),
2);
basegfx::BColor(180.0/255.0,180.0/255.0,180.0/255.0));
rContainer.push_back(
new drawinglayer::primitive2d::FillGradientPrimitive2D(
@@ -109,8 +108,7 @@ void ShadowPrimitive::create2DDecomposition(
0.5,
F_PI,
basegfx::BColor(230.0/255.0,230.0/255.0,230.0/255.0),
basegfx::BColor(180.0/255.0,180.0/255.0,180.0/255.0),
4);
basegfx::BColor(180.0/255.0,180.0/255.0,180.0/255.0));
rContainer.push_back(
new drawinglayer::primitive2d::FillGradientPrimitive2D(
@@ -128,8 +126,7 @@ void ShadowPrimitive::create2DDecomposition(
0.5,
F_PI,
basegfx::BColor(230.0/255.0,230.0/255.0,230.0/255.0),
basegfx::BColor(83.0/255.0,83.0/255.0,83.0/255.0),
4);
basegfx::BColor(83.0/255.0,83.0/255.0,83.0/255.0));
rContainer.push_back(
new drawinglayer::primitive2d::FillGradientPrimitive2D(