src/opengl/qpixmapdata_gl.cpp
changeset 37 758a864f9613
parent 18 2f34d5167611
--- a/src/opengl/qpixmapdata_gl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qpixmapdata_gl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -367,7 +367,7 @@
 }
 
 void QGLPixmapData::fromImage(const QImage &image,
-                              Qt::ImageConversionFlags /*flags*/)
+                              Qt::ImageConversionFlags flags)
 {
     if (image.size() == QSize(w, h))
         setSerialNumber(++qt_gl_pixmap_serial);
@@ -381,7 +381,9 @@
         if (qApp->desktop()->depth() == 16)
             format = QImage::Format_RGB16;
 
-        if (image.hasAlphaChannel() && const_cast<QImage &>(image).data_ptr()->checkForAlphaPixels())
+        if (image.hasAlphaChannel()
+            && ((flags & Qt::NoOpaqueDetection)
+                || const_cast<QImage &>(image).data_ptr()->checkForAlphaPixels()))
             format = QImage::Format_ARGB32_Premultiplied;;
 
         m_source = image.convertToFormat(format);