diff --git a/recipes-kde/plasma/untier/kwin/files/0004-Properly-add-define-for-gles.patch b/recipes-kde/plasma/untier/kwin/files/0004-Properly-add-define-for-gles.patch new file mode 100644 index 00000000..c741e847 --- /dev/null +++ b/recipes-kde/plasma/untier/kwin/files/0004-Properly-add-define-for-gles.patch @@ -0,0 +1,25 @@ +From 2a8d7664b3f605bab3416660d0805ce6227fba01 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= +Date: Thu, 7 May 2015 14:11:30 +0200 +Subject: [PATCH 1/2] Properly add define for gles + +Otherwise some parts still include epoxy/glx.h. +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 23dd238..32c48cc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -257,6 +257,7 @@ endif() + if(${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GLESv2") + set(KWIN_BUILD_OPENGLES TRUE) + message("Building KWin with OpenGL ES 2 support") ++ add_definitions(-DKWIN_HAVE_OPENGLES) + endif() + + if(NOT KWIN_BUILD_OPENGL AND NOT KWIN_BUILD_OPENGLES) +-- +1.9.3 + diff --git a/recipes-kde/plasma/untier/kwin/files/0005-kwinglutils-Init-glVersion-on-gles.patch b/recipes-kde/plasma/untier/kwin/files/0005-kwinglutils-Init-glVersion-on-gles.patch new file mode 100644 index 00000000..fd500637 --- /dev/null +++ b/recipes-kde/plasma/untier/kwin/files/0005-kwinglutils-Init-glVersion-on-gles.patch @@ -0,0 +1,52 @@ +From 713c6b25dce2fc60184ddc7b618b0b1195ab9870 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= +Date: Fri, 8 May 2015 08:53:34 +0200 +Subject: [PATCH 2/2] [kwinglutils] Init glVersion on gles + +The glVersion was not set at all for gles causing any code doing a +hasGLVersion check to fail which means that the compositor doesn't +start at all, because it has a hasGLVersion(2, 0) check. + +The complete ifdef is no longer needed. The used additional glGetStringi +is also available in gles 3.0, thus epoxy can handle it quite well +without a need for ifdef. + +Unfortunately the version string can be "strange" on GLES. On desktop +it looks like: "3.0 some driver foo", on GLES it could also be: +"OpenGL ES 3.0 some driver bar". Thus to make the logic work we are +first removing any leading "OpenGL ES " and hope that then the version +is encoded just like on GL. +--- + libkwineffects/kwinglutils.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libkwineffects/kwinglutils.cpp b/libkwineffects/kwinglutils.cpp +index 8830c44..fd2e217 100644 +--- a/libkwineffects/kwinglutils.cpp ++++ b/libkwineffects/kwinglutils.cpp +@@ -106,11 +106,12 @@ void initGL(OpenGLPlatformInterface platformInterface) + { + // Get OpenGL version + QString glversionstring = QString::fromUtf8((const char*)glGetString(GL_VERSION)); ++ if (glversionstring.startsWith(QLatin1String("OpenGL ES "))) { ++ glversionstring = glversionstring.mid(10); ++ } + QStringList glversioninfo = glversionstring.left(glversionstring.indexOf(QStringLiteral(" "))).split(QStringLiteral(".")); + while (glversioninfo.count() < 3) + glversioninfo << QStringLiteral("0"); +- +-#ifndef KWIN_HAVE_OPENGLES + glVersion = MAKE_GL_VERSION(glversioninfo[0].toInt(), glversioninfo[1].toInt(), glversioninfo[2].toInt()); + + // Get list of supported OpenGL extensions +@@ -123,7 +124,6 @@ void initGL(OpenGLPlatformInterface platformInterface) + glExtensions << name; + } + } else +-#endif + glExtensions = QByteArray((const char*)glGetString(GL_EXTENSIONS)).split(' '); + + // handle OpenGL extensions functions +-- +1.9.3 + diff --git a/recipes-kde/plasma/untier/kwin/kwin.bb b/recipes-kde/plasma/untier/kwin/kwin.bb index ec9e29e3..054b60c2 100644 --- a/recipes-kde/plasma/untier/kwin/kwin.bb +++ b/recipes-kde/plasma/untier/kwin/kwin.bb @@ -53,6 +53,8 @@ SRC_URI += " \ file://0001-fix-build-for-qtbase-without-session-management.patch \ file://0002-add-egl-flags-for-compiling.patch \ file://0003-eglonxbackend-add-debug-output.patch \ + file://0004-Properly-add-define-for-gles.patch \ + file://0005-kwinglutils-Init-glVersion-on-gles.patch \ " FILES_${PN} += " \