---
title: QCCompositionRenderer
framework: quartz
role: symbol
role_heading: Protocol
path: quartz/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, QCView, and QCCompositionLayer classes.

## Declaration

```swift
protocol QCCompositionRenderer
```

## Topics

### Passing and Retrieving Values From a Composition

- [setValue(_:forInputKey:)](quartz/qccompositionrenderer/setvalue(_:forinputkey:).md)
- [value(forInputKey:)](quartz/qccompositionrenderer/value(forinputkey:).md)
- [value(forOutputKey:)](quartz/qccompositionrenderer/value(foroutputkey:).md)
- [value(forOutputKey:ofType:)](quartz/qccompositionrenderer/value(foroutputkey:oftype:).md)

### Getting Input and Output Keys

- [inputKeys()](quartz/qccompositionrenderer/inputkeys().md)
- [outputKeys()](quartz/qccompositionrenderer/outputkeys().md)

### Getting Attributes

- [attributes()](quartz/qccompositionrenderer/attributes().md)

### Storing Arbitrary Information

- [userInfo()](quartz/qccompositionrenderer/userinfo().md)

### Saving and Restoring Input Values

- [propertyListFromInputValues()](quartz/qccompositionrenderer/propertylistfrominputvalues().md)
- [setInputValuesWithPropertyList(_:)](quartz/qccompositionrenderer/setinputvalueswithpropertylist(_:).md)

## Relationships

### Conforming Types

- [QCCompositionLayer](quartz/qccompositionlayer.md)
- [QCRenderer](quartz/qcrenderer.md)
- [QCView](quartz/qcview.md)

## See Also

### Protocols

- [QCCompositionParameterViewDelegate](quartz/qccompositionparameterviewdelegate.md)
- [QCCompositionPickerViewDelegate](quartz/qccompositionpickerviewdelegate.md)
- [QCPlugInContext](quartz/qcplugincontext.md)
- [QCPlugInInputImageSource](quartz/qcplugininputimagesource.md)
- [QCPlugInOutputImageProvider](quartz/qcpluginoutputimageprovider.md)
