diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2011-06-20 13:29:26 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2011-06-21 09:04:01 +0200 |
commit | 6ce6b8a378b0d97ba950240ffb048a4b7e485235 (patch) | |
tree | d94ca9d082e61ffe93c2756f69a4d99e5df42d94 /src/plugins/platforms/xcb | |
parent | 891a86f0f3b0664162642ee1d6aa3078f16695d1 (diff) |
Rename QWindowSurface -> QBackingStore and split into platform / public.
Also get rid of GL window surface and related classes.
Diffstat (limited to 'src/plugins/platforms/xcb')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbbackingstore.cpp (renamed from src/plugins/platforms/xcb/qxcbwindowsurface.cpp) | 32 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbbackingstore.h (renamed from src/plugins/platforms/xcb/qxcbwindowsurface.h) | 14 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbintegration.cpp | 7 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbintegration.h | 2 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 10 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/xcb.pro | 4 |
6 files changed, 33 insertions, 36 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindowsurface.cpp b/src/plugins/platforms/xcb/qxcbbackingstore.cpp index 63378515cc..24ec65fb47 100644 --- a/src/plugins/platforms/xcb/qxcbwindowsurface.cpp +++ b/src/plugins/platforms/xcb/qxcbbackingstore.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qxcbwindowsurface.h" +#include "qxcbbackingstore.h" #include "qxcbconnection.h" #include "qxcbscreen.h" @@ -64,6 +64,7 @@ public: ~QXcbShmImage() { destroy(); } QImage *image() { return &m_qimage; } + QSize size() const { return m_qimage.size(); } void put(xcb_window_t window, const QPoint &dst, const QRect &source); void preparePaint(const QRegion ®ion); @@ -113,12 +114,12 @@ QXcbShmImage::QXcbShmImage(QXcbScreen *screen, const QSize &size, uint depth, QI xcb_generic_error_t *error = xcb_request_check(xcb_connection(), xcb_shm_attach_checked(xcb_connection(), m_shm_info.shmseg, m_shm_info.shmid, false)); if (error) { - qWarning() << "QXcbWindowSurface: Unable to attach to shared memory segment"; + qWarning() << "QXcbBackingStore: Unable to attach to shared memory segment"; free(error); } if (shmctl(m_shm_info.shmid, IPC_RMID, 0) == -1) - qWarning() << "QXcbWindowSurface: Error while marking the shared memory segment to be destroyed"; + qWarning() << "QXcbBackingStore: Error while marking the shared memory segment to be destroyed"; m_qimage = QImage( (uchar*) m_xcb_image->data, m_xcb_image->width, m_xcb_image->height, m_xcb_image->stride, format); } @@ -183,8 +184,8 @@ void QXcbShmImage::preparePaint(const QRegion ®ion) } } -QXcbWindowSurface::QXcbWindowSurface(QWindow *window, bool setDefaultSurface) - : QWindowSurface(window, setDefaultSurface) +QXcbBackingStore::QXcbBackingStore(QWindow *window) + : QPlatformBackingStore(window) , m_image(0) , m_syncingResize(false) { @@ -192,20 +193,21 @@ QXcbWindowSurface::QXcbWindowSurface(QWindow *window, bool setDefaultSurface) setConnection(screen->connection()); } -QXcbWindowSurface::~QXcbWindowSurface() +QXcbBackingStore::~QXcbBackingStore() { delete m_image; } -QPaintDevice *QXcbWindowSurface::paintDevice() +QPaintDevice *QXcbBackingStore::paintDevice() { return m_image->image(); } -void QXcbWindowSurface::beginPaint(const QRegion ®ion) +void QXcbBackingStore::beginPaint(const QRegion ®ion) { m_image->preparePaint(region); +#if 0 if (m_image->image()->hasAlphaChannel()) { QPainter p(m_image->image()); p.setCompositionMode(QPainter::CompositionMode_Source); @@ -215,17 +217,18 @@ void QXcbWindowSurface::beginPaint(const QRegion ®ion) p.fillRect(*it, blank); } } +#endif } -void QXcbWindowSurface::endPaint(const QRegion &) +void QXcbBackingStore::endPaint(const QRegion &) { } -void QXcbWindowSurface::flush(QWindow *window, const QRegion ®ion, const QPoint &offset) +void QXcbBackingStore::flush(QWindow *window, const QRegion ®ion, const QPoint &offset) { QRect bounds = region.boundingRect(); - if (size().isEmpty() || !geometry().contains(bounds)) + if (!m_image || m_image->size().isEmpty()) return; Q_XCB_NOOP(connection()); @@ -246,13 +249,12 @@ void QXcbWindowSurface::flush(QWindow *window, const QRegion ®ion, const QPoi } } -void QXcbWindowSurface::resize(const QSize &size) +void QXcbBackingStore::resize(const QSize &size, const QRegion &) { - if (size == QWindowSurface::size()) + if (m_image && size == m_image->size()) return; Q_XCB_NOOP(connection()); - QWindowSurface::resize(size); QXcbScreen *screen = static_cast<QXcbScreen *>(QPlatformScreen::platformScreenForWindow(window())); QXcbWindow* win = static_cast<QXcbWindow *>(window()->handle()); @@ -266,7 +268,7 @@ void QXcbWindowSurface::resize(const QSize &size) extern void qt_scrollRectInImage(QImage &img, const QRect &rect, const QPoint &offset); -bool QXcbWindowSurface::scroll(const QRegion &area, int dx, int dy) +bool QXcbBackingStore::scroll(const QRegion &area, int dx, int dy) { if (!m_image || m_image->image()->isNull()) return false; diff --git a/src/plugins/platforms/xcb/qxcbwindowsurface.h b/src/plugins/platforms/xcb/qxcbbackingstore.h index 8f401d94a3..db94d26b09 100644 --- a/src/plugins/platforms/xcb/qxcbwindowsurface.h +++ b/src/plugins/platforms/xcb/qxcbbackingstore.h @@ -39,10 +39,10 @@ ** ****************************************************************************/ -#ifndef QXCBWINDOWSURFACE_H -#define QXCBWINDOWSURFACE_H +#ifndef QXCBBACKINGSTORE_H +#define QXCBBACKINGSTORE_H -#include <private/qwindowsurface_p.h> +#include <qplatformbackingstore_qpa.h> #include <xcb/xcb.h> @@ -50,15 +50,15 @@ class QXcbShmImage; -class QXcbWindowSurface : public QXcbObject, public QWindowSurface +class QXcbBackingStore : public QXcbObject, public QPlatformBackingStore { public: - QXcbWindowSurface(QWindow *widget, bool setDefaultSurface = true); - ~QXcbWindowSurface(); + QXcbBackingStore(QWindow *widget); + ~QXcbBackingStore(); QPaintDevice *paintDevice(); void flush(QWindow *window, const QRegion ®ion, const QPoint &offset); - void resize(const QSize &size); + void resize(const QSize &size, const QRegion &staticContents); bool scroll(const QRegion &area, int dx, int dy); void beginPaint(const QRegion &); diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index a07a5a544e..72d0036a3c 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -43,7 +43,7 @@ #include "qxcbconnection.h" #include "qxcbscreen.h" #include "qxcbwindow.h" -#include "qxcbwindowsurface.h" +#include "qxcbbackingstore.h" #include "qxcbnativeinterface.h" #include "qxcbclipboard.h" #include "qxcbdrag.h" @@ -114,10 +114,9 @@ QPlatformGLContext *QXcbIntegration::createPlatformGLContext(const QGuiGLFormat #endif } -QWindowSurface *QXcbIntegration::createWindowSurface(QWindow *window, WId winId) const +QPlatformBackingStore *QXcbIntegration::createPlatformBackingStore(QWindow *window) const { - Q_UNUSED(winId); - return new QXcbWindowSurface(window); + return new QXcbBackingStore(window); } QList<QPlatformScreen *> QXcbIntegration::screens() const diff --git a/src/plugins/platforms/xcb/qxcbintegration.h b/src/plugins/platforms/xcb/qxcbintegration.h index d931e2a787..5837be1148 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.h +++ b/src/plugins/platforms/xcb/qxcbintegration.h @@ -59,7 +59,7 @@ public: QPixmapData *createPixmapData(QPixmapData::PixelType type) const; QPlatformWindow *createPlatformWindow(QWindow *window) const; QPlatformGLContext *createPlatformGLContext(const QGuiGLFormat &glFormat, QPlatformGLContext *share) const; - QWindowSurface *createWindowSurface(QWindow *window, WId winId) const; + QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const; QList<QPlatformScreen *> screens() const; void moveToScreen(QWindow *window, int screen); diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 3cf78d00c3..547a93be0b 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -56,8 +56,8 @@ #include <private/qguiapplication_p.h> #include <private/qwindow_p.h> -#include <private/qwindowsurface_p.h> +#include <QtGui/QPlatformBackingStore> #include <QtGui/QWindowSystemInterface> #include <stdio.h> @@ -1053,12 +1053,8 @@ QPlatformGLSurface *QXcbWindow::createGLSurface() const void QXcbWindow::handleExposeEvent(const xcb_expose_event_t *event) { - QWindowSurface *surface = window()->surface(); - if (surface) { - QRect rect(event->x, event->y, event->width, event->height); - - QWindowSystemInterface::handleExposeEvent(window(), rect); - } + QRect rect(event->x, event->y, event->width, event->height); + QWindowSystemInterface::handleExposeEvent(window(), rect); } void QXcbWindow::handleClientMessageEvent(const xcb_client_message_event_t *event) diff --git a/src/plugins/platforms/xcb/xcb.pro b/src/plugins/platforms/xcb/xcb.pro index e5d9b98bd0..8cf7ec4aff 100644 --- a/src/plugins/platforms/xcb/xcb.pro +++ b/src/plugins/platforms/xcb/xcb.pro @@ -14,7 +14,7 @@ SOURCES = \ qxcbdrag.cpp \ qxcbscreen.cpp \ qxcbwindow.cpp \ - qxcbwindowsurface.cpp \ + qxcbbackingstore.cpp \ qxcbwmsupport.cpp \ main.cpp \ qxcbnativeinterface.cpp \ @@ -31,7 +31,7 @@ HEADERS = \ qxcbobject.h \ qxcbscreen.h \ qxcbwindow.h \ - qxcbwindowsurface.h \ + qxcbbackingstore.h \ qxcbwmsupport.h \ qxcbnativeinterface.h \ qxcbcursor.h \ |