viewer: update renderer parameters if the viewer node's parameters have changed

This commit is contained in:
itsmattkc
2020-02-17 15:34:26 +11:00
parent 6eeae7b15e
commit 8265fef5c5
3 changed files with 11 additions and 6 deletions
+4 -3
View File
@@ -81,17 +81,17 @@ QString ViewerOutput::Description() const
return tr("Interface between a Viewer panel and the node system.");
}
NodeInput *ViewerOutput::texture_input()
NodeInput *ViewerOutput::texture_input() const
{
return texture_input_;
}
NodeInput *ViewerOutput::samples_input()
NodeInput *ViewerOutput::samples_input() const
{
return samples_input_;
}
NodeInput *ViewerOutput::length_input()
NodeInput *ViewerOutput::length_input() const
{
return length_input_;
}
@@ -136,6 +136,7 @@ void ViewerOutput::set_video_params(const VideoParams &video)
emit SizeChanged(video_params_.width(), video_params_.height());
emit TimebaseChanged(video_params_.time_base());
emit VideoParamsChanged();
}
void ViewerOutput::set_audio_params(const AudioParams &audio)
+5 -3
View File
@@ -50,9 +50,9 @@ public:
virtual QString Category() const override;
virtual QString Description() const override;
NodeInput* texture_input();
NodeInput* samples_input();
NodeInput* length_input();
NodeInput* texture_input() const;
NodeInput* samples_input() const;
NodeInput* length_input() const;
virtual void InvalidateCache(const rational &start_range, const rational &end_range, NodeInput *from = nullptr) override;
virtual void InvalidateVisible(NodeInput *from) override;
@@ -98,6 +98,8 @@ signals:
void SizeChanged(int width, int height);
void VideoParamsChanged();
void BlockAdded(Block* block, TrackReference track);
void BlockRemoved(Block* block);
+2
View File
@@ -119,6 +119,7 @@ void ViewerWidget::ConnectNodeInternal(ViewerOutput *n)
connect(n, &ViewerOutput::TimebaseChanged, this, &ViewerWidget::SetTimebase);
connect(n, &ViewerOutput::SizeChanged, this, &ViewerWidget::SizeChangedSlot);
connect(n, &ViewerOutput::LengthChanged, this, &ViewerWidget::LengthChangedSlot);
connect(n, &ViewerOutput::VideoParamsChanged, this, &ViewerWidget::UpdateRendererParameters);
connect(n, &ViewerOutput::VisibleInvalidated, this, &ViewerWidget::InvalidateVisible);
SizeChangedSlot(n->video_params().width(), n->video_params().height());
@@ -144,6 +145,7 @@ void ViewerWidget::DisconnectNodeInternal(ViewerOutput *n)
disconnect(n, &ViewerOutput::TimebaseChanged, this, &ViewerWidget::SetTimebase);
disconnect(n, &ViewerOutput::SizeChanged, this, &ViewerWidget::SizeChangedSlot);
disconnect(n, &ViewerOutput::LengthChanged, this, &ViewerWidget::LengthChangedSlot);
disconnect(n, &ViewerOutput::VideoParamsChanged, this, &ViewerWidget::UpdateRendererParameters);
disconnect(n, &ViewerOutput::VisibleInvalidated, this, &ViewerWidget::InvalidateVisible);
// Effectively disables the viewer and clears the state