summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-01-20 16:33:53 +0100
committerPaul Lemire <paul.lemire@kdab.com>2016-01-22 14:29:34 +0000
commit86177b98e27a9d376e35039454986ff7de8f3104 (patch)
tree6ac256365641f538128666917f0b5090d873320a /examples
parent31e4d157c6b0af0c04546af643707a3811583455 (diff)
QAspectEngine/QAbstractAspects: get rid of setData
Getting rid of set data and the refactoring on setting the surface implies that: - Given the FrameGraph configuration, there may be several RenderViews each having a different RenderSurfaceSelector/Window - This means that the Renderer/QRenderAspect can't know about the surface before reading the scene - This means that the Renderer may be dealing with more than 1 window - This means that initialization, render and shutdown procedures will have to be updated accordingly Therefore the Renderer was refactored to: - Be initialized without knowing about a surface - For each RenderView, check the surface and if different from the previous one: * Make the context current with it * Create the appropriate glHelpers (as Surfaces may have != formats) TO DO: - Fix picking - Fix windows exposition - Fix shutdown / detection of all windows beging closed Change-Id: I49d070b05f46be4b26cfb57e494feba145d1da9c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/qt3d/examples-common/qt3dquickwindow.cpp15
-rw-r--r--examples/qt3d/examples-common/qt3dwindow.cpp6
2 files changed, 8 insertions, 13 deletions
diff --git a/examples/qt3d/examples-common/qt3dquickwindow.cpp b/examples/qt3d/examples-common/qt3dquickwindow.cpp
index 759405541..7b0f4a70f 100644
--- a/examples/qt3d/examples-common/qt3dquickwindow.cpp
+++ b/examples/qt3d/examples-common/qt3dquickwindow.cpp
@@ -41,6 +41,7 @@
#include <Qt3DRender/qframegraph.h>
#include <Qt3DRender/qrendersurfaceselector.h>
#include <Qt3DInput/qinputaspect.h>
+#include <Qt3DInput/qinputsettings.h>
#include <Qt3DLogic/qlogicaspect.h>
#include <QQmlContext>
@@ -123,12 +124,6 @@ void Qt3DQuickWindow::showEvent(QShowEvent *e)
{
if (!m_initialized) {
- // TODO: Get rid of this
- QVariantMap data;
- data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(this)));
- data.insert(QStringLiteral("eventSource"), QVariant::fromValue(this));
- m_engine->aspectEngine()->setData(data);
-
// Connect to the QQmlAspectEngine's statusChanged signal so that when the QML is loaded
// and th eobjects hav ebeen instantiated, but before we set them on the QAspectEngine we
// can swoop in and set the window surface and camera on the framegraph and ensure the camera
@@ -165,7 +160,13 @@ void Qt3DQuickWindow::onSceneCreated(QObject *rootObject)
}
}
- // TODO: Set ourselves up as a source of input events for the input aspect
+ // Set ourselves up as a source of input events for the input aspect
+ Qt3DInput::QInputSettings *inputSettings = rootObject->findChild<Qt3DInput::QInputSettings *>();
+ if (inputSettings) {
+ inputSettings->setEventSource(this);
+ } else {
+ qWarning() << "No Input Settings found, keyboard and mouse events won't be handled";
+ }
}
void Qt3DQuickWindow::setWindowSurface(QObject *rootObject)
diff --git a/examples/qt3d/examples-common/qt3dwindow.cpp b/examples/qt3d/examples-common/qt3dwindow.cpp
index a7728771e..805d92efb 100644
--- a/examples/qt3d/examples-common/qt3dwindow.cpp
+++ b/examples/qt3d/examples-common/qt3dwindow.cpp
@@ -171,12 +171,6 @@ void Qt3DWindow::showEvent(QShowEvent *e)
if (m_userRoot != nullptr)
m_userRoot->setParent(m_root);
- // TODO: Get rid of this
- QVariantMap data;
- data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(this)));
- data.insert(QStringLiteral("eventSource"), QVariant::fromValue(this));
- m_aspectEngine->setData(data);
-
m_root->addComponent(m_frameGraph);
m_aspectEngine->setRootEntity(m_root);