Draw radial gradients using the proper radius.

This commit is contained in:
Adrien Destugues
2014-07-23 10:17:41 +02:00
parent 1f3acfaa51
commit 8fa9134445
2 changed files with 9 additions and 5 deletions
+7 -4
View File
@@ -2901,7 +2901,8 @@ Painter::_RasterizePath(VertexSource& path, const BGradient& gradient) const
agg::gradient_radial gradientFunction;
_CalcRadialGradientTransform(radialGradient.Center(),
gradientTransform);
_RasterizePath(path, gradient, gradientFunction, gradientTransform);
_RasterizePath(path, gradient, gradientFunction, gradientTransform,
radialGradient.Radius());
break;
}
case BGradient::TYPE_RADIAL_FOCUS:
@@ -2912,7 +2913,8 @@ Painter::_RasterizePath(VertexSource& path, const BGradient& gradient) const
agg::gradient_radial_focus gradientFunction;
_CalcRadialGradientTransform(radialGradient.Center(),
gradientTransform);
_RasterizePath(path, gradient, gradientFunction, gradientTransform);
_RasterizePath(path, gradient, gradientFunction, gradientTransform,
radialGradient.Radius());
break;
}
case BGradient::TYPE_DIAMOND:
@@ -3087,7 +3089,8 @@ Painter::_MakeGradient(Array& array, const BGradient& gradient) const
template<class VertexSource, typename GradientFunction>
void
Painter::_RasterizePath(VertexSource& path, const BGradient& gradient,
GradientFunction function, agg::trans_affine& gradientTransform) const
GradientFunction function, agg::trans_affine& gradientTransform,
int gradientStop) const
{
GTRACE("Painter::_RasterizePath\n");
@@ -3106,7 +3109,7 @@ Painter::_RasterizePath(VertexSource& path, const BGradient& gradient,
_MakeGradient(colorArray, gradient);
span_gradient_type spanGradient(spanInterpolator, function, colorArray,
0, 100);
0, gradientStop);
renderer_gradient_type gradientRenderer(fBaseRenderer, spanAllocator,
spanGradient);
+2 -1
View File
@@ -349,7 +349,8 @@ private:
void _RasterizePath(VertexSource& path,
const BGradient& gradient,
GradientFunction function,
agg::trans_affine& gradientTransform) const;
agg::trans_affine& gradientTransform,
int gradientStop = 100) const;
private:
mutable agg::rendering_buffer fBuffer;