summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/directfb/qdirectfb_egl.cpp15
-rw-r--r--src/plugins/platforms/directfb/qdirectfbscreen.h2
2 files changed, 16 insertions, 1 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfb_egl.cpp b/src/plugins/platforms/directfb/qdirectfb_egl.cpp
index 399e90a9fb..958a3be5e3 100644
--- a/src/plugins/platforms/directfb/qdirectfb_egl.cpp
+++ b/src/plugins/platforms/directfb/qdirectfb_egl.cpp
@@ -48,6 +48,7 @@
#include <QtGui/QScreen>
#include <QtPlatformSupport/private/qeglplatformcontext_p.h>
+#include <QtPlatformSupport/private/qeglconvenience_p.h>
#include <EGL/egl.h>
@@ -158,6 +159,20 @@ QDirectFbWindowEGL::~QDirectFbWindowEGL()
}
}
+EGLSurface QDirectFbWindowEGL::eglSurface()
+{
+ if (m_eglSurface == EGL_NO_SURFACE) {
+ QDirectFbScreenEGL *dfbScreen = static_cast<QDirectFbScreenEGL *>(screen());
+ EGLConfig config = q_configFromGLFormat(dfbScreen->eglDisplay(), format(), true);
+ m_eglSurface = eglCreateWindowSurface(dfbScreen->eglDisplay(), config, dfbSurface(), NULL);
+
+ if (m_eglSurface == EGL_NO_SURFACE)
+ eglGetError();
+ }
+
+ return m_eglSurface;
+}
+
QSurfaceFormat QDirectFbWindowEGL::format() const
{
return window()->requestedFormat();
diff --git a/src/plugins/platforms/directfb/qdirectfbscreen.h b/src/plugins/platforms/directfb/qdirectfbscreen.h
index b719146c90..b9d53beaa5 100644
--- a/src/plugins/platforms/directfb/qdirectfbscreen.h
+++ b/src/plugins/platforms/directfb/qdirectfbscreen.h
@@ -43,6 +43,7 @@
#define QDIRECTFBSCREEN_H
#include "qdirectfbconvenience.h"
+#include "qdirectfbcursor.h"
#include <QtGui/QPlatformIntegration>
@@ -50,7 +51,6 @@
QT_BEGIN_NAMESPACE
-class QDirectFBCursor;
class QDirectFbScreen : public QPlatformScreen
{