blob: cf4d859fe4ef5fa6d683bc301b35caa50e725337 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
commit 713c6b25dce2fc60184ddc7b618b0b1195ab9870
Author: Martin Gräßlin <mgraesslin@kde.org>
Date: Fri May 8 08:53:34 2015 +0200
[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.
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
|