From c7752afb91f2aa7038a65c3c8eb58a5195b357b7 Mon Sep 17 00:00:00 2001 From: Jonathan Liu Date: Tue, 19 Jan 2016 12:53:24 +1100 Subject: Only use OpenGL ES2 for Mesa on Windows Mesa is used on Linux desktops for open source graphics drivers which support more than OpenGL ES2. This fixes the volumetric example not rendering correctly when using the open source ATI graphics driver. Change-Id: Ibf4df6cc84881a15464653b65d1221b20c853b19 Reviewed-by: Miikka Heikkinen --- src/datavisualization/utils/qutils.h | 5 ++++- src/datavisualization/utils/utils.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src/datavisualization/utils') diff --git a/src/datavisualization/utils/qutils.h b/src/datavisualization/utils/qutils.h index 2ff0979d..0b7930b6 100644 --- a/src/datavisualization/utils/qutils.h +++ b/src/datavisualization/utils/qutils.h @@ -73,8 +73,11 @@ static inline QSurfaceFormat qDefaultSurfaceFormat(bool antialias) #if (QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)) // We support only ES2 emulation with software renderer for now + QString versionStr; +#ifdef Q_OS_WIN const GLubyte *openGLVersion = ctx->functions()->glGetString(GL_VERSION); - QString versionStr = QString::fromLatin1(reinterpret_cast(openGLVersion)).toLower(); + versionStr = QString::fromLatin1(reinterpret_cast(openGLVersion)).toLower(); +#endif if (versionStr.contains(QStringLiteral("mesa")) || QCoreApplication::testAttribute(Qt::AA_UseSoftwareOpenGL)) { qWarning("Only OpenGL ES2 emulation is available for software rendering."); diff --git a/src/datavisualization/utils/utils.cpp b/src/datavisualization/utils/utils.cpp index 47b584c1..df8552b4 100644 --- a/src/datavisualization/utils/utils.cpp +++ b/src/datavisualization/utils/utils.cpp @@ -362,8 +362,11 @@ void Utils::resolveStatics() #if (QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)) // We support only ES2 emulation with software renderer for now + QString versionStr; +#ifdef Q_OS_WIN const GLubyte *openGLVersion = ctx->functions()->glGetString(GL_VERSION); - QString versionStr = QString::fromLatin1((const char *)openGLVersion).toLower(); + versionStr = QString::fromLatin1(reinterpret_cast(openGLVersion)).toLower(); +#endif if (versionStr.contains(QStringLiteral("mesa")) || QCoreApplication::testAttribute(Qt::AA_UseSoftwareOpenGL)) { qWarning("Only OpenGL ES2 emulation is available for software rendering."); -- cgit v1.2.3