Creating Quartz Composer Patches

Creating patches for Quartz Composer can follow one of two paths:

  1. With the release of OS X 10.5 (Leopard), Apple released a supported plug-in API (sometimes called "The Official API") that allows simple patches to be created. However, there are some severe limitations to the Official API.

    To get started with the Official API, you should read Apple's Documentation on QC Patch Programming at http://developer.apple.com/documentation/GraphicsImaging/Conceptual/QuartzComposer_Patch_PlugIn_ProgGuide/index.html

  2. In addition to the Official API, Quart Composer has had an undocumented, unsupported API (sometimes called "The Unofficial API", "The Private API" or "Skanky SDK"), which allows complete control over the QC environment. Kineme.net leverages the additional power of the Unofficial API to make almost all of their plugins. Kineme's SkankySDK is not strictly analogous with Apple's actual Private API, but implements most functionality, along with functions that Kineme has found are convenient.

    To get started with the SkankySDK, you should download our Xcode Template from https://github.com/kineme/QCPatchXcodeTemplate

Limitations of the Official API:

  • Fixed port types (inability to create ports other than bool, number, index, color, structure, string, and image)
  • Limited branding support (All plug-ins are in the "Plug-In" category, making categories useless for sorting plugins)
  • No Macro Environment patches (Plug-In patches cannot have subpatches)
  • Plug-Ins are _always_ unsafe (this is a good thing, normally, but annoying in certain contexts)
  • Structures of "internal types" (images, mostly) do not work correctly (Plug-Ins cannot work with QCImages directly, they only know about QCPlugInImageProviders)
  • PlugIns are not composition-compatible with unofficial-API plugins on Tiger