summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d
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/imports/scene3d
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/imports/scene3d')
-rw-r--r--src/quick3d/imports/scene3d/scene3ditem.cpp50
1 files changed, 6 insertions, 44 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