commit was failing because nodes weren't stored yet, which could lead to
an apparent loss of particles.
Change-Id: Ibde6aa75f6c43e2d485c163820e65e0c6ff8e952
Reviewed-on: http://codereview.qt-project.org/5437
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
foreach (const QString &str, m_groups){
int gIdx = m_system->m_groupIds[str];
int count = m_system->m_groupData[gIdx]->size();
foreach (const QString &str, m_groups){
int gIdx = m_system->m_groupIds[str];
int count = m_system->m_groupData[gIdx]->size();
+
+ QSGShaderEffectNode* node = new QSGShaderEffectNode();
+ m_nodes.insert(gIdx, node);
+
+ node->setMaterial(m_material);
+ node->markDirty(QSGNode::DirtyMaterial);
+
//Create Particle Geometry
int vCount = count * 4;
int iCount = count * 6;
QSGGeometry *g = new QSGGeometry(PlainParticle_AttributeSet, vCount, iCount);
g->setDrawingMode(GL_TRIANGLES);
//Create Particle Geometry
int vCount = count * 4;
int iCount = count * 6;
QSGGeometry *g = new QSGGeometry(PlainParticle_AttributeSet, vCount, iCount);
g->setDrawingMode(GL_TRIANGLES);
PlainVertex *vertices = (PlainVertex *) g->vertexData();
for (int p=0; p < count; ++p) {
commit(gIdx, p);
PlainVertex *vertices = (PlainVertex *) g->vertexData();
for (int p=0; p < count; ++p) {
commit(gIdx, p);
indices[5] = o + 2;
indices += 6;
}
indices[5] = o + 2;
indices += 6;
}
-
- QSGShaderEffectNode* node = new QSGShaderEffectNode();
-
- node->setGeometry(g);
- node->setMaterial(m_material);
- node->markDirty(QSGNode::DirtyMaterial);
-
- m_nodes.insert(gIdx, node);
}
foreach (QSGShaderEffectNode* node, m_nodes){
if (node == *(m_nodes.begin()))
}
foreach (QSGShaderEffectNode* node, m_nodes){
if (node == *(m_nodes.begin()))