<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.13.0 -",
    "tvOS: 11.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreImage",
  "identifier" : "/documentation/CoreImage/CIRenderDestination",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core Image"
    ],
    "preciseIdentifier" : "c:objc(cs)CIRenderDestination"
  },
  "title" : "CIRenderDestination"
}
-->

# CIRenderDestination

A specification for configuring all attributes of a render task’s destination and issuing asynchronous render tasks.

```
class CIRenderDestination
```

## Overview

The `CIRenderDestination` class provides an API for specifying a render task destination’s properties, such as buffer format, alpha mode, clamping behavior, blending, and color space, properties formerly tied to [`CIContext`](/documentation/CoreImage/CIContext).

You can create a `CIRenderDestination` object for each surface or buffer to which you must render. You can also render multiple times to a single destination with different settings such as colorspace and blend mode by mutating a single `CIRenderDestination` object between renders.

Renders issued to a `CIRenderDestination` return to the caller as soon as the CPU has issued the task, rather than after the GPU has performed the task, so you can start render tasks on subsequent frames without waiting for previous renders to finish. If the render fails, a [`CIRenderTask`](/documentation/CoreImage/CIRenderTask) will return immediately.

## Topics

### Creating a Render Destination

[`init(pixelBuffer:)`](/documentation/CoreImage/CIRenderDestination/init(pixelBuffer:))

Creates a render destination based on a Core Video pixel buffer.

[`init(ioSurface:)`](/documentation/CoreImage/CIRenderDestination/init(ioSurface:)-1hfcq)

Creates a render destination based on an `IOSurface` object.

[`init(mtlTexture:commandBuffer:)`](/documentation/CoreImage/CIRenderDestination/init(mtlTexture:commandBuffer:)-2iu5i)

Creates a render destination based on a Metal texture.

[`init(width:height:pixelFormat:commandBuffer:mtlTextureProvider:)`](/documentation/CoreImage/CIRenderDestination/init(width:height:pixelFormat:commandBuffer:mtlTextureProvider:))

Creates a render destination based on a Metal texture with specified pixel format.

[`init(glTexture:target:width:height:)`](/documentation/CoreImage/CIRenderDestination/init(glTexture:target:width:height:)-9ci8e)

Creates a render destination based on an OpenGL texture.

[`init(bitmapData:width:height:bytesPerRow:format:)`](/documentation/CoreImage/CIRenderDestination/init(bitmapData:width:height:bytesPerRow:format:))

Creates a render destination based on a client-managed buffer.

### Customizing Rendering

[`alphaMode`](/documentation/CoreImage/CIRenderDestination/alphaMode)

The render destination’s representation of alpha (transparency) values.

[`CIRenderDestinationAlphaMode`](/documentation/CoreImage/CIRenderDestinationAlphaMode)

Different ways of representing alpha.

[`blendKernel`](/documentation/CoreImage/CIRenderDestination/blendKernel)

The destination’s blend kernel.

[`blendsInDestinationColorSpace`](/documentation/CoreImage/CIRenderDestination/blendsInDestinationColorSpace)

Indicator of whether to blend in the destination’s color space.

[`colorSpace`](/documentation/CoreImage/CIRenderDestination/colorSpace)

The destination’s color space.

[`width`](/documentation/CoreImage/CIRenderDestination/width)

The render destination’s row width.

[`height`](/documentation/CoreImage/CIRenderDestination/height)

The render destination’s buffer height.

[`isClamped`](/documentation/CoreImage/CIRenderDestination/isClamped)

Indicator of whether or not the destination clamps.

[`isDithered`](/documentation/CoreImage/CIRenderDestination/isDithered)

Indicator of whether or not the destination dithers.

[`isFlipped`](/documentation/CoreImage/CIRenderDestination/isFlipped)

Indicator of whether the destination is flipped.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)