summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2017-06-07 10:54:11 +0200
committerPaul Lemire <paul.lemire@kdab.com>2018-03-19 13:06:32 +0000
commitf14ad1302da60e57abbfd43ef1a684458bc576ba (patch)
tree4224ec3fa8bf5d1716f93161b2c494dc6113f1ee
parent4c3f6cb3d396d45d0a463c1222bb4185b9a015ab (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.h3
-rw-r--r--src/render/frontend/qrenderaspect.cpp2
-rw-r--r--src/render/renderers/opengl/renderer/renderer_p.h2
-rw-r--r--tests/auto/render/commons/testrenderer.h1
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 {}