import objc
from Foundation import *

ACScriptSuperMenuTitle = None
ACScriptMenuTitle = "My Simple Filter"

CIImage 	= objc.lookUpClass( 'CIImage' )
CIFilter 	= objc.lookUpClass( 'CIFilter' )
CIKernel 	= objc.lookUpClass( 'CIKernel' )
CISampler	= objc.lookUpClass( 'CISampler' )

kernelCode = """
kernel vec4 test(sampler src)
{
	return sample(src,samplerCoord(src))*0.5;
}
"""

def main(image):
	
	kernels = CIKernel.kernelsWithString_( kernelCode )
	kernel = kernels.objectAtIndex_(0)
	sampler = CISampler.samplerWithImage_( image )
	filter = CIFilter.alloc().init()

	imageExtent = image.extent()
	
	image = filter.apply_arguments_options_(kernel,[sampler,None],None)
	
	# This part can be skipped with the latest Acorn - Gus added a fix. (Thanks, Gus!)
	theCropVector = CIVector.vectorWithX_Y_Z_W_(0.0, 0.0, imageExtent[1][0], imageExtent[1][1])
	cropFilter = CIFilter.filterWithName_("CICrop")
	cropFilter.setValue_forKey_(theCropVector, "inputRectangle")
	cropFilter.setValue_forKey_(image, "inputImage")
	image = cropFilter.valueForKey_("outputImage")

	return image
