summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/directfb/main.cpp')
-rw-r--r--src/plugins/platforms/directfb/main.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/plugins/platforms/directfb/main.cpp b/src/plugins/platforms/directfb/main.cpp
index 312fc411ac..1a254e4fe7 100644
--- a/src/plugins/platforms/directfb/main.cpp
+++ b/src/plugins/platforms/directfb/main.cpp
@@ -41,9 +41,20 @@
#include <QtGui/QPlatformIntegrationPlugin>
#include "qdirectfbintegration.h"
+#include "qdirectfb_egl.h"
QT_BEGIN_NAMESPACE
+#ifdef DIRECTFB_GL_EGL
+#define QT_EGL_BACKEND_STRING(list) list << "directfbegl";
+#define QT_EGL_BACKEND_CREATE(list, out) \
+ if (list.toLower() == "directfbegl") \
+ out = new QDirectFbIntegrationEGL;
+#else
+#define QT_EGL_BACKEND_STRING(list)
+#define QT_EGL_BACKEND_CREATE(system, out)
+#endif
+
class QDirectFbIntegrationPlugin : public QPlatformIntegrationPlugin
{
public:
@@ -55,16 +66,24 @@ QStringList QDirectFbIntegrationPlugin::keys() const
{
QStringList list;
list << "directfb";
+ QT_EGL_BACKEND_STRING(list);
return list;
}
QPlatformIntegration * QDirectFbIntegrationPlugin::create(const QString& system, const QStringList& paramList)
{
Q_UNUSED(paramList);
+ QDirectFbIntegration *integration = 0;
+
if (system.toLower() == "directfb")
- return new QDirectFbIntegration;
+ integration = new QDirectFbIntegration;
+ QT_EGL_BACKEND_CREATE(system, integration)
+
+ if (!integration)
+ return 0;
- return 0;
+ integration->initialize();
+ return integration;
}
Q_EXPORT_PLUGIN2(directfb, QDirectFbIntegrationPlugin)