From b2f06677a787fe7b9b08608e5a55aaedbe50ed3a Mon Sep 17 00:00:00 2001 From: Andrew Kitchen Date: Mon, 4 Dec 2017 13:29:16 -0800 Subject: [darwin, ios, macos] Introduces an MGLRendererConfiguration class Instructions for enabling client-side rendering of CJK glyphs live in this header, and this class provides the rest of the values needed for instantiating the renderer on iOS and macOS. --- platform/darwin/src/MGLRendererConfiguration.mm | 43 +++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 platform/darwin/src/MGLRendererConfiguration.mm (limited to 'platform/darwin/src/MGLRendererConfiguration.mm') diff --git a/platform/darwin/src/MGLRendererConfiguration.mm b/platform/darwin/src/MGLRendererConfiguration.mm new file mode 100644 index 0000000000..ae7d7dd9fe --- /dev/null +++ b/platform/darwin/src/MGLRendererConfiguration.mm @@ -0,0 +1,43 @@ +#import "MGLRendererConfiguration.h" +#import "MGLOfflineStorage_Private.h" + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif + + +@implementation MGLRendererConfiguration + ++ (instancetype)currentConfiguration { + return [[self alloc] init]; +} + +- (mbgl::DefaultFileSource *)fileSource { + return [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; +} + +- (mbgl::GLContextMode)contextMode { + return mbgl::GLContextMode::Unique; +} + +- (const float)scaleFactor { +#if TARGET_OS_IPHONE + return [UIScreen instancesRespondToSelector:@selector(nativeScale)] ? [[UIScreen mainScreen] nativeScale] : [[UIScreen mainScreen] scale]; +#else + return [NSScreen mainScreen].backingScaleFactor; +#endif +} + +- (mbgl::optional)cacheDir { + return mbgl::optional(); +} + +- (mbgl::optional)localFontFamilyName { + NSString *fontFamilyName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; + + return fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional(); +} + +@end -- cgit v1.2.1