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; }
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()); }