diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2011-09-19 00:57:45 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-21 16:54:45 +0200 |
commit | 500dc2a6f888e283c6d40730bdf7c2998ee0437b (patch) | |
tree | eb1803d6ac87fb68f211fb2ffadd59cff805c0dc /src/plugins/platforms/directfb/qdirectfbintegration.cpp | |
parent | 405894fc39cdab937c38b917adf4e8d390f80790 (diff) |
[directfb] Introduce the QDirectFBPointer from QWS/gfxdrivers
Introduce QDirectFBPointer and use it throughout the code to
fix various resource leaks in the DirectFB backend. Fix the surface
ownership of the IDirectFBSurface in the Blittable/BackingStore
code.
Change-Id: I0d4572eaab80b3558e644f26d76222461bf37bbb
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src/plugins/platforms/directfb/qdirectfbintegration.cpp')
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbintegration.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbintegration.cpp b/src/plugins/platforms/directfb/qdirectfbintegration.cpp index cc667f4666..ab96733027 100644 --- a/src/plugins/platforms/directfb/qdirectfbintegration.cpp +++ b/src/plugins/platforms/directfb/qdirectfbintegration.cpp @@ -61,12 +61,12 @@ QT_BEGIN_NAMESPACE QDirectFbScreen::QDirectFbScreen(int display) : QPlatformScreen() + , m_layer(QDirectFbConvenience::dfbDisplayLayer(display)) { - m_layer = QDirectFbConvenience::dfbDisplayLayer(display); - m_layer->SetCooperativeLevel(m_layer,DLSCL_SHARED); + m_layer->SetCooperativeLevel(m_layer.data(), DLSCL_SHARED); DFBDisplayLayerConfig config; - m_layer->GetConfiguration(m_layer, &config); + m_layer->GetConfiguration(m_layer.data(), &config); m_format = QDirectFbConvenience::imageFormatFromSurfaceFormat(config.pixelformat, config.surface_caps); m_geometry = QRect(0,0,config.width,config.height); @@ -79,7 +79,8 @@ QDirectFbScreen::QDirectFbScreen(int display) } QDirectFbIntegration::QDirectFbIntegration() - : m_fontDb(new QGenericUnixFontDatabase()) + : m_dfb(QDirectFbConvenience::dfbInterface()) + , m_fontDb(new QGenericUnixFontDatabase()) , m_eventDispatcher(createUnixEventDispatcher()) { QGuiApplicationPrivate::instance()->setEventDispatcher(m_eventDispatcher); @@ -101,10 +102,8 @@ QDirectFbIntegration::QDirectFbIntegration() delete[] argv[i]; delete[] argv; - - - QDirectFbScreen *primaryScreen = new QDirectFbScreen(0); - screenAdded(primaryScreen); + m_primaryScreen.reset(new QDirectFbScreen(0)); + screenAdded(m_primaryScreen.data()); m_input.reset(new QDirectFbInput()); m_input->start(); |