diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2011-11-21 13:50:48 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-24 12:11:04 +0100 |
commit | c420e1f1012dd6c09100df807d84d61f190443e6 (patch) | |
tree | 24160f3b2b97f38c3c450f6127a59e20ac4907ec /src/plugins | |
parent | 426cda9089e69ee9a068554c040ac23eb50d8b97 (diff) |
directfb: Use the QPlatformWindow in the DirectFB Backingstore
Remove usage of QDirectFbConvenience::dfbDisplayLayer in the
QDirectFbBackingStore code and resolve the IDirectFBWindow through
the QPlatformWindow.
Change-Id: Ia7db8dedc91096648bc9de029d034002ba0d6a03
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbbackingstore.cpp | 11 | ||||
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbwindow.cpp | 5 | ||||
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbwindow.h | 2 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp b/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp index a45a577ef9..9666deb1c7 100644 --- a/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp +++ b/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp @@ -43,6 +43,7 @@ #include "qdirectfbintegration.h" #include "qdirectfbblitter.h" #include "qdirectfbconvenience.h" +#include "qdirectfbwindow.h" #include <private/qpixmap_blitter_p.h> #include <QtCore/qdebug.h> @@ -52,15 +53,9 @@ QT_BEGIN_NAMESPACE QDirectFbBackingStore::QDirectFbBackingStore(QWindow *window) : QPlatformBackingStore(window), m_pixmap(0), m_pmdata(0) { + IDirectFBWindow *dfbWindow = static_cast<QDirectFbWindow *>(window->handle())->dfbWindow(); + dfbWindow->GetSurface(dfbWindow, m_dfbSurface.outPtr()); - QDirectFBPointer<IDirectFBDisplayLayer> layer(QDirectFbConvenience::dfbDisplayLayer()); - - DFBWindowID id(window->winId()); - QDirectFBPointer<IDirectFBWindow> dfbWindow; - - layer->GetWindow(layer.data(), id, dfbWindow.outPtr()); - - dfbWindow->GetSurface(dfbWindow.data(), m_dfbSurface.outPtr()); //WRONGSIZE QDirectFbBlitter *blitter = new QDirectFbBlitter(window->size(), m_dfbSurface.data()); m_pmdata = new QDirectFbBlitterPlatformPixmap; diff --git a/src/plugins/platforms/directfb/qdirectfbwindow.cpp b/src/plugins/platforms/directfb/qdirectfbwindow.cpp index 2e9dfc1d60..ac9a474cf8 100644 --- a/src/plugins/platforms/directfb/qdirectfbwindow.cpp +++ b/src/plugins/platforms/directfb/qdirectfbwindow.cpp @@ -194,3 +194,8 @@ bool QDirectFbWindow::setMouseGrabEnabled(bool grab) return res == DFB_OK; } + +IDirectFBWindow *QDirectFbWindow::dfbWindow() const +{ + return m_dfbWindow.data(); +} diff --git a/src/plugins/platforms/directfb/qdirectfbwindow.h b/src/plugins/platforms/directfb/qdirectfbwindow.h index 1169b8bf27..93fd940a23 100644 --- a/src/plugins/platforms/directfb/qdirectfbwindow.h +++ b/src/plugins/platforms/directfb/qdirectfbwindow.h @@ -67,6 +67,8 @@ public: void lower(); WId winId() const; + IDirectFBWindow *dfbWindow() const; + private: QDirectFBPointer<IDirectFBWindow> m_dfbWindow; QDirectFbInput *m_inputHandler; |