Mercurial > projects > dstep
view dstep/quartzcore/CIContext.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | |
children | b9de51448c6b |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Sep 24, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.quartzcore.CIContext; import dstep.appkit.NSOpenGL; import dstep.applicationservices.coregraphics.CGColorSpace; import dstep.applicationservices.coregraphics.CGContext; import dstep.applicationservices.coregraphics.CGGeometry; import dstep.applicationservices.coregraphics.CGImage; import dstep.applicationservices.coregraphics.CGLayer; import dstep.corefoundation.CFDictionary; import dstep.foundation.NSDictionary; import dstep.foundation.NSObject; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import dstep.opengl.CGLTypes; import dstep.quartzcore.CIFilter; import dstep.quartzcore.CIImage; import bindings = dstep.quartzcore.CIContext_bindings; private { NSString kCIContextOutputColorSpace_; NSString kCIContextWorkingColorSpace_; NSString kCIContextUseSoftwareRenderer_; } NSString kCIContextOutputColorSpace () { if (kCIContextOutputColorSpace_) return kCIContextOutputColorSpace_; return kCIContextOutputColorSpace_ = new NSString(bindings.kCIContextOutputColorSpace); } NSString kCIContextWorkingColorSpace () { if (kCIContextWorkingColorSpace_) return kCIContextWorkingColorSpace_; return kCIContextWorkingColorSpace_ = new NSString(bindings.kCIContextWorkingColorSpace); } NSString kCIContextUseSoftwareRenderer () { if (kCIContextUseSoftwareRenderer_) return kCIContextUseSoftwareRenderer_; return kCIContextUseSoftwareRenderer_ = new NSString(bindings.kCIContextUseSoftwareRenderer); } class CIContext : NSObject { mixin (ObjcWrap); static CIContext contextWithCGLContext (CGLContextObj ctx, CGLPixelFormatObj pf, NSDictionary dict) { return invokeObjcSelfClass!(CIContext, "contextWithCGLContext:pixelFormat:options:", CGLContextObj, CGLPixelFormatObj, NSDictionary)(ctx, pf, dict); } static CIContext contextWithCGContext (CGContextRef ctx, NSDictionary dict) { return invokeObjcSelfClass!(CIContext, "contextWithCGContext:options:", CGContextRef, NSDictionary)(ctx, dict); } void drawImage (CIImage im, CGPoint p, CGRect src) { return invokeObjcSelf!(void, "drawImage:atPoint:fromRect:", CIImage, CGPoint, CGRect)(im, p, src); } void drawImage (CIImage im, CGRect dest, CGRect src) { return invokeObjcSelf!(void, "drawImage:inRect:fromRect:", CIImage, CGRect, CGRect)(im, dest, src); } CGImageRef createCGImage (CIImage im, CGRect r) { return invokeObjcSelf!(CGImageRef, "createCGImage:fromRect:", CIImage, CGRect)(im, r); } CGImageRef createCGImage (CIImage im, CGRect r, int f, CGColorSpaceRef cs) { return invokeObjcSelf!(CGImageRef, "createCGImage:fromRect:format:colorSpace:", CIImage, CGRect, int, CGColorSpaceRef)(im, r, f, cs); } CGLayerRef createCGLayerWithSize (CGSize size, CFDictionaryRef d) { return invokeObjcSelf!(CGLayerRef, "createCGLayerWithSize:info:", CGSize, CFDictionaryRef)(size, d); } void render (CIImage im, void* data, int rb, CGRect r, int f, CGColorSpaceRef cs) { return invokeObjcSelf!(void, "render:toBitmap:rowBytes:bounds:format:colorSpace:", CIImage, void*, int, CGRect, int, CGColorSpaceRef)(im, data, rb, r, f, cs); } void reclaimResources () { return invokeObjcSelf!(void, "reclaimResources"); } void clearCaches () { return invokeObjcSelf!(void, "clearCaches"); } }