Files
MapLibreParticleLab/platform/ios/src/UIImage+MGLAdditions.mm
John Firebaugh cc1ea759a6 [core, node, darwin, android, qt] Make image ID part of Image
More like Source and Layer.
2017-05-16 12:26:35 -07:00

33 lines
1.1 KiB
Plaintext

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