From 3e2cf73f6efe4e10e6c18ab8de5a0e035594ed70 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Tue, 15 Jan 2019 22:50:47 +1100 Subject: [PATCH] reimplemented tsa for threaded gl --- ui/viewerwidget.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/ui/viewerwidget.cpp b/ui/viewerwidget.cpp index 642d6636e..0126a073b 100644 --- a/ui/viewerwidget.cpp +++ b/ui/viewerwidget.cpp @@ -179,6 +179,7 @@ void ViewerWidget::fullscreen_menu_action(QAction *action) { QScreen* selected_screen = QGuiApplication::screens().at(action->data().toInt()); window->showFullScreen(); window->setGeometry(selected_screen->geometry()); + window->update(); // window->show(); } } @@ -438,19 +439,27 @@ void ViewerWidget::drawTitleSafeArea() { } void ViewerWidget::paintGL() { - if (renderer->mutex.tryLock(10)) { +// if (renderer->mutex.tryLock(10)) { + renderer->mutex.lock(); + makeCurrent(); + // clear to solid black + glClearColor(0.0, 0.0, 0.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, renderer->texColorBuffer); + // set screen coords to widget size glLoadIdentity(); glOrtho(0, 1, 1, 0, -1, 1); + // draw texture from render thread + + glBindTexture(GL_TEXTURE_2D, renderer->texColorBuffer); + glBegin(GL_QUADS); glVertex2f(0, 0); @@ -466,6 +475,12 @@ void ViewerWidget::paintGL() { glBindTexture(GL_TEXTURE_2D, 0); + // draw title/action safe area + + if (config.show_title_safe_area && !rendering) { + drawTitleSafeArea(); + } + glDisable(GL_TEXTURE_2D); if (window != nullptr && window->isVisible()) { @@ -478,7 +493,7 @@ void ViewerWidget::paintGL() { doneCurrent(); renderer->start_render(context(), viewer->seq); } - } +// } // retry_timer.stop();