From c420e1f1012dd6c09100df807d84d61f190443e6 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Mon, 21 Nov 2011 13:50:48 +0100 Subject: directfb: Use the QPlatformWindow in the DirectFB Backingstore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove usage of QDirectFbConvenience::dfbDisplayLayer in the QDirectFbBackingStore code and resolve the IDirectFBWindow through the QPlatformWindow. Change-Id: Ia7db8dedc91096648bc9de029d034002ba0d6a03 Reviewed-by: Jørgen Lind --- src/plugins/platforms/directfb/qdirectfbbackingstore.cpp | 11 +++-------- src/plugins/platforms/directfb/qdirectfbwindow.cpp | 5 +++++ 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 #include @@ -52,15 +53,9 @@ QT_BEGIN_NAMESPACE QDirectFbBackingStore::QDirectFbBackingStore(QWindow *window) : QPlatformBackingStore(window), m_pixmap(0), m_pmdata(0) { + IDirectFBWindow *dfbWindow = static_cast(window->handle())->dfbWindow(); + dfbWindow->GetSurface(dfbWindow, m_dfbSurface.outPtr()); - QDirectFBPointer layer(QDirectFbConvenience::dfbDisplayLayer()); - - DFBWindowID id(window->winId()); - QDirectFBPointer 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 m_dfbWindow; QDirectFbInput *m_inputHandler; -- cgit v1.2.3