summaryrefslogtreecommitdiffstats
path: root/src/quick3d
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2016-08-05 12:25:02 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-08-07 18:49:11 +0000
commita51e8f08b28ff28b0bc0d5c1f925f9b21292d3f7 (patch)
tree52687c1f20da304563ecdff10e23c76036bd6c51 /src/quick3d
parente2b9d0b15cc3ad0072cb3e404e3079e640e555cc (diff)
Avoid code dup. in Scene3DItem and Qt3DQuickWindow
Now that we got a single implementation for finding the QRenderSurfaceSelector, remove the code duplication by using it. It also fixes Scene3DItem search for QRenderSurfaceSelector which had a slightly different (and wrong) implementation. Change-Id: I80103363d7b591e757f8a0d9f4531659d6ea848c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d')
-rw-r--r--src/quick3d/imports/scene3d/scene3ditem.cpp50
-rw-r--r--src/quick3d/quick3dextras/qt3dquickwindow.cpp29
-rw-r--r--src/quick3d/quick3dextras/quick3dextras.pro2
3 files changed, 11 insertions, 70 deletions
diff --git a/src/quick3d/imports/scene3d/scene3ditem.cpp b/src/quick3d/imports/scene3d/scene3ditem.cpp
index 750be8fa7..c03e77018 100644
--- a/src/quick3d/imports/scene3d/scene3ditem.cpp
+++ b/src/quick3d/imports/scene3d/scene3ditem.cpp
@@ -48,7 +48,7 @@
#include <Qt3DRender/qcamera.h>
#include <Qt3DRender/QRenderAspect>
#include <Qt3DRender/qrendersurfaceselector.h>
-#include <Qt3DRender/qrendersettings.h>
+#include <Qt3DRender/private/qrendersurfaceselector_p.h>
#include <Qt3DInput/QInputAspect>
#include <Qt3DInput/qinputsettings.h>
#include <Qt3DLogic/qlogicaspect.h>
@@ -198,57 +198,19 @@ void Scene3DItem::applyRootEntityChange()
void Scene3DItem::setWindowSurface(QObject *rootObject)
{
- // Find surface selector in framegraph and set ourselves up as the
- // render surface there
- Qt3DRender::QRenderSettings *renderSettings
- = rootObject->findChild<Qt3DRender::QRenderSettings *>();
- if (!renderSettings) {
- qWarning() << "No renderer settings component found";
- return;
- }
-
- Qt3DCore::QNode *frameGraphRoot = renderSettings->activeFrameGraph();
- if (!frameGraphRoot) {
- qWarning() << "No active frame graph found";
- return;
- }
-
- Qt3DRender::QRenderSurfaceSelector *surfaceSelector
- = frameGraphRoot->findChild<Qt3DRender::QRenderSurfaceSelector *>();
- if (!surfaceSelector) {
- qWarning() << "No render surface selector found in frame graph";
- return;
- }
+ Qt3DRender::QRenderSurfaceSelector *surfaceSelector = Qt3DRender::QRenderSurfaceSelectorPrivate::find(rootObject);
// Set the item's window surface if it appears
// the surface wasn't set on the surfaceSelector
- if (!surfaceSelector->surface())
+ if (surfaceSelector && !surfaceSelector->surface())
surfaceSelector->setSurface(this->window());
}
void Scene3DItem::setItemArea(const QSize &area)
{
- // Find surface selector in framegraph and set the area
- Qt3DRender::QRenderSettings *renderSettings
- = m_entity->findChild<Qt3DRender::QRenderSettings *>();
- if (!renderSettings) {
- qWarning() << "No renderer settings component found";
- return;
- }
-
- Qt3DCore::QNode *frameGraphRoot = renderSettings->activeFrameGraph();
- if (!frameGraphRoot) {
- qWarning() << "No active frame graph found";
- return;
- }
-
- Qt3DRender::QRenderSurfaceSelector *surfaceSelector
- = frameGraphRoot->findChild<Qt3DRender::QRenderSurfaceSelector *>();
- if (!surfaceSelector) {
- qWarning() << "No render surface selector found in frame graph";
- return;
- }
- surfaceSelector->setExternalRenderTargetSize(area);
+ Qt3DRender::QRenderSurfaceSelector *surfaceSelector = Qt3DRender::QRenderSurfaceSelectorPrivate::find(m_entity);
+ if (surfaceSelector)
+ surfaceSelector->setExternalRenderTargetSize(area);
}
bool Scene3DItem::isHoverEnabled() const
diff --git a/src/quick3d/quick3dextras/qt3dquickwindow.cpp b/src/quick3d/quick3dextras/qt3dquickwindow.cpp
index 10c932e98..8a7921d8e 100644
--- a/src/quick3d/quick3dextras/qt3dquickwindow.cpp
+++ b/src/quick3d/quick3dextras/qt3dquickwindow.cpp
@@ -52,8 +52,8 @@
#include <Qt3DQuick/QQmlAspectEngine>
#include <Qt3DRender/qcamera.h>
#include <Qt3DRender/qrenderaspect.h>
-#include <Qt3DRender/qrendersettings.h>
#include <Qt3DRender/qrendersurfaceselector.h>
+#include <Qt3DRender/private/qrendersurfaceselector_p.h>
#include <Qt3DInput/qinputaspect.h>
#include <Qt3DInput/qinputsettings.h>
#include <Qt3DLogic/qlogicaspect.h>
@@ -230,30 +230,9 @@ void Qt3DQuickWindow::onSceneCreated(QObject *rootObject)
void Qt3DQuickWindow::setWindowSurface(QObject *rootObject)
{
- // Find surface selector in framegraph and set ourselves up as the
- // render surface there
- Qt3DRender::QRenderSettings *rendererSettings
- = rootObject->findChild<Qt3DRender::QRenderSettings *>();
- if (!rendererSettings) {
- qWarning() << "No renderer settings component found";
- return;
- }
-
- Qt3DCore::QNode *frameGraphRoot = rendererSettings->activeFrameGraph();
- if (!frameGraphRoot) {
- qWarning() << "No active frame graph found";
- return;
- }
-
- Qt3DRender::QRenderSurfaceSelector *surfaceSelector = qobject_cast<Qt3DRender::QRenderSurfaceSelector *>(frameGraphRoot);
- if (!surfaceSelector)
- surfaceSelector = frameGraphRoot->findChild<Qt3DRender::QRenderSurfaceSelector *>();
- if (!surfaceSelector) {
- qWarning() << "No render surface selector found in frame graph";
- return;
- }
-
- surfaceSelector->setSurface(this);
+ Qt3DRender::QRenderSurfaceSelector *surfaceSelector = Qt3DRender::QRenderSurfaceSelectorPrivate::find(rootObject);
+ if (surfaceSelector)
+ surfaceSelector->setSurface(this);
}
void Qt3DQuickWindow::setCameraAspectModeHelper()
diff --git a/src/quick3d/quick3dextras/quick3dextras.pro b/src/quick3d/quick3dextras/quick3dextras.pro
index 7af47424e..489200a0c 100644
--- a/src/quick3d/quick3dextras/quick3dextras.pro
+++ b/src/quick3d/quick3dextras/quick3dextras.pro
@@ -1,7 +1,7 @@
TARGET = Qt3DQuickExtras
MODULE = 3dquickextras
-QT += core core-private qml qml-private 3dcore 3dinput 3dquick 3drender 3dlogic
+QT += core core-private qml qml-private 3dcore 3dinput 3dquick 3drender 3drender-private 3dlogic
CONFIG -= precompile_header
# Qt3D is free of Q_FOREACH - make sure it stays that way: