RenderSVGResourceLinearGradient.cpp [plain text]
#include "config.h"
#if ENABLE(SVG)
#include "RenderSVGResourceLinearGradient.h"
#include "LinearGradientAttributes.h"
#include "SVGLinearGradientElement.h"
namespace WebCore {
RenderSVGResourceType RenderSVGResourceLinearGradient::s_resourceType = LinearGradientResourceType;
RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient(SVGLinearGradientElement* node)
: RenderSVGResourceGradient(node)
{
}
RenderSVGResourceLinearGradient::~RenderSVGResourceLinearGradient()
{
}
void RenderSVGResourceLinearGradient::buildGradient(GradientData* gradientData, SVGGradientElement* gradientElement) const
{
SVGLinearGradientElement* linearGradientElement = static_cast<SVGLinearGradientElement*>(gradientElement);
LinearGradientAttributes attributes = linearGradientElement->collectGradientProperties();
FloatPoint startPoint;
FloatPoint endPoint;
linearGradientElement->calculateStartEndPoints(attributes, startPoint, endPoint);
gradientData->gradient = Gradient::create(startPoint, endPoint);
gradientData->gradient->setSpreadMethod(attributes.spreadMethod());
gradientData->transform = attributes.gradientTransform();
gradientData->boundingBoxMode = attributes.boundingBoxMode();
addStops(gradientData, attributes.stops());
}
}
#endif