summaryrefslogtreecommitdiffstats
path: root/demos
diff options
context:
space:
mode:
authorSergey Dubitskiy <sergey.dubitskiy@nokia.com>2012-02-10 15:20:16 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-12 02:41:24 +0100
commit2c29c501e5ee2aeab9371f7923c888fb6658e5ef (patch)
tree95c4a88d816d5c8e76e6ff3eb94225192a2c4897 /demos
parentce825d290887afab95731b7bcb48256ba211ebd3 (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.cpp2
-rw-r--r--demos/qt3d/photobrowser3d/buttons.cpp2
-rw-r--r--demos/qt3d/photobrowser3d/buttons.h2
-rw-r--r--demos/qt3d/photobrowser3d/imagedisplay.cpp2
-rw-r--r--demos/qt3d/photobrowser3d/imagedisplay.h2
-rw-r--r--demos/qt3d/photobrowser3d/photobrowser3dview.cpp2
-rw-r--r--demos/qt3d/photobrowser3d/photobrowser3dview.h2
-rw-r--r--demos/qt3d/photobrowser3d/qatlas.cpp1
-rw-r--r--demos/qt3d/photobrowser3d/skybox.cpp3
-rw-r--r--demos/qt3d/photobrowser3d/thumbnailnode.cpp5
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);
}
}