From 5adba7cba739a4befca86dca026753ea69605c31 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 26 Nov 2013 12:09:42 +0200 Subject: Check whether exposed widget is mapped in QWidgetBackingStore::sync(QWidget*). Qt::WA_Mapped corresponds to 'exposed' in Qt 5, hence a parent window fully obscured by its children may not have the attribute set. In that case, go by the attribute of the child widget. Task-number: QTBUG-33520 Change-Id: Ia08f283172daaa58f58e5636004461b2c48784f7 Reviewed-by: Laszlo Agocs --- src/widgets/kernel/qwidgetbackingstore_p.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/widgets/kernel/qwidgetbackingstore_p.h') diff --git a/src/widgets/kernel/qwidgetbackingstore_p.h b/src/widgets/kernel/qwidgetbackingstore_p.h index b6c3e13cb0..3d12524c98 100644 --- a/src/widgets/kernel/qwidgetbackingstore_p.h +++ b/src/widgets/kernel/qwidgetbackingstore_p.h @@ -110,6 +110,7 @@ private: static bool flushPaint(QWidget *widget, const QRegion &rgn); static void unflushPaint(QWidget *widget, const QRegion &rgn); + void doSync(); bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); void releaseBuffer(); -- cgit v1.2.3 From eacd58d4e78e7238ba5fcca90ba960aaf3ebd263 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Wed, 18 Dec 2013 14:48:22 +0100 Subject: Enabling QQuickWidget and QOpenGLWidget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable child widgets (without a native window) that render to an FBO and are composed with the raster backingstore by the platform plugin. A preliminary version of QOpenGLWidget is included as private API. Change-Id: I8f984a4d7db285069ce3d6564707942c823d890d Reviewed-by: Jørgen Lind --- src/widgets/kernel/qwidgetbackingstore_p.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/widgets/kernel/qwidgetbackingstore_p.h') diff --git a/src/widgets/kernel/qwidgetbackingstore_p.h b/src/widgets/kernel/qwidgetbackingstore_p.h index 3d12524c98..c6f6541e1f 100644 --- a/src/widgets/kernel/qwidgetbackingstore_p.h +++ b/src/widgets/kernel/qwidgetbackingstore_p.h @@ -60,6 +60,8 @@ QT_BEGIN_NAMESPACE +class QPlatformTextureList; + struct BeginPaintInfo { inline BeginPaintInfo() : wasFlushed(0), nothingToPaint(0), backingStoreRecreated(0) {} uint wasFlushed : 1; @@ -102,11 +104,15 @@ private: QVector dirtyWidgets; QVector *dirtyOnScreenWidgets; QList staticWidgets; + QPlatformTextureList *widgetTextures; QBackingStore *store; uint fullUpdatePending : 1; + uint updateRequestSent : 1; QPoint tlwOffset; + void sendUpdateRequest(QWidget *widget, bool updateImmediately); + static bool flushPaint(QWidget *widget, const QRegion &rgn); static void unflushPaint(QWidget *widget, const QRegion &rgn); -- cgit v1.2.3 From ff11af4fbc2948a3a3bc635549c7ac349d249abc Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 11 Feb 2014 14:59:30 +0100 Subject: QOpenGLWidget and new-style compositing on eglfs Integrate with QOpenGLTextureBlitter, QOpenGLWidget and friends. Change-Id: Ic2867b713a21a3d2820d546174fc9164b3dd220c Reviewed-by: Lars Knoll Reviewed-by: Gunnar Sletta Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetbackingstore_p.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/widgets/kernel/qwidgetbackingstore_p.h') diff --git a/src/widgets/kernel/qwidgetbackingstore_p.h b/src/widgets/kernel/qwidgetbackingstore_p.h index c6f6541e1f..2fe58fa4a7 100644 --- a/src/widgets/kernel/qwidgetbackingstore_p.h +++ b/src/widgets/kernel/qwidgetbackingstore_p.h @@ -61,6 +61,7 @@ QT_BEGIN_NAMESPACE class QPlatformTextureList; +class QWidgetBackingStore; struct BeginPaintInfo { inline BeginPaintInfo() : wasFlushed(0), nothingToPaint(0), backingStoreRecreated(0) {} @@ -69,6 +70,23 @@ struct BeginPaintInfo { uint backingStoreRecreated : 1; }; +class QPlatformTextureListWatcher : public QObject +{ + Q_OBJECT + +public: + QPlatformTextureListWatcher(QWidgetBackingStore *backingStore); + void watch(QPlatformTextureList *textureList); + bool isLocked() const { return m_locked; } + +private slots: + void onLockStatusChanged(bool locked); + +private: + bool m_locked; + QWidgetBackingStore *m_backingStore; +}; + class Q_AUTOTEST_EXPORT QWidgetBackingStore { public: @@ -111,6 +129,8 @@ private: QPoint tlwOffset; + QPlatformTextureListWatcher *textureListWatcher; + void sendUpdateRequest(QWidget *widget, bool updateImmediately); static bool flushPaint(QWidget *widget, const QRegion &rgn); -- cgit v1.2.3