summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Dubitskiy <sergey.dubitskiy@nokia.com>2012-02-17 13:28:24 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-29 09:19:35 +0100
commitb0b397d4659477494dc11a83766ebc8b34dd1b62 (patch)
tree1c3b0909c84725730dc33ae86f44415203087c0e
parentd9b6e7daa20c4d3d7f147713ff8c251cc6b4b69a (diff)
downloadqt3d-b0b397d4659477494dc11a83766ebc8b34dd1b62.tar.gz
Resource handling needs refactoring.
Some minor memory leaks were fixed. Task-number: QTBUG-24043 Change-Id: I792874911e68f4e6549184dbaebb8397f676c3f8 Reviewed-by: Danny Pope <daniel.pope@nokia.com> Reviewed-by: Sarah Jane Smith <sarah.j.smith@nokia.com>
-rw-r--r--src/quick3d/qdeclarativeeffect.cpp2
-rw-r--r--src/threed/materials/qglmaterial.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/quick3d/qdeclarativeeffect.cpp b/src/quick3d/qdeclarativeeffect.cpp
index 8c2231cc6..7266f3c5d 100644
--- a/src/quick3d/qdeclarativeeffect.cpp
+++ b/src/quick3d/qdeclarativeeffect.cpp
@@ -320,7 +320,7 @@ void QDeclarativeEffect::setTextureImage(const QImage& value)
if (!material()->texture())
{
// Should this texture be parented?
- tex = new QGLTexture2D();
+ tex = new QGLTexture2D(material());
material()->setTexture(tex);
} else
{
diff --git a/src/threed/materials/qglmaterial.cpp b/src/threed/materials/qglmaterial.cpp
index 829fc1a52..acc9e9b29 100644
--- a/src/threed/materials/qglmaterial.cpp
+++ b/src/threed/materials/qglmaterial.cpp
@@ -306,6 +306,8 @@ void QGLMaterial::setTexture(QGLTexture2D *value, int layer)
Q_D(QGLMaterial);
QGLTexture2D *prev = d->textures.value(layer, 0);
if (prev != value) {
+ if (prev)
+ prev->cleanupResources();
delete prev;
d->textures[layer] = value;
emit texturesChanged();