diff dstep/quartzcore/CIFilter.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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/quartzcore/CIFilter.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,954 @@
+/**
+ * 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.CIFilter;
+
+import dstep.foundation.NSArray;
+import dstep.foundation.NSCoder;
+import dstep.foundation.NSData;
+import dstep.foundation.NSDictionary;
+import dstep.foundation.NSObject;
+import dstep.foundation.NSString;
+import dstep.foundation.NSURL;
+import dstep.foundation.NSZone;
+import dstep.objc.bridge.Bridge;
+import dstep.objc.objc;
+import dstep.quartzcore.CACIFilterAdditions;
+import dstep.quartzcore.CIImage;
+import dstep.quartzcore.CIKernel;
+import dstep.quartzcore.CIRAWFilter;
+
+import bindings = dstep.quartzcore.CIFilter_bindings;
+
+private
+{
+	NSString kCIAttributeFilterName_;
+	NSString kCIAttributeFilterDisplayName_;
+	NSString kCIAttributeDescription_;
+	NSString kCIAttributeReferenceDocumentation_;
+	NSString kCIAttributeFilterCategories_;
+	NSString kCIAttributeClass_;
+	NSString kCIAttributeType_;
+	NSString kCIAttributeMin_;
+	NSString kCIAttributeMax_;
+	NSString kCIAttributeSliderMin_;
+	NSString kCIAttributeSliderMax_;
+	NSString kCIAttributeDefault_;
+	NSString kCIAttributeIdentity_;
+	NSString kCIAttributeName_;
+	NSString kCIAttributeDisplayName_;
+	NSString kCIUIParameterSet_;
+	NSString kCIUISetBasic_;
+	NSString kCIUISetIntermediate_;
+	NSString kCIUISetAdvanced_;
+	NSString kCIUISetDevelopment_;
+	NSString kCIAttributeTypeTime_;
+	NSString kCIAttributeTypeScalar_;
+	NSString kCIAttributeTypeDistance_;
+	NSString kCIAttributeTypeAngle_;
+	NSString kCIAttributeTypeBoolean_;
+	NSString kCIAttributeTypeInteger_;
+	NSString kCIAttributeTypeCount_;
+	NSString kCIAttributeTypePosition_;
+	NSString kCIAttributeTypeOffset_;
+	NSString kCIAttributeTypePosition3_;
+	NSString kCIAttributeTypeRectangle_;
+	NSString kCIAttributeTypeOpaqueColor_;
+	NSString kCIAttributeTypeGradient_;
+	NSString kCICategoryDistortionEffect_;
+	NSString kCICategoryGeometryAdjustment_;
+	NSString kCICategoryCompositeOperation_;
+	NSString kCICategoryHalftoneEffect_;
+	NSString kCICategoryColorAdjustment_;
+	NSString kCICategoryColorEffect_;
+	NSString kCICategoryTransition_;
+	NSString kCICategoryTileEffect_;
+	NSString kCICategoryGenerator_;
+	NSString kCICategoryReduction_;
+	NSString kCICategoryGradient_;
+	NSString kCICategoryStylize_;
+	NSString kCICategorySharpen_;
+	NSString kCICategoryBlur_;
+	NSString kCICategoryVideo_;
+	NSString kCICategoryStillImage_;
+	NSString kCICategoryInterlaced_;
+	NSString kCICategoryNonSquarePixels_;
+	NSString kCICategoryHighDynamicRange_;
+	NSString kCICategoryBuiltIn_;
+	NSString kCICategoryFilterGenerator_;
+	NSString kCIApplyOptionExtent_;
+	NSString kCIApplyOptionDefinition_;
+	NSString kCIApplyOptionUserInfo_;
+	NSString kCIOutputImageKey_;
+	NSString kCIInputBackgroundImageKey_;
+	NSString kCIInputImageKey_;
+	NSString kCIInputTimeKey_;
+	NSString kCIInputTransformKey_;
+	NSString kCIInputScaleKey_;
+	NSString kCIInputAspectRatioKey_;
+	NSString kCIInputCenterKey_;
+	NSString kCIInputRadiusKey_;
+	NSString kCIInputAngleKey_;
+	NSString kCIInputRefractionKey_;
+	NSString kCIInputWidthKey_;
+	NSString kCIInputSharpnessKey_;
+	NSString kCIInputIntensityKey_;
+	NSString kCIInputEVKey_;
+	NSString kCIInputSaturationKey_;
+	NSString kCIInputColorKey_;
+	NSString kCIInputBrightnessKey_;
+	NSString kCIInputContrastKey_;
+	NSString kCIInputGradientImageKey_;
+	NSString kCIInputMaskImageKey_;
+	NSString kCIInputShadingImageKey_;
+	NSString kCIInputTargetImageKey_;
+	NSString kCIInputExtentKey_;
+}
+
+NSString kCIAttributeFilterName ()
+{
+	if (kCIAttributeFilterName_)
+		return kCIAttributeFilterName_;
+
+	return kCIAttributeFilterName_ = new NSString(bindings.kCIAttributeFilterName);
+}
+
+NSString kCIAttributeFilterDisplayName ()
+{
+	if (kCIAttributeFilterDisplayName_)
+		return kCIAttributeFilterDisplayName_;
+
+	return kCIAttributeFilterDisplayName_ = new NSString(bindings.kCIAttributeFilterDisplayName);
+}
+
+NSString kCIAttributeDescription ()
+{
+	if (kCIAttributeDescription_)
+		return kCIAttributeDescription_;
+
+	return kCIAttributeDescription_ = new NSString(bindings.kCIAttributeDescription);
+}
+
+NSString kCIAttributeReferenceDocumentation ()
+{
+	if (kCIAttributeReferenceDocumentation_)
+		return kCIAttributeReferenceDocumentation_;
+
+	return kCIAttributeReferenceDocumentation_ = new NSString(bindings.kCIAttributeReferenceDocumentation);
+}
+
+NSString kCIAttributeFilterCategories ()
+{
+	if (kCIAttributeFilterCategories_)
+		return kCIAttributeFilterCategories_;
+
+	return kCIAttributeFilterCategories_ = new NSString(bindings.kCIAttributeFilterCategories);
+}
+
+NSString kCIAttributeClass ()
+{
+	if (kCIAttributeClass_)
+		return kCIAttributeClass_;
+
+	return kCIAttributeClass_ = new NSString(bindings.kCIAttributeClass);
+}
+
+NSString kCIAttributeType ()
+{
+	if (kCIAttributeType_)
+		return kCIAttributeType_;
+
+	return kCIAttributeType_ = new NSString(bindings.kCIAttributeType);
+}
+
+NSString kCIAttributeMin ()
+{
+	if (kCIAttributeMin_)
+		return kCIAttributeMin_;
+
+	return kCIAttributeMin_ = new NSString(bindings.kCIAttributeMin);
+}
+
+NSString kCIAttributeMax ()
+{
+	if (kCIAttributeMax_)
+		return kCIAttributeMax_;
+
+	return kCIAttributeMax_ = new NSString(bindings.kCIAttributeMax);
+}
+
+NSString kCIAttributeSliderMin ()
+{
+	if (kCIAttributeSliderMin_)
+		return kCIAttributeSliderMin_;
+
+	return kCIAttributeSliderMin_ = new NSString(bindings.kCIAttributeSliderMin);
+}
+
+NSString kCIAttributeSliderMax ()
+{
+	if (kCIAttributeSliderMax_)
+		return kCIAttributeSliderMax_;
+
+	return kCIAttributeSliderMax_ = new NSString(bindings.kCIAttributeSliderMax);
+}
+
+NSString kCIAttributeDefault ()
+{
+	if (kCIAttributeDefault_)
+		return kCIAttributeDefault_;
+
+	return kCIAttributeDefault_ = new NSString(bindings.kCIAttributeDefault);
+}
+
+NSString kCIAttributeIdentity ()
+{
+	if (kCIAttributeIdentity_)
+		return kCIAttributeIdentity_;
+
+	return kCIAttributeIdentity_ = new NSString(bindings.kCIAttributeIdentity);
+}
+
+NSString kCIAttributeName ()
+{
+	if (kCIAttributeName_)
+		return kCIAttributeName_;
+
+	return kCIAttributeName_ = new NSString(bindings.kCIAttributeName);
+}
+
+NSString kCIAttributeDisplayName ()
+{
+	if (kCIAttributeDisplayName_)
+		return kCIAttributeDisplayName_;
+
+	return kCIAttributeDisplayName_ = new NSString(bindings.kCIAttributeDisplayName);
+}
+
+NSString kCIUIParameterSet ()
+{
+	if (kCIUIParameterSet_)
+		return kCIUIParameterSet_;
+
+	return kCIUIParameterSet_ = new NSString(bindings.kCIUIParameterSet);
+}
+
+NSString kCIUISetBasic ()
+{
+	if (kCIUISetBasic_)
+		return kCIUISetBasic_;
+
+	return kCIUISetBasic_ = new NSString(bindings.kCIUISetBasic);
+}
+
+NSString kCIUISetIntermediate ()
+{
+	if (kCIUISetIntermediate_)
+		return kCIUISetIntermediate_;
+
+	return kCIUISetIntermediate_ = new NSString(bindings.kCIUISetIntermediate);
+}
+
+NSString kCIUISetAdvanced ()
+{
+	if (kCIUISetAdvanced_)
+		return kCIUISetAdvanced_;
+
+	return kCIUISetAdvanced_ = new NSString(bindings.kCIUISetAdvanced);
+}
+
+NSString kCIUISetDevelopment ()
+{
+	if (kCIUISetDevelopment_)
+		return kCIUISetDevelopment_;
+
+	return kCIUISetDevelopment_ = new NSString(bindings.kCIUISetDevelopment);
+}
+
+NSString kCIAttributeTypeTime ()
+{
+	if (kCIAttributeTypeTime_)
+		return kCIAttributeTypeTime_;
+
+	return kCIAttributeTypeTime_ = new NSString(bindings.kCIAttributeTypeTime);
+}
+
+NSString kCIAttributeTypeScalar ()
+{
+	if (kCIAttributeTypeScalar_)
+		return kCIAttributeTypeScalar_;
+
+	return kCIAttributeTypeScalar_ = new NSString(bindings.kCIAttributeTypeScalar);
+}
+
+NSString kCIAttributeTypeDistance ()
+{
+	if (kCIAttributeTypeDistance_)
+		return kCIAttributeTypeDistance_;
+
+	return kCIAttributeTypeDistance_ = new NSString(bindings.kCIAttributeTypeDistance);
+}
+
+NSString kCIAttributeTypeAngle ()
+{
+	if (kCIAttributeTypeAngle_)
+		return kCIAttributeTypeAngle_;
+
+	return kCIAttributeTypeAngle_ = new NSString(bindings.kCIAttributeTypeAngle);
+}
+
+NSString kCIAttributeTypeBoolean ()
+{
+	if (kCIAttributeTypeBoolean_)
+		return kCIAttributeTypeBoolean_;
+
+	return kCIAttributeTypeBoolean_ = new NSString(bindings.kCIAttributeTypeBoolean);
+}
+
+NSString kCIAttributeTypeInteger ()
+{
+	if (kCIAttributeTypeInteger_)
+		return kCIAttributeTypeInteger_;
+
+	return kCIAttributeTypeInteger_ = new NSString(bindings.kCIAttributeTypeInteger);
+}
+
+NSString kCIAttributeTypeCount ()
+{
+	if (kCIAttributeTypeCount_)
+		return kCIAttributeTypeCount_;
+
+	return kCIAttributeTypeCount_ = new NSString(bindings.kCIAttributeTypeCount);
+}
+
+NSString kCIAttributeTypePosition ()
+{
+	if (kCIAttributeTypePosition_)
+		return kCIAttributeTypePosition_;
+
+	return kCIAttributeTypePosition_ = new NSString(bindings.kCIAttributeTypePosition);
+}
+
+NSString kCIAttributeTypeOffset ()
+{
+	if (kCIAttributeTypeOffset_)
+		return kCIAttributeTypeOffset_;
+
+	return kCIAttributeTypeOffset_ = new NSString(bindings.kCIAttributeTypeOffset);
+}
+
+NSString kCIAttributeTypePosition3 ()
+{
+	if (kCIAttributeTypePosition3_)
+		return kCIAttributeTypePosition3_;
+
+	return kCIAttributeTypePosition3_ = new NSString(bindings.kCIAttributeTypePosition3);
+}
+
+NSString kCIAttributeTypeRectangle ()
+{
+	if (kCIAttributeTypeRectangle_)
+		return kCIAttributeTypeRectangle_;
+
+	return kCIAttributeTypeRectangle_ = new NSString(bindings.kCIAttributeTypeRectangle);
+}
+
+NSString kCIAttributeTypeOpaqueColor ()
+{
+	if (kCIAttributeTypeOpaqueColor_)
+		return kCIAttributeTypeOpaqueColor_;
+
+	return kCIAttributeTypeOpaqueColor_ = new NSString(bindings.kCIAttributeTypeOpaqueColor);
+}
+
+NSString kCIAttributeTypeGradient ()
+{
+	if (kCIAttributeTypeGradient_)
+		return kCIAttributeTypeGradient_;
+
+	return kCIAttributeTypeGradient_ = new NSString(bindings.kCIAttributeTypeGradient);
+}
+
+NSString kCICategoryDistortionEffect ()
+{
+	if (kCICategoryDistortionEffect_)
+		return kCICategoryDistortionEffect_;
+
+	return kCICategoryDistortionEffect_ = new NSString(bindings.kCICategoryDistortionEffect);
+}
+
+NSString kCICategoryGeometryAdjustment ()
+{
+	if (kCICategoryGeometryAdjustment_)
+		return kCICategoryGeometryAdjustment_;
+
+	return kCICategoryGeometryAdjustment_ = new NSString(bindings.kCICategoryGeometryAdjustment);
+}
+
+NSString kCICategoryCompositeOperation ()
+{
+	if (kCICategoryCompositeOperation_)
+		return kCICategoryCompositeOperation_;
+
+	return kCICategoryCompositeOperation_ = new NSString(bindings.kCICategoryCompositeOperation);
+}
+
+NSString kCICategoryHalftoneEffect ()
+{
+	if (kCICategoryHalftoneEffect_)
+		return kCICategoryHalftoneEffect_;
+
+	return kCICategoryHalftoneEffect_ = new NSString(bindings.kCICategoryHalftoneEffect);
+}
+
+NSString kCICategoryColorAdjustment ()
+{
+	if (kCICategoryColorAdjustment_)
+		return kCICategoryColorAdjustment_;
+
+	return kCICategoryColorAdjustment_ = new NSString(bindings.kCICategoryColorAdjustment);
+}
+
+NSString kCICategoryColorEffect ()
+{
+	if (kCICategoryColorEffect_)
+		return kCICategoryColorEffect_;
+
+	return kCICategoryColorEffect_ = new NSString(bindings.kCICategoryColorEffect);
+}
+
+NSString kCICategoryTransition ()
+{
+	if (kCICategoryTransition_)
+		return kCICategoryTransition_;
+
+	return kCICategoryTransition_ = new NSString(bindings.kCICategoryTransition);
+}
+
+NSString kCICategoryTileEffect ()
+{
+	if (kCICategoryTileEffect_)
+		return kCICategoryTileEffect_;
+
+	return kCICategoryTileEffect_ = new NSString(bindings.kCICategoryTileEffect);
+}
+
+NSString kCICategoryGenerator ()
+{
+	if (kCICategoryGenerator_)
+		return kCICategoryGenerator_;
+
+	return kCICategoryGenerator_ = new NSString(bindings.kCICategoryGenerator);
+}
+
+NSString kCICategoryReduction ()
+{
+	if (kCICategoryReduction_)
+		return kCICategoryReduction_;
+
+	return kCICategoryReduction_ = new NSString(bindings.kCICategoryReduction);
+}
+
+NSString kCICategoryGradient ()
+{
+	if (kCICategoryGradient_)
+		return kCICategoryGradient_;
+
+	return kCICategoryGradient_ = new NSString(bindings.kCICategoryGradient);
+}
+
+NSString kCICategoryStylize ()
+{
+	if (kCICategoryStylize_)
+		return kCICategoryStylize_;
+
+	return kCICategoryStylize_ = new NSString(bindings.kCICategoryStylize);
+}
+
+NSString kCICategorySharpen ()
+{
+	if (kCICategorySharpen_)
+		return kCICategorySharpen_;
+
+	return kCICategorySharpen_ = new NSString(bindings.kCICategorySharpen);
+}
+
+NSString kCICategoryBlur ()
+{
+	if (kCICategoryBlur_)
+		return kCICategoryBlur_;
+
+	return kCICategoryBlur_ = new NSString(bindings.kCICategoryBlur);
+}
+
+NSString kCICategoryVideo ()
+{
+	if (kCICategoryVideo_)
+		return kCICategoryVideo_;
+
+	return kCICategoryVideo_ = new NSString(bindings.kCICategoryVideo);
+}
+
+NSString kCICategoryStillImage ()
+{
+	if (kCICategoryStillImage_)
+		return kCICategoryStillImage_;
+
+	return kCICategoryStillImage_ = new NSString(bindings.kCICategoryStillImage);
+}
+
+NSString kCICategoryInterlaced ()
+{
+	if (kCICategoryInterlaced_)
+		return kCICategoryInterlaced_;
+
+	return kCICategoryInterlaced_ = new NSString(bindings.kCICategoryInterlaced);
+}
+
+NSString kCICategoryNonSquarePixels ()
+{
+	if (kCICategoryNonSquarePixels_)
+		return kCICategoryNonSquarePixels_;
+
+	return kCICategoryNonSquarePixels_ = new NSString(bindings.kCICategoryNonSquarePixels);
+}
+
+NSString kCICategoryHighDynamicRange ()
+{
+	if (kCICategoryHighDynamicRange_)
+		return kCICategoryHighDynamicRange_;
+
+	return kCICategoryHighDynamicRange_ = new NSString(bindings.kCICategoryHighDynamicRange);
+}
+
+NSString kCICategoryBuiltIn ()
+{
+	if (kCICategoryBuiltIn_)
+		return kCICategoryBuiltIn_;
+
+	return kCICategoryBuiltIn_ = new NSString(bindings.kCICategoryBuiltIn);
+}
+
+NSString kCICategoryFilterGenerator ()
+{
+	if (kCICategoryFilterGenerator_)
+		return kCICategoryFilterGenerator_;
+
+	return kCICategoryFilterGenerator_ = new NSString(bindings.kCICategoryFilterGenerator);
+}
+
+NSString kCIApplyOptionExtent ()
+{
+	if (kCIApplyOptionExtent_)
+		return kCIApplyOptionExtent_;
+
+	return kCIApplyOptionExtent_ = new NSString(bindings.kCIApplyOptionExtent);
+}
+
+NSString kCIApplyOptionDefinition ()
+{
+	if (kCIApplyOptionDefinition_)
+		return kCIApplyOptionDefinition_;
+
+	return kCIApplyOptionDefinition_ = new NSString(bindings.kCIApplyOptionDefinition);
+}
+
+NSString kCIApplyOptionUserInfo ()
+{
+	if (kCIApplyOptionUserInfo_)
+		return kCIApplyOptionUserInfo_;
+
+	return kCIApplyOptionUserInfo_ = new NSString(bindings.kCIApplyOptionUserInfo);
+}
+
+NSString kCIOutputImageKey ()
+{
+	if (kCIOutputImageKey_)
+		return kCIOutputImageKey_;
+
+	return kCIOutputImageKey_ = new NSString(bindings.kCIOutputImageKey);
+}
+
+NSString kCIInputBackgroundImageKey ()
+{
+	if (kCIInputBackgroundImageKey_)
+		return kCIInputBackgroundImageKey_;
+
+	return kCIInputBackgroundImageKey_ = new NSString(bindings.kCIInputBackgroundImageKey);
+}
+
+NSString kCIInputImageKey ()
+{
+	if (kCIInputImageKey_)
+		return kCIInputImageKey_;
+
+	return kCIInputImageKey_ = new NSString(bindings.kCIInputImageKey);
+}
+
+NSString kCIInputTimeKey ()
+{
+	if (kCIInputTimeKey_)
+		return kCIInputTimeKey_;
+
+	return kCIInputTimeKey_ = new NSString(bindings.kCIInputTimeKey);
+}
+
+NSString kCIInputTransformKey ()
+{
+	if (kCIInputTransformKey_)
+		return kCIInputTransformKey_;
+
+	return kCIInputTransformKey_ = new NSString(bindings.kCIInputTransformKey);
+}
+
+NSString kCIInputScaleKey ()
+{
+	if (kCIInputScaleKey_)
+		return kCIInputScaleKey_;
+
+	return kCIInputScaleKey_ = new NSString(bindings.kCIInputScaleKey);
+}
+
+NSString kCIInputAspectRatioKey ()
+{
+	if (kCIInputAspectRatioKey_)
+		return kCIInputAspectRatioKey_;
+
+	return kCIInputAspectRatioKey_ = new NSString(bindings.kCIInputAspectRatioKey);
+}
+
+NSString kCIInputCenterKey ()
+{
+	if (kCIInputCenterKey_)
+		return kCIInputCenterKey_;
+
+	return kCIInputCenterKey_ = new NSString(bindings.kCIInputCenterKey);
+}
+
+NSString kCIInputRadiusKey ()
+{
+	if (kCIInputRadiusKey_)
+		return kCIInputRadiusKey_;
+
+	return kCIInputRadiusKey_ = new NSString(bindings.kCIInputRadiusKey);
+}
+
+NSString kCIInputAngleKey ()
+{
+	if (kCIInputAngleKey_)
+		return kCIInputAngleKey_;
+
+	return kCIInputAngleKey_ = new NSString(bindings.kCIInputAngleKey);
+}
+
+NSString kCIInputRefractionKey ()
+{
+	if (kCIInputRefractionKey_)
+		return kCIInputRefractionKey_;
+
+	return kCIInputRefractionKey_ = new NSString(bindings.kCIInputRefractionKey);
+}
+
+NSString kCIInputWidthKey ()
+{
+	if (kCIInputWidthKey_)
+		return kCIInputWidthKey_;
+
+	return kCIInputWidthKey_ = new NSString(bindings.kCIInputWidthKey);
+}
+
+NSString kCIInputSharpnessKey ()
+{
+	if (kCIInputSharpnessKey_)
+		return kCIInputSharpnessKey_;
+
+	return kCIInputSharpnessKey_ = new NSString(bindings.kCIInputSharpnessKey);
+}
+
+NSString kCIInputIntensityKey ()
+{
+	if (kCIInputIntensityKey_)
+		return kCIInputIntensityKey_;
+
+	return kCIInputIntensityKey_ = new NSString(bindings.kCIInputIntensityKey);
+}
+
+NSString kCIInputEVKey ()
+{
+	if (kCIInputEVKey_)
+		return kCIInputEVKey_;
+
+	return kCIInputEVKey_ = new NSString(bindings.kCIInputEVKey);
+}
+
+NSString kCIInputSaturationKey ()
+{
+	if (kCIInputSaturationKey_)
+		return kCIInputSaturationKey_;
+
+	return kCIInputSaturationKey_ = new NSString(bindings.kCIInputSaturationKey);
+}
+
+NSString kCIInputColorKey ()
+{
+	if (kCIInputColorKey_)
+		return kCIInputColorKey_;
+
+	return kCIInputColorKey_ = new NSString(bindings.kCIInputColorKey);
+}
+
+NSString kCIInputBrightnessKey ()
+{
+	if (kCIInputBrightnessKey_)
+		return kCIInputBrightnessKey_;
+
+	return kCIInputBrightnessKey_ = new NSString(bindings.kCIInputBrightnessKey);
+}
+
+NSString kCIInputContrastKey ()
+{
+	if (kCIInputContrastKey_)
+		return kCIInputContrastKey_;
+
+	return kCIInputContrastKey_ = new NSString(bindings.kCIInputContrastKey);
+}
+
+NSString kCIInputGradientImageKey ()
+{
+	if (kCIInputGradientImageKey_)
+		return kCIInputGradientImageKey_;
+
+	return kCIInputGradientImageKey_ = new NSString(bindings.kCIInputGradientImageKey);
+}
+
+NSString kCIInputMaskImageKey ()
+{
+	if (kCIInputMaskImageKey_)
+		return kCIInputMaskImageKey_;
+
+	return kCIInputMaskImageKey_ = new NSString(bindings.kCIInputMaskImageKey);
+}
+
+NSString kCIInputShadingImageKey ()
+{
+	if (kCIInputShadingImageKey_)
+		return kCIInputShadingImageKey_;
+
+	return kCIInputShadingImageKey_ = new NSString(bindings.kCIInputShadingImageKey);
+}
+
+NSString kCIInputTargetImageKey ()
+{
+	if (kCIInputTargetImageKey_)
+		return kCIInputTargetImageKey_;
+
+	return kCIInputTargetImageKey_ = new NSString(bindings.kCIInputTargetImageKey);
+}
+
+NSString kCIInputExtentKey ()
+{
+	if (kCIInputExtentKey_)
+		return kCIInputExtentKey_;
+
+	return kCIInputExtentKey_ = new NSString(bindings.kCIInputExtentKey);
+}
+
+const TCIFilterRegistry = `
+
+	static CIFilter filterWithName (NSString name)
+	{
+		return invokeObjcSelfClass!(CIFilter, "filterWithName:", NSString)(name);
+	}
+
+	static CIFilter filterWithName_keysAndValues (ARGS...) (NSString name, ARGS args)
+	{
+		return invokeObjcSelfClass!(CIFilter, "filterWithName:keysAndValues:", NSString, ARGS)(name, args);
+	}
+
+	static NSArray filterNamesInCategory (NSString category)
+	{
+		return invokeObjcSelfClass!(NSArray, "filterNamesInCategory:", NSString)(category);
+	}
+
+	static NSArray filterNamesInCategories (NSArray categories)
+	{
+		return invokeObjcSelfClass!(NSArray, "filterNamesInCategories:", NSArray)(categories);
+	}
+
+	static void registerFilterName (NSString name, Object anObject, NSDictionary attributes)
+	{
+		return invokeObjcSelfClass!(void, "registerFilterName:constructor:classAttributes:", NSString, Object, NSDictionary)(name, anObject, attributes);
+	}
+
+	static NSString localizedNameForFilterName (NSString filterName)
+	{
+		return invokeObjcSelfClass!(NSString, "localizedNameForFilterName:", NSString)(filterName);
+	}
+
+	static NSString localizedNameForCategory (NSString category)
+	{
+		return invokeObjcSelfClass!(NSString, "localizedNameForCategory:", NSString)(category);
+	}
+
+	static NSString localizedDescriptionForFilterName (NSString filterName)
+	{
+		return invokeObjcSelfClass!(NSString, "localizedDescriptionForFilterName:", NSString)(filterName);
+	}
+
+	static NSURL localizedReferenceDocumentationForFilterName (NSString filterName)
+	{
+		return invokeObjcSelfClass!(NSURL, "localizedReferenceDocumentationForFilterName:", NSString)(filterName);
+	}
+
+	//mixin ObjcBindClassMethod!(filterWithName, "filterWithName:");
+	////mixin ObjcBindClassMethod!(filterWithName_keysAndValues, "filterWithName:keysAndValues:");
+	//mixin ObjcBindClassMethod!(filterNamesInCategory, "filterNamesInCategory:");
+	//mixin ObjcBindClassMethod!(filterNamesInCategories, "filterNamesInCategories:");
+	//mixin ObjcBindClassMethod!(registerFilterName, "registerFilterName:constructor:classAttributes:");
+	//mixin ObjcBindClassMethod!(localizedNameForFilterName, "localizedNameForFilterName:");
+	//mixin ObjcBindClassMethod!(localizedNameForCategory, "localizedNameForCategory:");
+	//mixin ObjcBindClassMethod!(localizedDescriptionForFilterName, "localizedDescriptionForFilterName:");
+	//mixin ObjcBindClassMethod!(localizedReferenceDocumentationForFilterName, "localizedReferenceDocumentationForFilterName:");
+
+`;
+
+
+class CIFilter : NSObject, INSCoding, INSCopying
+{
+	mixin (ObjcWrap);
+	
+	this (NSCoder aDecoder)
+	{
+		super(typeof(this).alloc.initWithCoder(aDecoder).objcObject);
+	}
+	
+	void encodeWithCoder (NSCoder aCoder)
+	{
+		return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
+	}
+	
+	typeof(this) initWithCoder (NSCoder aDecoder)
+	{
+		return invokeObjcSelf!(typeof(this), "initWithCoder:", NSCoder)(aDecoder);
+	}
+	
+	typeof(this) copyWithZone (NSZone* zone)
+	{
+		return invokeObjcSelf!(typeof(this), "copyWithZone:", NSZone*)(zone);
+	}
+
+	NSArray inputKeys ()
+	{
+		return invokeObjcSelf!(NSArray, "inputKeys");
+	}
+
+	NSArray outputKeys ()
+	{
+		return invokeObjcSelf!(NSArray, "outputKeys");
+	}
+
+	void setDefaults ()
+	{
+		return invokeObjcSelf!(void, "setDefaults");
+	}
+
+	NSDictionary attributes ()
+	{
+		return invokeObjcSelf!(NSDictionary, "attributes");
+	}
+
+	CIImage apply (CIKernel k, NSArray args, NSDictionary dict)
+	{
+		return invokeObjcSelf!(CIImage, "apply:arguments:options:", CIKernel, NSArray, NSDictionary)(k, args, dict);
+	}
+
+	/*CIImage apply (CIKernel apply, ...)
+	{
+		return invokeObjcSelf!(CIImage, "apply:", CIKernel)(apply);
+	}*/
+	
+	// CIRAWFilter
+	static CIFilter filterWithImageURL (NSURL url, NSDictionary options)
+	{
+		return invokeObjcSelfClass!(CIFilter, "filterWithImageURL:options:", NSURL, NSDictionary)(url, options);
+	}
+
+	static CIFilter filterWithImageData (NSData data, NSDictionary options)
+	{
+		return invokeObjcSelfClass!(CIFilter, "filterWithImageData:options:", NSData, NSDictionary)(data, options);
+	}
+	
+	// CACIFilterAdditions
+	NSString name ()
+	{
+		return invokeObjcSelf!(NSString, "name");
+	}
+	
+	void name (NSString name)
+	{
+		return invokeObjcSelf!(void, "setName:", NSString)(name);
+	}
+	
+	alias name setName;
+	
+	bool enabled ()
+	{
+		return invokeObjcSelf!(bool, "enabled");
+	}
+	
+	void enabled (bool enabled)
+	{
+		return invokeObjcSelf!(void, "setEnabled:", bool)(enabled);
+	}
+	
+	alias enabled setEnabled;
+	
+	// CIFilterRegistry
+	static CIFilter filterWithName (NSString name)
+	{
+		return invokeObjcSelfClass!(CIFilter, "filterWithName:", NSString)(name);
+	}
+
+	static CIFilter filterWithName_keysAndValues (ARGS...) (NSString name, ARGS args)
+	{
+		return invokeObjcSelfClass!(CIFilter, "filterWithName:keysAndValues:", NSString, ARGS)(name, args);
+	}
+
+	static NSArray filterNamesInCategory (NSString category)
+	{
+		return invokeObjcSelfClass!(NSArray, "filterNamesInCategory:", NSString)(category);
+	}
+
+	static NSArray filterNamesInCategories (NSArray categories)
+	{
+		return invokeObjcSelfClass!(NSArray, "filterNamesInCategories:", NSArray)(categories);
+	}
+
+	static void registerFilterName (NSString name, Object anObject, NSDictionary attributes)
+	{
+		return invokeObjcSelfClass!(void, "registerFilterName:constructor:classAttributes:", NSString, Object, NSDictionary)(name, anObject, attributes);
+	}
+
+	static NSString localizedNameForFilterName (NSString filterName)
+	{
+		return invokeObjcSelfClass!(NSString, "localizedNameForFilterName:", NSString)(filterName);
+	}
+
+	static NSString localizedNameForCategory (NSString category)
+	{
+		return invokeObjcSelfClass!(NSString, "localizedNameForCategory:", NSString)(category);
+	}
+
+	static NSString localizedDescriptionForFilterName (NSString filterName)
+	{
+		return invokeObjcSelfClass!(NSString, "localizedDescriptionForFilterName:", NSString)(filterName);
+	}
+
+	static NSURL localizedReferenceDocumentationForFilterName (NSString filterName)
+	{
+		return invokeObjcSelfClass!(NSURL, "localizedReferenceDocumentationForFilterName:", NSString)(filterName);
+	}
+}
\ No newline at end of file