This source file includes following definitions.
- collectGradientAttributes
- startPoint
- endPoint
- buildGradient
#include "config.h"
#include "core/rendering/svg/RenderSVGResourceLinearGradient.h"
#include "core/svg/SVGLinearGradientElement.h"
namespace WebCore {
const RenderSVGResourceType RenderSVGResourceLinearGradient::s_resourceType = LinearGradientResourceType;
RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient(SVGLinearGradientElement* node)
: RenderSVGResourceGradient(node)
{
}
RenderSVGResourceLinearGradient::~RenderSVGResourceLinearGradient()
{
}
bool RenderSVGResourceLinearGradient::collectGradientAttributes(SVGGradientElement* gradientElement)
{
m_attributes = LinearGradientAttributes();
return toSVGLinearGradientElement(gradientElement)->collectGradientAttributes(m_attributes);
}
FloatPoint RenderSVGResourceLinearGradient::startPoint(const LinearGradientAttributes& attributes) const
{
return SVGLengthContext::resolvePoint(element(), attributes.gradientUnits(), attributes.x1(), attributes.y1());
}
FloatPoint RenderSVGResourceLinearGradient::endPoint(const LinearGradientAttributes& attributes) const
{
return SVGLengthContext::resolvePoint(element(), attributes.gradientUnits(), attributes.x2(), attributes.y2());
}
void RenderSVGResourceLinearGradient::buildGradient(GradientData* gradientData) const
{
gradientData->gradient = Gradient::create(startPoint(m_attributes), endPoint(m_attributes));
gradientData->gradient->setSpreadMethod(platformSpreadMethodFromSVGType(m_attributes.spreadMethod()));
addStops(gradientData, m_attributes.stops());
}
}