diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2012-09-20 15:53:22 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-21 21:44:43 +0200 |
commit | 945d17b6e92605de158839c488ebcafc19ac9aa6 (patch) | |
tree | ff4e9972a9b02931b9fa577ef1479111e6711135 | |
parent | 1dc517abc688f6cf20bdc75e8a4ff2dda86b5d70 (diff) |
OpenGL: Add runtime check for OS X version and improve logic
Apple recommend adding NSOpenGLProfileVersion3_2Core when asking for
a 3.2 Core profile context and NSOpenGLProfileVersionLegacy in all other
cases.
Also added a missing runtime check for OS X 10.7 or newer. Fixes a
potential crash if Qt was built on 10.7/8 but executed on 10.6.
Change-Id: I4c09d2dbbe8df25a3553cc01b468dabab0f8eaa4
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
-rw-r--r-- | src/platformsupport/cglconvenience/cglconvenience.mm | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/platformsupport/cglconvenience/cglconvenience.mm b/src/platformsupport/cglconvenience/cglconvenience.mm index 7ca9b6025e..3367373183 100644 --- a/src/platformsupport/cglconvenience/cglconvenience.mm +++ b/src/platformsupport/cglconvenience/cglconvenience.mm @@ -89,17 +89,22 @@ void *qcgl_createNSOpenGLPixelFormat(const QSurfaceFormat &format) attrs.append(NSOpenGLPFADoubleBuffer); - if (format.profile() == QSurfaceFormat::CoreProfile) { #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ((format.majorVersion() == 3 && format.minorVersion() >= 2) - || format.majorVersion() > 3 ) { + if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { + if (format.profile() == QSurfaceFormat::CoreProfile + && ((format.majorVersion() == 3 && format.minorVersion() >= 2) + || format.majorVersion() > 3)) { attrs << NSOpenGLPFAOpenGLProfile; attrs << NSOpenGLProfileVersion3_2Core; + } else { + attrs << NSOpenGLPFAOpenGLProfile; + attrs << NSOpenGLProfileVersionLegacy; } + } #else + if (format.profile() == QSurfaceFormat::CoreProfile) qWarning("Mac OSX >= 10.7 is needed for OpenGL Core Profile support"); #endif - } if (format.depthBufferSize() > 0) attrs << NSOpenGLPFADepthSize << format.depthBufferSize(); |