1 /** 2 Dynamic bindings to the CoreImage framework. 3 4 Copyright: Guillaume Piolat 2016. 5 License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 6 */ 7 module derelict.cocoa.coreimage; 8 9 import derelict.cocoa.runtime; 10 import derelict.cocoa.foundation; 11 import derelict.cocoa.coregraphics; 12 13 14 struct CIContext 15 { 16 nothrow @nogc: 17 NSObject parent; 18 alias parent this; 19 20 mixin NSObjectTemplate!(CIContext, "CIContext"); 21 22 void drawImage(CIImage image, CGRect inRect, CGRect fromRect) 23 { 24 alias fun_t = extern(C) void function (id obj, SEL sel, id, CGRect, CGRect) nothrow @nogc; 25 (cast(fun_t)objc_msgSend)(_id, sel!"drawImage:inRect:fromRect:", image._id, inRect, fromRect); 26 } 27 } 28 29 alias CIFormat = int; 30 31 extern(C) 32 { 33 __gshared CIFormat kCIFormatARGB8; 34 __gshared CIFormat kCIFormatRGBA16; 35 __gshared CIFormat kCIFormatRGBAf; 36 __gshared CIFormat kCIFormatRGBAh; 37 } 38 39 struct CIImage 40 { 41 nothrow @nogc: 42 NSObject parent; 43 alias parent this; 44 45 mixin NSObjectTemplate!(CIImage, "CIImage"); 46 47 static CIImage imageWithBitmapData(NSData d, size_t bytesPerRow, CGSize size, CIFormat f, CGColorSpaceRef cs) 48 { 49 alias fun_t = extern(C) id function (id obj, SEL sel, id, NSUInteger, CGSize, CIFormat, CGColorSpaceRef) nothrow @nogc; 50 id result = (cast(fun_t)objc_msgSend)(getClassID(), 51 sel!"imageWithBitmapData:bytesPerRow:size:format:colorSpace:", 52 d._id, cast(NSUInteger)bytesPerRow, size, f, cs); 53 return CIImage(result); 54 } 55 }