summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb/qdirectfbintegration.cpp
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2011-09-19 00:57:45 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-21 16:54:45 +0200
commit500dc2a6f888e283c6d40730bdf7c2998ee0437b (patch)
treeeb1803d6ac87fb68f211fb2ffadd59cff805c0dc /src/plugins/platforms/directfb/qdirectfbintegration.cpp
parent405894fc39cdab937c38b917adf4e8d390f80790 (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.cpp15
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();