MTS_NAMESPACE_BEGIN RenderJob::RenderJob(const std::string &threadName, Scene *scene, RenderQueue *queue, int sceneResID, int sensorResID, int samplerResID, bool threadIsCritical, bool interactive) : Thread(threadName), m_scene(scene), m_queue(queue), m_interactive(interactive) { /* Optional: bring the process down when this thread crashes */ setCritical(threadIsCritical); m_queue->addJob(this); ref<Scheduler> sched = Scheduler::getInstance(); ref<Sensor> sensor = m_scene->getSensor(); ref<Sampler> sampler = m_scene->getSampler(); /* Register the scene with the scheduler if needed */ if (sceneResID == -1) { m_sceneResID = sched->registerResource(m_scene); m_ownsSceneResource = true; } else { m_sceneResID = sceneResID; m_ownsSceneResource = false; } /* Register the sensor with the scheduler if needed */ if (sensorResID == -1) { m_sensorResID = sched->registerResource(sensor); m_ownsSensorResource = true; } else { m_sensorResID = sensorResID; m_ownsSensorResource = false; } /* Register the sampler with the scheduler if needed */ if (samplerResID == -1) { /* Create a sampler instance for every core */ std::vector<SerializableObject *> samplers(sched->getCoreCount()); for (size_t i=0; i<sched->getCoreCount(); ++i) { ref<Sampler> clonedSampler = sampler->clone(); clonedSampler->incRef(); samplers[i] = clonedSampler.get(); } m_samplerResID = sched->registerMultiResource(samplers); for (size_t i=0; i<sched->getCoreCount(); ++i) samplers[i]->decRef(); m_ownsSamplerResource = true; } else { m_samplerResID = samplerResID; m_ownsSamplerResource = false; } m_cancelled = false; }
int AbstractMeter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = WidgetWithBackground::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: valueChanged((*reinterpret_cast< double(*)>(_a[1]))); break; case 2: setValue((*reinterpret_cast< int(*)>(_a[1]))); break; case 3: setValue((*reinterpret_cast< double(*)>(_a[1]))); break; default: ; } _id -= 4; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< double*>(_v) = minimum(); break; case 1: *reinterpret_cast< double*>(_v) = maximum(); break; case 2: *reinterpret_cast< double*>(_v) = value(); break; case 3: *reinterpret_cast< double*>(_v) = nominal(); break; case 4: *reinterpret_cast< double*>(_v) = critical(); break; case 5: *reinterpret_cast< QString*>(_v) = prefix(); break; case 6: *reinterpret_cast< QString*>(_v) = suffix(); break; case 7: *reinterpret_cast< QFont*>(_v) = valueFont(); break; case 8: *reinterpret_cast< double*>(_v) = valueOffset(); break; case 9: *reinterpret_cast< QFont*>(_v) = digitFont(); break; case 10: *reinterpret_cast< double*>(_v) = digitOffset(); break; } _id -= 11; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setMinimum(*reinterpret_cast< double*>(_v)); break; case 1: setMaximum(*reinterpret_cast< double*>(_v)); break; case 2: setValue(*reinterpret_cast< double*>(_v)); break; case 3: setNominal(*reinterpret_cast< double*>(_v)); break; case 4: setCritical(*reinterpret_cast< double*>(_v)); break; case 5: setPrefix(*reinterpret_cast< QString*>(_v)); break; case 6: setSuffix(*reinterpret_cast< QString*>(_v)); break; case 7: setValueFont(*reinterpret_cast< QFont*>(_v)); break; case 8: setValueOffset(*reinterpret_cast< double*>(_v)); break; case 9: setDigitFont(*reinterpret_cast< QFont*>(_v)); break; case 10: setDigitOffset(*reinterpret_cast< double*>(_v)); break; } _id -= 11; } else if (_c == QMetaObject::ResetProperty) { _id -= 11; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 11; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 11; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 11; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 11; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 11; } #endif // QT_NO_PROPERTIES return _id; }