view dstep/quartzcore/CISampler.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.CISampler;

import dstep.applicationservices.ApplicationServices;
import dstep.foundation.NSDictionary;
import dstep.foundation.NSObject;
import dstep.foundation.NSString;
import dstep.foundation.NSZone;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;
import dstep.quartzcore.CIFilterShape;
import dstep.quartzcore.CIImage;

import bindings = dstep.quartzcore.CISampler_bindings;

private
{
	NSString kCISamplerAffineMatrix_;
	NSString kCISamplerWrapMode_;
	NSString kCISamplerFilterMode_;
	NSString kCISamplerWrapBlack_;
	NSString kCISamplerWrapClamp_;
	NSString kCISamplerFilterNearest_;
	NSString kCISamplerFilterLinear_;
}

NSString kCISamplerAffineMatrix ()
{
	if (kCISamplerAffineMatrix_)
		return kCISamplerAffineMatrix_;

	return kCISamplerAffineMatrix_ = new NSString(bindings.kCISamplerAffineMatrix);
}

NSString kCISamplerWrapMode ()
{
	if (kCISamplerWrapMode_)
		return kCISamplerWrapMode_;

	return kCISamplerWrapMode_ = new NSString(bindings.kCISamplerWrapMode);
}

NSString kCISamplerFilterMode ()
{
	if (kCISamplerFilterMode_)
		return kCISamplerFilterMode_;

	return kCISamplerFilterMode_ = new NSString(bindings.kCISamplerFilterMode);
}

NSString kCISamplerWrapBlack ()
{
	if (kCISamplerWrapBlack_)
		return kCISamplerWrapBlack_;

	return kCISamplerWrapBlack_ = new NSString(bindings.kCISamplerWrapBlack);
}

NSString kCISamplerWrapClamp ()
{
	if (kCISamplerWrapClamp_)
		return kCISamplerWrapClamp_;

	return kCISamplerWrapClamp_ = new NSString(bindings.kCISamplerWrapClamp);
}

NSString kCISamplerFilterNearest ()
{
	if (kCISamplerFilterNearest_)
		return kCISamplerFilterNearest_;

	return kCISamplerFilterNearest_ = new NSString(bindings.kCISamplerFilterNearest);
}

NSString kCISamplerFilterLinear ()
{
	if (kCISamplerFilterLinear_)
		return kCISamplerFilterLinear_;

	return kCISamplerFilterLinear_ = new NSString(bindings.kCISamplerFilterLinear);
}

class CISampler : NSObject, INSCopying
{
	mixin (ObjcWrap);
	
	typeof(this) copyWithZone (NSZone* zone)
	{
		return invokeObjcSelf!(typeof(this), "copyWithZone:", NSZone*)(zone);
	}

	static CISampler samplerWithImage (CIImage im)
	{
		return invokeObjcSelfClass!(CISampler, "samplerWithImage:", CIImage)(im);
	}

	static CISampler samplerWithImage_keysAndValues (ARGS...) (CIImage im, ARGS args)
	{
		return invokeObjcSelfClass!(CISampler, "samplerWithImage:keysAndValues:", CIImage, ARGS)(im, args);
	}

	static CISampler samplerWithImage (CIImage im, NSDictionary dict)
	{
		return invokeObjcSelfClass!(CISampler, "samplerWithImage:options:", CIImage, NSDictionary)(im, dict);
	}

	CISampler initWithImage (CIImage im)
	{
		id result = invokeObjcSelf!(id, "initWithImage:", CIImage)(im);
		return result is this.objcObject ? this : (result !is null ? new CISampler(result) : null);
	}

	this (CIImage im)
	{
		super(CISampler.alloc.initWithImage(im).objcObject);
	}

	CISampler initWithImage_keysAndValues (ARGS...) (CIImage im, ARGS args)
	{
		id result = invokeObjcSelf!(id, "initWithImage:keysAndValues:", CIImage)(im, args);
		return result is this.objcObject ? this : (result !is null ? new CISampler(result) : null);
	}

	this (CIImage im, ...)
	{
		super(CISampler.alloc.initWithImage(im).objcObject);
	}

	CISampler initWithImage (CIImage im, NSDictionary dict)
	{
		id result = invokeObjcSelf!(id, "initWithImage:options:", CIImage, NSDictionary)(im, dict);
		return result is this.objcObject ? this : (result !is null ? new CISampler(result) : null);
	}

	this (CIImage im, NSDictionary dict)
	{
		super(CISampler.alloc.initWithImage(im, dict).objcObject);
	}

	CIFilterShape definition ()
	{
		return invokeObjcSelf!(CIFilterShape, "definition");
	}

	CGRect extent ()
	{
		return invokeObjcSelf!(CGRect, "extent");
	}

}