QV8ParticleDataDeletable::QV8ParticleDataDeletable(QV8Engine *engine)
{
    QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
    QV4::Scope scope(v4);
    QV4::Scoped<QV4::Object> p(scope, v4->newObject());

    p->defineDefaultProperty(QStringLiteral("discard"), particleData_discard);
    p->defineDefaultProperty(QStringLiteral("lifeLeft"), particleData_lifeLeft);
    p->defineDefaultProperty(QStringLiteral("currentSize"), particleData_curSize);

    REGISTER_ACCESSOR(p, v4, x, initialX);
    REGISTER_ACCESSOR(p, v4, y, initialY);
    REGISTER_ACCESSOR(p, v4, t, t);
    REGISTER_ACCESSOR(p, v4, lifeSpan, lifeSpan);
    REGISTER_ACCESSOR(p, v4, size, startSize);
    REGISTER_ACCESSOR(p, v4, endSize, endSize);
    REGISTER_ACCESSOR(p, v4, vx, initialVX);
    REGISTER_ACCESSOR(p, v4, vy, initialVY);
    REGISTER_ACCESSOR(p, v4, ax, initialAX);
    REGISTER_ACCESSOR(p, v4, ay, initialAY);
    REGISTER_ACCESSOR(p, v4, xx, xDeformationVectorX);
    REGISTER_ACCESSOR(p, v4, xy, xDeformationVectorY);
    REGISTER_ACCESSOR(p, v4, yx, yDeformationVectorX);
    REGISTER_ACCESSOR(p, v4, yy, yDeformationVectorY);
    REGISTER_ACCESSOR(p, v4, rotation, rotation);
    REGISTER_ACCESSOR(p, v4, rotationVelocity, rotationVelocity);
    REGISTER_ACCESSOR(p, v4, autoRotate, autoRotate);
    REGISTER_ACCESSOR(p, v4, animIdx, animationIndex);
    REGISTER_ACCESSOR(p, v4, frameDuration, frameDuration);
    REGISTER_ACCESSOR(p, v4, frameAt, frameAt);
    REGISTER_ACCESSOR(p, v4, frameCount, frameCount);
    REGISTER_ACCESSOR(p, v4, animT, animationT);
    REGISTER_ACCESSOR(p, v4, r, r);
    REGISTER_ACCESSOR(p, v4, update, update);
    REGISTER_ACCESSOR(p, v4, curX, x);
    REGISTER_ACCESSOR(p, v4, curVX, vx);
    REGISTER_ACCESSOR(p, v4, curAX, ax);
    REGISTER_ACCESSOR(p, v4, curY, y);
    REGISTER_ACCESSOR(p, v4, curVY, vy);
    REGISTER_ACCESSOR(p, v4, curAY, ay);
    REGISTER_ACCESSOR(p, v4, red, red);
    REGISTER_ACCESSOR(p, v4, green, green);
    REGISTER_ACCESSOR(p, v4, blue, blue);
    REGISTER_ACCESSOR(p, v4, alpha, alpha);

    proto = p;
}
Example #2
0
QV8ParticleDataDeletable::QV8ParticleDataDeletable(QV8Engine *engine)
{
    v8::HandleScope handle_scope;
    v8::Context::Scope scope(engine->context());

    v8::Local<v8::FunctionTemplate> ft = v8::FunctionTemplate::New();
    ft->InstanceTemplate()->SetHasExternalResource(true);
    ft->PrototypeTemplate()->Set(v8::String::New("discard"), V8FUNCTION(particleData_discard, engine));
    ft->PrototypeTemplate()->Set(v8::String::New("lifeLeft"), V8FUNCTION(particleData_lifeLeft, engine));
    ft->PrototypeTemplate()->Set(v8::String::New("currentSize"), V8FUNCTION(particleData_curSize, engine));
    REGISTER_ACCESSOR(ft, engine, x, initialX);
    REGISTER_ACCESSOR(ft, engine, y, initialY);
    REGISTER_ACCESSOR(ft, engine, t, t);
    REGISTER_ACCESSOR(ft, engine, lifeSpan, lifeSpan);
    REGISTER_ACCESSOR(ft, engine, size, startSize);
    REGISTER_ACCESSOR(ft, engine, endSize, endSize);
    REGISTER_ACCESSOR(ft, engine, vx, initialVX);
    REGISTER_ACCESSOR(ft, engine, vy, initialVY);
    REGISTER_ACCESSOR(ft, engine, ax, initialAX);
    REGISTER_ACCESSOR(ft, engine, ay, initialAY);
    REGISTER_ACCESSOR(ft, engine, xx, xDeformationVectorX);
    REGISTER_ACCESSOR(ft, engine, xy, xDeformationVectorY);
    REGISTER_ACCESSOR(ft, engine, yx, yDeformationVectorX);
    REGISTER_ACCESSOR(ft, engine, yy, yDeformationVectorY);
    REGISTER_ACCESSOR(ft, engine, rotation, rotation);
    REGISTER_ACCESSOR(ft, engine, rotationVelocity, rotationVelocity);
    REGISTER_ACCESSOR(ft, engine, autoRotate, autoRotate);
    REGISTER_ACCESSOR(ft, engine, animIdx, animationIndex);
    REGISTER_ACCESSOR(ft, engine, frameDuration, frameDuration);
    REGISTER_ACCESSOR(ft, engine, frameAt, frameAt);
    REGISTER_ACCESSOR(ft, engine, frameCount, frameCount);
    REGISTER_ACCESSOR(ft, engine, animT, animationT);
    REGISTER_ACCESSOR(ft, engine, r, r);
    REGISTER_ACCESSOR(ft, engine, update, update);
    REGISTER_ACCESSOR(ft, engine, curX, x);
    REGISTER_ACCESSOR(ft, engine, curVX, vx);
    REGISTER_ACCESSOR(ft, engine, curAX, ax);
    REGISTER_ACCESSOR(ft, engine, curY, y);
    REGISTER_ACCESSOR(ft, engine, curVY, vy);
    REGISTER_ACCESSOR(ft, engine, curAY, ay);
    REGISTER_ACCESSOR(ft, engine, red, red);
    REGISTER_ACCESSOR(ft, engine, green, green);
    REGISTER_ACCESSOR(ft, engine, blue, blue);
    REGISTER_ACCESSOR(ft, engine, alpha, alpha);

    constructor = qPersistentNew(ft->GetFunction());
}