aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@nokia.com>2011-10-05 12:51:38 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-05 14:31:40 +0200
commit8058fd80b712c802c23c36812b3dec47dce15676 (patch)
treefccc301f0b1a34b5d5f68d978b704f6fa8171a84
parent884c0f6bf0246c128e3b6786f00fe5de3f3f9f6e (diff)
Don't accidentally use atlas images in particle nodes
Change-Id: I3058d9262bbc32c873ba26e51b04668f89ed060a Reviewed-on: http://codereview.qt-project.org/6039 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
-rw-r--r--src/declarative/particles/qsgimageparticle.cpp5
-rw-r--r--src/declarative/scenegraph/util/qsgtexture_p.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/src/declarative/particles/qsgimageparticle.cpp b/src/declarative/particles/qsgimageparticle.cpp
index f0304b4d10..3646506980 100644
--- a/src/declarative/particles/qsgimageparticle.cpp
+++ b/src/declarative/particles/qsgimageparticle.cpp
@@ -51,6 +51,7 @@
#include "qsgspriteengine_p.h"
#include <QOpenGLFunctions>
#include <qsgengine.h>
+#include <private/qsgtexture_p.h>
QT_BEGIN_NAMESPACE
//###Switch to define later, for now user-friendly (no compilation) debugging is worth it
@@ -1137,7 +1138,7 @@ QSGGeometryNode* QSGImageParticle::buildParticleNodes()
if (colortable.isNull())
colortable = QImage(QStringLiteral(":defaultshaders/identitytable.png"));
Q_ASSERT(!colortable.isNull());
- getState<ImageMaterialData>(m_material)->colorTable = sceneGraphEngine()->createTextureFromImage(colortable);
+ getState<ImageMaterialData>(m_material)->colorTable = QSGPlainTexture::fromImage(colortable);
fillUniformArrayFromImage(getState<ImageMaterialData>(m_material)->sizeTable, sizetable, UNIFORM_ARRAY_SIZE);
fillUniformArrayFromImage(getState<ImageMaterialData>(m_material)->opacityTable, opacitytable, UNIFORM_ARRAY_SIZE);
case Deformable:
@@ -1149,7 +1150,7 @@ QSGGeometryNode* QSGImageParticle::buildParticleNodes()
default://Also Simple
if (!m_material)
m_material = SimpleMaterial::createMaterial();
- getState<ImageMaterialData>(m_material)->texture = sceneGraphEngine()->createTextureFromImage(image);
+ getState<ImageMaterialData>(m_material)->texture = QSGPlainTexture::fromImage(image);
getState<ImageMaterialData>(m_material)->texture->setFiltering(QSGTexture::Linear);
getState<ImageMaterialData>(m_material)->entry = (qreal) m_entryEffect;
m_material->setFlag(QSGMaterial::Blending);
diff --git a/src/declarative/scenegraph/util/qsgtexture_p.h b/src/declarative/scenegraph/util/qsgtexture_p.h
index 460c0e86b7..f14508fd25 100644
--- a/src/declarative/scenegraph/util/qsgtexture_p.h
+++ b/src/declarative/scenegraph/util/qsgtexture_p.h
@@ -92,6 +92,12 @@ public:
virtual void bind();
+ static QSGPlainTexture *fromImage(const QImage &image) {
+ QSGPlainTexture *t = new QSGPlainTexture();
+ t->setImage(image);
+ return t;
+ }
+
protected:
QImage m_image;