<!--
{
  "documentType" : "article",
  "framework" : "Quartz",
  "identifier" : "/documentation/Quartz/standard-protocols",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Standard Protocols"
}
-->

# Standard Protocols

Protocols for a composition.

## Topics

### Constants

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

A composition that renders a generic graphical animation. It has the option to use [`QCCompositionInputPrimaryColorKey`](/documentation/Quartz/QCCompositionInputPrimaryColorKey) for the primary color of the animation, [`QCCompositionInputSecondaryColorKey`](/documentation/Quartz/QCCompositionInputSecondaryColorKey) for the secondary color of the animation, [`QCCompositionInputPaceKey`](/documentation/Quartz/QCCompositionInputPaceKey) for the global pace of the animation, and [`QCCompositionInputPreviewModeKey`](/documentation/Quartz/QCCompositionInputPreviewModeKey) to indicate if the animation should run in lower-quality for preview purposes.

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

A  composition that performs a transition between two images, using a transition time in range of `0` to `1`. A conforming composition must use the input keys [`QCCompositionInputSourceImageKey`](/documentation/Quartz/QCCompositionInputSourceImageKey) for the starting image and [`QCCompositionInputDestinationImageKey`](/documentation/Quartz/QCCompositionInputDestinationImageKey) for the image to transition to. The composition can optionally use [`QCCompositionInputPreviewModeKey`](/documentation/Quartz/QCCompositionInputPreviewModeKey) to indicate if the animation should run in lower-quality for preview purposes.

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

A  composition that  applies an effect to a source image.  A conforming composition must use the input key [`QCCompositionInputImageKey`](/documentation/Quartz/QCCompositionInputImageKey) for the source image and [`QCCompositionOutputImageKey`](/documentation/Quartz/QCCompositionOutputImageKey) for the output image. The composition can optionally use [`QCCompositionInputXKey`](/documentation/Quartz/QCCompositionInputXKey) to specify the X position of the center point of the effect, [`QCCompositionInputYKey`](/documentation/Quartz/QCCompositionInputYKey) to specify the Y position of the center point of the effect, and[`QCCompositionInputPreviewModeKey`](/documentation/Quartz/QCCompositionInputPreviewModeKey) to indicate if the animation should run in lower-quality for preview purposes.

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

A composition that can be used as a screen saver. The composition has the option to use [`QCCompositionInputScreenImageKey`](/documentation/Quartz/QCCompositionInputScreenImageKey) for a screenshot image of the screen that the screen saver runs on, [`QCCompositionInputPreviewModeKey`](/documentation/Quartz/QCCompositionInputPreviewModeKey) to indicate if the animation should run in lower-quality for preview purposes, and [`QCCompositionOutputWebPageURLKey`](/documentation/Quartz/QCCompositionOutputWebPageURLKey) for a  URL to open in the default web browser when screen saver exits (only allowed if screen saver password is disabled).

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

A  composition that acts as a visualizer for an RSS feed.  A conforming composition must use the input key [`QCCompositionInputRSSFeedURLKey`](/documentation/Quartz/QCCompositionInputRSSFeedURLKey) for the URL to use for the RSS feed. It can optionally use [`QCCompositionInputRSSArticleDurationKey`](/documentation/Quartz/QCCompositionInputRSSArticleDurationKey) to specify the duration of each feed article.

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

A  composition that acts as a visualizer for music.  A conforming composition must use the input key [`QCCompositionInputAudioPeakKey`](/documentation/Quartz/QCCompositionInputAudioPeakKey) for the instantaneous audio peak and the [`QCCompositionInputAudioSpectrumKey`](/documentation/Quartz/QCCompositionInputAudioSpectrumKey)  for the instantaneous audio spectrum. It can optionally use the [`QCCompositionInputTrackInfoKey`](/documentation/Quartz/QCCompositionInputTrackInfoKey) to indicate it receives information about the current  track and the [`QCCompositionInputTrackSignalKey`](/documentation/Quartz/QCCompositionInputTrackSignalKey) to indicate the start of a new track.



---

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)