diff options
author | Anders Bakken <anders.bakken@nokia.com> | 2009-07-13 20:03:26 (GMT) |
---|---|---|
committer | Anders Bakken <anders.bakken@nokia.com> | 2009-07-13 20:34:18 (GMT) |
commit | b4b9e2908f74a61170d9d84597b90ed0d60f74fc (patch) | |
tree | e91b38deba32d6015c68bc0ae75c8838b4103d54 | |
parent | afb4dfc7b9536b7e7f443a89e94f331f8946de07 (diff) | |
download | Qt-b4b9e2908f74a61170d9d84597b90ed0d60f74fc.zip Qt-b4b9e2908f74a61170d9d84597b90ed0d60f74fc.tar.gz Qt-b4b9e2908f74a61170d9d84597b90ed0d60f74fc.tar.bz2 |
Fix QDirectFBPixmap::toImage
Preallocated surfaces can currently be copied to video memory behind our
back. This means that we can not use this mechanism for toImage()
In later versions of DirectFB this might be possible to toggle with a
flag so I'll leave the code in there #if 0'ed
Reviewed-by: Donald <qt-info@nokia.com>
-rw-r--r-- | src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp index ce3d6e4..c75cba6 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp @@ -329,6 +329,10 @@ QImage QDirectFBPixmapData::toImage() const if (!dfbSurface) return QImage(); +#if 0 + // In later versions of DirectFB one can set a flag to tell + // DirectFB not to move the surface to videomemory. When that + // happens we can use this (hopefully faster) codepath #ifndef QT_NO_DIRECTFB_PREALLOCATED QImage ret(size(), QDirectFBScreen::getImageFormat(dfbSurface)); if (IDirectFBSurface *imgSurface = screen->createDFBSurface(ret, QDirectFBScreen::DontTrackSurface)) { @@ -346,6 +350,7 @@ QImage QDirectFBPixmapData::toImage() const return ret; } #endif +#endif QDirectFBPixmapData *that = const_cast<QDirectFBPixmapData*>(this); const QImage *img = that->buffer(); |