summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d/scene3dview_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3dview_p.h')
-rw-r--r--src/quick3d/imports/scene3d/scene3dview_p.h49
1 files changed, 28 insertions, 21 deletions
diff --git a/src/quick3d/imports/scene3d/scene3dview_p.h b/src/quick3d/imports/scene3d/scene3dview_p.h
index 3278bc6c4..5181073c8 100644
--- a/src/quick3d/imports/scene3d/scene3dview_p.h
+++ b/src/quick3d/imports/scene3d/scene3dview_p.h
@@ -5,8 +5,7 @@
**
** This file is part of the Qt3D module of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:COMM$
-**
+** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
@@ -15,25 +14,26 @@
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
-** $QT_END_LICENSE$
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
-**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
**
+** $QT_END_LICENSE$
**
****************************************************************************/
@@ -53,6 +53,7 @@
#include <QtQuick/QQuickItem>
#include <QtCore/QFlags>
+#include <QtCore/QPointer>
QT_BEGIN_NAMESPACE
@@ -76,6 +77,7 @@ class Scene3DView : public QQuickItem
Q_OBJECT
Q_PROPERTY(Qt3DCore::QEntity* entity READ entity WRITE setEntity NOTIFY entityChanged)
Q_PROPERTY(Qt3DRender::Scene3DItem *scene3D READ scene3D WRITE setScene3D NOTIFY scene3DChanged)
+ Q_PROPERTY(bool ownsEntity READ ownsEntity WRITE setOwnsEntity NOTIFY ownsEntityChanged)
Q_CLASSINFO("DefaultProperty", "entity")
public:
@@ -97,15 +99,19 @@ public:
void setTexture(QSGTexture *texture);
QSGTexture *texture() const;
+ bool ownsEntity() const;
+
void markSGNodeDirty();
public Q_SLOTS:
void setEntity(Qt3DCore::QEntity *entity);
void setScene3D(Scene3DItem *scene3D);
+ void setOwnsEntity(bool ownsEntity);
Q_SIGNALS:
void entityChanged();
void scene3DChanged();
+ void ownsEntityChanged();
private:
QSGNode *updatePaintNode(QSGNode *node, UpdatePaintNodeData *nodeData) override;
@@ -113,7 +119,7 @@ private:
void abandonSubtree(Qt3DCore::QEntity *subtree);
Scene3DItem *m_scene3D;
- Qt3DCore::QEntity *m_entity;
+ QPointer<Qt3DCore::QEntity> m_entity;
Qt3DCore::QNode *m_previousFGParent;
Qt3DCore::QEntity *m_holderEntity;
@@ -125,6 +131,7 @@ private:
DirtyFlags m_dirtyFlags;
QSGTexture *m_texture;
+ bool m_ownsEntity;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(Scene3DView::DirtyFlags)