<!--
{
  "documentType" : "article",
  "framework" : "Quartz",
  "identifier" : "/documentation/Quartz/quartz-composer-constants",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Quartz Composer Constants"
}
-->

# Quartz Composer Constants

## Topics

### Constants

[`let QCCompositionAttributeBuiltInKey: String`](/documentation/Quartz/QCCompositionAttributeBuiltInKey)

The key for the composition origin.

[`let QCCompositionAttributeCategoryKey: String`](/documentation/Quartz/QCCompositionAttributeCategoryKey)

A key representing a composition category.

[`let QCCompositionAttributeCopyrightKey: String`](/documentation/Quartz/QCCompositionAttributeCopyrightKey)

The key for composition copyright information. The associated value is an `NSString` object.

[`let QCCompositionAttributeDescriptionKey: String`](/documentation/Quartz/QCCompositionAttributeDescriptionKey)

The key for the composition description. The associated value is an `NSString` object.

[`let QCCompositionAttributeHasConsumersKey: String`](/documentation/Quartz/QCCompositionAttributeHasConsumersKey)

The key for a composition that has consumer patches.

[`let QCCompositionAttributeIsTimeDependentKey: String`](/documentation/Quartz/QCCompositionAttributeIsTimeDependentKey)

[`let QCCompositionAttributeNameKey: String`](/documentation/Quartz/QCCompositionAttributeNameKey)

The key for the composition name. The associated value is an `NSString` object.

[`let QCCompositionCategoryDistortion: String`](/documentation/Quartz/QCCompositionCategoryDistortion)

A composition that produces a distortion effect.

[`let QCCompositionCategoryStylize: String`](/documentation/Quartz/QCCompositionCategoryStylize)

A composition that produces a stylize effect.

[`let QCCompositionCategoryUtility: String`](/documentation/Quartz/QCCompositionCategoryUtility)

A utility composition.

[`let QCCompositionInputAudioPeakKey: String`](/documentation/Quartz/QCCompositionInputAudioPeakKey)

A number input port whose key is `inputAudioPeak`. The value must be in the `[0,1]` range as a mono signal with no decay applied.

[`let QCCompositionInputAudioSpectrumKey: String`](/documentation/Quartz/QCCompositionInputAudioSpectrumKey)

A structure input port whose key is `inputAudioSpectrum`. The structure must contain 16 values in the `[0,1]` range representing 16 spectrum bands of the mono signal from low to high frequencies with no decay applied.

[`let QCCompositionInputDestinationImageKey: String`](/documentation/Quartz/QCCompositionInputDestinationImageKey)

An image input port whose key is `inputDestinationImage`.

[`let QCCompositionInputImageKey: String`](/documentation/Quartz/QCCompositionInputImageKey)

An image input port whose key is  `inputImage`.

[`let QCCompositionInputPaceKey: String`](/documentation/Quartz/QCCompositionInputPaceKey)

A number input port whose key is `inputPace`. The value must be in the `[0,1]` range.

[`let QCCompositionInputPreviewModeKey: String`](/documentation/Quartz/QCCompositionInputPreviewModeKey)

A Boolean input port whose key is `inputPreviewMode`. When the value of this input port is set to `TRUE`, the composition that provides this port must be able to run in a low-quality mode that produces a preview of the composition.

[`let QCCompositionInputPrimaryColorKey: String`](/documentation/Quartz/QCCompositionInputPrimaryColorKey)

A color input port whose key is `inputPrimaryColor`.

[`let QCCompositionInputRSSArticleDurationKey: String`](/documentation/Quartz/QCCompositionInputRSSArticleDurationKey)

A number input port whose key is `inputRSSArticleDuration`. The value must be expressed in seconds.

[`let QCCompositionInputRSSFeedURLKey: String`](/documentation/Quartz/QCCompositionInputRSSFeedURLKey)

A string input port whose key is `inputRSSFeedURL`. This port must be passed an http or feed scheme URL.

[`let QCCompositionInputScreenImageKey: String`](/documentation/Quartz/QCCompositionInputScreenImageKey)

An image input port whose key is `inputScreenImage`.

[`let QCCompositionInputSecondaryColorKey: String`](/documentation/Quartz/QCCompositionInputSecondaryColorKey)

A color input port whose key is `inputSecondaryColor`.

[`let QCCompositionInputSourceImageKey: String`](/documentation/Quartz/QCCompositionInputSourceImageKey)

An  image input port whose key is `inputSourceImage`.

[`let QCCompositionInputTrackInfoKey: String`](/documentation/Quartz/QCCompositionInputTrackInfoKey)

A structure input port whose key is `inputTrackInfo`. The structure contains optional entries, such as “name”, “artist”, “album”, “duration”, “artwork”, and so on.

