diff options
Diffstat (limited to 'recipes-qt/qt5/qtbase-git/0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch')
-rw-r--r-- | recipes-qt/qt5/qtbase-git/0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qtbase-git/0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch b/recipes-qt/qt5/qtbase-git/0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch new file mode 100644 index 00000000..cbd0bcd8 --- /dev/null +++ b/recipes-qt/qt5/qtbase-git/0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch | |||
@@ -0,0 +1,72 @@ | |||
1 | From b8f2fdcd7683058554b5d76b270c5f4bb3d0b91a Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Wed, 5 Feb 2014 18:35:08 +0100 | ||
4 | Subject: [PATCH 09/12] eglfs: fix egl error for platforms only supporting one | ||
5 | window/surface | ||
6 | MIME-Version: 1.0 | ||
7 | Content-Type: text/plain; charset=UTF-8 | ||
8 | Content-Transfer-Encoding: 8bit | ||
9 | |||
10 | running qmlscene -platform eglfs <filename>.qml | ||
11 | |||
12 | caused | ||
13 | |||
14 | EGL Error : Could not create the egl surface: error = 0x3003 | ||
15 | |||
16 | Rebased version of [1-2] | ||
17 | |||
18 | Upstream-Status: unknown | ||
19 | |||
20 | [1] http://repository.timesys.com/buildsources/q/qt-everywhere-opensource/qt-everywhere-opensource-5.1.1/qt-everywhere-opensource-5.1.1-qeglfswindow.cpp.patch | ||
21 | [2] https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/qeglfswindow.cpp.patch | ||
22 | |||
23 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
24 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
25 | --- | ||
26 | src/plugins/platforms/eglfs/qeglfswindow.cpp | 16 +++++++++++++++- | ||
27 | 1 file changed, 15 insertions(+), 1 deletion(-) | ||
28 | |||
29 | diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
30 | index 2d36c0b..854531e 100644 | ||
31 | --- a/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
32 | +++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
33 | @@ -74,6 +74,15 @@ void QEglFSWindow::create() | ||
34 | |||
35 | m_flags = Created; | ||
36 | |||
37 | + static EGLSurface __singleWindowSurface; | ||
38 | + if(QEglFSHooks::hooks() && ! QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows) && (__singleWindowSurface)) { | ||
39 | + m_surface = __singleWindowSurface; | ||
40 | +#ifdef QEGL_EXTRA_DEBUG | ||
41 | + qWarning("Surface recreate request, re-using %x\n", m_surface); | ||
42 | +#endif | ||
43 | + return; | ||
44 | + } | ||
45 | + | ||
46 | if (window()->type() == Qt::Desktop) | ||
47 | return; | ||
48 | |||
49 | @@ -85,7 +94,7 @@ void QEglFSWindow::create() | ||
50 | if (isRaster() && screen->compositingWindow()) | ||
51 | return; | ||
52 | |||
53 | -#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK) | ||
54 | +#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK) || defined(EGL_API_FB) | ||
55 | // We can have either a single OpenGL window or multiple raster windows. | ||
56 | // Other combinations cannot work. | ||
57 | qFatal("EGLFS: OpenGL windows cannot be mixed with others."); | ||
58 | @@ -105,6 +114,11 @@ void QEglFSWindow::create() | ||
59 | |||
60 | resetSurface(); | ||
61 | |||
62 | + if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows)) | ||
63 | + { | ||
64 | + __singleWindowSurface = m_surface; | ||
65 | + } | ||
66 | + | ||
67 | screen->setPrimarySurface(m_surface); | ||
68 | |||
69 | if (isRaster()) { | ||
70 | -- | ||
71 | 2.0.0 | ||
72 | |||