renderer: clear graph update queue when disconnecting a viewer

This commit is contained in:
itsmattkc
2020-06-06 01:02:03 +10:00
parent 550d30ed8f
commit 5055c136b6
+10 -1
View File
@@ -51,7 +51,10 @@ void RenderBackend::SetViewerNode(ViewerOutput *viewer_node)
}
ViewerOutput* old_viewer = viewer_node_;
viewer_node_ = viewer_node;
if (!viewer_node) {
// If setting to null, set it here before we wait for jobs to finish
viewer_node_ = viewer_node;
}
if (old_viewer) {
// Delete all of our copied nodes
@@ -70,6 +73,7 @@ void RenderBackend::SetViewerNode(ViewerOutput *viewer_node)
}
copy_map_.clear();
copied_viewer_node_ = nullptr;
graph_update_queue_.clear();
disconnect(old_viewer,
&ViewerOutput::GraphChangedFrom,
@@ -77,6 +81,11 @@ void RenderBackend::SetViewerNode(ViewerOutput *viewer_node)
&RenderBackend::NodeGraphChanged);
}
if (viewer_node) {
// If setting to non-null, set it now
viewer_node_ = viewer_node;
}
if (viewer_node_) {
// Copy graph
copied_viewer_node_ = static_cast<ViewerOutput*>(viewer_node_->copy());