#import "UIImage+MGLAdditions.h" #include @implementation UIImage (MGLAdditions) - (nullable instancetype)initWithMGLStyleImage:(const mbgl::style::Image *)styleImage { CGImageRef image = CGImageFromMGLPremultipliedImage(styleImage->image.clone()); if (!image) { return nil; } if (self = [self initWithCGImage:image scale:styleImage->pixelRatio orientation:UIImageOrientationUp]) { if (styleImage->sdf) { self = [self imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; } } CGImageRelease(image); return self; } - (std::unique_ptr)mgl_styleImage { BOOL isTemplate = self.renderingMode == UIImageRenderingModeAlwaysTemplate; return std::make_unique(MGLPremultipliedImageFromCGImage(self.CGImage), float(self.scale), isTemplate); } @end