inline static PassRefPtr<AnimatableValue> createFromFillLayers(const FillLayer& fillLayers, const ComputedStyle& style) { Vector<RefPtr<AnimatableValue>> values; for (const FillLayer* fillLayer = &fillLayers; fillLayer; fillLayer = fillLayer->next()) { if (property == CSSPropertyBackgroundImage || property == CSSPropertyWebkitMaskImage) { if (!fillLayer->isImageSet()) break; values.append(createFromStyleImage(fillLayer->image())); } else if (property == CSSPropertyBackgroundPositionX || property == CSSPropertyWebkitMaskPositionX) { if (!fillLayer->isXPositionSet()) break; values.append(createFromBackgroundPosition(fillLayer->xPosition(), fillLayer->isBackgroundXOriginSet(), fillLayer->backgroundXOrigin(), style)); } else if (property == CSSPropertyBackgroundPositionY || property == CSSPropertyWebkitMaskPositionY) { if (!fillLayer->isYPositionSet()) break; values.append(createFromBackgroundPosition(fillLayer->yPosition(), fillLayer->isBackgroundYOriginSet(), fillLayer->backgroundYOrigin(), style)); } else if (property == CSSPropertyBackgroundSize || property == CSSPropertyWebkitMaskSize) { if (!fillLayer->isSizeSet()) break; values.append(createFromFillSize(fillLayer->size(), style)); } else { ASSERT_NOT_REACHED(); } } return AnimatableRepeatable::create(values); }
inline static PassRefPtr<AnimatableValue> createFromFillLayers(const FillLayer* fillLayer, const RenderStyle& style) { ASSERT(fillLayer); Vector<RefPtr<AnimatableValue> > values; while (fillLayer) { if (property == CSSPropertyBackgroundImage || property == CSSPropertyWebkitMaskImage) { if (!fillLayer->isImageSet()) break; values.append(createFromStyleImage(fillLayer->image())); } else if (property == CSSPropertyBackgroundPositionX || property == CSSPropertyWebkitMaskPositionX) { if (!fillLayer->isXPositionSet()) break; values.append(createFromLength(fillLayer->xPosition(), style)); } else if (property == CSSPropertyBackgroundPositionY || property == CSSPropertyWebkitMaskPositionY) { if (!fillLayer->isYPositionSet()) break; values.append(createFromLength(fillLayer->yPosition(), style)); } else if (property == CSSPropertyBackgroundSize || property == CSSPropertyWebkitMaskSize) { if (!fillLayer->isSizeSet()) break; values.append(createFromFillSize(fillLayer->size(), style)); } else { ASSERT_NOT_REACHED(); } fillLayer = fillLayer->next(); } return AnimatableRepeatable::create(values); }