From b8d46eeb3432d0cbff5de762fa3c75158a68a200 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 29 Aug 2019 20:12:44 +1000 Subject: [PATCH] fixed multithreaded download issue --- app/node/processor/renderer/renderer.cpp | 1 - app/node/processor/renderer/rendererdownloadthread.cpp | 8 ++++---- app/node/processor/renderer/rendererprocessthread.cpp | 2 ++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/node/processor/renderer/renderer.cpp b/app/node/processor/renderer/renderer.cpp index 2ad69c726..52d20a7c1 100644 --- a/app/node/processor/renderer/renderer.cpp +++ b/app/node/processor/renderer/renderer.cpp @@ -106,7 +106,6 @@ QVariant RendererProcessor::Value(NodeOutput* output, const rational& time) return QVariant::fromValue(master_texture_); } - } } diff --git a/app/node/processor/renderer/rendererdownloadthread.cpp b/app/node/processor/renderer/rendererdownloadthread.cpp index 374eb709b..a19902972 100644 --- a/app/node/processor/renderer/rendererdownloadthread.cpp +++ b/app/node/processor/renderer/rendererdownloadthread.cpp @@ -67,9 +67,9 @@ void RendererDownloadThread::ProcessLoop() // Download the texture - f->glBindFramebuffer(GL_FRAMEBUFFER, read_buffer_); + f->glBindFramebuffer(GL_READ_FRAMEBUFFER, read_buffer_); - xf->glFramebufferTexture2D(GL_FRAMEBUFFER, + xf->glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, working_texture->texture(), @@ -83,13 +83,13 @@ void RendererDownloadThread::ProcessLoop() format_info.pixel_type, data_buffer.data()); - xf->glFramebufferTexture2D(GL_FRAMEBUFFER, + xf->glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 0, 0); - f->glBindFramebuffer(GL_FRAMEBUFFER, 0); + f->glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); std::string working_fn_std = working_filename.toStdString(); diff --git a/app/node/processor/renderer/rendererprocessthread.cpp b/app/node/processor/renderer/rendererprocessthread.cpp index f1a4d0898..a44a8507f 100644 --- a/app/node/processor/renderer/rendererprocessthread.cpp +++ b/app/node/processor/renderer/rendererprocessthread.cpp @@ -83,6 +83,8 @@ void RendererProcessThread::ProcessLoop() // Get the requested value output_to_process->get_value(path_.time()); + render_instance()->context()->functions()->glFinish(); + emit FinishedPath(); } }