diff options
Diffstat (limited to 'src/particles/qquickparticleemitter.cpp')
-rw-r--r-- | src/particles/qquickparticleemitter.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/particles/qquickparticleemitter.cpp b/src/particles/qquickparticleemitter.cpp index 6d9b945def..6627291c55 100644 --- a/src/particles/qquickparticleemitter.cpp +++ b/src/particles/qquickparticleemitter.cpp @@ -256,7 +256,7 @@ QQuickParticleEmitter::~QQuickParticleEmitter() bool QQuickParticleEmitter::isEmitConnected() { - IS_SIGNAL_CONNECTED(this, QQuickParticleEmitter, emitParticles, (QQmlV8Handle)); + IS_SIGNAL_CONNECTED(this, QQuickParticleEmitter, emitParticles, (QQmlV4Handle)); } void QQuickParticleEmitter::componentComplete() @@ -479,15 +479,16 @@ void QQuickParticleEmitter::emitWindow(int timeStamp) m_system->emitParticle(d); if (isEmitConnected()) { + QQmlEngine *qmlEngine = ::qmlEngine(this); + QV4::ExecutionEngine *v4 = QV8Engine::getV4(qmlEngine->handle()); + //Done after emitParticle so that the Painter::load is done first, this allows you to customize its static variables //We then don't need to request another reload, because the first reload isn't scheduled until we get back to the render thread - v8::HandleScope handle_scope; - v8::Context::Scope scope(QQmlEnginePrivate::getV8Engine(qmlEngine(this))->context()); - v8::Handle<v8::Array> array = v8::Array::New(toEmit.size()); + QV4::ArrayObject *array = v4->newArrayObject(toEmit.size()); for (int i=0; i<toEmit.size(); i++) - array->Set(i, toEmit[i]->v8Value().toHandle()); + array->putIndexed(i, toEmit[i]->v4Value().toValue()); - emitParticles(QQmlV8Handle::fromHandle(array));//A chance for arbitrary JS changes + emitParticles(QQmlV4Handle(QV4::Value::fromObject(array)));//A chance for arbitrary JS changes } m_last_emission = pt; |