summaryrefslogtreecommitdiff
path: root/platform/ios/src/UIImage+MGLAdditions.mm
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2016-12-20 12:41:40 -0800
committerMinh Nguyễn <mxn@1ec5.org>2016-12-20 12:41:40 -0800
commita6b1773a44d4ef086eb30967cb041cb64312650a (patch)
treeec293e38c9ec3ef1f32195f0d5071f73b88497ed /platform/ios/src/UIImage+MGLAdditions.mm
parentdad57df38ef86363da9bff2e62f3fddc5688f0cf (diff)
parente2fde9cc4eff3de5ab2f513d0c24ad5471d147e6 (diff)
downloadqtlocation-mapboxgl-a6b1773a44d4ef086eb30967cb041cb64312650a.tar.gz
Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.0-beta.5-master
Also reran make style-code and manually discarded anything related to fill extrusion layers.
Diffstat (limited to 'platform/ios/src/UIImage+MGLAdditions.mm')
-rw-r--r--platform/ios/src/UIImage+MGLAdditions.mm17
1 files changed, 16 insertions, 1 deletions
diff --git a/platform/ios/src/UIImage+MGLAdditions.mm b/platform/ios/src/UIImage+MGLAdditions.mm
index 215b23faff..7b5737f5e4 100644
--- a/platform/ios/src/UIImage+MGLAdditions.mm
+++ b/platform/ios/src/UIImage+MGLAdditions.mm
@@ -2,6 +2,20 @@
@implementation UIImage (MGLAdditions)
+- (nullable instancetype)initWithMGLSpriteImage:(const mbgl::SpriteImage *)spriteImage
+{
+ std::string png = encodePNG(spriteImage->image);
+ NSData *data = [[NSData alloc] initWithBytes:png.data() length:png.size()];
+ if (self = [self initWithData:data scale:spriteImage->pixelRatio])
+ {
+ if (spriteImage->sdf)
+ {
+ self = [self imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
+ }
+ }
+ return self;
+}
+
- (std::unique_ptr<mbgl::SpriteImage>)mgl_spriteImage
{
CGImageRef cgImage = self.CGImage;
@@ -21,7 +35,8 @@
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
- return std::make_unique<mbgl::SpriteImage>(std::move(cPremultipliedImage), float(self.scale));
+ BOOL isTemplate = self.renderingMode == UIImageRenderingModeAlwaysTemplate;
+ return std::make_unique<mbgl::SpriteImage>(std::move(cPremultipliedImage), float(self.scale), isTemplate);
}
@end