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::buildGradient(GradientData* gradientData, SVGGradientElement* gradientElement) const
{
SVGRadialGradientElement* radialGradientElement = static_cast<SVGRadialGradientElement*>(gradientElement);
RadialGradientAttributes attributes = radialGradientElement->collectGradientProperties();
FloatPoint focalPoint;
FloatPoint centerPoint;
float radius;
radialGradientElement->calculateFocalCenterPointsAndRadius(attributes, focalPoint, centerPoint, radius);
gradientData->gradient = Gradient::create(focalPoint,
0.0f, centerPoint,
radius);
gradientData->gradient->setSpreadMethod(attributes.spreadMethod());
gradientData->transform = attributes.gradientTransform();
gradientData->boundingBoxMode = attributes.boundingBoxMode();
addStops(gradientData, attributes.stops());
}
}
#endif