diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2017-06-07 10:54:11 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-03-19 13:06:32 +0000 |
commit | f14ad1302da60e57abbfd43ef1a684458bc576ba (patch) | |
tree | 4224ec3fa8bf5d1716f93161b2c494dc6113f1ee | |
parent | 4c3f6cb3d396d45d0a463c1222bb4185b9a015ab (diff) |
AbstractRenderer: add setOpenGLContext method
This will allow to only deal with the AbstractRenderer class interface in the
QRenderAspect. Then in practice, the setOpenGLContext function may just be
ignored by renderers which don't care about OpenGL
Change-Id: I1adc9c203e78a31ef1054a3be36e703b4e1a6f3e
Task-number: QTBUG-61151
Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r-- | src/render/backend/abstractrenderer_p.h | 3 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 2 | ||||
-rw-r--r-- | src/render/renderers/opengl/renderer/renderer_p.h | 2 | ||||
-rw-r--r-- | tests/auto/render/commons/testrenderer.h | 1 |
4 files changed, 6 insertions, 2 deletions
diff --git a/src/render/backend/abstractrenderer_p.h b/src/render/backend/abstractrenderer_p.h index 1cf0c60ae..1a7eab8af 100644 --- a/src/render/backend/abstractrenderer_p.h +++ b/src/render/backend/abstractrenderer_p.h @@ -169,6 +169,9 @@ public: virtual QVariant executeCommand(const QStringList &args) = 0; + // For QtQuick rendering + virtual void setOpenGLContext(QOpenGLContext *ctx) = 0; + virtual void setOffscreenSurfaceHelper(OffscreenSurfaceHelper *helper) = 0; virtual QSurfaceFormat format() = 0; virtual QOpenGLContext *shareContext() const = 0; diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index c3a4f4b92..04ddfdd46 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -410,7 +410,7 @@ QRenderAspect::~QRenderAspect() void QRenderAspectPrivate::renderInitialize(QOpenGLContext *context) { if (m_renderer->api() == Render::AbstractRenderer::OpenGL) - static_cast<Render::Renderer *>(m_renderer)->setOpenGLContext(context); + m_renderer->setOpenGLContext(context); m_renderer->initialize(); } diff --git a/src/render/renderers/opengl/renderer/renderer_p.h b/src/render/renderers/opengl/renderer/renderer_p.h index b4ad0b0fe..923f4edc4 100644 --- a/src/render/renderers/opengl/renderer/renderer_p.h +++ b/src/render/renderers/opengl/renderer/renderer_p.h @@ -249,7 +249,7 @@ public: bool requiresVAOAttributeUpdate(Geometry *geometry, RenderCommand *command) const; - void setOpenGLContext(QOpenGLContext *context); + void setOpenGLContext(QOpenGLContext *context) override; const GraphicsApiFilterData *contextInfo() const; SubmissionContext *submissionContext() const; diff --git a/tests/auto/render/commons/testrenderer.h b/tests/auto/render/commons/testrenderer.h index 355331516..5e3780afe 100644 --- a/tests/auto/render/commons/testrenderer.h +++ b/tests/auto/render/commons/testrenderer.h @@ -83,6 +83,7 @@ public: void setOffscreenSurfaceHelper(Qt3DRender::Render::OffscreenSurfaceHelper *helper) override; QSurfaceFormat format() override; + void setOpenGLContext(QOpenGLContext *) override {} void loadShader(Qt3DRender::Render::Shader *) const override {} |