diff options
Diffstat (limited to 'src/particles')
24 files changed, 139 insertions, 142 deletions
diff --git a/src/particles/qquickangledirection.cpp b/src/particles/qquickangledirection.cpp index 11a007ca09..34afd9ce84 100644 --- a/src/particles/qquickangledirection.cpp +++ b/src/particles/qquickangledirection.cpp @@ -108,8 +108,8 @@ QPointF QQuickAngleDirection::sample(const QPointF &from) { Q_UNUSED(from); QPointF ret; - qreal theta = m_angle*CONV - m_angleVariation*CONV + QRandomGenerator::getReal() * m_angleVariation*CONV * 2; - qreal mag = m_magnitude- m_magnitudeVariation + QRandomGenerator::getReal() * m_magnitudeVariation * 2; + qreal theta = m_angle*CONV - m_angleVariation*CONV + QRandomGenerator::global()->generateDouble() * m_angleVariation*CONV * 2; + qreal mag = m_magnitude- m_magnitudeVariation + QRandomGenerator::global()->generateDouble() * m_magnitudeVariation * 2; ret.setX(mag * qCos(theta)); ret.setY(mag * qSin(theta)); return ret; diff --git a/src/particles/qquickcustomaffector.cpp b/src/particles/qquickcustomaffector.cpp index e152c436db..53557e1d0b 100644 --- a/src/particles/qquickcustomaffector.cpp +++ b/src/particles/qquickcustomaffector.cpp @@ -148,7 +148,7 @@ void QQuickCustomAffector::affectSystem(qreal dt) dt = 1.0; QQmlEngine *qmlEngine = ::qmlEngine(this); - QV4::ExecutionEngine *v4 = QV8Engine::getV4(qmlEngine->handle()); + QV4::ExecutionEngine *v4 = qmlEngine->handle(); QV4::Scope scope(v4); QV4::ScopedArrayObject array(scope, v4->newArrayObject(toAffect.size())); diff --git a/src/particles/qquickcustomparticle.cpp b/src/particles/qquickcustomparticle.cpp index a2bcd91167..0e3c656762 100644 --- a/src/particles/qquickcustomparticle.cpp +++ b/src/particles/qquickcustomparticle.cpp @@ -246,7 +246,7 @@ QSGNode *QQuickCustomParticle::updatePaintNode(QSGNode *oldNode, UpdatePaintNode QQuickOpenGLShaderEffectNode *rootNode = static_cast<QQuickOpenGLShaderEffectNode *>(oldNode); if (m_pleaseReset){ delete rootNode;//Automatically deletes children - rootNode = 0; + rootNode = nullptr; m_nodes.clear(); m_pleaseReset = false; m_dirtyProgram = true; @@ -270,7 +270,7 @@ QQuickOpenGLShaderEffectNode *QQuickCustomParticle::prepareNextFrame(QQuickOpenG rootNode = buildCustomNodes(); if (!rootNode) - return 0; + return nullptr; if (m_dirtyProgram) { const bool isES = QOpenGLContext::currentContext()->isOpenGLES(); @@ -316,23 +316,23 @@ QQuickOpenGLShaderEffectNode* QQuickCustomParticle::buildCustomNodes() typedef QHash<int, QQuickOpenGLShaderEffectNode*>::const_iterator NodeHashConstIt; if (!QOpenGLContext::currentContext()) - return 0; + return nullptr; if (m_count * 4 > 0xffff) { // Index data is ushort. qmlInfo(this) << "CustomParticle: Too many particles - maximum 16383 per CustomParticle"; - return 0; + return nullptr; } if (m_count <= 0) { qmlInfo(this) << "CustomParticle: Too few particles"; - return 0; + return nullptr; } if (groups().isEmpty()) - return 0; + return nullptr; - QQuickOpenGLShaderEffectNode *rootNode = 0; + QQuickOpenGLShaderEffectNode *rootNode = nullptr; QQuickOpenGLShaderEffectMaterial *material = new QQuickOpenGLShaderEffectMaterial; m_dirtyProgram = true; @@ -425,7 +425,7 @@ void QQuickCustomParticle::buildData(QQuickOpenGLShaderEffectNode *rootNode) void QQuickCustomParticle::initialize(int gIdx, int pIdx) { QQuickParticleData* datum = m_system->groupData[gIdx]->data[pIdx]; - datum->r = QRandomGenerator::getReal(); + datum->r = QRandomGenerator::global()->generateDouble(); } void QQuickCustomParticle::commit(int gIdx, int pIdx) diff --git a/src/particles/qquickellipseextruder.cpp b/src/particles/qquickellipseextruder.cpp index fbb11b34cc..52fccd6da9 100644 --- a/src/particles/qquickellipseextruder.cpp +++ b/src/particles/qquickellipseextruder.cpp @@ -68,8 +68,8 @@ QQuickEllipseExtruder::QQuickEllipseExtruder(QObject *parent) : QPointF QQuickEllipseExtruder::extrude(const QRectF & r) { - qreal theta = QRandomGenerator::bounded(2 * M_PI); - qreal mag = m_fill ? QRandomGenerator::getReal() : 1; + qreal theta = QRandomGenerator::global()->bounded(2 * M_PI); + qreal mag = m_fill ? QRandomGenerator::global()->generateDouble() : 1; return QPointF(r.x() + r.width()/2 + mag * (r.width()/2) * qCos(theta), r.y() + r.height()/2 + mag * (r.height()/2) * qSin(theta)); } diff --git a/src/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp index 8f809176a9..d2fb78d72a 100644 --- a/src/particles/qquickimageparticle.cpp +++ b/src/particles/qquickimageparticle.cpp @@ -67,7 +67,7 @@ class ImageMaterialData { public: ImageMaterialData() - : texture(0), colorTable(0) + : texture(nullptr), colorTable(nullptr) {} ~ImageMaterialData(){ @@ -701,7 +701,7 @@ void fillUniformArrayFromImage(float* array, const QImage& img, int size) QQuickImageParticle::QQuickImageParticle(QQuickItem* parent) : QQuickParticlePainter(parent) , m_color_variation(0.0) - , m_material(0) + , m_material(nullptr) , m_alphaVariation(0.0) , m_alpha(1.0) , m_redVariation(0.0) @@ -712,9 +712,9 @@ QQuickImageParticle::QQuickImageParticle(QQuickItem* parent) , m_rotationVelocity(0) , m_rotationVelocityVariation(0) , m_autoRotation(false) - , m_xVector(0) - , m_yVector(0) - , m_spriteEngine(0) + , m_xVector(nullptr) + , m_yVector(nullptr) + , m_spriteEngine(nullptr) , m_spritesInterpolate(true) , m_explicitColor(false) , m_explicitRotation(false) @@ -743,7 +743,7 @@ QQmlListProperty<QQuickSprite> QQuickImageParticle::sprites() void QQuickImageParticle::sceneGraphInvalidated() { m_nodes.clear(); - m_material = 0; + m_material = nullptr; } void QQuickImageParticle::setImage(const QUrl &image) @@ -1011,7 +1011,7 @@ void QQuickImageParticle::resetColor() for (auto groupId : groupIds()) { for (QQuickParticleData* d : qAsConst(m_system->groupData[groupId]->data)) { if (d->colorOwner == this) { - d->colorOwner = 0; + d->colorOwner = nullptr; } } } @@ -1030,7 +1030,7 @@ void QQuickImageParticle::resetRotation() for (auto groupId : groupIds()) { for (QQuickParticleData* d : qAsConst(m_system->groupData[groupId]->data)) { if (d->rotationOwner == this) { - d->rotationOwner = 0; + d->rotationOwner = nullptr; } } } @@ -1047,7 +1047,7 @@ void QQuickImageParticle::resetDeformation() for (auto groupId : groupIds()) { for (QQuickParticleData* d : qAsConst(m_system->groupData[groupId]->data)) { if (d->deformationOwner == this) { - d->deformationOwner = 0; + d->deformationOwner = nullptr; } } } @@ -1055,8 +1055,8 @@ void QQuickImageParticle::resetDeformation() delete m_xVector; if (m_yVector) delete m_yVector; - m_xVector = 0; - m_yVector = 0; + m_xVector = nullptr; + m_yVector = nullptr; } void QQuickImageParticle::reset() @@ -1076,7 +1076,7 @@ void QQuickImageParticle::createEngine() this, SLOT(spriteAdvance(int)), Qt::DirectConnection); m_explicitAnimation = true; } else { - m_spriteEngine = 0; + m_spriteEngine = nullptr; m_explicitAnimation = false; } reset(); @@ -1298,7 +1298,7 @@ void QQuickImageParticle::finishBuildParticleNodes(QSGNode** node) clearShadows(); if (m_material) - m_material = 0; + m_material = nullptr; //Setup material QImage colortable; @@ -1473,12 +1473,12 @@ static inline bool isOpenGL(QSGRenderContext *rc) QSGNode *QQuickImageParticle::updatePaintNode(QSGNode *node, UpdatePaintNodeData *) { if (!node && !isOpenGL(QQuickItemPrivate::get(this)->sceneGraphRenderContext())) - return 0; + return nullptr; if (m_pleaseReset){ if (node) delete node; - node = 0; + node = nullptr; m_lastLevel = perfLevel; m_nodes.clear(); @@ -1487,7 +1487,7 @@ QSGNode *QQuickImageParticle::updatePaintNode(QSGNode *node, UpdatePaintNodeData m_startsIdx.clear(); m_lastIdxStart = 0; - m_material = 0; + m_material = nullptr; m_pleaseReset = false; m_startedImageLoading = 0;//Cancel a part-way build (may still have a pending load) @@ -1509,7 +1509,7 @@ QSGNode *QQuickImageParticle::updatePaintNode(QSGNode *node, UpdatePaintNodeData void QQuickImageParticle::prepareNextFrame(QSGNode **node) { - if (*node == 0){//TODO: Staggered loading (as emitted) + if (*node == nullptr){//TODO: Staggered loading (as emitted) buildParticleNodes(node); if (m_debugMode) { qDebug() << "QQuickImageParticle Feature level: " << perfLevel; @@ -1522,7 +1522,7 @@ void QQuickImageParticle::prepareNextFrame(QSGNode **node) } qDebug() << "Total count: " << count; } - if (*node == 0) + if (*node == nullptr) return; } qint64 timeStamp = m_system->systemSync(this); @@ -1730,9 +1730,9 @@ void QQuickImageParticle::initialize(int gIdx, int pIdx) if (!datum->rotationOwner) datum->rotationOwner = this; rotation = - (m_rotation + (m_rotationVariation - 2*QRandomGenerator::bounded(m_rotationVariation)) ) * CONV; + (m_rotation + (m_rotationVariation - 2*QRandomGenerator::global()->bounded(m_rotationVariation)) ) * CONV; rotationVelocity = - (m_rotationVelocity + (m_rotationVelocityVariation - 2*QRandomGenerator::bounded(m_rotationVelocityVariation)) ) * CONV; + (m_rotationVelocity + (m_rotationVelocityVariation - 2*QRandomGenerator::global()->bounded(m_rotationVelocityVariation)) ) * CONV; autoRotate = m_autoRotation?1.0:0.0; if (datum->rotationOwner == this) { datum->rotation = rotation; @@ -1751,10 +1751,10 @@ void QQuickImageParticle::initialize(int gIdx, int pIdx) if (m_explicitColor) { if (!datum->colorOwner) datum->colorOwner = this; - color.r = m_color.red() * (1 - redVariation) + QRandomGenerator::bounded(256) * redVariation; - color.g = m_color.green() * (1 - greenVariation) + QRandomGenerator::bounded(256) * greenVariation; - color.b = m_color.blue() * (1 - blueVariation) + QRandomGenerator::bounded(256) * blueVariation; - color.a = m_alpha * m_color.alpha() * (1 - m_alphaVariation) + QRandomGenerator::bounded(256) * m_alphaVariation; + color.r = m_color.red() * (1 - redVariation) + QRandomGenerator::global()->bounded(256) * redVariation; + color.g = m_color.green() * (1 - greenVariation) + QRandomGenerator::global()->bounded(256) * greenVariation; + color.b = m_color.blue() * (1 - blueVariation) + QRandomGenerator::global()->bounded(256) * blueVariation; + color.a = m_alpha * m_color.alpha() * (1 - m_alphaVariation) + QRandomGenerator::global()->bounded(256) * m_alphaVariation; if (datum->colorOwner == this) datum->color = color; else diff --git a/src/particles/qquickitemparticle.cpp b/src/particles/qquickitemparticle.cpp index 50b66a4d15..412390dffc 100644 --- a/src/particles/qquickitemparticle.cpp +++ b/src/particles/qquickitemparticle.cpp @@ -118,7 +118,7 @@ QT_BEGIN_NAMESPACE */ QQuickItemParticle::QQuickItemParticle(QQuickItem *parent) : - QQuickParticlePainter(parent), m_fade(true), m_lastT(0), m_activeCount(0), m_delegate(0) + QQuickParticlePainter(parent), m_fade(true), m_lastT(0), m_activeCount(0), m_delegate(nullptr) { setFlag(QQuickItem::ItemHasContents); clock = new Clock(this); @@ -195,7 +195,7 @@ void QQuickItemParticle::tick(int time) //remove old item from the particle that is dying to make room for this one if (d->delegate) { m_deletables << d->delegate; - d->delegate = 0; + d->delegate = nullptr; } if (!m_pendingItems.isEmpty()){ d->delegate = m_pendingItems.front(); @@ -289,7 +289,7 @@ void QQuickItemParticle::prepareNextFrame() } if (t >= 1.0f){//Usually happens from load m_deletables << item; - data->delegate = 0; + data->delegate = nullptr; }else{//Fade data->delegate->setVisible(true); if (m_fade){ diff --git a/src/particles/qquicklineextruder.cpp b/src/particles/qquicklineextruder.cpp index 6ebd728407..670e656b8e 100644 --- a/src/particles/qquicklineextruder.cpp +++ b/src/particles/qquicklineextruder.cpp @@ -69,10 +69,10 @@ QPointF QQuickLineExtruder::extrude(const QRectF &r) { qreal x,y; if (!r.height()){ - x = r.width() * QRandomGenerator::getReal(); + x = r.width() * QRandomGenerator::global()->generateDouble(); y = 0; }else{ - y = r.height() * QRandomGenerator::getReal(); + y = r.height() * QRandomGenerator::global()->generateDouble(); if (!r.width()){ x = 0; }else{ diff --git a/src/particles/qquickmaskextruder.cpp b/src/particles/qquickmaskextruder.cpp index 60c23c55a8..6ab6dcc6a4 100644 --- a/src/particles/qquickmaskextruder.cpp +++ b/src/particles/qquickmaskextruder.cpp @@ -103,7 +103,7 @@ QPointF QQuickMaskExtruder::extrude(const QRectF &r) ensureInitialized(r); if (!m_mask.count() || m_img.isNull()) return r.topLeft(); - const QPointF p = m_mask[QRandomGenerator::bounded(m_mask.count())]; + const QPointF p = m_mask[QRandomGenerator::global()->bounded(m_mask.count())]; //### Should random sub-pixel positioning be added? return p + r.topLeft(); } diff --git a/src/particles/qquickparticleaffector.cpp b/src/particles/qquickparticleaffector.cpp index 30716ecb80..76089c1abd 100644 --- a/src/particles/qquickparticleaffector.cpp +++ b/src/particles/qquickparticleaffector.cpp @@ -131,7 +131,7 @@ QT_BEGIN_NAMESPACE */ QQuickParticleAffector::QQuickParticleAffector(QQuickItem *parent) : QQuickItem(parent), m_needsReset(false), m_ignoresTime(false), m_onceOff(false), m_enabled(true) - , m_system(0), m_updateIntSet(false), m_shape(new QQuickParticleExtruder(this)) + , m_system(nullptr), m_updateIntSet(false), m_shape(new QQuickParticleExtruder(this)) { } diff --git a/src/particles/qquickparticleemitter.cpp b/src/particles/qquickparticleemitter.cpp index d18250d706..78409d3a44 100644 --- a/src/particles/qquickparticleemitter.cpp +++ b/src/particles/qquickparticleemitter.cpp @@ -222,9 +222,9 @@ QQuickParticleEmitter::QQuickParticleEmitter(QQuickItem *parent) : , m_particleDuration(1000) , m_particleDurationVariation(0) , m_enabled(true) - , m_system(0) - , m_extruder(0) - , m_defaultExtruder(0) + , m_system(nullptr) + , m_extruder(nullptr) + , m_defaultExtruder(nullptr) , m_velocity(&m_nullVector) , m_acceleration(&m_nullVector) , m_particleSize(16) @@ -349,7 +349,7 @@ void QQuickParticleEmitter::reset() void QQuickParticleEmitter::emitWindow(int timeStamp) { - if (m_system == 0) + if (m_system == nullptr) return; if ((!m_enabled || m_particlesPerSecond <= 0)&& !m_pulseLeft && m_burstQueue.isEmpty()){ m_reset_last = true; @@ -425,7 +425,7 @@ void QQuickParticleEmitter::emitWindow(int timeStamp) datum->t = pt; datum->lifeSpan = (m_particleDuration - + (QRandomGenerator::bounded((m_particleDurationVariation*2) + 1) - m_particleDurationVariation)) + + (QRandomGenerator::global()->bounded((m_particleDurationVariation*2) + 1) - m_particleDurationVariation)) / 1000.0; if (datum->lifeSpan >= m_system->maxLife){ @@ -462,7 +462,7 @@ void QQuickParticleEmitter::emitWindow(int timeStamp) // Particle size float sizeVariation = -m_particleSizeVariation - + QRandomGenerator::bounded(m_particleSizeVariation * 2); + + QRandomGenerator::global()->bounded(m_particleSizeVariation * 2); float size = qMax((qreal)0.0 , m_particleSize + sizeVariation); float endSize = qMax((qreal)0.0 , sizeAtEnd + sizeVariation); @@ -486,7 +486,7 @@ void QQuickParticleEmitter::emitWindow(int timeStamp) if (isEmitConnected()) { QQmlEngine *qmlEngine = ::qmlEngine(this); - QV4::ExecutionEngine *v4 = QV8Engine::getV4(qmlEngine->handle()); + QV4::ExecutionEngine *v4 = qmlEngine->handle(); QV4::Scope scope(v4); //Done after emitParticle so that the Painter::load is done first, this allows you to customize its static variables diff --git a/src/particles/qquickparticleextruder.cpp b/src/particles/qquickparticleextruder.cpp index 74b450921f..816ff34960 100644 --- a/src/particles/qquickparticleextruder.cpp +++ b/src/particles/qquickparticleextruder.cpp @@ -59,8 +59,8 @@ QQuickParticleExtruder::QQuickParticleExtruder(QObject *parent) : QPointF QQuickParticleExtruder::extrude(const QRectF &rect) { - return QPointF(QRandomGenerator::getReal() * rect.width() + rect.x(), - QRandomGenerator::getReal() * rect.height() + rect.y()); + return QPointF(QRandomGenerator::global()->generateDouble() * rect.width() + rect.x(), + QRandomGenerator::global()->generateDouble() * rect.height() + rect.y()); } bool QQuickParticleExtruder::contains(const QRectF &bounds, const QPointF &point) diff --git a/src/particles/qquickparticlegroup.cpp b/src/particles/qquickparticlegroup.cpp index 2ee2a1d0a3..a42d2bcb13 100644 --- a/src/particles/qquickparticlegroup.cpp +++ b/src/particles/qquickparticlegroup.cpp @@ -91,7 +91,7 @@ QQuickParticleGroup::QQuickParticleGroup(QObject* parent) : QQuickStochasticState(parent) - , m_system(0) + , m_system(nullptr) { } @@ -107,9 +107,9 @@ QQmlListProperty<QObject> QQuickParticleGroup::particleChildren() { QQuickParticleSystem* system = qobject_cast<QQuickParticleSystem*>(parent()); if (system) - return QQmlListProperty<QObject>(this, 0, &QQuickParticleSystem::statePropertyRedirect, 0, 0, 0); + return QQmlListProperty<QObject>(this, nullptr, &QQuickParticleSystem::statePropertyRedirect, nullptr, nullptr, nullptr); else - return QQmlListProperty<QObject>(this, 0, &delayedRedirect, 0, 0, 0); + return QQmlListProperty<QObject>(this, nullptr, &delayedRedirect, nullptr, nullptr, nullptr); } void QQuickParticleGroup::setSystem(QQuickParticleSystem* arg) diff --git a/src/particles/qquickparticlepainter.cpp b/src/particles/qquickparticlepainter.cpp index 70fc2d59e3..13591be97a 100644 --- a/src/particles/qquickparticlepainter.cpp +++ b/src/particles/qquickparticlepainter.cpp @@ -66,10 +66,10 @@ QT_BEGIN_NAMESPACE */ QQuickParticlePainter::QQuickParticlePainter(QQuickItem *parent) : QQuickItem(parent) - , m_system(0) + , m_system(nullptr) , m_count(0) , m_pleaseReset(true) - , m_window(0) + , m_window(nullptr) , m_groupIdsNeedRecalculation(false) { } diff --git a/src/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp index cc7d9edbc8..612675fec7 100644 --- a/src/particles/qquickparticlesystem.cpp +++ b/src/particles/qquickparticlesystem.cpp @@ -378,7 +378,7 @@ QQuickParticleData* QQuickParticleGroupData::newDatum(bool respectsLimits) return data[idx]; } if (respectsLimits) - return 0; + return nullptr; int oldSize = m_size; setSize(oldSize + 10);//###+1,10%,+10? Choose something non-arbitrarily @@ -418,11 +418,11 @@ QQuickParticleData::QQuickParticleData() : index(0) , systemIndex(-1) , groupId(0) - , colorOwner(0) - , rotationOwner(0) - , deformationOwner(0) - , animationOwner(0) - , v8Datum(0) + , colorOwner(nullptr) + , rotationOwner(nullptr) + , deformationOwner(nullptr) + , animationOwner(nullptr) + , v8Datum(nullptr) { x = 0; y = 0; @@ -455,7 +455,7 @@ QQuickParticleData::QQuickParticleData() color.b = 255; color.a = 255; r = 0; - delegate = 0; + delegate = nullptr; modelIndex = -1; } @@ -477,7 +477,7 @@ QQuickParticleData &QQuickParticleData::operator=(const QQuickParticleData &othe index = other.index; systemIndex = other.systemIndex; // Lazily initialized - v8Datum = 0; + v8Datum = nullptr; return *this; } @@ -526,7 +526,7 @@ void QQuickParticleData::clone(const QQuickParticleData& other) QQmlV4Handle QQuickParticleData::v4Value(QQuickParticleSystem* particleSystem) { if (!v8Datum) - v8Datum = new QQuickV4ParticleData(QQmlEnginePrivate::getV8Engine(qmlEngine(particleSystem)), this, particleSystem); + v8Datum = new QQuickV4ParticleData(qmlEngine(particleSystem)->handle(), this, particleSystem); return v8Datum->v4Value(); } @@ -564,9 +564,9 @@ void QQuickParticleData::extendLife(float time, QQuickParticleSystem* particleSy QQuickParticleSystem::QQuickParticleSystem(QQuickItem *parent) : QQuickItem(parent), - stateEngine(0), + stateEngine(nullptr), nextFreeGroupId(0), - m_animation(0), + m_animation(nullptr), m_running(true), initialized(0), particleCount(0), @@ -768,9 +768,9 @@ void QQuickParticleSystem::reset() timeInt = 0; //Clear guarded pointers which have been deleted int cleared = 0; - cleared += m_emitters.removeAll(0); - cleared += m_painters.removeAll(0); - cleared += m_affectors.removeAll(0); + cleared += m_emitters.removeAll(nullptr); + cleared += m_painters.removeAll(nullptr); + cleared += m_affectors.removeAll(nullptr); bySysIdx.resize(0); initGroups();//Also clears all logical particles @@ -945,7 +945,7 @@ void QQuickParticleSystem::createEngine() } else { if (stateEngine) delete stateEngine; - stateEngine = 0; + stateEngine = nullptr; } } @@ -993,7 +993,7 @@ QQuickParticleData* QQuickParticleSystem::newDatum(int groupId, bool respectLimi QQuickParticleData* ret = groupData[groupId]->newDatum(respectLimits); if (!ret) { - return 0; + return nullptr; } if (sysIndex == -1) { if (ret->systemIndex == -1) @@ -1056,9 +1056,9 @@ void QQuickParticleSystem::updateCurrentTime( int currentTime ) dt = time - dt; needsReset.clear(); - m_emitters.removeAll(0); - m_painters.removeAll(0); - m_affectors.removeAll(0); + m_emitters.removeAll(nullptr); + m_painters.removeAll(nullptr); + m_affectors.removeAll(nullptr); bool oldClear = m_empty; m_empty = true; diff --git a/src/particles/qquickparticlesystem_p.h b/src/particles/qquickparticlesystem_p.h index 92dca40419..73351fb99a 100644 --- a/src/particles/qquickparticlesystem_p.h +++ b/src/particles/qquickparticlesystem_p.h @@ -137,10 +137,7 @@ class Q_QUICKPARTICLES_PRIVATE_EXPORT QQuickParticleGroupData { class FreeList { public: - FreeList() - : firstUnused(UINT_MAX) - , allocated(0) - {} + FreeList() {} void resize(int newSize) { @@ -189,8 +186,8 @@ class Q_QUICKPARTICLES_PRIVATE_EXPORT QQuickParticleGroupData { private: QV4::BitVector isUnused; - unsigned firstUnused; - int allocated; + unsigned firstUnused = UINT_MAX; + int allocated = 0; }; public: // types @@ -353,7 +350,7 @@ class Q_QUICKPARTICLES_PRIVATE_EXPORT QQuickParticleSystem : public QQuickItem Q_PROPERTY(bool empty READ isEmpty NOTIFY emptyChanged) public: - explicit QQuickParticleSystem(QQuickItem *parent = 0); + explicit QQuickParticleSystem(QQuickItem *parent = nullptr); ~QQuickParticleSystem(); bool isRunning() const diff --git a/src/particles/qquickpointdirection.cpp b/src/particles/qquickpointdirection.cpp index 7b5c9bada1..f22eea2a76 100644 --- a/src/particles/qquickpointdirection.cpp +++ b/src/particles/qquickpointdirection.cpp @@ -78,8 +78,8 @@ QQuickPointDirection::QQuickPointDirection(QObject *parent) : QPointF QQuickPointDirection::sample(const QPointF &) { QPointF ret; - ret.setX(m_x - m_xVariation + QRandomGenerator::getReal() * m_xVariation * 2); - ret.setY(m_y - m_yVariation + QRandomGenerator::getReal() * m_yVariation * 2); + ret.setX(m_x - m_xVariation + QRandomGenerator::global()->generateDouble() * m_xVariation * 2); + ret.setY(m_y - m_yVariation + QRandomGenerator::global()->generateDouble() * m_yVariation * 2); return ret; } diff --git a/src/particles/qquickrectangleextruder.cpp b/src/particles/qquickrectangleextruder.cpp index 6474f61630..36e4871d29 100644 --- a/src/particles/qquickrectangleextruder.cpp +++ b/src/particles/qquickrectangleextruder.cpp @@ -60,21 +60,21 @@ QQuickRectangleExtruder::QQuickRectangleExtruder(QObject *parent) : QPointF QQuickRectangleExtruder::extrude(const QRectF &rect) { if (m_fill) - return QPointF(QRandomGenerator::getReal() * rect.width() + rect.x(), - QRandomGenerator::getReal() * rect.height() + rect.y()); - int side = QRandomGenerator::bounded(4); + return QPointF(QRandomGenerator::global()->generateDouble() * rect.width() + rect.x(), + QRandomGenerator::global()->generateDouble() * rect.height() + rect.y()); + int side = QRandomGenerator::global()->bounded(4); switch (side){//TODO: Doesn't this overlap the corners? case 0: return QPointF(rect.x(), - QRandomGenerator::getReal() * rect.height() + rect.y()); + QRandomGenerator::global()->generateDouble() * rect.height() + rect.y()); case 1: return QPointF(rect.width() + rect.x(), - QRandomGenerator::getReal() * rect.height() + rect.y()); + QRandomGenerator::global()->generateDouble() * rect.height() + rect.y()); case 2: - return QPointF(QRandomGenerator::getReal() * rect.width() + rect.x(), + return QPointF(QRandomGenerator::global()->generateDouble() * rect.width() + rect.x(), rect.y()); default: - return QPointF(QRandomGenerator::getReal() * rect.width() + rect.x(), + return QPointF(QRandomGenerator::global()->generateDouble() * rect.width() + rect.x(), rect.height() + rect.y()); } } diff --git a/src/particles/qquickspritegoal.cpp b/src/particles/qquickspritegoal.cpp index 2e420a2840..75d6f8bdf6 100644 --- a/src/particles/qquickspritegoal.cpp +++ b/src/particles/qquickspritegoal.cpp @@ -82,7 +82,7 @@ QT_BEGIN_NAMESPACE QQuickSpriteGoalAffector::QQuickSpriteGoalAffector(QQuickItem *parent) : QQuickParticleAffector(parent), m_goalIdx(-1), - m_lastEngine(0), + m_lastEngine(nullptr), m_jump(false), m_systemStates(false), m_notUsingEngine(false) @@ -121,7 +121,7 @@ void QQuickSpriteGoalAffector::setGoalState(const QString &arg) bool QQuickSpriteGoalAffector::affectParticle(QQuickParticleData *d, qreal dt) { Q_UNUSED(dt); - QQuickStochasticEngine *engine = 0; + QQuickStochasticEngine *engine = nullptr; if (!m_systemStates){ //TODO: Affect all engines foreach (QQuickParticlePainter *p, m_system->groupData[d->groupId]->painters) diff --git a/src/particles/qquicktargetdirection.cpp b/src/particles/qquicktargetdirection.cpp index 96b78a53b4..5d84f9dc2b 100644 --- a/src/particles/qquicktargetdirection.cpp +++ b/src/particles/qquicktargetdirection.cpp @@ -91,7 +91,7 @@ QQuickTargetDirection::QQuickTargetDirection(QObject *parent) : , m_proportionalMagnitude(false) , m_magnitude(0) , m_magnitudeVariation(0) - , m_targetItem(0) + , m_targetItem(nullptr) { } @@ -118,10 +118,10 @@ QPointF QQuickTargetDirection::sample(const QPointF &from) targetX = m_targetX; targetY = m_targetY; } - targetX += 0 - from.x() - m_targetVariation + QRandomGenerator::getReal() * m_targetVariation*2; - targetY += 0 - from.y() - m_targetVariation + QRandomGenerator::getReal() * m_targetVariation*2; + targetX += 0 - from.x() - m_targetVariation + QRandomGenerator::global()->generateDouble() * m_targetVariation*2; + targetY += 0 - from.y() - m_targetVariation + QRandomGenerator::global()->generateDouble() * m_targetVariation*2; qreal theta = std::atan2(targetY, targetX); - qreal mag = m_magnitude + QRandomGenerator::getReal() * m_magnitudeVariation * 2 - m_magnitudeVariation; + qreal mag = m_magnitude + QRandomGenerator::global()->generateDouble() * m_magnitudeVariation * 2 - m_magnitudeVariation; if (m_proportionalMagnitude) mag *= std::sqrt(targetX * targetX + targetY * targetY); ret.setX(mag * std::cos(theta)); diff --git a/src/particles/qquicktrailemitter.cpp b/src/particles/qquicktrailemitter.cpp index 14075f6b23..fde5eab617 100644 --- a/src/particles/qquicktrailemitter.cpp +++ b/src/particles/qquicktrailemitter.cpp @@ -62,7 +62,7 @@ QQuickTrailEmitter::QQuickTrailEmitter(QQuickItem *parent) : , m_emitterXVariation(0) , m_emitterYVariation(0) , m_followCount(0) - , m_emissionExtruder(0) + , m_emissionExtruder(nullptr) , m_defaultEmissionExtruder(new QQuickParticleExtruder(this)) { //TODO: If followed increased their size @@ -150,7 +150,7 @@ void QQuickTrailEmitter::reset() void QQuickTrailEmitter::emitWindow(int timeStamp) { - if (m_system == 0) + if (m_system == nullptr) return; if (!m_enabled && !m_pulseLeft && m_burstQueue.isEmpty()) return; @@ -208,7 +208,7 @@ void QQuickTrailEmitter::emitWindow(int timeStamp) datum->t = pt; datum->lifeSpan = (m_particleDuration - + (QRandomGenerator::bounded((m_particleDurationVariation*2) + 1) - m_particleDurationVariation)) + + (QRandomGenerator::global()->bounded((m_particleDurationVariation*2) + 1) - m_particleDurationVariation)) / 1000.0; // Particle position @@ -241,7 +241,7 @@ void QQuickTrailEmitter::emitWindow(int timeStamp) // Particle size float sizeVariation = -m_particleSizeVariation - + QRandomGenerator::getReal() * m_particleSizeVariation * 2; + + QRandomGenerator::global()->generateDouble() * m_particleSizeVariation * 2; float size = qMax((qreal)0.0, m_particleSize + sizeVariation); float endSize = qMax((qreal)0.0, sizeAtEnd + sizeVariation); @@ -267,7 +267,7 @@ void QQuickTrailEmitter::emitWindow(int timeStamp) if (isEmitConnected() || isEmitFollowConnected()) { QQmlEngine *qmlEngine = ::qmlEngine(this); - QV4::ExecutionEngine *v4 = QV8Engine::getV4(qmlEngine->handle()); + QV4::ExecutionEngine *v4 = qmlEngine->handle(); QV4::Scope scope(v4); QV4::ScopedArrayObject array(scope, v4->newArrayObject(toEmit.size())); diff --git a/src/particles/qquickturbulence.cpp b/src/particles/qquickturbulence.cpp index f916635358..dc72d884bc 100644 --- a/src/particles/qquickturbulence.cpp +++ b/src/particles/qquickturbulence.cpp @@ -81,7 +81,7 @@ QT_BEGIN_NAMESPACE QQuickTurbulenceAffector::QQuickTurbulenceAffector(QQuickItem *parent) : QQuickParticleAffector(parent), - m_strength(10), m_lastT(0), m_gridSize(0), m_field(0), m_vectorField(0), m_inited(false) + m_strength(10), m_lastT(0), m_gridSize(0), m_field(nullptr), m_vectorField(nullptr), m_inited(false) { } diff --git a/src/particles/qquickv4particledata.cpp b/src/particles/qquickv4particledata.cpp index acb37f25bf..c3d1978a2c 100644 --- a/src/particles/qquickv4particledata.cpp +++ b/src/particles/qquickv4particledata.cpp @@ -294,15 +294,15 @@ class QV4ParticleDataDeletable : public QV8Engine::Deletable { public: QV4ParticleDataDeletable(QV4::ExecutionEngine *engine); - ~QV4ParticleDataDeletable(); + ~QV4ParticleDataDeletable() override; QV4::PersistentValue proto; }; -static QV4::ReturnedValue particleData_discard(const QV4::BuiltinFunction *b, QV4::CallData *callData) +static QV4::ReturnedValue particleData_discard(const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *, int) { QV4::Scope scope(b); - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); if (!r || !r->d()->datum) RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object"))); @@ -311,10 +311,10 @@ static QV4::ReturnedValue particleData_discard(const QV4::BuiltinFunction *b, QV RETURN_RESULT(QV4::Encode::undefined()); } -static QV4::ReturnedValue particleData_lifeLeft(const QV4::BuiltinFunction *b, QV4::CallData *callData) +static QV4::ReturnedValue particleData_lifeLeft(const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *, int) { QV4::Scope scope(b); - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); if (!r || !r->d()->datum) RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object"))); @@ -322,99 +322,99 @@ static QV4::ReturnedValue particleData_lifeLeft(const QV4::BuiltinFunction *b, Q RETURN_RESULT(QV4::Encode(r->d()->datum->lifeLeft(r->d()->particleSystem))); } -static QV4::ReturnedValue particleData_curSize(const QV4::BuiltinFunction *b, QV4::CallData *callData) +static QV4::ReturnedValue particleData_curSize(const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *, int) { QV4::Scope scope(b); - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); if (!r || !r->d()->datum) RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object"))); RETURN_RESULT(QV4::Encode(r->d()->datum->curSize(r->d()->particleSystem))); } -#define COLOR_GETTER_AND_SETTER(VAR, NAME) static QV4::ReturnedValue particleData_get_ ## NAME (const QV4::BuiltinFunction *b, QV4::CallData *callData) \ +#define COLOR_GETTER_AND_SETTER(VAR, NAME) static QV4::ReturnedValue particleData_get_ ## NAME (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *, int) \ { \ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum) \ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object"))); \ \ RETURN_RESULT(QV4::Encode((r->d()->datum->color. VAR )/255.0));\ }\ \ -static QV4::ReturnedValue particleData_set_ ## NAME (const QV4::BuiltinFunction *b, QV4::CallData *callData)\ +static QV4::ReturnedValue particleData_set_ ## NAME (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *argv, int argc)\ {\ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - double d = callData->argc() ? callData->args[0].toNumber() : 0; \ + double d = argc ? argv[0].toNumber() : 0; \ r->d()->datum->color. VAR = qMin(255, qMax(0, (int)::floor(d * 255.0)));\ RETURN_UNDEFINED(); \ } -#define SEMIBOOL_GETTER_AND_SETTER(VARIABLE) static QV4::ReturnedValue particleData_get_ ## VARIABLE (const QV4::BuiltinFunction *b, QV4::CallData *callData) \ +#define SEMIBOOL_GETTER_AND_SETTER(VARIABLE) static QV4::ReturnedValue particleData_get_ ## VARIABLE (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *, int) \ { \ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum) \ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object"))); \ \ RETURN_RESULT(QV4::Encode(r->d()->datum-> VARIABLE));\ }\ \ -static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::BuiltinFunction *b, QV4::CallData *callData)\ +static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *argv, int argc)\ {\ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - r->d()->datum-> VARIABLE = (callData->argc() && callData->args[0].toBoolean()) ? 1.0 : 0.0;\ + r->d()->datum-> VARIABLE = (argc && argv[0].toBoolean()) ? 1.0 : 0.0;\ RETURN_UNDEFINED(); \ } -#define FLOAT_GETTER_AND_SETTER(VARIABLE) static QV4::ReturnedValue particleData_get_ ## VARIABLE (const QV4::BuiltinFunction *b, QV4::CallData *callData) \ +#define FLOAT_GETTER_AND_SETTER(VARIABLE) static QV4::ReturnedValue particleData_get_ ## VARIABLE (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *, int) \ { \ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum) \ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object"))); \ \ RETURN_RESULT(QV4::Encode(r->d()->datum-> VARIABLE));\ }\ \ -static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::BuiltinFunction *b, QV4::CallData *callData)\ +static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *argv, int argc)\ {\ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - r->d()->datum-> VARIABLE = callData->argc() ? callData->args[0].toNumber() : qt_qnan();\ + r->d()->datum-> VARIABLE = argc ? argv[0].toNumber() : qt_qnan();\ RETURN_UNDEFINED(); \ } -#define FAKE_FLOAT_GETTER_AND_SETTER(VARIABLE, GETTER, SETTER) static QV4::ReturnedValue particleData_get_ ## VARIABLE (const QV4::BuiltinFunction *b, QV4::CallData *callData) \ +#define FAKE_FLOAT_GETTER_AND_SETTER(VARIABLE, GETTER, SETTER) static QV4::ReturnedValue particleData_get_ ## VARIABLE (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *, int) \ { \ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum) \ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object"))); \ \ RETURN_RESULT(QV4::Encode(r->d()->datum-> GETTER (r->d()->particleSystem)));\ }\ \ -static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::BuiltinFunction *b, QV4::CallData *callData)\ +static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::FunctionObject *b, const QV4::Value *thisObject, const QV4::Value *argv, int argc)\ {\ QV4::Scope scope(b); \ - QV4::Scoped<QV4ParticleData> r(scope, callData->thisObject); \ + QV4::Scoped<QV4ParticleData> r(scope, *thisObject); \ if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - r->d()->datum-> SETTER (callData->argc() ? callData->args[0].toNumber() : qt_qnan(), r->d()->particleSystem);\ + r->d()->datum-> SETTER (argc ? argv[0].toNumber() : qt_qnan(), r->d()->particleSystem);\ RETURN_UNDEFINED(); \ } @@ -510,12 +510,12 @@ QV4ParticleDataDeletable::~QV4ParticleDataDeletable() V4_DEFINE_EXTENSION(QV4ParticleDataDeletable, particleV4Data); -QQuickV4ParticleData::QQuickV4ParticleData(QV8Engine* engine, QQuickParticleData* datum, QQuickParticleSystem *system) +QQuickV4ParticleData::QQuickV4ParticleData(QV4::ExecutionEngine* v4, QQuickParticleData* datum, + QQuickParticleSystem *system) { - if (!engine || !datum) + if (!v4 || !datum) return; - QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine); QV4::Scope scope(v4); QV4ParticleDataDeletable *d = particleV4Data(scope.engine); QV4::ScopedObject o(scope, v4->memoryManager->allocObject<QV4ParticleData>(datum, system)); diff --git a/src/particles/qquickv4particledata_p.h b/src/particles/qquickv4particledata_p.h index d73e3b644d..3d682ab297 100644 --- a/src/particles/qquickv4particledata_p.h +++ b/src/particles/qquickv4particledata_p.h @@ -61,7 +61,7 @@ class QQuickParticleData; class QQuickParticleSystem; class QQuickV4ParticleData { public: - QQuickV4ParticleData(QV8Engine*, QQuickParticleData*, QQuickParticleSystem *system); + QQuickV4ParticleData(QV4::ExecutionEngine*, QQuickParticleData*, QQuickParticleSystem *system); ~QQuickV4ParticleData(); QQmlV4Handle v4Value() const; private: diff --git a/src/particles/qquickwander.cpp b/src/particles/qquickwander.cpp index cfdede440b..a78482ec84 100644 --- a/src/particles/qquickwander.cpp +++ b/src/particles/qquickwander.cpp @@ -103,8 +103,8 @@ WanderData* QQuickWanderAffector::getData(int idx) d->y_vel = 0; d->x_peak = m_xVariance; d->y_peak = m_yVariance; - d->x_var = m_pace * QRandomGenerator::getReal(); - d->y_var = m_pace * QRandomGenerator::getReal(); + d->x_var = m_pace * QRandomGenerator::global()->generateDouble(); + d->y_var = m_pace * QRandomGenerator::global()->generateDouble(); m_wanderData.insert(idx, d); return d; @@ -125,7 +125,7 @@ bool QQuickWanderAffector::affectParticle(QQuickParticleData* data, qreal dt) if (m_xVariance != 0.) { if ((d->x_vel > d->x_peak && d->x_var > 0.0) || (d->x_vel < -d->x_peak && d->x_var < 0.0)) { d->x_var = -d->x_var; - d->x_peak = m_xVariance + m_xVariance * QRandomGenerator::getReal(); + d->x_peak = m_xVariance + m_xVariance * QRandomGenerator::global()->generateDouble(); } d->x_vel += d->x_var * dt; } @@ -134,7 +134,7 @@ bool QQuickWanderAffector::affectParticle(QQuickParticleData* data, qreal dt) if (m_yVariance != 0.) { if ((d->y_vel > d->y_peak && d->y_var > 0.0) || (d->y_vel < -d->y_peak && d->y_var < 0.0)) { d->y_var = -d->y_var; - d->y_peak = m_yVariance + m_yVariance * QRandomGenerator::getReal(); + d->y_peak = m_yVariance + m_yVariance * QRandomGenerator::global()->generateDouble(); } d->y_vel += d->y_var * dt; } @@ -147,8 +147,8 @@ bool QQuickWanderAffector::affectParticle(QQuickParticleData* data, qreal dt) p->y += dy; return true; */ - qreal dx = dt * m_pace * (2 * QRandomGenerator::getReal() - 1); - qreal dy = dt * m_pace * (2 * QRandomGenerator::getReal() - 1); + qreal dx = dt * m_pace * (2 * QRandomGenerator::global()->generateDouble() - 1); + qreal dy = dt * m_pace * (2 * QRandomGenerator::global()->generateDouble() - 1); qreal newX, newY; switch (m_affectedParameter){ case Position: |