![]() |
Qt 6.x
The Qt SDK
|
#include <qsgsoftwarerenderloop_p.h>
Classes | |
struct | WindowData |
Public Member Functions | |
QSGSoftwareRenderLoop () | |
~QSGSoftwareRenderLoop () | |
void | show (QQuickWindow *window) override |
void | hide (QQuickWindow *window) override |
void | windowDestroyed (QQuickWindow *window) override |
void | renderWindow (QQuickWindow *window, bool isNewExpose=false) |
void | exposureChanged (QQuickWindow *window) override |
QImage | grab (QQuickWindow *window) override |
void | maybeUpdate (QQuickWindow *window) override |
void | update (QQuickWindow *window) override |
void | handleUpdateRequest (QQuickWindow *) override |
void | releaseResources (QQuickWindow *) override |
QSurface::SurfaceType | windowSurfaceType () const override |
QAnimationDriver * | animationDriver () const override |
QSGContext * | sceneGraphContext () const override |
QSGRenderContext * | createRenderContext (QSGContext *) const override |
![]() | |
virtual | ~QSGRenderLoop () |
virtual void | show (QQuickWindow *window)=0 |
virtual void | hide (QQuickWindow *window)=0 |
virtual void | resize (QQuickWindow *) |
virtual void | windowDestroyed (QQuickWindow *window)=0 |
virtual void | exposureChanged (QQuickWindow *window)=0 |
virtual QImage | grab (QQuickWindow *window)=0 |
virtual void | update (QQuickWindow *window)=0 |
virtual void | maybeUpdate (QQuickWindow *window)=0 |
virtual void | handleUpdateRequest (QQuickWindow *) |
virtual QAnimationDriver * | animationDriver () const =0 |
virtual QSGContext * | sceneGraphContext () const =0 |
virtual QSGRenderContext * | createRenderContext (QSGContext *) const =0 |
virtual void | releaseResources (QQuickWindow *window)=0 |
virtual void | postJob (QQuickWindow *window, QRunnable *job) |
void | addWindow (QQuickWindow *win) |
void | removeWindow (QQuickWindow *win) |
QSet< QQuickWindow * > | windows () const |
virtual QSurface::SurfaceType | windowSurfaceType () const |
virtual bool | interleaveIncubation () const |
virtual int | flags () const |
void | handleContextCreationFailure (QQuickWindow *window) |
![]() | |
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 . | |
Public Attributes | |
QHash< QQuickWindow *, WindowData > | m_windows |
QHash< QQuickWindow *, QBackingStore * > | m_backingStores |
QSGContext * | sg |
QSGRenderContext * | rc |
QImage | grabContent |
Additional Inherited Members | |
![]() | |
enum | RenderLoopFlags { SupportsGrabWithoutExpose = 0x01 } |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
void | timeToIncubate () |
![]() | |
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. | |
![]() | |
static QSGRenderLoop * | instance () |
static void | setInstance (QSGRenderLoop *instance) |
static void | cleanup () |
![]() | |
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) |
![]() | |
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 24 of file qsgsoftwarerenderloop_p.h.
QT_BEGIN_NAMESPACE QSGSoftwareRenderLoop::QSGSoftwareRenderLoop | ( | ) |
Definition at line 24 of file qsgsoftwarerenderloop.cpp.
References QSGContext::createRenderContext(), rc, and sg.
QSGSoftwareRenderLoop::~QSGSoftwareRenderLoop | ( | ) |
Definition at line 30 of file qsgsoftwarerenderloop.cpp.
|
inlineoverridevirtual |
Implements QSGRenderLoop.
Definition at line 48 of file qsgsoftwarerenderloop_p.h.
|
inlineoverridevirtual |
|
overridevirtual |
Implements QSGRenderLoop.
Definition at line 192 of file qsgsoftwarerenderloop.cpp.
References m_windows, renderWindow(), and window().
|
overridevirtual |
Implements QSGRenderLoop.
Definition at line 200 of file qsgsoftwarerenderloop.cpp.
References QHash< Key, T >::contains(), QImage::detach(), grabContent, m_backingStores, m_windows, renderWindow(), and window().
|
overridevirtual |
Reimplemented from QSGRenderLoop.
Definition at line 250 of file qsgsoftwarerenderloop.cpp.
References renderWindow(), and window().
|
overridevirtual |
Implements QSGRenderLoop.
Definition at line 50 of file qsgsoftwarerenderloop.cpp.
References QQuickWindowPrivate::fireAboutToStop(), QQuickWindowPrivate::get(), and window().
|
overridevirtual |
Implements QSGRenderLoop.
Definition at line 228 of file qsgsoftwarerenderloop.cpp.
References m_windows, and window().
Referenced by renderWindow(), show(), and update().
|
inlineoverridevirtual |
Implements QSGRenderLoop.
Definition at line 44 of file qsgsoftwarerenderloop_p.h.
void QSGSoftwareRenderLoop::renderWindow | ( | QQuickWindow * | window, |
bool | isNewExpose = false |
||
) |
Definition at line 73 of file qsgsoftwarerenderloop.cpp.
References QQuickWindowPrivate::context, QTime::currentTime(), QQuickWindowPrivate::deliveryAgentPrivate(), emit, QSGRenderContext::endSync(), QQuickWindowPrivate::fireFrameSwapped(), QQuickDeliveryAgentPrivate::flushFrameSynchronousEvents(), QQuickWindowPrivate::get(), grabContent, QSGSoftwareRenderContext::initializeIfNeeded(), QQuickWindowPrivate::isRenderable(), m_backingStores, m_windows, maybeUpdate(), QTime::msecsTo(), QElapsedTimer::nsecsElapsed(), QQuickWindowPrivate::polishItems(), Q_QUICK_SG_PROFILE_END, Q_QUICK_SG_PROFILE_RECORD, Q_QUICK_SG_PROFILE_START, Q_QUICK_SG_PROFILE_SWITCH, Q_TRACE, Q_TRACE_SCOPE, qCDebug, rc, QQuickWindowPrivate::renderer, QQuickWindowPrivate::renderSceneGraph(), QSGSoftwareRenderer::setBackingStore(), QElapsedTimer::start(), QQuickWindowPrivate::syncSceneGraph(), and window().
Referenced by exposureChanged(), grab(), and handleUpdateRequest().
|
overridevirtual |
|
overridevirtual |
Implements QSGRenderLoop.
Definition at line 36 of file qsgsoftwarerenderloop.cpp.
References m_backingStores, m_windows, maybeUpdate(), and window().
|
inlineoverridevirtual |
Implements QSGRenderLoop.
Definition at line 41 of file qsgsoftwarerenderloop_p.h.
References maybeUpdate(), and window().
|
overridevirtual |
Implements QSGRenderLoop.
Definition at line 56 of file qsgsoftwarerenderloop.cpp.
References d, QQuickWindowPrivate::get(), hide(), QSGRenderContext::invalidate(), m_backingStores, m_windows, rc, QHash< Key, T >::remove(), and window().
|
overridevirtual |
Reimplemented from QSGRenderLoop.
Definition at line 237 of file qsgsoftwarerenderloop.cpp.
References QSurface::RasterSurface.
QImage QSGSoftwareRenderLoop::grabContent |
Definition at line 64 of file qsgsoftwarerenderloop_p.h.
Referenced by grab(), and renderWindow().
QHash<QQuickWindow *, QBackingStore *> QSGSoftwareRenderLoop::m_backingStores |
Definition at line 59 of file qsgsoftwarerenderloop_p.h.
Referenced by grab(), renderWindow(), show(), and windowDestroyed().
QHash<QQuickWindow *, WindowData> QSGSoftwareRenderLoop::m_windows |
Definition at line 58 of file qsgsoftwarerenderloop_p.h.
Referenced by exposureChanged(), grab(), maybeUpdate(), renderWindow(), show(), and windowDestroyed().
QSGRenderContext* QSGSoftwareRenderLoop::rc |
Definition at line 62 of file qsgsoftwarerenderloop_p.h.
Referenced by QSGSoftwareRenderLoop(), ~QSGSoftwareRenderLoop(), createRenderContext(), renderWindow(), and windowDestroyed().
QSGContext* QSGSoftwareRenderLoop::sg |
Definition at line 61 of file qsgsoftwarerenderloop_p.h.
Referenced by QSGSoftwareRenderLoop(), ~QSGSoftwareRenderLoop(), and sceneGraphContext().