diff options
Diffstat (limited to 'src/plugins/platforms/directfb/qdirectfbwindow.cpp')
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbwindow.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbwindow.cpp b/src/plugins/platforms/directfb/qdirectfbwindow.cpp index e853b81f6f..4283cb9167 100644 --- a/src/plugins/platforms/directfb/qdirectfbwindow.cpp +++ b/src/plugins/platforms/directfb/qdirectfbwindow.cpp @@ -53,41 +53,41 @@ QT_BEGIN_NAMESPACE QDirectFbWindow::QDirectFbWindow(QWindow *tlw, QDirectFbInput *inputhandler) : QPlatformWindow(tlw), m_inputHandler(inputhandler) { +} + +void QDirectFbWindow::createDirectFBWindow() +{ + Q_ASSERT(!m_dfbWindow.data()); + DFBDisplayLayerConfig layerConfig; IDirectFBDisplayLayer *layer; - layer = toDfbScreen(tlw)->dfbLayer(); - toDfbScreen(tlw)->dfbLayer()->GetConfiguration(layer, &layerConfig); + layer = toDfbScreen(window())->dfbLayer(); + layer->GetConfiguration(layer, &layerConfig); DFBWindowDescription description; memset(&description,0,sizeof(DFBWindowDescription)); description.flags = DFBWindowDescriptionFlags(DWDESC_WIDTH|DWDESC_HEIGHT|DWDESC_POSX|DWDESC_POSY|DWDESC_SURFACE_CAPS -#if DIRECTFB_MINOR_VERSION >= 1 |DWDESC_OPTIONS -#endif |DWDESC_CAPS); - description.width = qMax(1, tlw->width()); - description.height = qMax(1, tlw->height()); - description.posx = tlw->x(); - description.posy = tlw->y(); + description.width = qMax(1, window()->width()); + description.height = qMax(1, window()->height()); + description.posx = window()->x(); + description.posy = window()->y(); if (layerConfig.surface_caps & DSCAPS_PREMULTIPLIED) description.surface_caps = DSCAPS_PREMULTIPLIED; description.pixelformat = layerConfig.pixelformat; -#if DIRECTFB_MINOR_VERSION >= 1 description.options = DFBWindowOptions(DWOP_ALPHACHANNEL); -#endif description.caps = DFBWindowCapabilities(DWCAPS_DOUBLEBUFFER|DWCAPS_ALPHACHANNEL); DFBResult result = layer->CreateWindow(layer, &description, m_dfbWindow.outPtr()); - if (result != DFB_OK) { + if (result != DFB_OK) DirectFBError("QDirectFbWindow: failed to create window", result); - } m_dfbWindow->SetOpacity(m_dfbWindow.data(), 0xff); - - m_inputHandler->addWindow(m_dfbWindow.data(), tlw); + m_inputHandler->addWindow(m_dfbWindow.data(), window()); } QDirectFbWindow::~QDirectFbWindow() |