diff options
Diffstat (limited to 'src/core')
27 files changed, 77 insertions, 23 deletions
diff --git a/src/core/aspects/aspectcommanddebugger.cpp b/src/core/aspects/aspectcommanddebugger.cpp index 7635f44c0..1e4d7bd54 100644 --- a/src/core/aspects/aspectcommanddebugger.cpp +++ b/src/core/aspects/aspectcommanddebugger.cpp @@ -204,3 +204,5 @@ void AspectCommandDebugger::executeCommand(const QString &command, } // Qt3DCore QT_END_NAMESPACE + +#include "moc_aspectcommanddebugger_p.cpp" diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp index 09f084767..57b97bb35 100644 --- a/src/core/aspects/qabstractaspect.cpp +++ b/src/core/aspects/qabstractaspect.cpp @@ -591,3 +591,7 @@ void AsynchronousCommandReply::setData(const QByteArray &data) } // of namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qabstractaspect_p.cpp" + +#include "moc_qabstractaspect.cpp" diff --git a/src/core/aspects/qaspectengine.cpp b/src/core/aspects/qaspectengine.cpp index f91286914..e3411b515 100644 --- a/src/core/aspects/qaspectengine.cpp +++ b/src/core/aspects/qaspectengine.cpp @@ -522,3 +522,5 @@ QAspectEngine::RunMode QAspectEngine::runMode() const } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qaspectengine.cpp" diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp index 66475c615..d125e8e2a 100644 --- a/src/core/aspects/qaspectmanager.cpp +++ b/src/core/aspects/qaspectmanager.cpp @@ -554,3 +554,5 @@ void QAspectManager::processFrame() } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qaspectmanager_p.cpp" diff --git a/src/core/jobs/qabstractaspectjobmanager.cpp b/src/core/jobs/qabstractaspectjobmanager.cpp index 5d921c778..c790cf47b 100644 --- a/src/core/jobs/qabstractaspectjobmanager.cpp +++ b/src/core/jobs/qabstractaspectjobmanager.cpp @@ -57,3 +57,5 @@ QAbstractAspectJobManager::QAbstractAspectJobManager(QObject *parent) } QT_END_NAMESPACE + +#include "moc_qabstractaspectjobmanager_p.cpp" diff --git a/src/core/jobs/qaspectjobmanager.cpp b/src/core/jobs/qaspectjobmanager.cpp index 7103f5100..0afa39502 100644 --- a/src/core/jobs/qaspectjobmanager.cpp +++ b/src/core/jobs/qaspectjobmanager.cpp @@ -115,7 +115,7 @@ int QAspectJobManager::waitForAllJobs() void QAspectJobManager::waitForPerThreadFunction(JobFunction func, void *arg) { - const int threadCount = m_threadPooler->maxThreadCount(); + const int threadCount = QAspectJobManager::idealThreadCount(); QAtomicInt atomicCount(threadCount); QVector<RunnableInterface *> taskList; @@ -128,6 +128,28 @@ void QAspectJobManager::waitForPerThreadFunction(JobFunction func, void *arg) future.waitForFinished(); } +int QAspectJobManager::idealThreadCount() +{ + static int jobCount = 0; + if (jobCount) + return jobCount; + + const QByteArray maxThreadCount = qgetenv("QT3D_MAX_THREAD_COUNT"); + if (!maxThreadCount.isEmpty()) { + bool conversionOK = false; + const int maxThreadCountValue = maxThreadCount.toInt(&conversionOK); + if (conversionOK) { + jobCount = maxThreadCountValue; + return jobCount; + } + } + + jobCount = QThread::idealThreadCount(); + return jobCount; +} + } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qaspectjobmanager_p.cpp" diff --git a/src/core/jobs/qaspectjobmanager_p.h b/src/core/jobs/qaspectjobmanager_p.h index db0075443..06dd5286b 100644 --- a/src/core/jobs/qaspectjobmanager_p.h +++ b/src/core/jobs/qaspectjobmanager_p.h @@ -79,6 +79,7 @@ public: int waitForAllJobs() override; void waitForPerThreadFunction(JobFunction func, void *arg) override; + static int idealThreadCount(); private: QThreadPooler *m_threadPooler; diff --git a/src/core/jobs/qthreadpooler.cpp b/src/core/jobs/qthreadpooler.cpp index 59c905f71..43de400b1 100644 --- a/src/core/jobs/qthreadpooler.cpp +++ b/src/core/jobs/qthreadpooler.cpp @@ -38,6 +38,7 @@ ****************************************************************************/ #include "qthreadpooler_p.h" +#include "qaspectjobmanager_p.h" #include <QtCore/QDebug> QT_BEGIN_NAMESPACE @@ -49,10 +50,10 @@ QThreadPooler::QThreadPooler(QObject *parent) , m_futureInterface(nullptr) , m_mutex() , m_taskCount(0) - , m_threadPool(QThreadPool::globalInstance()) + , m_threadPool(new QThreadPool(this)) , m_totalRunJobs(0) { - m_threadPool->setMaxThreadCount(QThreadPooler::maxThreadCount()); + m_threadPool->setMaxThreadCount(QAspectJobManager::idealThreadCount()); // Ensures that threads will never be recycled m_threadPool->setExpiryTimeout(-1); } @@ -199,24 +200,8 @@ int QThreadPooler::currentCount() const return m_taskCount.loadRelaxed(); } -int QThreadPooler::maxThreadCount() -{ - static int threadCount = 0; - - if (threadCount == 0) { - threadCount = QThread::idealThreadCount(); - const QByteArray maxThreadCount = qgetenv("QT3D_MAX_THREAD_COUNT"); - if (!maxThreadCount.isEmpty()) { - bool conversionOK = false; - const int maxThreadCountValue = maxThreadCount.toInt(&conversionOK); - if (conversionOK) - threadCount = std::min(threadCount, maxThreadCountValue); - } - } - - return threadCount; -} - } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qthreadpooler_p.cpp" diff --git a/src/core/jobs/qthreadpooler_p.h b/src/core/jobs/qthreadpooler_p.h index ea69b5b78..ee9e89925 100644 --- a/src/core/jobs/qthreadpooler_p.h +++ b/src/core/jobs/qthreadpooler_p.h @@ -77,8 +77,6 @@ public: void taskFinished(RunnableInterface *task); QFuture<void> future(); - static int maxThreadCount(); - private: void enqueueTasks(const QVector<RunnableInterface *> &tasks); void skipTask(RunnableInterface *task); diff --git a/src/core/nodes/propertychangehandler.cpp b/src/core/nodes/propertychangehandler.cpp index 0a1d59932..3d58b5f0f 100644 --- a/src/core/nodes/propertychangehandler.cpp +++ b/src/core/nodes/propertychangehandler.cpp @@ -84,3 +84,5 @@ void PropertyChangeHandlerBase::disconnectFromPropertyChange(const QObject *obje } QT_END_NAMESPACE + +#include "moc_propertychangehandler_p.cpp" diff --git a/src/core/nodes/qcomponent.cpp b/src/core/nodes/qcomponent.cpp index 79bba229d..03501cef2 100644 --- a/src/core/nodes/qcomponent.cpp +++ b/src/core/nodes/qcomponent.cpp @@ -190,3 +190,5 @@ QComponent::QComponent(QComponentPrivate &dd, QNode *parent) */ QT_END_NAMESPACE + +#include "moc_qcomponent.cpp" diff --git a/src/core/nodes/qentity.cpp b/src/core/nodes/qentity.cpp index 7d64d4e70..6b6883bfa 100644 --- a/src/core/nodes/qentity.cpp +++ b/src/core/nodes/qentity.cpp @@ -338,3 +338,5 @@ void QEntity::onParentChanged(QObject *) } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qentity.cpp" diff --git a/src/core/nodes/qnode.cpp b/src/core/nodes/qnode.cpp index 7ae29f222..73b5efcee 100644 --- a/src/core/nodes/qnode.cpp +++ b/src/core/nodes/qnode.cpp @@ -1219,4 +1219,6 @@ void NodePostConstructorInit::processNodes() QT_END_NAMESPACE +#include "moc_qnode_p.cpp" + #include "moc_qnode.cpp" diff --git a/src/core/qchangearbiter.cpp b/src/core/qchangearbiter.cpp index 3672777de..4e6a11a4f 100644 --- a/src/core/qchangearbiter.cpp +++ b/src/core/qchangearbiter.cpp @@ -354,3 +354,5 @@ void QChangeArbiter::destroyThreadLocalChangeQueue(void *changeArbiter) } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qchangearbiter_p.cpp" diff --git a/src/core/qscheduler.cpp b/src/core/qscheduler.cpp index cb4a6f180..d803b67b9 100644 --- a/src/core/qscheduler.cpp +++ b/src/core/qscheduler.cpp @@ -152,3 +152,5 @@ int QScheduler::scheduleAndWaitForFrameAspectJobs(qint64 time, bool dumpJobs) } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qscheduler_p.cpp" diff --git a/src/core/services/qabstractframeadvanceservice.cpp b/src/core/services/qabstractframeadvanceservice.cpp index 15bf46afa..fc4752c62 100644 --- a/src/core/services/qabstractframeadvanceservice.cpp +++ b/src/core/services/qabstractframeadvanceservice.cpp @@ -91,3 +91,5 @@ QAbstractFrameAdvanceService::QAbstractFrameAdvanceService(QAbstractFrameAdvance } // Qt3D QT_END_NAMESPACE + +#include "moc_qabstractframeadvanceservice_p.cpp" diff --git a/src/core/services/qdownloadnetworkworker.cpp b/src/core/services/qdownloadnetworkworker.cpp index e1f806e92..ffc44b2a6 100644 --- a/src/core/services/qdownloadnetworkworker.cpp +++ b/src/core/services/qdownloadnetworkworker.cpp @@ -146,3 +146,5 @@ void QDownloadNetworkWorker::onDownloadProgressed(qint64 bytesReceived, qint64 b QT_END_NAMESPACE +#include "moc_qdownloadnetworkworker_p.cpp" + diff --git a/src/core/services/qeventfilterservice.cpp b/src/core/services/qeventfilterservice.cpp index 036bcd7b4..513500f2b 100644 --- a/src/core/services/qeventfilterservice.cpp +++ b/src/core/services/qeventfilterservice.cpp @@ -187,4 +187,6 @@ bool InternalEventListener::eventFilter(QObject *obj, QEvent *e) QT_END_NAMESPACE +#include "moc_qeventfilterservice_p.cpp" + #include "qeventfilterservice.moc" diff --git a/src/core/services/qopenglinformationservice.cpp b/src/core/services/qopenglinformationservice.cpp index c1c05018e..76b4fa690 100644 --- a/src/core/services/qopenglinformationservice.cpp +++ b/src/core/services/qopenglinformationservice.cpp @@ -84,3 +84,5 @@ QOpenGLInformationService::QOpenGLInformationService(QOpenGLInformationServicePr } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qopenglinformationservice_p.cpp" diff --git a/src/core/services/qservicelocator.cpp b/src/core/services/qservicelocator.cpp index 73a40c2e4..2f8117bb4 100644 --- a/src/core/services/qservicelocator.cpp +++ b/src/core/services/qservicelocator.cpp @@ -267,3 +267,5 @@ QAbstractServiceProvider *QServiceLocator::_q_getServiceHelper(int type) } QT_END_NAMESPACE + +#include "moc_qservicelocator_p.cpp" diff --git a/src/core/services/qsysteminformationservice.cpp b/src/core/services/qsysteminformationservice.cpp index 87cc08e59..411f54346 100644 --- a/src/core/services/qsysteminformationservice.cpp +++ b/src/core/services/qsysteminformationservice.cpp @@ -436,3 +436,5 @@ void QSystemInformationService::dumpCommand(const QString &command) } QT_END_NAMESPACE + +#include "moc_qsysteminformationservice_p.cpp" diff --git a/src/core/services/qtickclockservice.cpp b/src/core/services/qtickclockservice.cpp index 225e70ec2..f3f67ab4c 100644 --- a/src/core/services/qtickclockservice.cpp +++ b/src/core/services/qtickclockservice.cpp @@ -98,3 +98,5 @@ void QTickClockService::stop() } // Qt3D QT_END_NAMESPACE + +#include "moc_qtickclockservice_p.cpp" diff --git a/src/core/transforms/qabstractskeleton.cpp b/src/core/transforms/qabstractskeleton.cpp index 4a30d0710..d0b66a5a1 100644 --- a/src/core/transforms/qabstractskeleton.cpp +++ b/src/core/transforms/qabstractskeleton.cpp @@ -137,3 +137,5 @@ void QAbstractSkeletonPrivate::setJointCount(int jointCount) } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qabstractskeleton.cpp" diff --git a/src/core/transforms/qarmature.cpp b/src/core/transforms/qarmature.cpp index d9fef7767..9827a329e 100644 --- a/src/core/transforms/qarmature.cpp +++ b/src/core/transforms/qarmature.cpp @@ -170,3 +170,5 @@ Qt3DCore::QNodeCreatedChangeBasePtr QArmature::createNodeCreationChange() const } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qarmature.cpp" diff --git a/src/core/transforms/qjoint.cpp b/src/core/transforms/qjoint.cpp index 408d42f6d..04d95b6e8 100644 --- a/src/core/transforms/qjoint.cpp +++ b/src/core/transforms/qjoint.cpp @@ -408,3 +408,5 @@ Qt3DCore::QNodeCreatedChangeBasePtr QJoint::createNodeCreationChange() const } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qjoint.cpp" diff --git a/src/core/transforms/qskeleton.cpp b/src/core/transforms/qskeleton.cpp index 141d8c0c4..b969f7a33 100644 --- a/src/core/transforms/qskeleton.cpp +++ b/src/core/transforms/qskeleton.cpp @@ -150,3 +150,5 @@ Qt3DCore::QNodeCreatedChangeBasePtr QSkeleton::createNodeCreationChange() const } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qskeleton.cpp" diff --git a/src/core/transforms/qskeletonloader.cpp b/src/core/transforms/qskeletonloader.cpp index b1a311a0c..9a78c9d8d 100644 --- a/src/core/transforms/qskeletonloader.cpp +++ b/src/core/transforms/qskeletonloader.cpp @@ -261,3 +261,5 @@ Qt3DCore::QNodeCreatedChangeBasePtr QSkeletonLoader::createNodeCreationChange() } // namespace Qt3DCore QT_END_NAMESPACE + +#include "moc_qskeletonloader.cpp" |