From 046ee93a2bed08b8d95c32b6da77b19b67328c4e Mon Sep 17 00:00:00 2001 From: Jean Felder Date: Mon, 20 Feb 2023 20:11:00 +0100 Subject: [PATCH] qgs3dmapscene: remove unnecessary onRenderersChanged logic This logic is never triggered. Upading a layer is already is already handled by `onLayersChanged` and `onLayerRenderer3DChanged`: - `onLayersChanged` creates or remove an entity when a layer is added or removed - `onLayerRenderer3DChanged` recreates an entity when a layer's renderer is changed --- src/3d/qgs3dmapscene.cpp | 25 ------------------------- src/3d/qgs3dmapscene.h | 2 -- 2 files changed, 27 deletions(-) diff --git a/src/3d/qgs3dmapscene.cpp b/src/3d/qgs3dmapscene.cpp index db8cca4c7db..53b12b9e4b6 100644 --- a/src/3d/qgs3dmapscene.cpp +++ b/src/3d/qgs3dmapscene.cpp @@ -125,7 +125,6 @@ Qgs3DMapScene::Qgs3DMapScene( Qgs3DMapSettings &map, QgsAbstract3DEngine *engine connect( &map, &Qgs3DMapSettings::showLightSourceOriginsChanged, this, &Qgs3DMapScene::updateLights ); connect( &map, &Qgs3DMapSettings::fieldOfViewChanged, this, &Qgs3DMapScene::updateCameraLens ); connect( &map, &Qgs3DMapSettings::projectionTypeChanged, this, &Qgs3DMapScene::updateCameraLens ); - connect( &map, &Qgs3DMapSettings::renderersChanged, this, &Qgs3DMapScene::onRenderersChanged ); connect( &map, &Qgs3DMapSettings::skyboxSettingsChanged, this, &Qgs3DMapScene::onSkyboxSettingsChanged ); connect( &map, &Qgs3DMapSettings::shadowSettingsChanged, this, &Qgs3DMapScene::onShadowSettingsChanged ); connect( &map, &Qgs3DMapSettings::ambientOcclusionSettingsChanged, this, &Qgs3DMapScene::onAmbientOcclusionSettingsChanged ); @@ -176,10 +175,6 @@ Qgs3DMapScene::Qgs3DMapScene( Qgs3DMapSettings &map, QgsAbstract3DEngine *engine } } ); - // create entities of renderers - - onRenderersChanged(); - // listen to changes of layers in order to add/remove 3D renderer entities connect( &map, &Qgs3DMapSettings::layersChanged, this, &Qgs3DMapScene::onLayersChanged ); @@ -597,26 +592,6 @@ void Qgs3DMapScene::updateCameraLens() onCameraChanged(); } -void Qgs3DMapScene::onRenderersChanged() -{ - // remove entities (if any) - qDeleteAll( mRenderersEntities ); - mRenderersEntities.clear(); - - // re-add entities from new set of renderers - const QList renderers = mMap.renderers(); - for ( const QgsAbstract3DRenderer *renderer : renderers ) - { - Qt3DCore::QEntity *newEntity = renderer->createEntity( mMap ); - if ( newEntity ) - { - newEntity->setParent( this ); - finalizeNewEntity( newEntity ); - mRenderersEntities[renderer] = newEntity; - } - } -} - void Qgs3DMapScene::onLayerRenderer3DChanged() { QgsMapLayer *layer = qobject_cast( sender() ); diff --git a/src/3d/qgs3dmapscene.h b/src/3d/qgs3dmapscene.h index 05e1a3ab609..100e0ec4987 100644 --- a/src/3d/qgs3dmapscene.h +++ b/src/3d/qgs3dmapscene.h @@ -243,7 +243,6 @@ class _3D_EXPORT Qgs3DMapScene : public QObject void onBackgroundColorChanged(); void updateLights(); void updateCameraLens(); - void onRenderersChanged(); void onSkyboxSettingsChanged(); void onShadowSettingsChanged(); void onAmbientOcclusionSettingsChanged(); @@ -286,7 +285,6 @@ class _3D_EXPORT Qgs3DMapScene : public QObject Qt3DCore::QEntity *mEntityCameraViewCenter = nullptr; //! Keeps track of entities that belong to a particular layer QMap mLayerEntities; - QMap mRenderersEntities; bool mTerrainUpdateScheduled = false; SceneState mSceneState = Ready; //! List of lights in the scene