From 8265fef5c585ee0558e5c87f67a99cb73363c9f0 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Mon, 17 Feb 2020 15:34:26 +1100 Subject: [PATCH] viewer: update renderer parameters if the viewer node's parameters have changed --- app/node/output/viewer/viewer.cpp | 7 ++++--- app/node/output/viewer/viewer.h | 8 +++++--- app/widget/viewer/viewer.cpp | 2 ++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/node/output/viewer/viewer.cpp b/app/node/output/viewer/viewer.cpp index 7dfecdf55..6ac8c5dd5 100644 --- a/app/node/output/viewer/viewer.cpp +++ b/app/node/output/viewer/viewer.cpp @@ -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) diff --git a/app/node/output/viewer/viewer.h b/app/node/output/viewer/viewer.h index 12be7a3fc..3b8dcca49 100644 --- a/app/node/output/viewer/viewer.h +++ b/app/node/output/viewer/viewer.h @@ -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); diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index 25361fb34..b1e4b1f1b 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -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