[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/khtml/misc
From: Fredrik Höglund <fredrik () kde ! org>
Date: 2009-03-01 18:00:22
Message-ID: 1235930422.070480.9848.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 933834 by fredrik:
Fix an image corruption issue with the raster graphics system,
and a possible performance issue.
M +9 -7 loader.cpp
--- trunk/KDE/kdelibs/khtml/misc/loader.cpp #933833:933834
@@ -55,6 +55,8 @@
//#include <qasyncio.h>
//#include <qasyncimageio.h>
+#include <QtGui/QApplication>
+#include <QtGui/QDesktopWidget>
#include <QtGui/QPainter>
#include <QtGui/QBitmap>
#include <QtGui/QMovie>
@@ -615,20 +617,20 @@
int w = i->size().width();
int h = i->size().height();
- QPixmap pm(w, h);
- if (i->hasAlpha() && !pm.paintEngine()->hasFeature(QPaintEngine::PorterDuff)) {
+ if (i->hasAlpha() && \
!QApplication::desktop()->paintEngine()->hasFeature(QPaintEngine::PorterDuff)) { \
QImage im(w, h, QImage::Format_ARGB32_Premultiplied);
-
QPainter paint(&im);
+ paint.setCompositionMode(QPainter::CompositionMode_Source);
ImagePainter pi(i);
pi.paint(0, 0, &paint);
paint.end();
- return QPixmap::fromImage( im );
+ return QPixmap::fromImage( im, Qt::NoOpaqueDetection );
} else {
- pm.fill(Qt::transparent);
+ QPixmap pm(w, h);
+ if (i->hasAlpha())
+ pm.fill(Qt::transparent);
QPainter paint(&pm);
- if (i->hasAlpha())
- paint.setCompositionMode(QPainter::CompositionMode_Source);
+ paint.setCompositionMode(QPainter::CompositionMode_Source);
ImagePainter pi(i);
pi.paint(0, 0, &paint);
paint.end();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic