void SVGAnimationElement::setCalcMode(const AtomicString& calcMode) { DEPRECATED_DEFINE_STATIC_LOCAL(const AtomicString, discrete, ("discrete", AtomicString::ConstructFromLiteral)); DEPRECATED_DEFINE_STATIC_LOCAL(const AtomicString, linear, ("linear", AtomicString::ConstructFromLiteral)); DEPRECATED_DEFINE_STATIC_LOCAL(const AtomicString, paced, ("paced", AtomicString::ConstructFromLiteral)); DEPRECATED_DEFINE_STATIC_LOCAL(const AtomicString, spline, ("spline", AtomicString::ConstructFromLiteral)); if (calcMode == discrete) setCalcMode(CalcModeDiscrete); else if (calcMode == linear) setCalcMode(CalcModeLinear); else if (calcMode == paced) setCalcMode(CalcModePaced); else if (calcMode == spline) setCalcMode(CalcModeSpline); else setCalcMode(hasTagName(SVGNames::animateMotionTag) ? CalcModePaced : CalcModeLinear); }
void SVGAnimationElement::setCalcMode(const AtomicString& calcMode) { static NeverDestroyed<const AtomicString> discrete("discrete", AtomicString::ConstructFromLiteral); static NeverDestroyed<const AtomicString> linear("linear", AtomicString::ConstructFromLiteral); static NeverDestroyed<const AtomicString> paced("paced", AtomicString::ConstructFromLiteral); static NeverDestroyed<const AtomicString> spline("spline", AtomicString::ConstructFromLiteral); if (calcMode == discrete) setCalcMode(CalcMode::Discrete); else if (calcMode == linear) setCalcMode(CalcMode::Linear); else if (calcMode == paced) setCalcMode(CalcMode::Paced); else if (calcMode == spline) setCalcMode(CalcMode::Spline); else setCalcMode(hasTagName(SVGNames::animateMotionTag) ? CalcMode::Paced : CalcMode::Linear); }
//----------------------------------------------------------------------- void FFPFog::copyFrom(const SubRenderState& rhs) { const FFPFog& rhsFog = static_cast<const FFPFog&>(rhs); mFogMode = rhsFog.mFogMode; mFogColourValue = rhsFog.mFogColourValue; mFogParamsValue = rhsFog.mFogParamsValue; setCalcMode(rhsFog.mCalcMode); }
void SVGAnimationElement::parseAttribute(const QualifiedName& name, const AtomicString& value) { if (name == SVGNames::valuesAttr) { // Per the SMIL specification, leading and trailing white space, // and white space before and after semicolon separators, is allowed and will be ignored. // http://www.w3.org/TR/SVG11/animate.html#ValuesAttribute value.string().split(';', m_values); for (auto& value : m_values) value = value.stripWhiteSpace(); updateAnimationMode(); return; } if (name == SVGNames::keyTimesAttr) { parseKeyTimes(value, m_keyTimes, true); return; } if (name == SVGNames::keyPointsAttr) { if (hasTagName(SVGNames::animateMotionTag)) { // This is specified to be an animateMotion attribute only but it is simpler to put it here // where the other timing calculatations are. parseKeyTimes(value, m_keyPoints, false); } return; } if (name == SVGNames::keySplinesAttr) { parseKeySplines(value, m_keySplines); return; } if (name == SVGNames::attributeTypeAttr) { setAttributeType(value); return; } if (name == SVGNames::calcModeAttr) { setCalcMode(value); return; } if (name == SVGNames::fromAttr || name == SVGNames::toAttr || name == SVGNames::byAttr) { updateAnimationMode(); return; } SVGSMILElement::parseAttribute(name, value); SVGTests::parseAttribute(name, value); SVGExternalResourcesRequired::parseAttribute(name, value); }
void SVGAnimationElement::parseAttribute(const QualifiedName& name, const AtomicString& oldValue, const AtomicString& value) { if (name == SVGNames::valuesAttr) { if (!parseValues(value, m_values)) { reportAttributeParsingError(ParsingAttributeFailedError, name, value); return; } updateAnimationMode(); return; } if (name == SVGNames::keyTimesAttr) { if (!parseKeyTimes(value, m_keyTimes, true)) reportAttributeParsingError(ParsingAttributeFailedError, name, value); return; } if (name == SVGNames::keyPointsAttr) { if (isSVGAnimateMotionElement(*this)) { // This is specified to be an animateMotion attribute only but it is simpler to put it here // where the other timing calculatations are. if (!parseKeyTimes(value, m_keyPoints, false)) reportAttributeParsingError(ParsingAttributeFailedError, name, value); } return; } if (name == SVGNames::keySplinesAttr) { if (!parseKeySplines(value, m_keySplines)) reportAttributeParsingError(ParsingAttributeFailedError, name, value); return; } if (name == SVGNames::attributeTypeAttr) { setAttributeType(value); return; } if (name == SVGNames::calcModeAttr) { setCalcMode(value); return; } if (name == SVGNames::fromAttr || name == SVGNames::toAttr || name == SVGNames::byAttr) { updateAnimationMode(); return; } SVGSMILElement::parseAttribute(name, oldValue, value); }