init(forOfflineGPUAtIndex:colorSpace:options:sharedContext:)
Creates an OpenGL-based Core Image context using a GPU that is not currently driving a display, with the specified options.
Declaration
init?(forOfflineGPUAtIndex index: UInt32, colorSpace: CGColorSpace?, options: [CIContextOption : Any]? = nil, sharedContext: CGLContextObj?)Parameters
- index:
The index of the offline GPU with which to create the context; a number between zero and the value returned by the Offlinegpucount() method.
- colorSpace:
A color space object encapsulating color space information that is used to specify how color values are interpreted.
- options:
A dictionary that contains options for creating a Cicontext object. You can pass any of the keys defined in Cicontextoption along with the appropriate value.
- sharedContext:
A CGL context with which to share OpenGL resources, obtained by calling the CGL function
CGLCreateContext(_:_:_:). PassNULLto use a context that does not share OpenGL resources.
Return Value
A Core Image context.
Discussion
GPU devices that are not currently being used to drive a display can be used for Core Image rendering. Use the offlineGPUCount() method to determine whether any such GPUs are available.
To create a Metal-based Core Image context using an offline GPU, use the MTLCopyAllDevices() function to list Metal devices, then choose a device without a display to pass to the init(mtlDevice:) method.