diff options
Diffstat (limited to 'libraries/qt4/patches/0274-shm-native-image-fix.diff')
-rw-r--r-- | libraries/qt4/patches/0274-shm-native-image-fix.diff | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/libraries/qt4/patches/0274-shm-native-image-fix.diff b/libraries/qt4/patches/0274-shm-native-image-fix.diff deleted file mode 100644 index 0ea21467a4..0000000000 --- a/libraries/qt4/patches/0274-shm-native-image-fix.diff +++ /dev/null @@ -1,97 +0,0 @@ -qt-bugs@ issue : none -Qt Software task ID : none -bugs.kde.org number : none -applied: no -author: Fredrik Höglund <fredrik@kde.org> - -This patch makes the raster graphics system use shared images instead -of shared pixmaps. - -Shared memory pixmaps are deprecated since they are slower than shared -images with modern graphics hardware. They are also not supported by EXA -drivers and can be disabled in the latest version of the NVidia driver. - -Index: src/gui/kernel/qapplication_x11.cpp -=================================================================== ---- src/gui/kernel/qapplication_x11.cpp (revision 934506) -+++ src/gui/kernel/qapplication_x11.cpp (working copy) -@@ -1943,7 +1943,7 @@ void qt_init(QApplicationPrivate *priv, - // to determine whether the display is local or not (not 100 % accurate) - bool local = displayName.isEmpty() || displayName.lastIndexOf(QLatin1Char(':')) == 0; - if (local && (qgetenv("QT_X11_NO_MITSHM").toInt() == 0)) -- X11->use_mitshm = mitshm_pixmaps; -+ X11->use_mitshm = true; - } - #endif // QT_NO_MITSHM - -Index: src/gui/image/qnativeimage_p.h -=================================================================== ---- src/gui/image/qnativeimage_p.h (revision 930645) -+++ src/gui/image/qnativeimage_p.h (working copy) -@@ -85,7 +85,6 @@ - - #elif defined(Q_WS_X11) && !defined(QT_NO_MITSHM) - XImage *xshmimg; -- Pixmap xshmpm; - XShmSegmentInfo xshminfo; - - #elif defined(Q_WS_MAC) -Index: src/gui/image/qnativeimage.cpp -=================================================================== ---- src/gui/image/qnativeimage.cpp (revision 930645) -+++ src/gui/image/qnativeimage.cpp (working copy) -@@ -140,7 +140,6 @@ - { - if (!X11->use_mitshm) { - xshmimg = 0; -- xshmpm = 0; - image = QImage(width, height, format); - return; - } -@@ -184,11 +183,6 @@ - shmctl(xshminfo.shmid, IPC_RMID, 0); - return; - } -- xshmpm = XShmCreatePixmap(X11->display, DefaultRootWindow(X11->display), xshmimg->data, -- &xshminfo, width, height, dd); -- if (!xshmpm) { -- qWarning() << "QNativeImage: Unable to create shared Pixmap."; -- } - } - - -@@ -197,10 +191,6 @@ - if (!xshmimg) - return; - -- if (xshmpm) { -- XFreePixmap(X11->display, xshmpm); -- xshmpm = 0; -- } - XShmDetach(X11->display, &xshminfo); - xshmimg->data = 0; - XDestroyImage(xshmimg); -Index: src/gui/painting/qwindowsurface_raster.cpp -=================================================================== ---- src/gui/painting/qwindowsurface_raster.cpp (revision 930645) -+++ src/gui/painting/qwindowsurface_raster.cpp (working copy) -@@ -228,9 +228,16 @@ - - QRect br = rgn.boundingRect().translated(offset); - #ifndef QT_NO_MITSHM -- if (d_ptr->image->xshmpm) { -- XCopyArea(X11->display, d_ptr->image->xshmpm, widget->handle(), d_ptr->gc, -- br.x(), br.y(), br.width(), br.height(), wbr.x(), wbr.y()); -+ if (d_ptr->image->xshmimg && (br.width() * br.height() > 65536)) { -+ const QImage &src = d->image->image; -+ br = br.intersected(src.rect()); -+ // Hack to make sure we satisify the PutImage() constraints in the X server, -+ // since the doShmPutImage() route currently forces a migration to system ram. -+ wbr.setX(wbr.x() - br.x()); -+ br.setX(0); -+ br.setWidth(src.width()); -+ XShmPutImage(X11->display, widget->handle(), d_ptr->gc, d_ptr->image->xshmimg, -+ br.x(), br.y(), wbr.x(), wbr.y(), br.width(), br.height(), False); - XSync(X11->display, False); - } else - #endif |