From: Denys Dmytriyenko <[email protected]> * Enable gles2/eglfs and icu features * Add slightly modified eglfs patches from Prabu
Signed-off-by: Denys Dmytriyenko <[email protected]> Acked-by: Franklin S. Cooper Jr <[email protected]> Acked-by: Chase Maupin <[email protected]> --- .../qt5/qtbase/0001-qeglfswindow.cpp.patch | 56 ++++++++++++++++++++++ .../qt5/qtbase/0002-qeglfswindow.cpp.patch | 34 +++++++++++++ .../recipes-qt/qt5/qtbase_5.1.0.bbappend | 10 ++++ 3 files changed, 100 insertions(+) create mode 100644 meta-arago-distro/recipes-qt/qt5/qtbase/0001-qeglfswindow.cpp.patch create mode 100644 meta-arago-distro/recipes-qt/qt5/qtbase/0002-qeglfswindow.cpp.patch create mode 100644 meta-arago-distro/recipes-qt/qt5/qtbase_5.1.0.bbappend diff --git a/meta-arago-distro/recipes-qt/qt5/qtbase/0001-qeglfswindow.cpp.patch b/meta-arago-distro/recipes-qt/qt5/qtbase/0001-qeglfswindow.cpp.patch new file mode 100644 index 0000000..b95b98e --- /dev/null +++ b/meta-arago-distro/recipes-qt/qt5/qtbase/0001-qeglfswindow.cpp.patch @@ -0,0 +1,56 @@ +--- qtbase/src/plugins/platforms/eglfs/qeglfswindow.cpp.orig 2013-08-09 23:29:18.253037952 +0530 ++++ qtbase/src/plugins/platforms/eglfs/qeglfswindow.cpp 2013-08-09 23:41:18.509018405 +0530 +@@ -61,23 +61,32 @@ QEglFSWindow::QEglFSWindow(QWindow *w) + #endif + } + + QEglFSWindow::~QEglFSWindow() + { + destroy(); + } + ++static EGLSurface __singleWindowSurface; + void QEglFSWindow::create() + { + if (m_window) + return; + + setWindowState(Qt::WindowFullScreen); + ++ if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::Capability::MultipleWindows) && __singleWindowSurface) ++ { ++ m_surface = __singleWindowSurface; ++#ifdef QEGL_EXTRA_DEBUG ++ qWarning("Surface recreate request, re-using %x\n", m_surface); ++#endif ++ return; ++ } + if (window()->type() == Qt::Desktop) { + QRect rect(QPoint(), QEglFSHooks::hooks()->screenSize()); + QPlatformWindow::setGeometry(rect); + QWindowSystemInterface::handleGeometryChange(window(), rect); + return; + } + + EGLDisplay display = (static_cast<QEglFSScreen *>(window()->screen()->handle()))->display(); +@@ -104,16 +113,20 @@ void QEglFSWindow::resetSurface() + + m_window = QEglFSHooks::hooks()->createNativeWindow(QEglFSHooks::hooks()->screenSize(), m_format); + m_surface = eglCreateWindowSurface(display, m_config, m_window, NULL); + if (m_surface == EGL_NO_SURFACE) { + EGLint error = eglGetError(); + eglTerminate(display); + qFatal("EGL Error : Could not create the egl surface: error = 0x%x\n", error); + } ++ if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::Capability::MultipleWindows)) ++ { ++ __singleWindowSurface = m_surface; ++ } + } + + void QEglFSWindow::destroy() + { + if (m_surface) { + EGLDisplay display = static_cast<QEglFSScreen *>(screen())->display(); + eglDestroySurface(display, m_surface); + m_surface = 0; diff --git a/meta-arago-distro/recipes-qt/qt5/qtbase/0002-qeglfswindow.cpp.patch b/meta-arago-distro/recipes-qt/qt5/qtbase/0002-qeglfswindow.cpp.patch new file mode 100644 index 0000000..8d17348 --- /dev/null +++ b/meta-arago-distro/recipes-qt/qt5/qtbase/0002-qeglfswindow.cpp.patch @@ -0,0 +1,34 @@ +--- qtbase/src/plugins/platforms/eglfs/qeglfswindow.cpp.old 2013-09-09 23:09:24.433774489 +0530 ++++ qtbase/src/plugins/platforms/eglfs/qeglfswindow.cpp 2013-09-09 23:12:22.105766689 +0530 +@@ -54,30 +54,30 @@ QEglFSWindow::QEglFSWindow(QWindow *w) + , m_surface(0) + , m_window(0) + { + static int serialNo = 0; + m_winid = ++serialNo; + #ifdef QEGL_EXTRA_DEBUG + qWarning("QEglWindow %p: %p 0x%x\n", this, w, uint(m_winid)); + #endif ++ setWindowState(Qt::WindowFullScreen); + } + + QEglFSWindow::~QEglFSWindow() + { + destroy(); + } + + static EGLSurface __singleWindowSurface; + void QEglFSWindow::create() + { + if (m_window) + return; + +- setWindowState(Qt::WindowFullScreen); + + if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::Capability::MultipleWindows) && __singleWindowSurface) + { + m_surface = __singleWindowSurface; + #ifdef QEGL_EXTRA_DEBUG + qWarning("Surface recreate request, re-using %x\n", m_surface); + #endif + return; diff --git a/meta-arago-distro/recipes-qt/qt5/qtbase_5.1.0.bbappend b/meta-arago-distro/recipes-qt/qt5/qtbase_5.1.0.bbappend new file mode 100644 index 0000000..8ae7706 --- /dev/null +++ b/meta-arago-distro/recipes-qt/qt5/qtbase_5.1.0.bbappend @@ -0,0 +1,10 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +PACKAGECONFIG_GL = "gles2 icu" + +SRC_URI += " \ + file://0001-qeglfswindow.cpp.patch \ + file://0002-qeglfswindow.cpp.patch \ +" + +PR_append = "-arago0" -- 1.8.3.2 _______________________________________________ meta-arago mailing list [email protected] http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
