RenderSVGResourceRadialGradient.cpp [plain text]
#include "config.h"
#if ENABLE(SVG)
#include "RenderSVGResourceRadialGradient.h"
#include "RadialGradientAttributes.h"
#include "SVGRadialGradientElement.h"
namespace WebCore {
RenderSVGResourceType RenderSVGResourceRadialGradient::s_resourceType = RadialGradientResourceType;
RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient(SVGRadialGradientElement* node)
: RenderSVGResourceGradient(node)
{
}
RenderSVGResourceRadialGradient::~RenderSVGResourceRadialGradient()
{
}
void RenderSVGResourceRadialGradient::collectGradientAttributes(SVGGradientElement* gradientElement)
{
m_attributes = RadialGradientAttributes();
static_cast<SVGRadialGradientElement*>(gradientElement)->collectGradientAttributes(m_attributes);
}
void RenderSVGResourceRadialGradient::buildGradient(GradientData* gradientData, SVGGradientElement* gradientElement) const
{
SVGRadialGradientElement* radialGradientElement = static_cast<SVGRadialGradientElement*>(gradientElement);
FloatPoint focalPoint;
FloatPoint centerPoint;
float radius;
radialGradientElement->calculateFocalCenterPointsAndRadius(m_attributes, focalPoint, centerPoint, radius);
gradientData->gradient = Gradient::create(focalPoint,
0, centerPoint,
radius);
gradientData->gradient->setSpreadMethod(m_attributes.spreadMethod());
addStops(gradientData, m_attributes.stops());
}
}
#endif