[`let QCCompositionInputTrackPositionKey: String`](/documentation/Quartz/QCCompositionInputTrackPositionKey)

A number input port whose key is `inputTrackPosition`. The value must be expressed in seconds.

[`let QCCompositionInputTrackSignalKey: String`](/documentation/Quartz/QCCompositionInputTrackSignalKey)

A Boolean input port whose key is `inputTrackSignal`.

[`let QCCompositionInputXKey: String`](/documentation/Quartz/QCCompositionInputXKey)

A number input port whose key is `inputX`. The value must be normalized to the image width with the origin on the left.

[`let QCCompositionInputYKey: String`](/documentation/Quartz/QCCompositionInputYKey)

A number input port whose key is `inputY`. The value must be normalized to the image height with the origin at the bottom.

[`let QCCompositionOutputImageKey: String`](/documentation/Quartz/QCCompositionOutputImageKey)

An image output port whose key is `outputImage`.

[`let QCCompositionOutputWebPageURLKey: String`](/documentation/Quartz/QCCompositionOutputWebPageURLKey)

A string output port whose key is `outputWebPageURL`.

[`extern NSString * const QCCompositionPickerViewDidSelectCompositionNotification;`](/documentation/Quartz/QCCompositionPickerViewDidSelectCompositionNotification)

Posted when the user selects a composition in the picker view.

[`extern NSString * const QCCompositionPickerPanelDidSelectCompositionNotification;`](/documentation/Quartz/QCCompositionPickerPanelDidSelectCompositionNotification)

Posted when the user chooses a composition.

