summaryrefslogtreecommitdiff
path: root/platform/osx/src/MGLOpenGLLayer.mm
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2015-12-01 22:37:43 -0800
committerMinh Nguyễn <mxn@1ec5.org>2015-12-13 17:26:53 -0800
commitdf0511af185c334c7480f06bbc21b974a2a320fb (patch)
treea868569cb9a4c9462a01404bab034be9790ecad8 /platform/osx/src/MGLOpenGLLayer.mm
parent6890af9cd95fcecb5329f54b81965a5fc0cffe62 (diff)
downloadqtlocation-mapboxgl-df0511af185c334c7480f06bbc21b974a2a320fb.tar.gz
[osx] Build framework based on static library
Diffstat (limited to 'platform/osx/src/MGLOpenGLLayer.mm')
-rw-r--r--platform/osx/src/MGLOpenGLLayer.mm49
1 files changed, 49 insertions, 0 deletions
diff --git a/platform/osx/src/MGLOpenGLLayer.mm b/platform/osx/src/MGLOpenGLLayer.mm
new file mode 100644
index 0000000000..06a7be961c
--- /dev/null
+++ b/platform/osx/src/MGLOpenGLLayer.mm
@@ -0,0 +1,49 @@
+#import "MGLOpenGLLayer.h"
+
+#import "MGLMapView_Private.h"
+
+#import <mbgl/platform/gl.hpp>
+
+@implementation MGLOpenGLLayer
+
+- (MGLMapView *)mapView {
+ return (MGLMapView *)super.view;
+}
+
+//- (BOOL)isAsynchronous {
+// return YES;
+//}
+
+- (BOOL)needsDisplayOnBoundsChange {
+ return YES;
+}
+
+- (CGRect)frame {
+ return self.view.bounds;
+}
+
+- (NSOpenGLPixelFormat *)openGLPixelFormatForDisplayMask:(uint32_t)mask {
+ NSOpenGLPixelFormatAttribute pfas[] = {
+ NSOpenGLPFAAccelerated,
+ NSOpenGLPFAClosestPolicy,
+ NSOpenGLPFAAccumSize, 32,
+ NSOpenGLPFAColorSize, 24,
+ NSOpenGLPFAAlphaSize, 8,
+ NSOpenGLPFADepthSize, 16,
+ NSOpenGLPFAStencilSize, 8,
+ NSOpenGLPFAScreenMask, mask,
+ 0
+ };
+ return [[NSOpenGLPixelFormat alloc] initWithAttributes:pfas];
+}
+
+- (BOOL)canDrawInOpenGLContext:(__unused NSOpenGLContext *)context pixelFormat:(__unused NSOpenGLPixelFormat *)pixelFormat forLayerTime:(__unused CFTimeInterval)t displayTime:(__unused const CVTimeStamp *)ts {
+ return !self.mapView.dormant;
+}
+
+- (void)drawInOpenGLContext:(NSOpenGLContext *)context pixelFormat:(NSOpenGLPixelFormat *)pixelFormat forLayerTime:(CFTimeInterval)t displayTime:(const CVTimeStamp *)ts {
+ [self.mapView renderSync];
+ [super drawInOpenGLContext:context pixelFormat:pixelFormat forLayerTime:t displayTime:ts];
+}
+
+@end