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] [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 8830c44f75..fd2e2176ad 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