22 bool changed = !fHasSynced;
24 for (
const auto& animator : fAnimators) {
25 changed |= animator->seek(t);
42 if (child->isStatic()) {
47 fAnimators.push_back(std::move(child));
51 fAnimators.shrink_to_fit();
64 "Slotid found but no slots were found in the json. Using default values.");
69 "Specified slotID not found in 'slots'. Using default values.");
76 const auto& jpropA = (*jprop)[
"a"];
77 const auto& jpropK = (*jprop)[
"k"];
83 "Expression encountered but ExpressionManager not provided.");
85 builder.parseValue(abuilder, jpropK);
89 if (expression_animator) {
90 fAnimators.push_back(std::move(expression_animator));
98 if (!ParseDefault<bool>(jpropA,
false)) {
99 if (
builder.parseValue(abuilder, jpropK)) {
106 "Could not parse (explicit) static property.");
114 if (jkfs && jkfs->
size() > 0) {
115 animator =
builder.makeFromKeyframes(abuilder, *jkfs);
123 if (animator->isConstant()) {
128 fAnimators.push_back(std::move(animator));
void attachDiscardableAdapter(sk_sp< AnimatablePropertyContainer >)
const skjson::ObjectValue * getSlotsRoot() const
sk_sp< ExpressionManager > expression_manager() const
void log(Logger::Level, const skjson::Value *, const char fmt[],...) const SK_PRINTF_LIKE(4