<!--
{
  "availability" : [
    "macOS: 10.4.0 - 10.15.0"
  ],
  "documentType" : "symbol",
  "framework" : "Quartz",
  "identifier" : "/documentation/Quartz/QCCompositionRenderer",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Quartz"
    ],
    "preciseIdentifier" : "c:objc(pl)QCCompositionRenderer"
  },
  "title" : "QCCompositionRenderer"
}
-->

# QCCompositionRenderer

The `QCRenderer` protocol defines the methods used to pass data to the input ports or retrieve data from the output ports of the root patch of a Quartz Composer composition. This protocol is adopted by the [`QCRenderer`](/documentation/Quartz/QCRenderer), [`QCView`](/documentation/Quartz/QCView), and [`QCCompositionLayer`](/documentation/Quartz/QCCompositionLayer) classes.

```
protocol QCCompositionRenderer
```

## Topics

### Passing and Retrieving Values From a Composition

[`-  setValue:forInputKey:`](/documentation/Quartz/QCCompositionRenderer/setValue(_:forInputKey:))

Sets the value for an input port of a composition.

[`-  valueForInputKey:`](/documentation/Quartz/QCCompositionRenderer/value(forInputKey:))

Returns the value for an input port of a composition.

[`-  valueForOutputKey:`](/documentation/Quartz/QCCompositionRenderer/value(forOutputKey:))

Returns the value for an output port of a composition.

[`-  valueForOutputKey:ofType:`](/documentation/Quartz/QCCompositionRenderer/value(forOutputKey:ofType:))

Returns the current value on an output port (identified by its key) of the root patch of the composition.

### Getting Input and Output Keys

[`-  inputKeys`](/documentation/Quartz/QCCompositionRenderer/inputKeys())

Returns an array that contains the keys that identify the input ports of the root patch of the composition.

[`-  outputKeys`](/documentation/Quartz/QCCompositionRenderer/outputKeys())

Returns an array that contains the keys that identify the output ports of the root patch of the composition.

### Getting Attributes

[`-  attributes`](/documentation/Quartz/QCCompositionRenderer/attributes())

Returns the attributes of the composition associated with the renderer.

### Storing Arbitrary Information

[`-  userInfo`](/documentation/Quartz/QCCompositionRenderer/userInfo())

Returns a mutable dictionary for storing arbitrary information.

### Saving and Restoring Input Values

[`-  propertyListFromInputValues`](/documentation/Quartz/QCCompositionRenderer/propertyListFromInputValues())

Returns a property list object that represents the current values for all the input keys of the composition.

[`-  setInputValuesWithPropertyList:`](/documentation/Quartz/QCCompositionRenderer/setInputValuesWithPropertyList(_:))

Sets the values for the input keys of the composition from a previously saved property list.

## Relationships

### Conforming Types

[`QCView`](/documentation/Quartz/QCView)

[`QCCompositionLayer`](/documentation/Quartz/QCCompositionLayer)

[`QCRenderer`](/documentation/Quartz/QCRenderer)

---

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)