12#include <QtGui/private/qgenericunixfontdatabase_p.h>
13#include <QtGui/private/qgenericunixeventdispatcher_p.h>
15#include <QtGui/private/qpixmap_blitter_p.h>
16#include <QtGui/private/qpixmap_raster_p.h>
17#include <QtGui/private/qguiapplication_p.h>
18#include <qpa/qplatformpixmap.h>
19#include <QtCore/QCoreApplication>
20#include <QtCore/QThread>
21#include <QtCore/QAbstractEventDispatcher>
22#include <qpa/qplatforminputcontextfactory_p.h>
23#include <qpa/qwindowsysteminterface.h>
24#include <qpa/qplatformservices.h>
28QDirectFbIntegration::QDirectFbIntegration()
29 : m_fontDb(
new QGenericUnixFontDatabase())
39 m_inputContext = QPlatformInputContextFactory::create();
45 case ThreadedPixmaps:
return true;
46 case MultipleWindows:
return true;
48 case OpenGL:
return true;
49 case ThreadedOpenGL:
return true;
51 default:
return QPlatformIntegration::hasCapability(cap);
57 const QStringList args = QCoreApplication::arguments();
58 int argc = args.size();
59 char **argv =
new char*[argc];
61 for (
int i = 0; i < argc; ++i)
62 argv[i] = qstrdup(args.at(i).toLocal8Bit().constData());
64 DFBResult result = DirectFBInit(&argc, &argv);
65 if (result != DFB_OK) {
66 DirectFBError(
"QDirectFBScreen: error initializing DirectFB",
70 for (
int i = 0; i < argc; ++i)
75 m_dfb.reset(QDirectFbConvenience::dfbInterface());
80 m_primaryScreen.reset(
new QDirectFbScreen(0));
81 QWindowSystemInterface::handleScreenAdded(m_primaryScreen.data());
86 m_input.reset(
new QDirectFbInput(m_dfb.data(), m_primaryScreen->dfbLayer()));
92 m_input->stopInputEventLoop();
98 if (type == QPlatformPixmap::BitmapType)
99 return new QRasterPlatformPixmap(type);
106 QDirectFbWindow *dfbWindow =
new QDirectFbWindow(window, m_input.data());
113 return createUnixEventDispatcher();
123 return m_fontDb.data();
128 if (m_services.isNull())
129 m_services.reset(
new QPlatformServices);
131 return m_services.data();
bool hasCapability(Capability cap) const override
QAbstractEventDispatcher * createEventDispatcher() const override
Factory function for the GUI event dispatcher.
QPlatformServices * services() const override
virtual void initializeInput()
QPlatformPixmap * createPlatformPixmap(QPlatformPixmap::PixelType type) const override
Factory function for QPlatformPixmap.
QPlatformFontDatabase * fontDatabase() const override
Accessor for the platform integration's fontdatabase.
QPlatformWindow * createPlatformWindow(QWindow *window) const override
Factory function for QPlatformWindow.
QPlatformBackingStore * createPlatformBackingStore(QWindow *window) const override
Factory function for QPlatformBackingStore.
virtual void initializeDirectFB()
QPlatformNativeInterface * nativeInterface() const override
virtual void initializeScreen()
virtual void createDirectFBWindow()