diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2017-02-09 12:08:23 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2017-02-14 14:15:36 +0100 |
commit | 43e81509fb0be54bea5912fb5a10bfa0e0667a44 (patch) | |
tree | 3525de5e86d8c454b285468f07fd76f8ca4e99ee | |
parent | d12ac71ba76c441e8dca97d0186abe4646a7d716 (diff) | |
download | qtlocation-mapboxgl-43e81509fb0be54bea5912fb5a10bfa0e0667a44.tar.gz |
[macos] reuse OpenGL context when switching screens
-rw-r--r-- | platform/macos/CHANGELOG.md | 1 | ||||
-rw-r--r-- | platform/macos/src/MGLOpenGLLayer.mm | 11 |
2 files changed, 11 insertions, 1 deletions
diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md index 87790f75c2..b53b720bf9 100644 --- a/platform/macos/CHANGELOG.md +++ b/platform/macos/CHANGELOG.md @@ -8,6 +8,7 @@ * Improved the line wrapping behavior of point-placed labels, especially labels written in Chinese and Japanese. ([#6828](https://github.com/mapbox/mapbox-gl-native/pull/6828), [#7446](https://github.com/mapbox/mapbox-gl-native/pull/7446)) * CJK characters now remain upright in vertically oriented labels that have line placement, such as road labels. ([#7114](https://github.com/mapbox/mapbox-gl-native/issues/7114)) * Added Chinese (Simplified and Traditional), French, German, Japanese, Portuguese (Brazilian), Swedish, and Vietnamese localizations. ([#7316](https://github.com/mapbox/mapbox-gl-native/pull/7316), [#7503](https://github.com/mapbox/mapbox-gl-native/pull/7503), [#7899](https://github.com/mapbox/mapbox-gl-native/pull/7899), [#7999](https://github.com/mapbox/mapbox-gl-native/pull/7999)) +* Fixed an issue that let the app crash when moving the window between screens. ([#8004](https://github.com/mapbox/mapbox-gl-native/pull/8004)) ### Styles diff --git a/platform/macos/src/MGLOpenGLLayer.mm b/platform/macos/src/MGLOpenGLLayer.mm index 17ba9951c7..fde2b52404 100644 --- a/platform/macos/src/MGLOpenGLLayer.mm +++ b/platform/macos/src/MGLOpenGLLayer.mm @@ -2,7 +2,9 @@ #import "MGLMapView_Private.h" -@implementation MGLOpenGLLayer +@implementation MGLOpenGLLayer { + NSOpenGLContext *_context; +} - (MGLMapView *)mapView { return (MGLMapView *)super.view; @@ -20,6 +22,13 @@ return self.view.bounds; } +- (NSOpenGLContext *)openGLContextForPixelFormat:(NSOpenGLPixelFormat *)pixelFormat { + if (!_context) { + _context = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil]; + } + return _context; +} + - (NSOpenGLPixelFormat *)openGLPixelFormatForDisplayMask:(uint32_t)mask { NSOpenGLPixelFormatAttribute pfas[] = { NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersionLegacy, |