diff options
author | Sergey Dubitskiy <sergey.dubitskiy@nokia.com> | 2012-02-10 15:20:16 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-12 02:41:24 +0100 |
commit | 2c29c501e5ee2aeab9371f7923c888fb6658e5ef (patch) | |
tree | 95c4a88d816d5c8e76e6ff3eb94225192a2c4897 /demos | |
parent | ce825d290887afab95731b7bcb48256ba211ebd3 (diff) |
Task: Resource handling needs refactoring.
Phase One:
1.
fixed lots of memory leaks related to Texture2D's not being deleted.
2.
Texture2D now prints warning in destructor,
if cleanupResources() was not properly called before.
Task-number: QTBUG-24043
Change-Id: Ia6a8bbe38ad66778a38705e0a4464f24373d8846
Reviewed-by: Danny Pope <daniel.pope@nokia.com>
Diffstat (limited to 'demos')
-rw-r--r-- | demos/qt3d/cubehouse/cubeview.cpp | 2 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/buttons.cpp | 2 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/buttons.h | 2 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/imagedisplay.cpp | 2 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/imagedisplay.h | 2 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/photobrowser3dview.cpp | 2 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/photobrowser3dview.h | 2 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/qatlas.cpp | 1 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/skybox.cpp | 3 | ||||
-rw-r--r-- | demos/qt3d/photobrowser3d/thumbnailnode.cpp | 5 |
10 files changed, 12 insertions, 11 deletions
diff --git a/demos/qt3d/cubehouse/cubeview.cpp b/demos/qt3d/cubehouse/cubeview.cpp index d620f445f..54f172abe 100644 --- a/demos/qt3d/cubehouse/cubeview.cpp +++ b/demos/qt3d/cubehouse/cubeview.cpp @@ -139,7 +139,7 @@ void CubeView::initializeGL(QGLPainter *painter) builder.popNode(); int index; - QGLMaterialCollection *palette = builder.sceneNode()->palette(); + QSharedPointer<QGLMaterialCollection> palette = builder.sceneNode()->palette(); QGLMaterial *mat1 = new QGLMaterial(); mat1->setDiffuseColor(QColor(128, 100, 0)); diff --git a/demos/qt3d/photobrowser3d/buttons.cpp b/demos/qt3d/photobrowser3d/buttons.cpp index 44f73cddc..c296dfe10 100644 --- a/demos/qt3d/photobrowser3d/buttons.cpp +++ b/demos/qt3d/photobrowser3d/buttons.cpp @@ -42,7 +42,7 @@ #include "buttons.h" #include "qglpainter.h" -Buttons::Buttons(QObject *parent, QGLMaterialCollection *palette) +Buttons::Buttons(QObject *parent, QSharedPointer<QGLMaterialCollection> palette) : QGLSceneNode(parent) { setObjectName("Buttons"); diff --git a/demos/qt3d/photobrowser3d/buttons.h b/demos/qt3d/photobrowser3d/buttons.h index fdfb0e803..e136f0e6b 100644 --- a/demos/qt3d/photobrowser3d/buttons.h +++ b/demos/qt3d/photobrowser3d/buttons.h @@ -50,7 +50,7 @@ class Buttons : public QGLSceneNode { Q_OBJECT public: - explicit Buttons(QObject *parent, QGLMaterialCollection *palette); + explicit Buttons(QObject *parent, QSharedPointer<QGLMaterialCollection> palette); void draw(QGLPainter *painter); void clearPositions(); private: diff --git a/demos/qt3d/photobrowser3d/imagedisplay.cpp b/demos/qt3d/photobrowser3d/imagedisplay.cpp index 62ca8f809..b1180ac7a 100644 --- a/demos/qt3d/photobrowser3d/imagedisplay.cpp +++ b/demos/qt3d/photobrowser3d/imagedisplay.cpp @@ -91,7 +91,7 @@ static inline void qAddPane(QSizeF size, QGeometryData *data) data->appendIndices(k, k+2, k+3); } -ImageDisplay::ImageDisplay(QObject *parent, QGLMaterialCollection *materials, qreal wallSize) +ImageDisplay::ImageDisplay(QObject *parent, QSharedPointer<QGLMaterialCollection> materials, qreal wallSize) : QGLSceneNode(parent) , m_wall(0) , m_frames(0) diff --git a/demos/qt3d/photobrowser3d/imagedisplay.h b/demos/qt3d/photobrowser3d/imagedisplay.h index a931ab9d7..96f092d7c 100644 --- a/demos/qt3d/photobrowser3d/imagedisplay.h +++ b/demos/qt3d/photobrowser3d/imagedisplay.h @@ -60,7 +60,7 @@ class ImageDisplay : public QGLSceneNode { Q_OBJECT public: - ImageDisplay(QObject *parent, QGLMaterialCollection *materials, qreal wallSize = 4.0); + ImageDisplay(QObject *parent, QSharedPointer<QGLMaterialCollection> materials, qreal wallSize = 4.0); ~ImageDisplay(); int maxImages() const { return m_maxImages; } void setMaxImages(int max) { m_maxImages = max; } diff --git a/demos/qt3d/photobrowser3d/photobrowser3dview.cpp b/demos/qt3d/photobrowser3d/photobrowser3dview.cpp index bffe32f39..5a163c0c4 100644 --- a/demos/qt3d/photobrowser3d/photobrowser3dview.cpp +++ b/demos/qt3d/photobrowser3d/photobrowser3dview.cpp @@ -71,7 +71,7 @@ PhotoBrowser3DView::PhotoBrowser3DView() , m_images(0) , m_buttons(0) , m_skybox(0) - , m_palette(new QGLMaterialCollection(this)) + , m_palette(new QGLMaterialCollection()) , m_state(0) , m_app(0) , m_zoomed(0) diff --git a/demos/qt3d/photobrowser3d/photobrowser3dview.h b/demos/qt3d/photobrowser3d/photobrowser3dview.h index dbe703ae5..c6af5c403 100644 --- a/demos/qt3d/photobrowser3d/photobrowser3dview.h +++ b/demos/qt3d/photobrowser3d/photobrowser3dview.h @@ -98,7 +98,7 @@ private: ImageManager *m_images; Buttons *m_buttons; SkyBox *m_skybox; - QGLMaterialCollection *m_palette; + QSharedPointer<QGLMaterialCollection> m_palette; QStateMachine *m_state; QState *m_app; QState *m_zoomed; diff --git a/demos/qt3d/photobrowser3d/qatlas.cpp b/demos/qt3d/photobrowser3d/qatlas.cpp index b6a009f39..6b6343ec2 100644 --- a/demos/qt3d/photobrowser3d/qatlas.cpp +++ b/demos/qt3d/photobrowser3d/qatlas.cpp @@ -86,6 +86,7 @@ void QAtlas::initialize(QGLPainter *painter) m_data = new QOpenGLFramebufferObject(m_size); m_renderTarget = new QGLFramebufferObjectSurface(m_data); m_tex = QGLTexture2D::fromTextureId(m_data->texture(), m_size); + m_tex->setParent(m_material); m_material->setTexture(m_tex, 1); m_material->setObjectName("Atlas material"); m_initialized = true; diff --git a/demos/qt3d/photobrowser3d/skybox.cpp b/demos/qt3d/photobrowser3d/skybox.cpp index e6c8195cf..eaf884ce1 100644 --- a/demos/qt3d/photobrowser3d/skybox.cpp +++ b/demos/qt3d/photobrowser3d/skybox.cpp @@ -49,7 +49,8 @@ #include <QFileInfo> SkyBox::SkyBox(QGLView *view, const QString &imagePath) - : m_scene(0) + : QObject(view) + , m_scene(0) , m_view(view) , m_camera(new QGLCamera(this)) { diff --git a/demos/qt3d/photobrowser3d/thumbnailnode.cpp b/demos/qt3d/photobrowser3d/thumbnailnode.cpp index 1c2bdfd3b..f6689006c 100644 --- a/demos/qt3d/photobrowser3d/thumbnailnode.cpp +++ b/demos/qt3d/photobrowser3d/thumbnailnode.cpp @@ -60,7 +60,7 @@ ThumbnailNode::ThumbnailNode(QObject *parent) , m_manager(0) , m_lastDistance(ThumbnailNode::Unknown) { - setPalette(new QGLMaterialCollection(this)); + setPalette(QSharedPointer<QGLMaterialCollection>(new QGLMaterialCollection(this))); } ThumbnailNode::~ThumbnailNode() @@ -139,13 +139,12 @@ void ThumbnailNode::loadFullImage() m_full->materialIndex() == m_defaultMaterial) { QGLMaterial *mat = new QGLMaterial; - QGLTexture2D *tex = new QGLTexture2D; + QGLTexture2D *tex = new QGLTexture2D(mat); tex->setImage(m_image.data()); mat->setTexture(tex); mat->setObjectName(m_image.url().path()); int ix = palette()->addMaterial(mat); m_full->setMaterialIndex(ix); - mat->setParent(m_full); } } |