QtLottie: Check each layer for visibility by frame.

This commit is contained in:
John Preston 2019-05-09 13:49:29 +03:00
parent 08ad74da8f
commit 6abf74530d
22 changed files with 24 additions and 25 deletions

View File

@ -96,7 +96,7 @@ QImage Animation::frame(crl::time now) const {
LottieRasterRenderer renderer(&p);
for (const auto element : tree.children()) {
if (element->active(frame)) {
element->render(renderer);
element->render(renderer, frame);
}
}
}

@ -1 +1 @@
Subproject commit ebd336ec4022c80274101239f13d1f847c759ce5
Subproject commit 9ab16cc8fda724421f13656a2f0821abdeac30c7

View File

@ -88,7 +88,7 @@ public:
virtual BMBase *findChild(const QString &childName);
virtual void updateProperties(int frame);
virtual void render(LottieRenderer &renderer) const;
virtual void render(LottieRenderer &renderer, int frame) const;
virtual void resolveAssets(const std::function<BMAsset*(QString)> &resolver);

View File

@ -63,7 +63,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
QPointF anchorPoint() const;
virtual QPointF position() const;

View File

@ -69,7 +69,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
bool acceptsTrim() const override;

View File

@ -60,7 +60,7 @@ public:
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
QColor color() const;
qreal opacity() const;

View File

@ -62,7 +62,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
QColor color() const;
qreal opacity() const;

View File

@ -65,7 +65,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
bool acceptsTrim() const override;

View File

@ -62,7 +62,7 @@ public:
BMBase *clone() const override;
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
QGradient *value() const;
QGradient::Type gradientType() const;

View File

@ -65,7 +65,7 @@ public:
void construct(const QJsonObject& definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
bool acceptsTrim() const override;
void applyTrim(const BMTrimPath &trimmer) override;

View File

@ -65,7 +65,7 @@ public:
void parse(const QJsonObject &definition) override;
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
BMBase *findChild(const QString &childName) override;
@ -75,10 +75,10 @@ public:
int layerId() const;
BMBasicTransform *transform() const;
void renderFullTransform(LottieRenderer &renderer) const;
void renderFullTransform(LottieRenderer &renderer, int frame) const;
protected:
void renderEffects(LottieRenderer &renderer) const;
void renderEffects(LottieRenderer &renderer, int frame) const;
virtual BMLayer *resolveLinkedLayer();
virtual BMLayer *linkedLayer() const;

View File

@ -63,7 +63,7 @@ public:
BMBase *clone() const override;
void updateProperties(int frame) override;
void render(LottieRenderer &render) const override;
void render(LottieRenderer &render, int frame) const override;
};

View File

@ -63,7 +63,7 @@ public:
void applyTrim(BMShape *shape);
void updateProperties(int frame);
void render(LottieRenderer &renderer) const;
void render(LottieRenderer &renderer, int frame) const;
private:
BMBase *m_root = nullptr;

View File

@ -63,7 +63,7 @@ public:
BMBase *clone() const override;
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
void resolveAssets(const std::function<BMAsset*(QString)> &resolver) override;
QString refId() const;
@ -74,7 +74,6 @@ protected:
private:
QString m_refId;
BMBase *m_layers = nullptr;
int m_layersFrame = 0;
bool m_resolving = false;
};

View File

@ -68,7 +68,7 @@ public:
bool setProperty(BMLiteral::PropertyType propertyType, QVariant value) override;
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
bool acceptsTrim() const override;
QPointF position() const;

View File

@ -62,7 +62,7 @@ public:
void construct(const QJsonObject& definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
int copies() const;
qreal offset() const;

View File

@ -59,7 +59,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
qreal startOpacity() const;
qreal endOpacity() const;

View File

@ -68,7 +68,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
bool acceptsTrim() const override;
QPointF position() const;

View File

@ -63,7 +63,7 @@ public:
BMBase *clone() const override;
void updateProperties(int frame) override;
void render(LottieRenderer &render) const override;
void render(LottieRenderer &render, int frame) const override;
protected:
QList<int> m_maskProperties;

View File

@ -62,7 +62,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
qreal skew() const;
qreal skewAxis() const;

View File

@ -59,7 +59,7 @@ public:
BMBase *clone() const override;
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
QPen pen() const;
qreal opacity() const;

View File

@ -63,7 +63,7 @@ public:
void construct(const QJsonObject &definition);
void updateProperties(int frame) override;
void render(LottieRenderer &renderer) const override;
void render(LottieRenderer &renderer, int frame) const override;
bool acceptsTrim() const override;
void applyTrim(const BMTrimPath &trimmer) override;