[`let QCCompositionProtocolGraphicAnimation: String`](/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.

[`let QCCompositionProtocolGraphicTransition: String`](/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.

[`let QCCompositionProtocolImageFilter: String`](/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.

[`let QCCompositionProtocolMusicVisualizer: String`](/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.

[`let QCCompositionProtocolRSSVisualizer: String`](/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.

[`let QCCompositionProtocolScreenSaver: String`](/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).

[`extern NSString * const QCCompositionRepositoryDidUpdateNotification;`](/documentation/Quartz/QCCompositionRepositoryDidUpdateNotification)

Posted whenever the list of compositions in the composition repository is updated.

[`let QCPlugInAttributeCategoriesKey: String`](/documentation/Quartz/QCPlugInAttributeCategoriesKey)

[`let QCPlugInAttributeCopyrightKey: String`](/documentation/Quartz/QCPlugInAttributeCopyrightKey)

[`let QCPlugInAttributeDescriptionKey: String`](/documentation/Quartz/QCPlugInAttributeDescriptionKey)

The key for the custom patch description.

[`let QCPlugInAttributeExamplesKey: String`](/documentation/Quartz/QCPlugInAttributeExamplesKey)

[`let QCPlugInAttributeNameKey: String`](/documentation/Quartz/QCPlugInAttributeNameKey)

The key for the custom patch name.

[`let QCPlugInExecutionArgumentEventKey: String`](/documentation/Quartz/QCPlugInExecutionArgumentEventKey)

The current event.

[`let QCPlugInExecutionArgumentMouseLocationKey: String`](/documentation/Quartz/QCPlugInExecutionArgumentMouseLocationKey)

The current location of the mouse (as an `NSPoint` object stored in an `NSValue` object) in normalized coordinates relative to the OpenGL context viewport ([0,1]x[0,1] with the origin (`0,0`) at the lower-left corner).

[`let QCPlugInPixelFormatARGB8: String`](/documentation/Quartz/QCPlugInPixelFormatARGB8)

An ARGB8 format. The alpha component is stored in the most significant bits of each pixel. Each pixel component is 8 bits. For best performance, use this format on PowerPC-based Macintosh computers, as it represents of the order of the data in memory.

[`let QCPlugInPixelFormatBGRA8: String`](/documentation/Quartz/QCPlugInPixelFormatBGRA8)

A  BGRA8 format. The alpha component is stored in the least significant bits of each pixel. Each pixel component is 8 bits. For best performance, use this format on Intel-PC-based Macintosh computers, as it represents of the order of the data in memory.

[`let QCPlugInPixelFormatI8: String`](/documentation/Quartz/QCPlugInPixelFormatI8)

An I8 format. Intensity information is represented as an 8-bit value.

[`let QCPlugInPixelFormatIf: String`](/documentation/Quartz/QCPlugInPixelFormatIf)

An If format. Intensity information is represented as a floating-point value.

[`let QCPlugInPixelFormatRGBAf: String`](/documentation/Quartz/QCPlugInPixelFormatRGBAf)

An RGBAf format. Pixel components are represented as floating-point values.

[`let QCPortAttributeDefaultValueKey: String`](/documentation/Quartz/QCPortAttributeDefaultValueKey)

The key for the port default value. You can use this key only for value ports (Boolean, Index, Number, Color and String).

[`let QCPortAttributeMaximumValueKey: String`](/documentation/Quartz/QCPortAttributeMaximumValueKey)

The key for the port maximum value.

[`let QCPortAttributeMenuItemsKey: String`](/documentation/Quartz/QCPortAttributeMenuItemsKey)

The key for the menu items.

[`let QCPortAttributeMinimumValueKey: String`](/documentation/Quartz/QCPortAttributeMinimumValueKey)

The key for the port minimum value.

[`let QCPortAttributeNameKey: String`](/documentation/Quartz/QCPortAttributeNameKey)

The key for the port name.

[`let QCPortAttributeTypeKey: String`](/documentation/Quartz/QCPortAttributeTypeKey)

The key for the port type. The associated value can be of any of the following constants: [`QCPortTypeBoolean`](/documentation/Quartz/QCPortTypeBoolean), [`QCPortTypeIndex`](/documentation/Quartz/QCPortTypeIndex), [`QCPortTypeNumber`](/documentation/Quartz/QCPortTypeNumber), [`QCPortTypeString`](/documentation/Quartz/QCPortTypeString), [`QCPortTypeColor`](/documentation/Quartz/QCPortTypeColor), [`QCPortTypeImage`](/documentation/Quartz/QCPortTypeImage), or [`QCPortTypeStructure`](/documentation/Quartz/QCPortTypeStructure).

[`let QCPortTypeBoolean: String`](/documentation/Quartz/QCPortTypeBoolean)

The port type for a Boolean value.

[`let QCPortTypeColor: String`](/documentation/Quartz/QCPortTypeColor)

The port type for a color value.

[`let QCPortTypeImage: String`](/documentation/Quartz/QCPortTypeImage)

The port type for an image.

[`let QCPortTypeIndex: String`](/documentation/Quartz/QCPortTypeIndex)

The port type for an index value.

[`let QCPortTypeNumber: String`](/documentation/Quartz/QCPortTypeNumber)

The port type for a number value.

[`let QCPortTypeString: String`](/documentation/Quartz/QCPortTypeString)

The port type for a string. The associated value can be an NSString object or any object that responds to the `-stringValue` or `-description` methods.

[`let QCPortTypeStructure: String`](/documentation/Quartz/QCPortTypeStructure)

The port type for a collection.

[`let QCRendererEventKey: String`](/documentation/Quartz/QCRendererEventKey)

A key for a renderer event.

[`let QCRendererMouseLocationKey: String`](/documentation/Quartz/QCRendererMouseLocationKey)

A key for the mouse location.

[`extern NSString * const QCViewDidStopRenderingNotification;`](/documentation/Quartz/QCViewDidStopRenderingNotification)

Posted when the view stops rendering.

[`extern NSString * const QCViewDidStartRenderingNotification;`](/documentation/Quartz/QCViewDidStartRenderingNotification)

Posted when the view starts rendering.

[`var kQCPlugInExecutionModeConsumer: QCPlugInExecutionMode`](/documentation/Quartz/kQCPlugInExecutionModeConsumer)

A consumer execution mode. The custom patch always executes assuming the value of its Enable input port is `true`. (The Enable port is automatically added by the system.)

[`var kQCPlugInExecutionModeProcessor: QCPlugInExecutionMode`](/documentation/Quartz/kQCPlugInExecutionModeProcessor)

A processor execution mode. The custom patch executes whenever its inputs change or if the time change (assuming it’s time-dependent).

[`var kQCPlugInExecutionModeProvider: QCPlugInExecutionMode`](/documentation/Quartz/kQCPlugInExecutionModeProvider)

A provider execution mode. The custom patch executes on demand—that is, whenever data is requested of it, but at most once per frame.

[`var kQCPlugInTimeModeIdle: QCPlugInTimeMode`](/documentation/Quartz/kQCPlugInTimeModeIdle)

An idle time dependency. The custom patch does not depend on time but needs the system to execute it periodically. For example if the custom patch connects to a piece of hardware, to ensure that it pulls data from the hardware, you would set the custom patch time dependency to idle time mode. This time mode is  typically used with providers.]]

[`var kQCPlugInTimeModeNone: QCPlugInTimeMode`](/documentation/Quartz/kQCPlugInTimeModeNone)

No time dependency. The custom patch does not depend on time at all. (It does not use the `time`  parameter of the `execute:atTime:withArguments:` method.)

[`var kQCPlugInTimeModeTimeBase: QCPlugInTimeMode`](/documentation/Quartz/kQCPlugInTimeModeTimeBase)

A time base dependency. The custom patch does depend on time explicitly and has a time base defined by the system. (It uses the `time`  parameter of the `execute:atTime:withArguments:` method.)



---

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)