45void QQuickParticlePainter::itemChange(ItemChange change,
const ItemChangeData &data)
47 if (change == QQuickItem::ItemSceneChange) {
49 disconnect(m_window, &QQuickWindow::sceneGraphInvalidated,
50 this, &QQuickParticlePainter::sceneGraphInvalidated);
52 m_window = data.window;
53 m_windowChanged =
true;
55 connect(m_window, &QQuickWindow::sceneGraphInvalidated,
56 this, &QQuickParticlePainter::sceneGraphInvalidated, Qt::DirectConnection);
59 QQuickItem::itemChange(change, data);
145void QQuickParticlePainter::calcSystemOffset(
bool resetPending)
147 if (!m_system || !parentItem())
149 QPointF lastOffset = m_systemOffset;
150 m_systemOffset = -1 *
this->mapFromItem(m_system, QPointF(0.0, 0.0));
151 if (lastOffset != m_systemOffset && !resetPending){
153 foreach (
const QString &g, m_groups){
154 int gId = m_system->groupIds[g];
155 foreach (QQuickParticleData* d, m_system->groupData[gId]->data)
161void QQuickParticlePainter::performPendingCommits()
164 foreach (intPair p, m_pendingCommits)
165 commit(p.first, p.second);
166 m_pendingCommits.clear();
std::pair< int, int > intPair