![]() |
Qt 6.x
The Qt SDK
|
#include <qquick3dscenemanager_p.h>
Public Types | |
enum class | NodePriority { Skeleton , Other , ModelWithInstanceRoot , Lights , Count } |
enum class | ResourcePriority { TextureData , Texture , Other , Count } |
enum class | ExtensionPriority { RenderExtension , Count } |
Signals | |
void | needsUpdate () |
void | windowChanged () |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
Public Member Functions | |
QQuick3DSceneManager (QObject *parent=nullptr) | |
~QQuick3DSceneManager () override | |
void | setWindow (QQuickWindow *window) |
QQuickWindow * | window () |
void | dirtyItem (QQuick3DObject *item) |
void | requestUpdate () |
void | cleanup (QSSGRenderGraphObject *item) |
void | polishItems () |
void | forcePolish () |
void | sync () |
void | preSync () |
bool | cleanupNodes () |
bool | updateDirtyResourceNodes () |
void | updateDirtySpatialNodes () |
void | updateDiryExtensions () |
void | updateDirtyResource (QQuick3DObject *resourceObject) |
void | updateDirtySpatialNode (QQuick3DNode *spatialNode) |
void | updateBoundingBoxes (QSSGBufferManager &mgr) |
QQuick3DObject * | lookUpNode (const QSSGRenderGraphObject *node) const |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
Static Public Member Functions | |
static size_t | resourceListIndex (QSSGRenderGraphObject::Type type) |
static size_t | nodeListIndex (QSSGRenderGraphObject::Type type) |
static constexpr size_t | extensionListIndex (QSSGRenderGraphObject::Type type) |
static QQuick3DWindowAttachment * | getOrSetWindowAttachment (QQuickWindow &window) |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
Public Attributes | |
QQuick3DObject * | dirtyResources [size_t(ResourcePriority::Count)] {} |
QQuick3DObject * | dirtyNodes [size_t(NodePriority::Count)] {} |
QQuick3DObject * | dirtyExtensions [size_t(ExtensionPriority::Count)] {} |
QList< QQuick3DObject * > | dirtyBoundingBoxList |
QList< QSSGRenderGraphObject * > | cleanupNodeList |
QList< QSSGRenderGraphObject * > | resourceCleanupQueue |
QSet< QQuick3DObject * > | parentlessItems |
QVector< QSGDynamicTexture * > | qsgDynamicTextures |
QHash< const QSSGRenderGraphObject *, QQuick3DObject * > | m_nodeMap |
QSet< QSSGRenderGraphObject * > | resourceLoaders |
QQuickWindow * | m_window = nullptr |
QPointer< QQuick3DWindowAttachment > | wattached |
int | inputHandlingEnabled = 0 |
bool | sharedResourceRemoved = false |
friend | QQuick3DObject |
Additional Inherited Members | |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
QString | objectName |
the name of this object | |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
Definition at line 72 of file qquick3dscenemanager_p.h.
|
strong |
Enumerator | |
---|---|
RenderExtension | |
Count |
Definition at line 109 of file qquick3dscenemanager_p.h.
|
strong |
Enumerator | |
---|---|
Skeleton | |
Other | |
ModelWithInstanceRoot | |
Lights | |
Count |
Definition at line 107 of file qquick3dscenemanager_p.h.
|
strong |
Enumerator | |
---|---|
TextureData | |
Texture | |
Other | |
Count |
Definition at line 108 of file qquick3dscenemanager_p.h.
Definition at line 21 of file qquick3dscenemanager.cpp.
|
override |
Definition at line 28 of file qquick3dscenemanager.cpp.
References cleanupNodes(), QQuick3DWindowAttachment::unregisterSceneManager(), and wattached.
void QQuick3DSceneManager::cleanup | ( | QSSGRenderGraphObject * | item | ) |
Definition at line 73 of file qquick3dscenemanager.cpp.
References QList< T >::append(), cleanupNodeList, QListSpecialMethodsBase< T >::contains(), QQuick3DObjectPrivate::get(), item, m_nodeMap, Q_ASSERT, and sharedResourceRemoved.
Referenced by QQuick3DObjectPrivate::derefSceneManager().
bool QQuick3DSceneManager::cleanupNodes | ( | ) |
Definition at line 262 of file qquick3dscenemanager.cpp.
References cleanupNodeList, QList< T >::clear(), QSSGRenderGraphObject::hasGraphicsResources(), inputHandlingEnabled, QSSGRenderGraphObject::isNodeType(), m_nodeMap, QQuick3DWindowAttachment::queueForCleanup(), QHash< Key, T >::remove(), QSet< T >::remove(), QSSGRenderNode::removeFromGraph(), resourceLoaders, ret, sharedResourceRemoved, and wattached.
Referenced by ~QQuick3DSceneManager().
void QQuick3DSceneManager::dirtyItem | ( | QQuick3DObject * | item | ) |
Definition at line 62 of file qquick3dscenemanager.cpp.
References emit, item, needsUpdate(), and Q_UNUSED.
Referenced by QQuick3DObjectPrivate::addToDirtyList().
|
inlinestaticconstexpr |
Definition at line 137 of file qquick3dscenemanager_p.h.
References QSSGRenderGraphObject::isExtension(), and Q_ASSERT.
Referenced by QQuick3DObjectPrivate::addToDirtyList().
void QQuick3DSceneManager::forcePolish | ( | ) |
Definition at line 94 of file qquick3dscenemanager.cpp.
|
static |
Definition at line 244 of file qquick3dscenemanager.cpp.
References QVariant::fromValue(), QObject::property(), qtQQ3DWAPropName, QObject::setProperty(), and window().
Referenced by QQuick3DViewport::createRenderer(), setWindow(), and QQuick3DSceneRenderer::synchronize().
QQuick3DObject * QQuick3DSceneManager::lookUpNode | ( | const QSSGRenderGraphObject * | node | ) | const |
Definition at line 239 of file qquick3dscenemanager.cpp.
References m_nodeMap.
|
signal |
Referenced by QQuick3DViewport::QQuick3DViewport(), dirtyItem(), requestUpdate(), and QQuick3DViewport::setImportScene().
|
inlinestatic |
Definition at line 124 of file qquick3dscenemanager_p.h.
References QSSGRenderGraphObject::isLight(), QSSGRenderGraphObject::isNodeType(), and Q_ASSERT.
Referenced by QQuick3DObjectPrivate::addToDirtyList().
void QQuick3DSceneManager::polishItems | ( | ) |
Definition at line 89 of file qquick3dscenemanager.cpp.
void QQuick3DSceneManager::preSync | ( | ) |
Definition at line 381 of file qquick3dscenemanager.cpp.
References dirtyExtensions, dirtyNodes, dirtyResources, QQuick3DObjectPrivate::get(), it, next, and QQuick3DObjectPrivate::nextDirtyItem.
void QQuick3DSceneManager::requestUpdate | ( | ) |
Definition at line 68 of file qquick3dscenemanager.cpp.
References emit, and needsUpdate().
|
inlinestatic |
Definition at line 111 of file qquick3dscenemanager_p.h.
References QSSGRenderGraphObject::isNodeType(), QSSGRenderGraphObject::isTexture(), and Q_ASSERT.
Referenced by QQuick3DObjectPrivate::addToDirtyList().
void QQuick3DSceneManager::setWindow | ( | QQuickWindow * | window | ) |
Definition at line 35 of file qquick3dscenemanager.cpp.
References emit, getOrSetWindowAttachment(), m_window, QQuick3DWindowAttachment::registerSceneManager(), QQuick3DWindowAttachment::unregisterSceneManager(), wattached, window(), and windowChanged().
Referenced by QQuick3DViewport::itemChange().
void QQuick3DSceneManager::sync | ( | ) |
Definition at line 99 of file qquick3dscenemanager.cpp.
void QQuick3DSceneManager::updateBoundingBoxes | ( | QSSGBufferManager & | mgr | ) |
Definition at line 104 of file qquick3dscenemanager.cpp.
References dirtyBoundingBoxList, QQuick3DObjectPrivate::get(), QSSGBufferManager::getModelBounds(), QSSGBounds3::maximum, QSSGBounds3::minimum, model, QList< T >::removeOne(), QQuick3DObjectPrivate::sceneManager, and QQuick3DObjectPrivate::spatialNode.
void QQuick3DSceneManager::updateDirtyResource | ( | QQuick3DObject * | resourceObject | ) |
Definition at line 147 of file qquick3dscenemanager.cpp.
References QQuick3DObjectPrivate::dirtyAttributes, QQuick3DObjectPrivate::get(), inputHandlingEnabled, QHash< Key, T >::insert(), QSet< T >::insert(), m_nodeMap, Q_UNUSED, resourceLoaders, QQuick3DObjectPrivate::spatialNode, QSSGRenderGraphObject::type, and QQuick3DObject::updateSpatialNode().
bool QQuick3DSceneManager::updateDirtyResourceNodes | ( | ) |
Definition at line 120 of file qquick3dscenemanager.cpp.
References dirtyResources, it, and ret.
void QQuick3DSceneManager::updateDirtySpatialNode | ( | QQuick3DNode * | spatialNode | ) |
Definition at line 180 of file qquick3dscenemanager.cpp.
References QSSGRenderNode::addChild(), QQuick3DObjectPrivate::dirtyAttributes, QQuick3DObjectPrivate::get(), inputHandlingEnabled, QHash< Key, T >::insert(), m_nodeMap, QQuick3DObject::parent, QSSGRenderNode::parent, QQuick3DObjectPrivate::ParentChanged, QSSGRenderNode::removeChild(), QQuick3DViewport::scene, QQuick3DObjectPrivate::spatialNode, QQuick3DObjectPrivate::type, and QQuick3DNode::updateSpatialNode().
void QQuick3DSceneManager::updateDirtySpatialNodes | ( | ) |
Definition at line 131 of file qquick3dscenemanager.cpp.
References dirtyNodes, and it.
void QQuick3DSceneManager::updateDiryExtensions | ( | ) |
Definition at line 139 of file qquick3dscenemanager.cpp.
References dirtyExtensions, and it.
QQuickWindow * QQuick3DSceneManager::window | ( | ) |
Definition at line 57 of file qquick3dscenemanager.cpp.
References m_window.
Referenced by getOrSetWindowAttachment(), QQuick3DObjectPrivate::refSceneManager(), setWindow(), QQuick3DSceneRenderer::synchronize(), and QQuick3DTexture::updateSpatialNode().
|
signal |
Referenced by QQuick3DTexture::itemChange(), and setWindow().
QList<QSSGRenderGraphObject *> QQuick3DSceneManager::cleanupNodeList |
Definition at line 151 of file qquick3dscenemanager_p.h.
Referenced by cleanup(), and cleanupNodes().
QList<QQuick3DObject *> QQuick3DSceneManager::dirtyBoundingBoxList |
Definition at line 150 of file qquick3dscenemanager_p.h.
Referenced by QQuick3DObjectPrivate::derefSceneManager(), QQuick3DModel::setSource(), and updateBoundingBoxes().
QQuick3DObject* QQuick3DSceneManager::dirtyExtensions[size_t(ExtensionPriority::Count)] {} |
Definition at line 148 of file qquick3dscenemanager_p.h.
Referenced by QQuick3DObjectPrivate::addToDirtyList(), preSync(), and updateDiryExtensions().
QQuick3DObject* QQuick3DSceneManager::dirtyNodes[size_t(NodePriority::Count)] {} |
Definition at line 147 of file qquick3dscenemanager_p.h.
Referenced by QQuick3DObjectPrivate::addToDirtyList(), preSync(), and updateDirtySpatialNodes().
QQuick3DObject* QQuick3DSceneManager::dirtyResources[size_t(ResourcePriority::Count)] {} |
Definition at line 146 of file qquick3dscenemanager_p.h.
Referenced by QQuick3DObjectPrivate::addToDirtyList(), preSync(), and updateDirtyResourceNodes().
int QQuick3DSceneManager::inputHandlingEnabled = 0 |
Definition at line 160 of file qquick3dscenemanager_p.h.
Referenced by cleanupNodes(), updateDirtyResource(), updateDirtySpatialNode(), and QQuick3DViewport::updatePaintNode().
QHash<const QSSGRenderGraphObject *, QQuick3DObject *> QQuick3DSceneManager::m_nodeMap |
Definition at line 156 of file qquick3dscenemanager_p.h.
Referenced by cleanup(), cleanupNodes(), lookUpNode(), updateDirtyResource(), and updateDirtySpatialNode().
QQuickWindow* QQuick3DSceneManager::m_window = nullptr |
Definition at line 158 of file qquick3dscenemanager_p.h.
Referenced by setWindow(), and window().
QSet<QQuick3DObject *> QQuick3DSceneManager::parentlessItems |
Definition at line 154 of file qquick3dscenemanager_p.h.
Referenced by QQuick3DObjectPrivate::derefSceneManager(), and QQuick3DObjectPrivate::refSceneManager().
friend QQuick3DSceneManager::QQuick3DObject |
Definition at line 162 of file qquick3dscenemanager_p.h.
QVector<QSGDynamicTexture *> QQuick3DSceneManager::qsgDynamicTextures |
Definition at line 155 of file qquick3dscenemanager_p.h.
Referenced by QQuick3DTexture::~QQuick3DTexture(), and QQuick3DTexture::itemChange().
QList<QSSGRenderGraphObject *> QQuick3DSceneManager::resourceCleanupQueue |
Definition at line 152 of file qquick3dscenemanager_p.h.
QSet<QSSGRenderGraphObject *> QQuick3DSceneManager::resourceLoaders |
Definition at line 157 of file qquick3dscenemanager_p.h.
Referenced by cleanupNodes(), and updateDirtyResource().
bool QQuick3DSceneManager::sharedResourceRemoved = false |
Definition at line 161 of file qquick3dscenemanager_p.h.
Referenced by cleanup(), and cleanupNodes().
QPointer<QQuick3DWindowAttachment> QQuick3DSceneManager::wattached |
Definition at line 159 of file qquick3dscenemanager_p.h.
Referenced by ~QQuick3DSceneManager(), cleanupNodes(), setWindow(), QQuick3DSceneRenderer::synchronize(), QQuick3DCustomMaterial::updateSpatialNode(), and QQuick3DEffect::updateSpatialNode().