Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQuick3DSceneManager Class Reference

#include <qquick3dscenemanager_p.h>

+ Inheritance diagram for QQuick3DSceneManager:
+ Collaboration diagram for QQuick3DSceneManager:

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 ()
 
- Signals inherited from QObject
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)
 
QQuickWindowwindow ()
 
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 ()
 
bool updateDirtyResourceSecondPass ()
 
void updateDirtyResource (QQuick3DObject *resourceObject)
 
void updateDirtySpatialNode (QQuick3DNode *spatialNode)
 
void updateBoundingBoxes (QSSGBufferManager &mgr)
 
QQuick3DObjectlookUpNode (const QSSGRenderGraphObject *node) const
 
- Public Member Functions inherited from QObject
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< QStringbindableObjectName ()
 
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).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
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::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, 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 (QAnyStringView 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 >
findChild (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.
 
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 QObjectListchildren () 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< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () 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 QQuick3DWindowAttachmentgetOrSetWindowAttachment (QQuickWindow &window)
 
- Static Public Member Functions inherited from QObject
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

QQuick3DObjectdirtyResources [size_t(ResourcePriority::Count)] {}
 
QQuick3DObjectdirtyNodes [size_t(NodePriority::Count)] {}
 
QQuick3DObjectdirtyExtensions [size_t(ExtensionPriority::Count)] {}
 
QSet< QQuick3DObject * > dirtySecondPassResources
 
QList< QQuick3DObject * > dirtyBoundingBoxList
 
QSet< QSSGRenderGraphObject * > cleanupNodeList
 
QList< QSSGRenderGraphObject * > resourceCleanupQueue
 
QSet< QQuick3DObject * > parentlessItems
 
QVector< QSGDynamicTexture * > qsgDynamicTextures
 
QHash< QSSGRenderGraphObject *, QQuick3DObject * > m_nodeMap
 
QSet< QSSGRenderGraphObject * > resourceLoaders
 
QQuickWindowm_window = nullptr
 
QPointer< QQuick3DWindowAttachmentwattached
 
int inputHandlingEnabled = 0
 
bool sharedResourceRemoved = false
 
friend QQuick3DObject
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Protected Member Functions inherited from QObject
QObjectsender () 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)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

Definition at line 76 of file qquick3dscenemanager_p.h.

Member Enumeration Documentation

◆ ExtensionPriority

Enumerator
RenderExtension 
Count 

Definition at line 114 of file qquick3dscenemanager_p.h.

◆ NodePriority

Enumerator
Skeleton 
Other 
ModelWithInstanceRoot 
Lights 
Count 

Definition at line 112 of file qquick3dscenemanager_p.h.

◆ ResourcePriority

Enumerator
TextureData 
Texture 
Other 
Count 

Definition at line 113 of file qquick3dscenemanager_p.h.

Constructor & Destructor Documentation

◆ QQuick3DSceneManager()

QQuick3DSceneManager::QQuick3DSceneManager ( QObject * parent = nullptr)
explicit

Definition at line 25 of file qquick3dscenemanager.cpp.

◆ ~QQuick3DSceneManager()

QQuick3DSceneManager::~QQuick3DSceneManager ( )
override

Definition at line 32 of file qquick3dscenemanager.cpp.

References cleanupNodes(), QQuick3DWindowAttachment::unregisterSceneManager(), and wattached.

+ Here is the call graph for this function:

Member Function Documentation

◆ cleanup()

void QQuick3DSceneManager::cleanup ( QSSGRenderGraphObject * item)

Definition at line 77 of file qquick3dscenemanager.cpp.

References cleanupNodeList, QQuick3DObjectPrivate::get(), QSet< T >::insert(), item, m_nodeMap, and sharedResourceRemoved.

Referenced by QQuick3DObjectPrivate::derefSceneManager().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cleanupNodes()

bool QQuick3DSceneManager::cleanupNodes ( )

Definition at line 281 of file qquick3dscenemanager.cpp.

References cleanupNodeList, QSet< T >::clear(), inputHandlingEnabled, QSSGRenderGraphObject::isNodeType(), m_nodeMap, QQuick3DWindowAttachment::queueForCleanup(), QHash< Key, T >::remove(), QSet< T >::remove(), QSSGRenderNode::removeFromGraph(), resourceLoaders, ret, sharedResourceRemoved, and wattached.

Referenced by ~QQuick3DSceneManager().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dirtyItem()

void QQuick3DSceneManager::dirtyItem ( QQuick3DObject * item)

Definition at line 66 of file qquick3dscenemanager.cpp.

References emit, item, needsUpdate(), and Q_UNUSED.

Referenced by QQuick3DObjectPrivate::addToDirtyList().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ extensionListIndex()

static constexpr size_t QQuick3DSceneManager::extensionListIndex ( QSSGRenderGraphObject::Type type)
inlinestaticconstexpr

Definition at line 142 of file qquick3dscenemanager_p.h.

References QSSGRenderGraphObject::isExtension(), and Q_ASSERT.

Referenced by QQuick3DObjectPrivate::addToDirtyList().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ forcePolish()

void QQuick3DSceneManager::forcePolish ( )

Definition at line 97 of file qquick3dscenemanager.cpp.

◆ getOrSetWindowAttachment()

QQuick3DWindowAttachment * QQuick3DSceneManager::getOrSetWindowAttachment ( QQuickWindow & window)
static

Definition at line 263 of file qquick3dscenemanager.cpp.

References QVariant::fromValue(), QObject::property(), qtQQ3DWAPropName, QObject::setProperty(), and window().

Referenced by QQuick3DViewport::createRenderer(), setWindow(), and QQuick3DSceneRenderer::synchronize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lookUpNode()

QQuick3DObject * QQuick3DSceneManager::lookUpNode ( const QSSGRenderGraphObject * node) const

Definition at line 258 of file qquick3dscenemanager.cpp.

References m_nodeMap.

◆ needsUpdate

void QQuick3DSceneManager::needsUpdate ( )
signal

Referenced by QQuick3DViewport::QQuick3DViewport(), dirtyItem(), requestUpdate(), and QQuick3DViewport::setImportScene().

+ Here is the caller graph for this function:

◆ nodeListIndex()

static size_t QQuick3DSceneManager::nodeListIndex ( QSSGRenderGraphObject::Type type)
inlinestatic

Definition at line 129 of file qquick3dscenemanager_p.h.

References QSSGRenderGraphObject::isLight(), QSSGRenderGraphObject::isNodeType(), and Q_ASSERT.

Referenced by QQuick3DObjectPrivate::addToDirtyList().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ polishItems()

void QQuick3DSceneManager::polishItems ( )

Definition at line 92 of file qquick3dscenemanager.cpp.

◆ preSync()

void QQuick3DSceneManager::preSync ( )

Definition at line 400 of file qquick3dscenemanager.cpp.

References dirtyExtensions, dirtyNodes, dirtyResources, QQuick3DObjectPrivate::get(), it, and next.

+ Here is the call graph for this function:

◆ requestUpdate()

void QQuick3DSceneManager::requestUpdate ( )

Definition at line 72 of file qquick3dscenemanager.cpp.

References emit, and needsUpdate().

+ Here is the call graph for this function:

◆ resourceListIndex()

static size_t QQuick3DSceneManager::resourceListIndex ( QSSGRenderGraphObject::Type type)
inlinestatic

Definition at line 116 of file qquick3dscenemanager_p.h.

References QSSGRenderGraphObject::isNodeType(), QSSGRenderGraphObject::isTexture(), and Q_ASSERT.

Referenced by QQuick3DObjectPrivate::addToDirtyList().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setWindow()

void QQuick3DSceneManager::setWindow ( QQuickWindow * window)

Definition at line 39 of file qquick3dscenemanager.cpp.

References emit, getOrSetWindowAttachment(), m_window, QQuick3DWindowAttachment::registerSceneManager(), QQuick3DWindowAttachment::unregisterSceneManager(), wattached, window(), and windowChanged().

+ Here is the call graph for this function:

◆ sync()

void QQuick3DSceneManager::sync ( )

Definition at line 102 of file qquick3dscenemanager.cpp.

◆ updateBoundingBoxes()

void QQuick3DSceneManager::updateBoundingBoxes ( QSSGBufferManager & mgr)

Definition at line 107 of file qquick3dscenemanager.cpp.

References dirtyBoundingBoxList, QQuick3DObjectPrivate::get(), QSSGBounds3::maximum, QSSGBounds3::minimum, model, and QList< T >::removeOne().

+ Here is the call graph for this function:

◆ updateDirtyResource()

void QQuick3DSceneManager::updateDirtyResource ( QQuick3DObject * resourceObject)

Definition at line 176 of file qquick3dscenemanager.cpp.

References dirtySecondPassResources, QQuick3DObjectPrivate::get(), inputHandlingEnabled, QHash< Key, T >::insert(), QSet< T >::insert(), QSSGRenderGraphObject::isTexture(), m_nodeMap, Q_UNUSED, and resourceLoaders.

+ Here is the call graph for this function:

◆ updateDirtyResourceNodes()

bool QQuick3DSceneManager::updateDirtyResourceNodes ( )

Definition at line 123 of file qquick3dscenemanager.cpp.

References dirtyResources, it, and ret.

◆ updateDirtyResourceSecondPass()

bool QQuick3DSceneManager::updateDirtyResourceSecondPass ( )

Definition at line 150 of file qquick3dscenemanager.cpp.

References QSet< T >::constBegin(), QSet< T >::constEnd(), dirtySecondPassResources, QQuick3DObjectPrivate::get(), QHash< Key, T >::insert(), it, m_nodeMap, and ret.

+ Here is the call graph for this function:

◆ updateDirtySpatialNode()

void QQuick3DSceneManager::updateDirtySpatialNode ( QQuick3DNode * spatialNode)

Definition at line 199 of file qquick3dscenemanager.cpp.

References QSSGRenderNode::addChild(), QQuick3DObjectPrivate::get(), inputHandlingEnabled, QHash< Key, T >::insert(), m_nodeMap, QQuick3DObject::parent, QSSGRenderNode::parent, QQuick3DObjectPrivate::ParentChanged, QSSGRenderNode::removeChild(), and QQuick3DNode::updateSpatialNode().

+ Here is the call graph for this function:

◆ updateDirtySpatialNodes()

void QQuick3DSceneManager::updateDirtySpatialNodes ( )

Definition at line 134 of file qquick3dscenemanager.cpp.

References dirtyNodes, and it.

◆ updateDiryExtensions()

void QQuick3DSceneManager::updateDiryExtensions ( )

Definition at line 142 of file qquick3dscenemanager.cpp.

References dirtyExtensions, and it.

◆ window()

QQuickWindow * QQuick3DSceneManager::window ( )

Definition at line 61 of file qquick3dscenemanager.cpp.

References m_window.

Referenced by getOrSetWindowAttachment(), QQuick3DObjectPrivate::refSceneManager(), and setWindow().

+ Here is the caller graph for this function:

◆ windowChanged

void QQuick3DSceneManager::windowChanged ( )
signal

Referenced by QQuick3DTexture::itemChange(), and setWindow().

+ Here is the caller graph for this function:

Member Data Documentation

◆ cleanupNodeList

QSet<QSSGRenderGraphObject *> QQuick3DSceneManager::cleanupNodeList

Definition at line 162 of file qquick3dscenemanager_p.h.

Referenced by cleanup(), and cleanupNodes().

◆ dirtyBoundingBoxList

QList<QQuick3DObject *> QQuick3DSceneManager::dirtyBoundingBoxList

◆ dirtyExtensions

QQuick3DObject* QQuick3DSceneManager::dirtyExtensions[size_t(ExtensionPriority::Count)] {}

◆ dirtyNodes

QQuick3DObject* QQuick3DSceneManager::dirtyNodes[size_t(NodePriority::Count)] {}

◆ dirtyResources

QQuick3DObject* QQuick3DSceneManager::dirtyResources[size_t(ResourcePriority::Count)] {}

◆ dirtySecondPassResources

QSet<QQuick3DObject *> QQuick3DSceneManager::dirtySecondPassResources

Definition at line 159 of file qquick3dscenemanager_p.h.

Referenced by updateDirtyResource(), and updateDirtyResourceSecondPass().

◆ inputHandlingEnabled

int QQuick3DSceneManager::inputHandlingEnabled = 0

◆ m_nodeMap

◆ m_window

QQuickWindow* QQuick3DSceneManager::m_window = nullptr

Definition at line 169 of file qquick3dscenemanager_p.h.

Referenced by setWindow(), and window().

◆ parentlessItems

QSet<QQuick3DObject *> QQuick3DSceneManager::parentlessItems

◆ QQuick3DObject

friend QQuick3DSceneManager::QQuick3DObject

Definition at line 173 of file qquick3dscenemanager_p.h.

◆ qsgDynamicTextures

QVector<QSGDynamicTexture *> QQuick3DSceneManager::qsgDynamicTextures

◆ resourceCleanupQueue

QList<QSSGRenderGraphObject *> QQuick3DSceneManager::resourceCleanupQueue

Definition at line 163 of file qquick3dscenemanager_p.h.

◆ resourceLoaders

QSet<QSSGRenderGraphObject *> QQuick3DSceneManager::resourceLoaders

Definition at line 168 of file qquick3dscenemanager_p.h.

Referenced by cleanupNodes(), and updateDirtyResource().

◆ sharedResourceRemoved

bool QQuick3DSceneManager::sharedResourceRemoved = false

Definition at line 172 of file qquick3dscenemanager_p.h.

Referenced by cleanup(), and cleanupNodes().

◆ wattached

QPointer<QQuick3DWindowAttachment> QQuick3DSceneManager::wattached

Definition at line 170 of file qquick3dscenemanager_p.h.

Referenced by ~QQuick3DSceneManager(), cleanupNodes(), and setWindow().


The documentation for this class was generated from the following files: