summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2012-09-20 15:53:22 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-21 21:44:43 +0200
commit945d17b6e92605de158839c488ebcafc19ac9aa6 (patch)
treeff4e9972a9b02931b9fa577ef1479111e6711135
parent1dc517abc688f6cf20bdc75e8a4ff2dda86b5d70 (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.mm13
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();