diff --git a/src/loaders/lottie/tvgLottieModel.cpp b/src/loaders/lottie/tvgLottieModel.cpp index bca2379e..b68933f1 100644 --- a/src/loaders/lottie/tvgLottieModel.cpp +++ b/src/loaders/lottie/tvgLottieModel.cpp @@ -61,17 +61,17 @@ void LottieSlot::assign(LottieObject* target, bool byDefault) switch (type) { case LottieProperty::Type::Position: { if (copy) pair->prop = new LottieVector(static_cast(pair->obj)->position); - pair->obj->override(&static_cast(target)->position, shallow, byDefault); + pair->obj->override(&static_cast(target)->position, shallow, !copy); break; } case LottieProperty::Type::Point: { if (copy) pair->prop = new LottieScalar(static_cast(pair->obj)->scale); - pair->obj->override(&static_cast(target)->scale, shallow, byDefault); + pair->obj->override(&static_cast(target)->scale, shallow, !copy); break; } case LottieProperty::Type::Float: { if (copy) pair->prop = new LottieFloat(static_cast(pair->obj)->rotation); - pair->obj->override(&static_cast(target)->rotation, shallow, byDefault); + pair->obj->override(&static_cast(target)->rotation, shallow, !copy); break; } case LottieProperty::Type::Opacity: { @@ -79,27 +79,27 @@ void LottieSlot::assign(LottieObject* target, bool byDefault) if (pair->obj->type == LottieObject::Type::Transform) pair->prop = new LottieOpacity(static_cast(pair->obj)->opacity); else pair->prop = new LottieOpacity(static_cast(pair->obj)->opacity); } - pair->obj->override(&static_cast(target)->opacity, shallow, byDefault); + pair->obj->override(&static_cast(target)->opacity, shallow, !copy); break; } case LottieProperty::Type::Color: { if (copy) pair->prop = new LottieColor(static_cast(pair->obj)->color); - pair->obj->override(&static_cast(target)->color, shallow, byDefault); + pair->obj->override(&static_cast(target)->color, shallow, !copy); break; } case LottieProperty::Type::ColorStop: { if (copy) pair->prop = new LottieColorStop(static_cast(pair->obj)->colorStops); - pair->obj->override(&static_cast(target)->colorStops, shallow, byDefault); + pair->obj->override(&static_cast(target)->colorStops, shallow, !copy); break; } case LottieProperty::Type::TextDoc: { if (copy) pair->prop = new LottieTextDoc(static_cast(pair->obj)->doc); - pair->obj->override(&static_cast(target)->doc, shallow, byDefault); + pair->obj->override(&static_cast(target)->doc, shallow, !copy); break; } case LottieProperty::Type::Image: { if (copy) pair->prop = new LottieBitmap(static_cast(pair->obj)->data); - pair->obj->override(&static_cast(target)->data, shallow, byDefault); + pair->obj->override(&static_cast(target)->data, shallow, !copy); break; } default: break; diff --git a/src/loaders/lottie/tvgLottieModel.h b/src/loaders/lottie/tvgLottieModel.h index f2bea8ea..21cd233a 100644 --- a/src/loaders/lottie/tvgLottieModel.h +++ b/src/loaders/lottie/tvgLottieModel.h @@ -213,7 +213,7 @@ struct LottieObject { } - virtual void override(LottieProperty* prop, bool shallow, bool byDefault) + virtual void override(LottieProperty* prop, bool shallow, bool release) { TVGERR("LOTTIE", "Unsupported slot type"); } @@ -348,9 +348,9 @@ struct LottieText : LottieObject, LottieRenderPooler LottieObject::type = LottieObject::Text; } - void override(LottieProperty* prop, bool shallow, bool byDefault = false) override + void override(LottieProperty* prop, bool shallow, bool release = false) override { - if (byDefault) doc.release(); + if (release) doc.release(); doc.copy(*static_cast(prop), shallow); } @@ -562,26 +562,26 @@ struct LottieTransform : LottieObject return nullptr; } - void override(LottieProperty* prop, bool shallow, bool byDefault) override + void override(LottieProperty* prop, bool shallow, bool release) override { switch (prop->type) { case LottieProperty::Type::Position: { - if (byDefault) position.release(); + if (release) position.release(); position.copy(*static_cast(prop), shallow); break; } case LottieProperty::Type::Float: { - if (byDefault) rotation.release(); + if (release) rotation.release(); rotation.copy(*static_cast(prop), shallow); break; } case LottieProperty::Type::Point: { - if (byDefault) scale.release(); + if (release) scale.release(); scale.copy(*static_cast(prop), shallow); break; } case LottieProperty::Type::Opacity: { - if (byDefault) opacity.release(); + if (release) opacity.release(); opacity.copy(*static_cast(prop), shallow); break; } @@ -633,9 +633,9 @@ struct LottieSolidStroke : LottieSolid, LottieStroke return LottieSolid::property(ix); } - void override(LottieProperty* prop, bool shallow, bool byDefault) override + void override(LottieProperty* prop, bool shallow, bool release) override { - if (byDefault) color.release(); + if (release) color.release(); color.copy(*static_cast(prop), shallow); } }; @@ -648,13 +648,13 @@ struct LottieSolidFill : LottieSolid LottieObject::type = LottieObject::SolidFill; } - void override(LottieProperty* prop, bool shallow, bool byDefault) override + void override(LottieProperty* prop, bool shallow, bool release) override { if (prop->type == LottieProperty::Type::Opacity) { - if (byDefault) opacity.release(); + if (release) opacity.release(); opacity.copy(*static_cast(prop), shallow); } else if (prop->type == LottieProperty::Type::Color) { - if (byDefault) color.release(); + if (release) color.release(); color.copy(*static_cast(prop), shallow); } } @@ -693,9 +693,9 @@ struct LottieGradient : LottieObject return nullptr; } - void override(LottieProperty* prop, bool shallow, bool byDefault = false) override + void override(LottieProperty* prop, bool shallow, bool release = false) override { - if (byDefault) colorStops.release(); + if (release) colorStops.release(); colorStops.copy(*static_cast(prop), shallow); prepare(); } @@ -748,9 +748,9 @@ struct LottieImage : LottieObject, LottieRenderPooler { LottieBitmap data; - void override(LottieProperty* prop, bool shallow, bool byDefault = false) override + void override(LottieProperty* prop, bool shallow, bool release = false) override { - if (byDefault) data.release(); + if (release) data.release(); data.copy(*static_cast(prop), shallow); update(); }