diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-10-15 09:40:09 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-10-15 09:40:40 +0200 |
commit | 7339e9ae93df3720e1b936dd027d821105020bc4 (patch) | |
tree | f563b7cf4e02ad8a0628fb228733dc841f8ca554 /src/render/renderers/opengl | |
parent | fd85ebb1e24d48ffdff0659810a1830691bba89f (diff) | |
parent | 7628760f8f16aba7769c04f2251633faa9fbcad1 (diff) |
Merge remote-tracking branch 'origin/5.13' into 5.14
Change-Id: I44133fbc9b93e96918463b0b0891ee5ab7db9f2c
Diffstat (limited to 'src/render/renderers/opengl')
-rw-r--r-- | src/render/renderers/opengl/renderer/renderer.cpp | 14 | ||||
-rw-r--r-- | src/render/renderers/opengl/renderer/renderer_p.h | 4 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/render/renderers/opengl/renderer/renderer.cpp b/src/render/renderers/opengl/renderer/renderer.cpp index c3e986854..9dfdf7d06 100644 --- a/src/render/renderers/opengl/renderer/renderer.cpp +++ b/src/render/renderers/opengl/renderer/renderer.cpp @@ -347,6 +347,16 @@ void Renderer::setOpenGLContext(QOpenGLContext *context) m_glContext = context; } +void Renderer::setScreen(QScreen *scr) +{ + m_screen = scr; +} + +QScreen *Renderer::screen() const +{ + return m_screen; +} + // Called in RenderThread context by the run method of RenderThread // RenderThread has locked the mutex already and unlocks it when this // method termintates @@ -364,6 +374,8 @@ void Renderer::initialize() // we need to create it if (!m_glContext) { ctx = new QOpenGLContext; + if (m_screen) + ctx->setScreen(m_screen); ctx->setShareContext(qt_gl_global_share_context()); // TO DO: Shouldn't we use the highest context available and trust @@ -393,6 +405,8 @@ void Renderer::initialize() if (!ctx->shareContext()) { m_shareContext = new QOpenGLContext; + if (ctx->screen()) + m_shareContext->setScreen(ctx->screen()); m_shareContext->setFormat(ctx->format()); m_shareContext->setShareContext(ctx); m_shareContext->create(); diff --git a/src/render/renderers/opengl/renderer/renderer_p.h b/src/render/renderers/opengl/renderer/renderer_p.h index 29aece008..b1cd4aac5 100644 --- a/src/render/renderers/opengl/renderer/renderer_p.h +++ b/src/render/renderers/opengl/renderer/renderer_p.h @@ -106,6 +106,7 @@ QT_BEGIN_NAMESPACE class QSurface; class QMouseEvent; +class QScreen; namespace Qt3DCore { class QEntity; @@ -293,6 +294,8 @@ public: ViewSubmissionResultData submitRenderViews(const QVector<Render::RenderView *> &renderViews); RendererCache *cache() { return &m_cache; } + void setScreen(QScreen *scr) override; + QScreen *screen() const override; #ifdef QT3D_RENDER_UNIT_TESTS public: @@ -426,6 +429,7 @@ private: bool m_shouldSwapBuffers; QVector<FrameGraphNode *> m_frameGraphLeaves; + QScreen *m_screen = nullptr; }; } // namespace Render |