From be9c6727fa36be2edfc8b40c6c338d7a69cef9f8 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 17 Jan 2019 21:29:07 +1100 Subject: [PATCH] should have fixed the contexts when undocking panel --- ui/renderthread.h | 5 ++++- ui/viewerwidget.cpp | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ui/renderthread.h b/ui/renderthread.h index e3c95105b..cd4f1aec3 100644 --- a/ui/renderthread.h +++ b/ui/renderthread.h @@ -25,13 +25,16 @@ public: void start_render(QOpenGLContext* share, Sequence* s, const QString &save = nullptr, GLvoid *pixels = nullptr, int idivider = 0); bool did_texture_fail(); void cancel(); + +public slots: + // cleanup functions + void delete_ctx(); signals: void ready(); private: // cleanup functions void delete_texture(); void delete_fbo(); - void delete_ctx(); QWaitCondition waitCond; QOffscreenSurface surface; diff --git a/ui/viewerwidget.cpp b/ui/viewerwidget.cpp index a57208283..7791d28d4 100644 --- a/ui/viewerwidget.cpp +++ b/ui/viewerwidget.cpp @@ -253,9 +253,16 @@ void ViewerWidget::seek_from_click(int x) { } void ViewerWidget::context_destroy() { + makeCurrent(); + if (viewer->seq != nullptr) { + closeActiveClips(viewer->seq); + } if (window != nullptr) { delete window; } + //QMetaObject::invokeMethod(renderer, "delete_ctx", Qt::QueuedConnection); + renderer->delete_ctx(); + doneCurrent(); } EffectGizmo* ViewerWidget::get_gizmo_from_mouse(int x, int y) { @@ -367,7 +374,6 @@ void ViewerWidget::mouseMoveEvent(QMouseEvent* event) { void ViewerWidget::mouseReleaseEvent(QMouseEvent *event) { if (dragging && gizmos != nullptr && !(event->button() == Qt::MiddleButton || panel_timeline->tool == TIMELINE_TOOL_HAND)) { - qDebug() << "gizmos"; move_gizmos(event, true); } dragging = false;