diff options
-rw-r--r-- | src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp | 22 | ||||
-rw-r--r-- | src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h | 2 |
2 files changed, 11 insertions, 13 deletions
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp b/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp index 2f2e9161..de7ebde4 100644 --- a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp +++ b/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp @@ -128,7 +128,6 @@ Q3DSQmlStreamRenderer::Q3DSQmlStreamRenderer() , m_vao(nullptr) , m_vertices(nullptr) , m_context(nullptr) - , m_shareContext(nullptr) , m_offscreenSurface(nullptr) , m_renderObject(nullptr) , m_renderThread(nullptr) @@ -204,10 +203,16 @@ void Q3DSQmlStreamRenderer::cleanup() bool Q3DSQmlStreamRenderer::initialize(QOpenGLContext *context, QSurface *surface) { Q_UNUSED(surface); + if (!m_context) { + m_context = new QOpenGLContext(); + m_context->setShareContext(context); + m_context->setFormat(context->format()); + m_context->create(); + + m_context->moveToThread(m_renderThread); + } if (!m_rootItem) { - if (!m_shareContext) - m_shareContext = context; return true; } @@ -215,12 +220,6 @@ bool Q3DSQmlStreamRenderer::initialize(QOpenGLContext *context, QSurface *surfac Q_ASSERT(QOpenGLContext::areSharing(context, m_context)); return true; } - m_context = new QOpenGLContext(); - m_context->setShareContext(context); - m_context->setFormat(context->format()); - m_context->create(); - - m_context->moveToThread(m_renderThread); m_rootItem->setParentItem(m_quickWindow->contentItem()); updateSizes(); @@ -343,8 +342,8 @@ void Q3DSQmlStreamRenderer::setItem(QQuickItem *item) if (item && m_rootItem != item) { m_rootItem = item; - if (m_shareContext) - initialize(m_shareContext, nullptr); + if (m_context) + initialize(m_context, nullptr); } } } @@ -463,7 +462,6 @@ void Q3DSQmlStreamRenderer::render() func->glDrawArrays(GL_TRIANGLES, 0, 6); func->glEnable(GL_DEPTH_TEST); - m_update = false; m_program->release(); m_vao->release(); } diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h b/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h index 7bc5c482..7cb1dacf 100644 --- a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h +++ b/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h @@ -106,7 +106,7 @@ private: QOpenGLShaderProgram *m_program; QOpenGLVertexArrayObject *m_vao; QOpenGLBuffer *m_vertices; - QOpenGLContext *m_context, *m_shareContext; + QOpenGLContext *m_context; QOffscreenSurface *m_offscreenSurface; Q3DSQmlStreamEventHandler *m_renderObject; |