diff options
author | Gunnar Sletta <gunnar.sletta@nokia.com> | 2011-10-05 12:51:38 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-05 14:31:40 +0200 |
commit | 8058fd80b712c802c23c36812b3dec47dce15676 (patch) | |
tree | fccc301f0b1a34b5d5f68d978b704f6fa8171a84 | |
parent | 884c0f6bf0246c128e3b6786f00fe5de3f3f9f6e (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.cpp | 5 | ||||
-rw-r--r-- | src/declarative/scenegraph/util/qsgtexture_p.h | 6 |
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; |