Merge branch 'master' into mathnode

This commit is contained in:
itsmattkc
2020-03-31 02:39:46 +11:00
39 changed files with 578 additions and 253 deletions
+27
View File
@@ -22,6 +22,7 @@
#include <QDebug>
#include "node/output/track/track.h"
#include "transition/transition.h"
Block::Block() :
@@ -197,6 +198,22 @@ rational Block::MediaToSequenceTime(const rational &media_time) const
return (media_time - media_in()) / speed() + in();
}
void Block::LoadInternal(QXmlStreamReader *reader, XMLNodeData &xml_node_data)
{
if (reader->name() == QStringLiteral("link")) {
xml_node_data.block_links.append({this, reader->readElementText().toULongLong()});
} else {
Node::LoadInternal(reader, xml_node_data);
}
}
void Block::SaveInternal(QXmlStreamWriter *writer) const
{
foreach (Block* link, linked_clips_) {
writer->writeTextElement(QStringLiteral("link"), QString::number(reinterpret_cast<quintptr>(link)));
}
}
void Block::LengthInputChanged()
{
emit LengthChanged(length());
@@ -303,3 +320,13 @@ NodeInput *Block::speed_input() const
return speed_input_;
}
void Block::InvalidateCache(const rational &start_range, const rational &end_range, NodeInput *from)
{
// We ignore length changes since they don't have an effect on our frames
if (from == length_input_) {
return;
}
Node::InvalidateCache(start_range, end_range, from);
}
+6
View File
@@ -92,6 +92,8 @@ public:
NodeInput* media_in_input() const;
NodeInput* speed_input() const;
virtual void InvalidateCache(const rational& start_range, const rational& end_range, NodeInput* from = nullptr) override;
public slots:
signals:
@@ -111,6 +113,10 @@ protected:
rational MediaToSequenceTime(const rational& media_time) const;
virtual void LoadInternal(QXmlStreamReader* reader, XMLNodeData& xml_node_data) override;
virtual void SaveInternal(QXmlStreamWriter* writer) const override;
Block* previous_;
Block* next_;