diff options
author | Anders Bakken <anders.bakken@nokia.com> | 2009-04-28 03:36:29 (GMT) |
---|---|---|
committer | Anders Bakken <anders.bakken@nokia.com> | 2009-04-28 20:12:05 (GMT) |
commit | 2e9071afbf86ca3143552a3eed75418328b5ce6c (patch) | |
tree | 37e15cca39c2fc9b32de956306d9b31956210a65 /src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp | |
parent | de14db188ada5e00980a152dadb13d38438a7fa2 (diff) | |
download | Qt-2e9071afbf86ca3143552a3eed75418328b5ce6c.zip Qt-2e9071afbf86ca3143552a3eed75418328b5ce6c.tar.gz Qt-2e9071afbf86ca3143552a3eed75418328b5ce6c.tar.bz2 |
Added an option for ignoring the system clip
This is currently the only way I can make QGraphicsView not have to fall
back to the raster engine for all operations. It seems the QRegion
passed to the paintEvent of QGraphicsView also is set as the systemClip
which in the end makes the QRasterPaintEngine's clipRegion equal the
systemClip. By exporting QWS_DISPLAY=directfb:ignoresystemclip you can
now draw without having a complex clip and therefore take advantage of
hw acceleration with DirectFB.
Reviewed-By: Donald <qt-info@nokia.com>
Diffstat (limited to 'src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp')
-rw-r--r-- | src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp index 3e54e7f..177df1d 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp @@ -81,6 +81,7 @@ public: QDirectFBKeyboardHandler *keyboard; #endif bool videoonly; + bool ignoreSystemClip; QImage::Format alphaPixmapFormat; }; @@ -97,6 +98,7 @@ QDirectFBScreenPrivate::QDirectFBScreenPrivate(QDirectFBScreen* screen) , keyboard(0) #endif , videoonly(false) + , ignoreSystemClip(false) , alphaPixmapFormat(QImage::Format_Invalid) { #ifndef QT_NO_QWS_SIGNALHANDLER @@ -826,6 +828,9 @@ bool QDirectFBScreen::connect(const QString &displaySpec) if (displayArgs.contains(QLatin1String("videoonly"))) d_ptr->videoonly = true; + if (displayArgs.contains(QLatin1String("ignoresystemclip"), Qt::CaseInsensitive)) + d_ptr->ignoreSystemClip = true; + #ifndef QT_NO_DIRECTFB_WM if (displayArgs.contains(QLatin1String("fullscreen"))) #endif @@ -1256,3 +1261,7 @@ uchar *QDirectFBScreen::lockSurface(IDirectFBSurface *surface, DFBSurfaceLockFla return reinterpret_cast<uchar*>(mem); } +bool QDirectFBScreen::ignoreSystemClip() const +{ + return d_ptr->ignoreSystemClip; +} |