QAspectJob Class

class Qt3DCore::QAspectJob

The base class for jobs executed in an aspect. More...

Header: #include <Qt3DCore/QAspectJob>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dcore)
target_link_libraries(mytarget PRIVATE Qt6::3dcore)
qmake: QT += 3dcore
Since: Qt 5.7

Public Functions

QAspectJob()
virtual ~QAspectJob()
void addDependency(QWeakPointer<Qt3DCore::QAspectJob> dependency)
const std::vector<QWeakPointer<QAspectJob>> &dependencies() const
virtual bool isRequired()
virtual void postFrame(Qt3DCore::QAspectEngine *aspectEngine)
void removeDependency(QWeakPointer<Qt3DCore::QAspectJob> dependency)
virtual void run() = 0

Protected Variables

Qt3DCore::QAspectJobPrivate *d_ptr

Detailed Description

Member Function Documentation

QAspectJob::QAspectJob()

Default constructs an instance of QAspectJob.

[virtual] QAspectJob::~QAspectJob()

Destroys the instance of QAspectJob. The destructor is virtual.

void QAspectJob::addDependency(QWeakPointer<Qt3DCore::QAspectJob> dependency)

Adds dependency to the aspect job.

const std::vector<QWeakPointer<QAspectJob>> &QAspectJob::dependencies() const

Returns the dependencies of the aspect job.

[virtual] bool QAspectJob::isRequired()

Should return true (default) if the job has actually something to do. If returning false, the job will not be scheduled (but it's dependencies will be).

[virtual] void QAspectJob::postFrame(Qt3DCore::QAspectEngine *aspectEngine)

Called in the main thread when all the jobs have completed. This is a good point to push changes back to the frontend. aspectEngine is the engine responsible for the run loop.

void QAspectJob::removeDependency(QWeakPointer<Qt3DCore::QAspectJob> dependency)

Removes the given dependency from aspect job.

[pure virtual] void QAspectJob::run()

Executes the job. This is called on a separate thread by the scheduler.

Member Variable Documentation

Qt3DCore::QAspectJobPrivate *QAspectJob::d_ptr

© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.