diff --git a/Frameworks/CoreImage/CIImage.mm b/Frameworks/CoreImage/CIImage.mm index ed012959b8..22504aff6c 100644 --- a/Frameworks/CoreImage/CIImage.mm +++ b/Frameworks/CoreImage/CIImage.mm @@ -75,14 +75,15 @@ @implementation CIImage @Status Interoperable */ + (CIImage*)emptyImage { - return [[[CIImage alloc] init] autorelease]; + static CIImage* emptyImg = [CIImage new]; + return emptyImg; } /** @Status Interoperable */ - (CGRect)extent { - return self->_extent; + return _extent; } /** @@ -137,12 +138,11 @@ - (instancetype)initWithCGImage:(CGImageRef)cgImage { } /** - @Status Stub - @Notes + @Status Caveat + @Notes options not supported */ -- (instancetype)initWithCGImage:(CGImageRef)image options:(NSDictionary*)d { - UNIMPLEMENTED(); - return StubReturn(); +- (instancetype)initWithCGImage:(CGImageRef)image options:(NSDictionary*)options { + return [self initWithCGImage:image]; } /** @@ -157,12 +157,11 @@ - (instancetype)initWithImage:(UIImage*)image { } /** - @Status Stub - @Notes + @Status Caveat + @Notes options not supported */ - (instancetype)initWithImage:(UIImage*)image options:(NSDictionary*)options { - UNIMPLEMENTED(); - return StubReturn(); + return [self initWithImage:image]; } /** @@ -177,12 +176,11 @@ - (instancetype)initWithData:(NSData*)data { } /** - @Status Stub - @Notes + @Status Caveat + @Notes options not supported */ -- (instancetype)initWithData:(NSData*)data options:(NSDictionary*)d { - UNIMPLEMENTED(); - return StubReturn(); +- (instancetype)initWithData:(NSData*)data options:(NSDictionary*)options { + return [self initWithData:data]; } /** @@ -211,12 +209,11 @@ + (CIImage*)imageWithData:(NSData*)data { } /** - @Status Stub - @Notes + @Status Caveat + @Notes options not supported */ -+ (CIImage*)imageWithData:(NSData*)data options:(NSDictionary*)d { - UNIMPLEMENTED(); - return StubReturn(); ++ (CIImage*)imageWithData:(NSData*)data options:(NSDictionary*)options { + return [CIImage imageWithData:data]; } /** @@ -228,12 +225,11 @@ + (CIImage*)imageWithCGImage:(CGImageRef)image { } /** - @Status Stub - @Notes + @Status Caveat + @Notes options not supported */ -+ (CIImage*)imageWithCGImage:(CGImageRef)image options:(NSDictionary*)d { - UNIMPLEMENTED(); - return StubReturn(); ++ (CIImage*)imageWithCGImage:(CGImageRef)image options:(NSDictionary*)options { + return [self imageWithCGImage:image]; } /** @@ -347,18 +343,18 @@ - (CIImage*)imageByApplyingTransform:(CGAffineTransform)matrix { @Status Interoperable */ - (CIImage*)imageByCroppingToRect:(CGRect)rect { - if (self->_cgImage != nil) { - woc::unique_cf croppedImage{ CGImageCreateWithImageInRect(self->_cgImage.get(), rect) }; + if (_cgImage != nil) { + woc::unique_cf croppedImage{ CGImageCreateWithImageInRect(_cgImage.get(), rect) }; return [CIImage imageWithCGImage:croppedImage.get()]; - } else if (self->_color != nil) { + } else if (_color != nil) { UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); - CIColor* color = static_cast(self->_color); + CIColor* color = static_cast(_color); CGContextSetRGBFillColor(context, color.red, color.green, color.blue, color.alpha); CGContextFillRect(context, rect); woc::unique_cf imageRef{ CGBitmapContextCreateImage(context) }; UIGraphicsEndImageContext(); - return [[[CIImage alloc] _initWithCGImage:imageRef.get() color:self->_color] autorelease]; + return [[[CIImage alloc] _initWithCGImage:imageRef.get() color:_color] autorelease]; } return [CIImage emptyImage]; diff --git a/Frameworks/include/CIImageInternal.h b/Frameworks/include/CIImageInternal.h index 6ef1e11df0..2143da6e37 100644 --- a/Frameworks/include/CIImageInternal.h +++ b/Frameworks/include/CIImageInternal.h @@ -23,7 +23,7 @@ @interface CIImage () { woc::unique_cf _cgImage; - idretain _color; + StrongId _color; CIFilter* _filter; CGRect _extent; } diff --git a/tests/unittests/CoreImage/CIContextTests.mm b/tests/unittests/CoreImage/CIContextTests.mm index 202cab42f9..5e25cceed0 100644 --- a/tests/unittests/CoreImage/CIContextTests.mm +++ b/tests/unittests/CoreImage/CIContextTests.mm @@ -50,29 +50,29 @@ static CFMutableDataRef ObtainJPEGRepresentationFromCGImage(CGImageRef image) { TEST(CoreImage, CGImageFromRect) { SetCACompositor(new NullCompositor); CIContext* context = [CIContext contextWithOptions:nil]; - ASSERT_TRUE_MSG(context != nil, "Failed: CIContext is nil."); + ASSERT_OBJCNE(nil, context); UIImage* photo = [UIImage imageNamed:getPathToFile(@"Photo2.jpg")]; - ASSERT_TRUE(photo != nil); + ASSERT_OBJCNE(nil, photo); CIImage* ciImage = [CIImage imageWithCGImage:photo.CGImage]; - ASSERT_TRUE(ciImage != nil); + ASSERT_OBJCNE(nil, ciImage); CGImageRef cgImage = [context createCGImage:ciImage fromRect:CGRectMake(300, 600, 200, 200)]; - ASSERT_TRUE(cgImage != nullptr); + ASSERT_NE(nullptr, cgImage); NSData* data = [NSData dataWithContentsOfFile:getPathToFile(@"CroppedPhoto2.jpg")]; - ASSERT_TRUE(data != nil); + ASSERT_OBJCNE(nil, data); CIImage* croppedPhotoCIImage = [CIImage imageWithData:data]; - ASSERT_TRUE(croppedPhotoCIImage != nil); + ASSERT_OBJCNE(nil, croppedPhotoCIImage); CGImageRef croppedPhoto = [context createCGImage:croppedPhotoCIImage fromRect:[croppedPhotoCIImage extent]]; - ASSERT_TRUE(croppedPhoto != nullptr); + ASSERT_NE(nullptr, croppedPhoto); CFMutableDataRef originalImageCropped = ObtainJPEGRepresentationFromCGImage(cgImage); - ASSERT_TRUE(originalImageCropped != nil); + ASSERT_NE(nil, originalImageCropped); CFMutableDataRef croppedImage = ObtainJPEGRepresentationFromCGImage(croppedPhoto); - ASSERT_TRUE(croppedImage != nil); + ASSERT_NE(nil, croppedImage); ASSERT_TRUE(CFEqual(originalImageCropped, croppedImage)); } \ No newline at end of file