Cocoa CoreImage-在CPU上运行筛选器

Cocoa CoreImage-在CPU上运行筛选器,cocoa,core-image,Cocoa,Core Image,我想在CPU上运行一些CoreImage过滤器,而不是GPU。在CI文档中,我发现您可以通过创建如下上下文来表达您的偏好,即在CPU上执行过滤器: 要应用筛选器,我目前正在执行以下操作: NSBitmapImageRep * bitmaprep_in; CGImageRef cg_image_in = [bitmaprep_in CGImage]; CIImage * ci_image_in = [CIImage imageWithCGImage:cg_image_in]; CIFilter

我想在CPU上运行一些CoreImage过滤器,而不是GPU。在CI文档中,我发现您可以通过创建如下上下文来表达您的偏好,即在CPU上执行过滤器:

要应用筛选器,我目前正在执行以下操作:

NSBitmapImageRep * bitmaprep_in;
CGImageRef cg_image_in = [bitmaprep_in CGImage];

CIImage * ci_image_in = [CIImage imageWithCGImage:cg_image_in];

CIFilter * edge_filter = [CIFilter filterWithName:@"CIEdges"];
[edge_filter setDefaults];
[edge_filter setValue:ci_image_in forKey: @"inputImage"];

CIImage * result = [edge_filter valueForKey: @"outputImage"];

NSBitmapImageRep* rep = [[NSBitmapImageRep alloc]  initWithCIImage:result];

问题是,我看不到在哪里或如何设置仅CPU的CI上下文。如何正确执行此操作?

这将强制CPU渲染:

NSDictionary *theCIContextOptions = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], kCIContextUseSoftwareRenderer, NULL];

CIContext *theCIContext = [CIContext contextWithOptions:theCIContextOptions ];
NSDictionary *theCIContextOptions = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], kCIContextUseSoftwareRenderer, NULL];

CIContext *theCIContext = [CIContext contextWithOptions:theCIContextOptions ];