diff options
Diffstat (limited to 'src/widgets/kernel/qwidgetbackingstore_p.h')
-rw-r--r-- | src/widgets/kernel/qwidgetbackingstore_p.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidgetbackingstore_p.h b/src/widgets/kernel/qwidgetbackingstore_p.h index 473e9deef4..0da85e33d5 100644 --- a/src/widgets/kernel/qwidgetbackingstore_p.h +++ b/src/widgets/kernel/qwidgetbackingstore_p.h @@ -133,6 +133,7 @@ private: QRegion dirty; // needsRepaint QRegion dirtyFromPreviousSync; QVector<QWidget *> dirtyWidgets; + QVector<QWidget *> dirtyRenderToTextureWidgets; QVector<QWidget *> *dirtyOnScreenWidgets; QList<QWidget *> staticWidgets; QPlatformTextureList *widgetTextures; @@ -143,6 +144,8 @@ private: QPoint tlwOffset; QPlatformTextureListWatcher *textureListWatcher; + QElapsedTimer perfTime; + int perfFrames; void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); @@ -150,7 +153,8 @@ private: static void unflushPaint(QWidget *widget, const QRegion &rgn); static void qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, QWidget *tlw, const QPoint &tlwOffset, - QPlatformTextureList *widgetTextures = 0); + QPlatformTextureList *widgetTextures, + QWidgetBackingStore *widgetBackingStore); void doSync(); bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); @@ -184,6 +188,16 @@ private: } } + inline void addDirtyRenderToTextureWidget(QWidget *widget) + { + if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { + QWidgetPrivate *widgetPrivate = widget->d_func(); + Q_ASSERT(widgetPrivate->renderToTexture); + dirtyRenderToTextureWidgets.append(widget); + widgetPrivate->inDirtyList = true; + } + } + inline void dirtyWidgetsRemoveAll(QWidget *widget) { int i = 0; @@ -294,7 +308,6 @@ private: friend QRegion qt_dirtyRegion(QWidget *); friend class QWidgetPrivate; friend class QWidget; - friend class QETWidget; friend class QBackingStore; }; |