SOURCES: 0001-dnd_optimization.patch, 0005-qpixmap_mitshm.patch, 0...

arekm arekm at pld-linux.org
Sat Feb 24 16:11:02 CET 2007


Author: arekm                        Date: Sat Feb 24 15:11:02 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- update from upstream

---- Files affected:
SOURCES:
   0001-dnd_optimization.patch (1.1 -> 1.2) , 0005-qpixmap_mitshm.patch (1.1 -> 1.2) , 0007-qpixmap_constants.patch (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: SOURCES/0001-dnd_optimization.patch
diff -u SOURCES/0001-dnd_optimization.patch:1.1 SOURCES/0001-dnd_optimization.patch:1.2
--- SOURCES/0001-dnd_optimization.patch:1.1	Mon Feb  5 18:34:40 2007
+++ SOURCES/0001-dnd_optimization.patch	Sat Feb 24 16:10:57 2007
@@ -5,8 +5,9 @@
 See http://lists.kde.org/?t=104388858900001&r=1&w=2
 
 
---- src/kernel/qdnd_x11.cpp.sav	2003-02-05 16:09:45.000000000 +0100
-+++ src/kernel/qdnd_x11.cpp	2003-02-07 16:14:49.000000000 +0100
+
+--- src/kernel/qdnd_x11.cpp
++++ src/kernel/qdnd_x11.cpp
 @@ -49,13 +49,15 @@
  #include "qdragobject.h"
  #include "qobjectlist.h"
@@ -25,7 +26,7 @@
  #undef KeyPress
  #undef KeyRelease
  
-@@ -249,20 +251,47 @@ class QShapedPixmapWidget : public QWidg
+@@ -253,20 +255,47 @@ class QShapedPixmapWidget : public QWidg
  public:
      QShapedPixmapWidget(int screen = -1) :
  	QWidget(QApplication::desktop()->screen( screen ),
@@ -75,8 +76,8 @@
 +    QPoint oldhot;
  };
  
- QShapedPixmapWidget * qt_xdnd_deco = 0;
-@@ -859,6 +888,45 @@ void QDragManager::timerEvent( QTimerEve
+ static QShapedPixmapWidget * qt_xdnd_deco = 0;
+@@ -872,6 +901,45 @@ void QDragManager::timerEvent( QTimerEve
  	move( QCursor::pos() );
  }
  
@@ -122,7 +123,7 @@
  bool QDragManager::eventFilter( QObject * o, QEvent * e)
  {
      if ( beingCancelled ) {
-@@ -881,8 +949,10 @@ bool QDragManager::eventFilter( QObject 
+@@ -894,8 +962,10 @@ bool QDragManager::eventFilter( QObject 
  
      if ( e->type() == QEvent::MouseMove ) {
  	QMouseEvent* me = (QMouseEvent *)e;
@@ -135,16 +136,16 @@
  	return TRUE;
      } else if ( e->type() == QEvent::MouseButtonRelease ) {
  	qApp->removeEventFilter( this );
-@@ -1106,7 +1176,7 @@ void QDragManager::move( const QPoint & 
- 	delete qt_xdnd_deco;
- 	qt_xdnd_deco = new QShapedPixmapWidget( screen );
+@@ -1136,7 +1206,7 @@ void QDragManager::move( const QPoint & 
+ 	    qt_xdnd_deco->grabMouse();
+ 	}
      }
 -    updatePixmap();
 +    updatePixmap( globalPos );
  
      if ( qt_xdnd_source_sameanswer.contains( globalPos ) &&
  	 qt_xdnd_source_sameanswer.isValid() ) {
-@@ -1679,7 +1749,7 @@ bool QDragManager::drag( QDragObject * o
+@@ -1729,7 +1799,7 @@ bool QDragManager::drag( QDragObject * o
      // qt_xdnd_source_object persists until we get an xdnd_finish message
  }
  
@@ -153,7 +154,7 @@
  {
      if ( qt_xdnd_deco ) {
  	QPixmap pm;
-@@ -1694,9 +1764,8 @@ void QDragManager::updatePixmap()
+@@ -1744,9 +1814,8 @@ void QDragManager::updatePixmap()
  		defaultPm = new QPixmap(default_pm);
  	    pm = *defaultPm;
  	}
@@ -165,7 +166,7 @@
  	    //if ( willDrop ) {
  	    qt_xdnd_deco->show();
  	    //} else {
-@@ -1705,4 +1774,9 @@ void QDragManager::updatePixmap()
+@@ -1755,4 +1824,9 @@ void QDragManager::updatePixmap()
      }
  }
  
@@ -175,8 +176,8 @@
 +}
 +
  #endif // QT_NO_DRAGANDDROP
---- src/kernel/qdragobject.h.sav	2002-11-01 19:25:07.000000000 +0100
-+++ src/kernel/qdragobject.h	2001-01-01 01:01:00.000000000 +0100
+--- src/kernel/qdragobject.h
++++ src/kernel/qdragobject.h
 @@ -245,6 +245,7 @@ private:
      void move( const QPoint & );
      void drop();

================================================================
Index: SOURCES/0005-qpixmap_mitshm.patch
diff -u SOURCES/0005-qpixmap_mitshm.patch:1.1 SOURCES/0005-qpixmap_mitshm.patch:1.2
--- SOURCES/0005-qpixmap_mitshm.patch:1.1	Mon Feb  5 18:34:40 2007
+++ SOURCES/0005-qpixmap_mitshm.patch	Sat Feb 24 16:10:57 2007
@@ -67,8 +67,9 @@
 about 40% for 32bpp. Imlib probably still beats that, but at least this 
 obsoletes KPixmapIO.
 
---- src/kernel/qpixmap_x11.cpp.sav	2003-06-30 15:14:46.000000000 +0200
-+++ src/kernel/qpixmap_x11.cpp	2003-06-30 15:51:37.000000000 +0200
+
+--- src/kernel/qpixmap_x11.cpp
++++ src/kernel/qpixmap_x11.cpp
 @@ -37,7 +37,19 @@
  
  // NOT REVISED
@@ -123,7 +124,7 @@
  
 -#endif // QT_MITSHM
 +#endif // QT_MITSHM_XFORM
- 
++
 +#ifdef QT_MITSHM_CONVERSIONS
 +
 +static bool qt_mitshm_error = false;
@@ -214,17 +215,16 @@
 +    }
 +    return xi;
 +}
-+
+ 
 +#endif // QT_MITSHM_CONVERSIONS
  
  /*****************************************************************************
    Internal functions
-@@ -625,9 +728,20 @@ QImage QPixmap::convertToImage() const
+@@ -627,9 +730,20 @@ QImage QPixmap::convertToImage() const
  	d = 32;					//   > 8  ==> 32
  
      XImage *xi = (XImage *)data->ximage;	// any cached ximage?
 -    if ( !xi )					// fetch data from X server
--	xi = XGetImage( x11Display(), hd, 0, 0, w, h, AllPlanes,
 +#ifdef QT_MITSHM_CONVERSIONS
 +    bool mitshm_ximage = false;
 +    XShmSegmentInfo shminfo;
@@ -236,13 +236,13 @@
 +            mitshm_ximage = true;
 +        } else
 +#endif
-+	    xi = XGetImage( x11Display(), hd, 0, 0, w, h, AllPlanes,
+ 	xi = XGetImage( x11Display(), hd, 0, 0, w, h, AllPlanes,
  			mono ? XYPixmap : ZPixmap );
 +    }
      Q_CHECK_PTR( xi );
- 
-     QImage::Endian bitOrder = QImage::IgnoreEndian;
-@@ -636,15 +750,31 @@ QImage QPixmap::convertToImage() const
+     if (!xi)
+         return image; // null image
+@@ -640,15 +754,31 @@ QImage QPixmap::convertToImage() const
  		   QImage::LittleEndian : QImage::BigEndian;
      }
      image.create( w, h, d, 0, bitOrder );
@@ -276,21 +276,19 @@
  
  	if (axi) {
  	    image.setAlphaBuffer( TRUE );
-@@ -658,7 +788,12 @@ QImage QPixmap::convertToImage() const
+@@ -662,6 +792,11 @@ QImage QPixmap::convertToImage() const
  		src += axi->bytes_per_line;
  	    }
  
--	    qSafeXDestroyImage( axi );
 +#ifdef QT_MITSHM_CONVERSIONS
 +            if( mitshm_aximage )
 +                qt_XShmDestroyImage( axi, &ashminfo );
 +            else
 +#endif
-+    	        qSafeXDestroyImage( axi );
+ 	    qSafeXDestroyImage( axi );
  	}
      } else if (msk) {
- 	image.setAlphaBuffer( TRUE );
-@@ -800,6 +935,12 @@ QImage QPixmap::convertToImage() const
+@@ -804,6 +939,12 @@ QImage QPixmap::convertToImage() const
  		  xi->bits_per_pixel );
  #endif
  	image.reset();
@@ -303,17 +301,16 @@
  	return image;
      }
  
-@@ -905,10 +1046,22 @@ QImage QPixmap::convertToImage() const
+@@ -909,10 +1050,22 @@ QImage QPixmap::convertToImage() const
  	delete [] carr;
      }
      if ( data->optim != BestOptim ) {		// throw away image data
--	qSafeXDestroyImage( xi );
 +#ifdef QT_MITSHM_CONVERSIONS
 +        if( mitshm_ximage )
 +            qt_XShmDestroyImage( xi, &shminfo );
 +        else
 +#endif
-+            qSafeXDestroyImage( xi );
+ 	qSafeXDestroyImage( xi );
  	((QPixmap*)this)->data->ximage = 0;
 -    } else					// keep ximage data
 +    } else {					// keep ximage data
@@ -328,8 +325,8 @@
  
      return image;
  }
-@@ -1078,6 +1231,11 @@ bool QPixmap::convertFromImage( const QI
-     bool    trucol = (visual->c_class == TrueColor);
+@@ -1085,6 +1238,11 @@ bool QPixmap::convertFromImage( const QI
+     bool    trucol = (visual->c_class == TrueColor || visual->c_class == DirectColor);
      int	    nbytes = image.numBytes();
      uchar  *newbits= 0;
 +    int newbits_size = 0;
@@ -340,28 +337,27 @@
  
      if ( trucol ) {				// truecolor display
  	QRgb  pix[256];				// pixel translation table
-@@ -1106,9 +1264,18 @@ bool QPixmap::convertFromImage( const QI
+@@ -1113,10 +1271,18 @@ bool QPixmap::convertFromImage( const QI
  	    }
  	}
  
--	xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
 +#ifdef QT_MITSHM_CONVERSIONS
-+        xi = qt_XShmCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0, &shminfo );
-+        if( xi != NULL ) {
-+            mitshm_ximage = true;
-+            newbits = (uchar*)xi->data;
-+        }
-+        else
-+#endif
-+	    xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
- 	Q_CHECK_PTR( xi );
--	newbits = (uchar *)malloc( xi->bytes_per_line*h );
-+        if( newbits == NULL )
-+    	    newbits = (uchar *)malloc( xi->bytes_per_line*h );
++	xi = qt_XShmCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0, &shminfo );
++	if( xi != NULL ) {
++	    mitshm_ximage = true;
++	    newbits = (uchar*)xi->data;
++	}
++	else
++#endif
+ 	xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
+-	Q_CHECK_PTR( xi );
+         if (!xi)
+             return false;
++	if( newbits == NULL )
+ 	newbits = (uchar *)malloc( xi->bytes_per_line*h );
  	Q_CHECK_PTR( newbits );
  	if ( !newbits )				// no memory
- 	    return FALSE;
-@@ -1314,6 +1481,7 @@ bool QPixmap::convertFromImage( const QI
+@@ -1323,6 +1489,7 @@ bool QPixmap::convertFromImage( const QI
  	}
  
  	newbits = (uchar *)malloc( nbytes );	// copy image into newbits
@@ -369,18 +365,17 @@
  	Q_CHECK_PTR( newbits );
  	if ( !newbits )				// no memory
  	    return FALSE;
-@@ -1431,11 +1599,18 @@ bool QPixmap::convertFromImage( const QI
+@@ -1440,11 +1607,18 @@ bool QPixmap::convertFromImage( const QI
      }
  
      if ( !xi ) {				// X image not created
--	xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
 +#ifdef QT_MITSHM_CONVERSIONS
 +        xi = qt_XShmCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0, &shminfo );
 +        if( xi != NULL )
 +            mitshm_ximage = true;
 +        else
 +#endif
-+	    xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
+ 	xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
  	if ( xi->bits_per_pixel == 16 ) {	// convert 8 bpp ==> 16 bpp
  	    ushort *p2;
  	    int	    p2inc = xi->bytes_per_line/sizeof(ushort);
@@ -389,11 +384,10 @@
  	    Q_CHECK_PTR( newerbits );
  	    if ( !newerbits )				// no memory
  		return FALSE;
-@@ -1453,7 +1628,15 @@ bool QPixmap::convertFromImage( const QI
+@@ -1462,6 +1636,14 @@ bool QPixmap::convertFromImage( const QI
  		      "(bpp=%d)", xi->bits_per_pixel );
  #endif
  	}
--	xi->data = (char *)newbits;
 +#ifdef QT_MITSHM_CONVERSIONS
 +        if( newbits_size > 0 && mitshm_ximage ) { // need to copy to shared memory
 +            memcpy( xi->data, newbits, newbits_size );
@@ -402,24 +396,21 @@
 +        }
 +        else
 +#endif
-+            xi->data = (char *)newbits;
+ 	xi->data = (char *)newbits;
      }
  
-     if ( hd && (width() != (int)w || height() != (int)h || this->depth() != dd) ) {
-@@ -1486,19 +1669,24 @@ bool QPixmap::convertFromImage( const QI
+@@ -1495,19 +1677,24 @@ bool QPixmap::convertFromImage( const QI
  
      }
  
--    XPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE  ),
--	       xi, 0, 0, 0, 0, w, h );
 +#ifdef QT_MITSHM_CONVERSIONS
 +    if( mitshm_ximage )
 +        XShmPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE ),
 +                      xi, 0, 0, 0, 0, w, h, False );
 +    else
 +#endif
-+        XPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE  ),
-+                   xi, 0, 0, 0, 0, w, h );
+     XPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE  ),
+ 	       xi, 0, 0, 0, 0, w, h );
  
 -    if ( data->optim != BestOptim ) {		// throw away image
 -	qSafeXDestroyImage( xi );
@@ -439,46 +430,41 @@
      if ( image.hasAlphaBuffer() ) {
  	QBitmap m;
  	m = image.createAlphaMask( conversion_flags );
-@@ -1534,13 +1722,22 @@ bool QPixmap::convertFromImage( const QI
+@@ -1543,13 +1730,22 @@ bool QPixmap::convertFromImage( const QI
  	    data->alphapm->rendhd =
  		(HANDLE) XftDrawCreateAlpha( x11Display(), data->alphapm->hd, 8 );
  
 -	    XImage *axi = XCreateImage(x11Display(), (Visual *) x11Visual(),
--				       8, ZPixmap, 0, 0, w, h, 8, 0);
 +#ifdef QT_MITSHM_CONVERSIONS
-+            axi = qt_XShmCreateImage( x11Display(), (Visual*)x11Visual(),
-+                                      8, ZPixmap, 0, 0, w, h, 8, 0, &ashminfo );
-+            if( axi != NULL )
-+                mitshm_aximage = true;
-+            else
++	    axi = qt_XShmCreateImage( x11Display(), (Visual*)x11Visual(),
++		    8, ZPixmap, 0, 0, w, h, 8, 0, &ashminfo );
++	    if( axi != NULL )
++		mitshm_aximage = true;
++	    else
 +#endif
-+	        axi = XCreateImage(x11Display(), (Visual *) x11Visual(),
-+				   8, ZPixmap, 0, 0, w, h, 8, 0);
++		axi = XCreateImage(x11Display(), (Visual *) x11Visual(),
+ 				       8, ZPixmap, 0, 0, w, h, 8, 0);
  
  	    if (axi) {
--		// the data is deleted by qSafeXDestroyImage
--		axi->data = (char *) malloc(h * axi->bytes_per_line);
--		Q_CHECK_PTR( axi->data );
-+                if( axi->data==NULL ) {
-+		    // the data is deleted by qSafeXDestroyImage
-+		    axi->data = (char *) malloc(h * axi->bytes_per_line);
-+		    Q_CHECK_PTR( axi->data );
-+                }
- 		char *aptr = axi->data;
- 
- 		if (image.depth() == 32) {
-@@ -1558,14 +1755,48 @@ bool QPixmap::convertFromImage( const QI
- 		}
- 
- 		GC gc = XCreateGC(x11Display(), data->alphapm->hd, 0, 0);
--		XPutImage(dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h);
-+#ifdef QT_MITSHM_CONVERSIONS
-+                if( mitshm_aximage )
-+                    XShmPutImage( dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h, False );
-+                else
++		if( axi->data==NULL ) {
+ 		// the data is deleted by qSafeXDestroyImage
+                 axi->data = (char *) malloc(h * axi->bytes_per_line);
+ 		Q_CHECK_PTR( axi->data );
++		}
+                 char *aptr = axi->data;
+ 
+                 if (image.depth() == 32) {
+@@ -1567,14 +1763,48 @@ bool QPixmap::convertFromImage( const QI
+                 }
+ 
+                 GC gc = XCreateGC(x11Display(), data->alphapm->hd, 0, 0);
++ #ifdef QT_MITSHM_CONVERSIONS
++		if( mitshm_aximage )
++		    XShmPutImage( dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h, False );
++		else
 +#endif
-+		    XPutImage(dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h);
- 		XFreeGC(x11Display(), gc);
+                 XPutImage(dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h);
+                 XFreeGC(x11Display(), gc);
 -		qSafeXDestroyImage(axi);
  	    }
  	}
@@ -490,22 +476,22 @@
 +        XSync( x11Display(), False ); // wait until processed
 +#endif
 +
-+    if ( data->optim != BestOptim ) {		// throw away image
++    if ( data->optim != BestOptim ) {       // throw away image
 +#ifdef QT_MITSHM_CONVERSIONS
 +        if( mitshm_ximage )
 +            qt_XShmDestroyImage( xi, &shminfo );
 +        else
 +#endif
-+	qSafeXDestroyImage( xi );
-+	data->ximage = 0;
-+    } else {					// keep ximage that we created
++     qSafeXDestroyImage( xi );
++     data->ximage = 0;
++    } else {      // keep ximage that we created
 +#ifdef QT_MITSHM_CONVERSIONS
 +        if( mitshm_ximage ) { // copy the XImage?
 +            qt_XShmDestroyImage( xi, &shminfo );
 +            xi = 0;
 +        }
 +#endif
-+	data->ximage = xi;
++     data->ximage = xi;
 +    }
 +    if( axi ) {
 +#ifdef QT_MITSHM_CONVERSIONS
@@ -518,7 +504,7 @@
      return TRUE;
  }
  
-@@ -1722,7 +1953,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
+@@ -1737,7 +1967,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
  	return pm;
      }
  
@@ -527,7 +513,7 @@
      static bool try_once = TRUE;
      if (try_once) {
  	try_once = FALSE;
-@@ -1755,7 +1986,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
+@@ -1770,7 +2000,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
  	dbpl = ((w*bpp+31)/32)*4;
      dbytes = dbpl*h;
  
@@ -536,7 +522,7 @@
      if ( use_mitshm ) {
  	dptr = (uchar *)xshmimg->data;
  	uchar fillbyte = bpp == 8 ? white.pixel() : 0xff;
-@@ -1771,7 +2002,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
+@@ -1786,7 +2016,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
  	    memset( dptr, Qt::white.pixel( x11Screen() ), dbytes );
  	else
  	    memset( dptr, 0xff, dbytes );
@@ -545,7 +531,7 @@
      }
  #endif
  
-@@ -1802,7 +2033,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
+@@ -1817,7 +2047,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
      } else {
  	xbpl  = (w*bpp)/8;
  	p_inc = dbpl - xbpl;
@@ -554,7 +540,7 @@
  	if ( use_mitshm )
  	    p_inc = xshmimg->bytes_per_line - xbpl;
  #endif
-@@ -1839,7 +2070,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
+@@ -1854,7 +2084,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
  	QPixmap pm( w, h );
  	pm.data->uninit = FALSE;
  	pm.x11SetScreen( x11Screen() );
@@ -563,7 +549,7 @@
  	if ( use_mitshm ) {
  	    XCopyArea( dpy, xshmpm, pm.handle(), gc, 0, 0, w, h, 0, 0 );
  	} else {
-@@ -1848,7 +2079,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
+@@ -1863,7 +2093,7 @@ QPixmap QPixmap::xForm( const QWMatrix &
  			       ZPixmap, 0, (char *)dptr, w, h, 32, 0 );
  	    XPutImage( dpy, pm.handle(), gc, xi, 0, 0, 0, 0, w, h);
  	    qSafeXDestroyImage( xi );
@@ -572,8 +558,8 @@
  	}
  #endif
  
---- mkspecs/linux-g++/qplatformdefs.h.sav	2003-01-03 19:04:11.000000000 +0100
-+++ mkspecs/linux-g++/qplatformdefs.h	2003-06-30 17:56:39.000000000 +0200
+--- mkspecs/linux-g++/qplatformdefs.h
++++ mkspecs/linux-g++/qplatformdefs.h
 @@ -102,5 +102,6 @@
  #define QT_VSNPRINTF		::vsnprintf
  #endif

================================================================
Index: SOURCES/0007-qpixmap_constants.patch
diff -u SOURCES/0007-qpixmap_constants.patch:1.1 SOURCES/0007-qpixmap_constants.patch:1.2
--- SOURCES/0007-qpixmap_constants.patch:1.1	Mon Feb  5 18:34:40 2007
+++ SOURCES/0007-qpixmap_constants.patch	Sat Feb 24 16:10:57 2007
@@ -4,9 +4,10 @@
 
 See 0005-qpixmap_mitshm.patch for details.
 
---- src/kernel/qpixmap_x11.cpp.sav	Tue Nov 26 15:32:21 2002
-+++ src/kernel/qpixmap_x11.cpp	Tue Nov 26 15:37:21 2002
-@@ -1278,9 +1278,6 @@ bool QPixmap::convertFromImage( const QI
+
+--- src/kernel/qpixmap_x11.cpp
++++ src/kernel/qpixmap_x11.cpp
+@@ -1123,9 +1123,6 @@ bool QPixmap::convertFromImage( const QI
  	    return FALSE;
  	int    bppc = xi->bits_per_pixel;
  
@@ -16,7 +17,7 @@
  	bool contig_bits = n_bits(red_mask) == rbits &&
                             n_bits(green_mask) == gbits &&
                             n_bits(blue_mask) == bbits;
-@@ -1329,32 +1326,70 @@ bool QPixmap::convertFromImage( const QI
+@@ -1174,32 +1171,70 @@ bool QPixmap::convertFromImage( const QI
  	    }
  	    init=TRUE;
  	}
@@ -103,7 +104,7 @@
  #define GET_PIXEL_DITHER_TC \
  		int r = qRed  ( *p ); \
  		int g = qGreen( *p ); \
-@@ -1374,91 +1409,177 @@ bool QPixmap::convertFromImage( const QI
+@@ -1220,91 +1255,177 @@ bool QPixmap::convertFromImage( const QI
  		    ? g << green_shift : g >> -green_shift; \
  		b = blue_shift  > 0 \
  		    ? b << blue_shift  : b >> -blue_shift; \
@@ -353,17 +354,17 @@
      }
  
      if ( d == 8 && !trucol ) {			// 8 bit pixmap
-@@ -1738,15 +1859,24 @@ bool QPixmap::convertFromImage( const QI
+@@ -1554,15 +1675,24 @@ bool QPixmap::convertFromImage( const QI
  
- 		if (image.depth() == 32) {
- 		    const int *iptr = (const int *) image.bits();
--		    int max = w * h;
--		    while (max--)
--			*aptr++ = *iptr++ >> 24; // squirt
+                 if (image.depth() == 32) {
+                     const int *iptr = (const int *) image.bits();
+-                    int max = w * h;
+-                    while (max--)
+-                        *aptr++ = *iptr++ >> 24; // squirt
 +                    if( axi->bytes_per_line == (int)w ) {
-+		        int max = w * h;
-+		        while (max--)
-+			    *aptr++ = *iptr++ >> 24; // squirt
++                        int max = w * h;
++                        while (max--)
++                            *aptr++ = *iptr++ >> 24; // squirt
 +                    } else {
 +                        for (uint i = 0; i < h; ++i ) {
 +                            for (uint j = 0; j < w; ++j )
@@ -371,13 +372,13 @@
 +                            aptr += ( axi->bytes_per_line - w );
 +                        }
 +                    }
- 		} else if (image.depth() == 8) {
- 		    const QRgb * const rgb = image.colorTable();
- 		    for (uint y = 0; y < h; ++y) {
- 			const uchar *iptr = image.scanLine(y);
- 			for (uint x = 0; x < w; ++x)
- 			    *aptr++ = qAlpha(rgb[*iptr++]);
+                 } else if (image.depth() == 8) {
+                     const QRgb * const rgb = image.colorTable();
+                     for (uint y = 0; y < h; ++y) {
+                         const uchar *iptr = image.scanLine(y);
+                         for (uint x = 0; x < w; ++x)
+                             *aptr++ = qAlpha(rgb[*iptr++]);
 +                        aptr += ( axi->bytes_per_line - w );
- 		    }
- 		}
+                     }
+                 }
  
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/0001-dnd_optimization.patch?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/SOURCES/0005-qpixmap_mitshm.patch?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/SOURCES/0007-qpixmap_constants.patch?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list