mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-02-16 04:07:02 +00:00
QtLottie: Enforce BM nodes parent.
This commit is contained in:
parent
67739ae3fd
commit
fbc206ebee
2
Telegram/ThirdParty/qtlottie
vendored
2
Telegram/ThirdParty/qtlottie
vendored
@ -1 +1 @@
|
||||
Subproject commit 26d3e9ff5f354a20e72b90e2a3d4d57bd73baa8c
|
||||
Subproject commit 2a529ab07bd105e0cac1a58ad5cb77f2fdc8f20d
|
@ -50,17 +50,17 @@ class LottieRenderer;
|
||||
class BODYMOVIN_EXPORT BMAsset : public BMBase
|
||||
{
|
||||
public:
|
||||
BMAsset() = default;
|
||||
explicit BMAsset (const BMAsset &other) = default;
|
||||
BMAsset(BMBase *parent);
|
||||
BMAsset(BMBase *parent, const BMAsset &other);
|
||||
~BMAsset() = default;
|
||||
|
||||
BMAsset *clone() const override;
|
||||
BMAsset *clone(BMBase *parent) const override;
|
||||
|
||||
static BMAsset *construct(QJsonObject definition);
|
||||
static BMAsset *construct(BMBase *parent, QJsonObject definition);
|
||||
|
||||
void parse(const QJsonObject &definition) override;
|
||||
|
||||
void resolveAssets(const std::function<BMAsset*(QString)> &resolver) override;
|
||||
void resolveAssets(const std::function<BMAsset*(BMBase*, QString)> &resolver) override;
|
||||
|
||||
QString id() const;
|
||||
|
||||
|
@ -59,11 +59,12 @@ class BMScene;
|
||||
class BODYMOVIN_EXPORT BMBase
|
||||
{
|
||||
public:
|
||||
BMBase() = default;
|
||||
explicit BMBase(const BMBase &other);
|
||||
BMBase(BMBase *parent);
|
||||
BMBase(BMBase *parent, const BMBase &other);
|
||||
BMBase(const BMBase &other) = delete;
|
||||
virtual ~BMBase();
|
||||
|
||||
virtual BMBase *clone() const;
|
||||
virtual BMBase *clone(BMBase *parent) const;
|
||||
|
||||
virtual bool setProperty(BMLiteral::PropertyType propertyType, QVariant value);
|
||||
|
||||
@ -80,7 +81,6 @@ public:
|
||||
bool hidden() const;
|
||||
|
||||
inline BMBase *parent() const { return m_parent; }
|
||||
void setParent(BMBase *parent);
|
||||
|
||||
const QList<BMBase *> &children() const { return m_children; }
|
||||
void prependChild(BMBase *child);
|
||||
@ -91,7 +91,7 @@ public:
|
||||
virtual void updateProperties(int frame);
|
||||
virtual void render(LottieRenderer &renderer, int frame) const;
|
||||
|
||||
virtual void resolveAssets(const std::function<BMAsset*(QString)> &resolver);
|
||||
virtual void resolveAssets(const std::function<BMAsset*(BMBase*, QString)> &resolver);
|
||||
|
||||
protected:
|
||||
virtual BMScene *resolveTopRoot() const;
|
||||
@ -110,7 +110,7 @@ protected:
|
||||
friend class BMRenderer;
|
||||
|
||||
private:
|
||||
BMBase *m_parent = nullptr;
|
||||
BMBase * const m_parent = nullptr;
|
||||
QList<BMBase *> m_children;
|
||||
|
||||
// Handle to the topmost element on which this element resides
|
||||
|
@ -54,13 +54,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMBasicTransform : public BMShape
|
||||
{
|
||||
public:
|
||||
BMBasicTransform() = default;
|
||||
explicit BMBasicTransform(const BMBasicTransform &other);
|
||||
BMBasicTransform(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMBasicTransform(BMBase *parent);
|
||||
BMBasicTransform(BMBase *parent, const BMBasicTransform &other);
|
||||
BMBasicTransform(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -60,13 +60,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMEllipse : public BMShape
|
||||
{
|
||||
public:
|
||||
BMEllipse() = default;
|
||||
explicit BMEllipse(const BMEllipse &other);
|
||||
BMEllipse(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMEllipse(BMBase *parent);
|
||||
BMEllipse(BMBase *parent, const BMEllipse &other);
|
||||
BMEllipse(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -52,11 +52,11 @@ QT_BEGIN_NAMESPACE
|
||||
class BODYMOVIN_EXPORT BMFill : public BMShape
|
||||
{
|
||||
public:
|
||||
BMFill() = default;
|
||||
explicit BMFill(const BMFill &other);
|
||||
BMFill(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMFill(BMBase *parent);
|
||||
BMFill(BMBase *parent, const BMFill &other);
|
||||
BMFill(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
|
||||
|
@ -54,12 +54,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMFillEffect : public BMBase
|
||||
{
|
||||
public:
|
||||
BMFillEffect() = default;
|
||||
explicit BMFillEffect(const BMFillEffect &other);
|
||||
BMFillEffect(BMBase *parent);
|
||||
BMFillEffect(BMBase *parent, const BMFillEffect &other);
|
||||
BMFillEffect(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -56,13 +56,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMFreeFormShape : public BMShape
|
||||
{
|
||||
public:
|
||||
BMFreeFormShape();
|
||||
explicit BMFreeFormShape(const BMFreeFormShape &other);
|
||||
BMFreeFormShape(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMFreeFormShape(BMBase *parent);
|
||||
BMFreeFormShape(BMBase *parent, const BMFreeFormShape &other);
|
||||
BMFreeFormShape(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -54,12 +54,12 @@ QT_BEGIN_NAMESPACE
|
||||
class BODYMOVIN_EXPORT BMGFill : public BMShape
|
||||
{
|
||||
public:
|
||||
BMGFill() = default;
|
||||
explicit BMGFill(const BMGFill &other);
|
||||
BMGFill(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMGFill(BMBase *parent);
|
||||
BMGFill(BMBase *parent, const BMGFill &other);
|
||||
BMGFill(BMBase *parent, const QJsonObject &definition);
|
||||
~BMGFill() override;
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -57,12 +57,13 @@ class BMPathTrimmer;
|
||||
class BODYMOVIN_EXPORT BMGroup : public BMShape
|
||||
{
|
||||
public:
|
||||
BMGroup() = default;
|
||||
BMGroup(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMGroup(BMBase *parent);
|
||||
BMGroup(BMBase *parent, const BMGroup &other);
|
||||
BMGroup(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject& definition);
|
||||
void parse(const QJsonObject& definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -42,6 +42,7 @@
|
||||
//
|
||||
|
||||
#include <QtBodymovin/private/bmbase_p.h>
|
||||
#include <QtBodymovin/private/bmbasictransform_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@ -53,15 +54,15 @@ class BODYMOVIN_EXPORT BMLayer : public BMBase
|
||||
public:
|
||||
enum MatteClipMode {NoClip, Alpha, InvertedAlpha, Luminence, InvertedLuminence};
|
||||
|
||||
BMLayer() = default;
|
||||
explicit BMLayer (const BMLayer &other);
|
||||
BMLayer(BMBase *parent);
|
||||
BMLayer(BMBase *parent, const BMLayer &other);
|
||||
~BMLayer() override;
|
||||
|
||||
static BMLayer *construct(QJsonObject definition);
|
||||
static BMLayer *construct(BMBase *parent, QJsonObject definition);
|
||||
|
||||
bool active(int frame) const override;
|
||||
|
||||
void parse(const QJsonObject &definition) override;
|
||||
void parse(const QJsonObject &definition) override;
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
|
||||
@ -72,7 +73,6 @@ public:
|
||||
MatteClipMode clipMode() const;
|
||||
|
||||
int layerId() const;
|
||||
BMBasicTransform *transform() const;
|
||||
void renderFullTransform(LottieRenderer &renderer, int frame) const;
|
||||
|
||||
protected:
|
||||
@ -89,7 +89,7 @@ protected:
|
||||
bool m_3dLayer = false;
|
||||
BMBase *m_effects = nullptr;
|
||||
qreal m_stretch;
|
||||
BMBasicTransform *m_layerTransform = nullptr;
|
||||
BMBasicTransform m_layerTransform;
|
||||
BMMasks *m_masks = nullptr;
|
||||
|
||||
int m_parentLayer = 0;
|
||||
|
@ -56,7 +56,9 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMMasks : public BMBase
|
||||
{
|
||||
public:
|
||||
BMBase *clone() const override;
|
||||
BMMasks(BMBase *parent);
|
||||
BMMasks(BMBase *parent, const BMMasks &other);
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
||||
|
@ -56,13 +56,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMMaskShape : public BMShape
|
||||
{
|
||||
public:
|
||||
BMMaskShape();
|
||||
explicit BMMaskShape(const BMMaskShape &other);
|
||||
BMMaskShape(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMMaskShape(BMBase *parent);
|
||||
BMMaskShape(BMBase *parent, const BMMaskShape &other);
|
||||
BMMaskShape(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -55,12 +55,12 @@ class BMBasicTransform;
|
||||
class BODYMOVIN_EXPORT BMNullLayer final : public BMLayer
|
||||
{
|
||||
public:
|
||||
BMNullLayer() = default;
|
||||
explicit BMNullLayer(const BMNullLayer &other);
|
||||
BMNullLayer(const QJsonObject &definition);
|
||||
BMNullLayer(BMBase *parent);
|
||||
BMNullLayer(BMBase *parent, const BMNullLayer &other);
|
||||
BMNullLayer(BMBase *parent, const QJsonObject &definition);
|
||||
~BMNullLayer() override;
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void render(LottieRenderer &render, int frame) const override;
|
||||
|
||||
|
@ -50,12 +50,12 @@ class LottieRenderer;
|
||||
class BODYMOVIN_EXPORT BMPreCompAsset : public BMAsset
|
||||
{
|
||||
public:
|
||||
BMPreCompAsset() = default;
|
||||
explicit BMPreCompAsset (const BMPreCompAsset &other) = default;
|
||||
BMPreCompAsset(const QJsonObject &definition);
|
||||
BMPreCompAsset(BMBase *parent);
|
||||
BMPreCompAsset(BMBase *parent, const BMPreCompAsset &other);
|
||||
BMPreCompAsset(BMBase *parent, const QJsonObject &definition);
|
||||
~BMPreCompAsset() = default;
|
||||
|
||||
BMPreCompAsset *clone() const override;
|
||||
BMPreCompAsset *clone(BMBase *parent) const override;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -55,16 +55,16 @@ class BMBasicTransform;
|
||||
class BODYMOVIN_EXPORT BMPreCompLayer final : public BMLayer
|
||||
{
|
||||
public:
|
||||
BMPreCompLayer() = default;
|
||||
explicit BMPreCompLayer(const BMPreCompLayer &other);
|
||||
BMPreCompLayer(const QJsonObject &definition);
|
||||
BMPreCompLayer(BMBase *parent);
|
||||
BMPreCompLayer(BMBase *parent, const BMPreCompLayer &other);
|
||||
BMPreCompLayer(BMBase *parent, const QJsonObject &definition);
|
||||
~BMPreCompLayer() override;
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
void resolveAssets(const std::function<BMAsset*(QString)> &resolver) override;
|
||||
void resolveAssets(const std::function<BMAsset*(BMBase*, QString)> &resolver) override;
|
||||
|
||||
QString refId() const;
|
||||
|
||||
|
@ -51,7 +51,6 @@
|
||||
#include <QDebug>
|
||||
|
||||
#include <QtBodymovin/private/bmconstants_p.h>
|
||||
#include <QtBodymovin/private/bmlayer_p.h>
|
||||
#include <QtBodymovin/private/beziereasing_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
@ -57,13 +57,11 @@ QT_BEGIN_NAMESPACE
|
||||
class BODYMOVIN_EXPORT BMRect : public BMShape
|
||||
{
|
||||
public:
|
||||
BMRect() = default;
|
||||
explicit BMRect(const BMRect &other);
|
||||
BMRect(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMRect(BMBase *parent);
|
||||
BMRect(BMBase *parent, const BMRect &other);
|
||||
BMRect(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
bool setProperty(BMLiteral::PropertyType propertyType, QVariant value) override;
|
||||
|
||||
|
@ -53,13 +53,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMRepeater : public BMShape
|
||||
{
|
||||
public:
|
||||
BMRepeater() = default;
|
||||
explicit BMRepeater(const BMRepeater &other);
|
||||
BMRepeater(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMRepeater(BMBase *parent);
|
||||
BMRepeater(BMBase *parent, const BMRepeater &other);
|
||||
BMRepeater(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject& definition);
|
||||
void parse(const QJsonObject& definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -50,13 +50,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMRepeaterTransform : public BMBasicTransform
|
||||
{
|
||||
public:
|
||||
BMRepeaterTransform() = default;
|
||||
explicit BMRepeaterTransform(const BMRepeaterTransform &other);
|
||||
BMRepeaterTransform(const QJsonObject &definition, BMBase *parent);
|
||||
BMRepeaterTransform(BMBase *parent);
|
||||
BMRepeaterTransform(BMBase *parent, const BMRepeaterTransform &other);
|
||||
BMRepeaterTransform(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -59,13 +59,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMRound : public BMShape
|
||||
{
|
||||
public:
|
||||
BMRound() = default;
|
||||
explicit BMRound(const BMRound &other);
|
||||
BMRound(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMRound(BMBase *parent);
|
||||
BMRound(BMBase *parent, const BMRound &other);
|
||||
BMRound(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -56,13 +56,12 @@ class BMAsset;
|
||||
class BODYMOVIN_EXPORT BMScene : public BMBase
|
||||
{
|
||||
public:
|
||||
BMScene();
|
||||
BMScene(const BMScene &other) = delete;
|
||||
BMScene &operator=(const BMScene &other) = delete;
|
||||
explicit BMScene(const QJsonObject &definition);
|
||||
virtual ~BMScene();
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -70,12 +70,12 @@ class BMTrimPath;
|
||||
class BODYMOVIN_EXPORT BMShape : public BMBase
|
||||
{
|
||||
public:
|
||||
BMShape() = default;
|
||||
explicit BMShape(const BMShape &other);
|
||||
BMShape(BMBase *parent);
|
||||
BMShape(BMBase *parent, const BMShape &other);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
static BMShape *construct(QJsonObject definition, BMBase *parent = nullptr);
|
||||
static BMShape *construct(BMBase *parent, QJsonObject definition);
|
||||
|
||||
virtual const QPainterPath &path() const;
|
||||
virtual bool acceptsTrim() const;
|
||||
|
@ -55,12 +55,12 @@ class BMBasicTransform;
|
||||
class BODYMOVIN_EXPORT BMShapeLayer final : public BMLayer
|
||||
{
|
||||
public:
|
||||
BMShapeLayer() = default;
|
||||
explicit BMShapeLayer(const BMShapeLayer &other);
|
||||
BMShapeLayer(const QJsonObject &definition);
|
||||
BMShapeLayer(BMBase *parent);
|
||||
BMShapeLayer(BMBase *parent, const BMShapeLayer &other);
|
||||
BMShapeLayer(BMBase *parent, const QJsonObject &definition);
|
||||
~BMShapeLayer() override;
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &render, int frame) const override;
|
||||
|
@ -54,12 +54,13 @@ class QJsonObject;
|
||||
class BODYMOVIN_EXPORT BMShapeTransform : public BMBasicTransform
|
||||
{
|
||||
public:
|
||||
explicit BMShapeTransform(const BMShapeTransform &other);
|
||||
BMShapeTransform(const QJsonObject &definition, BMBase *parent);
|
||||
BMShapeTransform(BMBase *parent);
|
||||
BMShapeTransform(BMBase *parent, const BMShapeTransform &other);
|
||||
BMShapeTransform(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -52,11 +52,11 @@ QT_BEGIN_NAMESPACE
|
||||
class BODYMOVIN_EXPORT BMStroke : public BMShape
|
||||
{
|
||||
public:
|
||||
BMStroke() = default;
|
||||
explicit BMStroke(const BMStroke &other);
|
||||
BMStroke(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
BMStroke(BMBase *parent);
|
||||
BMStroke(BMBase *parent, const BMStroke &other);
|
||||
BMStroke(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
@ -52,15 +52,15 @@ QT_BEGIN_NAMESPACE
|
||||
class BODYMOVIN_EXPORT BMTrimPath : public BMShape
|
||||
{
|
||||
public:
|
||||
BMTrimPath();
|
||||
BMTrimPath(const QJsonObject &definition, BMBase *parent = nullptr);
|
||||
explicit BMTrimPath(const BMTrimPath &other);
|
||||
BMTrimPath(BMBase *parent);
|
||||
BMTrimPath(BMBase *parent, const BMTrimPath &other);
|
||||
BMTrimPath(BMBase *parent, const QJsonObject &definition);
|
||||
|
||||
void inherit(const BMTrimPath &other);
|
||||
|
||||
BMBase *clone() const override;
|
||||
BMBase *clone(BMBase *parent) const override;
|
||||
|
||||
void construct(const QJsonObject &definition);
|
||||
void parse(const QJsonObject &definition);
|
||||
|
||||
void updateProperties(int frame) override;
|
||||
void render(LottieRenderer &renderer, int frame) const override;
|
||||
|
Loading…
Reference in New Issue
Block a user