diff options
author | Paul Lemire <paul.lemire.ecortex@kdab.com> | 2014-11-12 07:35:57 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-11-14 17:44:21 +0100 |
commit | fa5b55ca17e233fdb5674c0652f60507af683975 (patch) | |
tree | b0ae6b6e9f735ce4cccf4b1eebbf44f70ce8c8ae /src/render/backend/qrenderaspect.cpp | |
parent | 8bf14c405031baa650c687ffffa443ce772093e0 (diff) |
Aspects: onInitialize now takes a QVariantMap
The QAspectEngine setSurface method was replaced by a setData method which
takes a QVariantMap. This offers a way to specify different values that
different aspects may be interested in. It is the responsibility of the Aspect
subclass to check that the QVariantMap contains the necessary element when
onInitialize is called.
Change-Id: Ifcf5d2ee9e5fac7b0fe3c320c1415bcf55f1cf55
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/backend/qrenderaspect.cpp')
-rw-r--r-- | src/render/backend/qrenderaspect.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/render/backend/qrenderaspect.cpp b/src/render/backend/qrenderaspect.cpp index 4d19a9126..087dce30c 100644 --- a/src/render/backend/qrenderaspect.cpp +++ b/src/render/backend/qrenderaspect.cpp @@ -212,12 +212,17 @@ void QRenderAspect::setRootEntity(QEntity *rootObject) m_renderer->setSceneGraphRoot(m_renderer->renderNodesManager()->lookupResource(rootObject->uuid())); } -void QRenderAspect::onInitialize(QSurface *surface) +void QRenderAspect::onInitialize(const QVariantMap &data) { m_renderer->setQRenderAspect(this); m_renderer->createAllocators(); // setSurface is synchronized using the Renderer's mutex - m_renderer->setSurface(surface); + QSurface *s = Q_NULLPTR; + const QVariant &v = data.value(QStringLiteral("surface")); + if (v.isValid()) + s = v.value<QSurface *>(); + if (s) + m_renderer->setSurface(s); } void QRenderAspect::onCleanup() |