Draw radial gradients using the proper radius.
This commit is contained in:
@@ -2901,7 +2901,8 @@ Painter::_RasterizePath(VertexSource& path, const BGradient& gradient) const
|
|||||||
agg::gradient_radial gradientFunction;
|
agg::gradient_radial gradientFunction;
|
||||||
_CalcRadialGradientTransform(radialGradient.Center(),
|
_CalcRadialGradientTransform(radialGradient.Center(),
|
||||||
gradientTransform);
|
gradientTransform);
|
||||||
_RasterizePath(path, gradient, gradientFunction, gradientTransform);
|
_RasterizePath(path, gradient, gradientFunction, gradientTransform,
|
||||||
|
radialGradient.Radius());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BGradient::TYPE_RADIAL_FOCUS:
|
case BGradient::TYPE_RADIAL_FOCUS:
|
||||||
@@ -2912,7 +2913,8 @@ Painter::_RasterizePath(VertexSource& path, const BGradient& gradient) const
|
|||||||
agg::gradient_radial_focus gradientFunction;
|
agg::gradient_radial_focus gradientFunction;
|
||||||
_CalcRadialGradientTransform(radialGradient.Center(),
|
_CalcRadialGradientTransform(radialGradient.Center(),
|
||||||
gradientTransform);
|
gradientTransform);
|
||||||
_RasterizePath(path, gradient, gradientFunction, gradientTransform);
|
_RasterizePath(path, gradient, gradientFunction, gradientTransform,
|
||||||
|
radialGradient.Radius());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BGradient::TYPE_DIAMOND:
|
case BGradient::TYPE_DIAMOND:
|
||||||
@@ -3087,7 +3089,8 @@ Painter::_MakeGradient(Array& array, const BGradient& gradient) const
|
|||||||
template<class VertexSource, typename GradientFunction>
|
template<class VertexSource, typename GradientFunction>
|
||||||
void
|
void
|
||||||
Painter::_RasterizePath(VertexSource& path, const BGradient& gradient,
|
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");
|
GTRACE("Painter::_RasterizePath\n");
|
||||||
|
|
||||||
@@ -3106,7 +3109,7 @@ Painter::_RasterizePath(VertexSource& path, const BGradient& gradient,
|
|||||||
_MakeGradient(colorArray, gradient);
|
_MakeGradient(colorArray, gradient);
|
||||||
|
|
||||||
span_gradient_type spanGradient(spanInterpolator, function, colorArray,
|
span_gradient_type spanGradient(spanInterpolator, function, colorArray,
|
||||||
0, 100);
|
0, gradientStop);
|
||||||
|
|
||||||
renderer_gradient_type gradientRenderer(fBaseRenderer, spanAllocator,
|
renderer_gradient_type gradientRenderer(fBaseRenderer, spanAllocator,
|
||||||
spanGradient);
|
spanGradient);
|
||||||
|
|||||||
@@ -349,7 +349,8 @@ private:
|
|||||||
void _RasterizePath(VertexSource& path,
|
void _RasterizePath(VertexSource& path,
|
||||||
const BGradient& gradient,
|
const BGradient& gradient,
|
||||||
GradientFunction function,
|
GradientFunction function,
|
||||||
agg::trans_affine& gradientTransform) const;
|
agg::trans_affine& gradientTransform,
|
||||||
|
int gradientStop = 100) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
mutable agg::rendering_buffer fBuffer;
|
mutable agg::rendering_buffer fBuffer;
|
||||||
|
|||||||
Reference in New Issue
Block a user