Quartz Composer is part of the Apple developer tools package (http://developer.apple.com/tools/xcode/). This document assumes you have basic knowledge of Quartz Composer.
Compositions should follow one of the supported protocols.
The overlay protocol:
If a composition wants to overlay on the video stream, simply render whatever you want in the composition.
The image filter protocol:
As of CamTwist 2.0, CamTwist supports the standard QC Image Filter protocol. At a minimum you must publish and input image called "_protocolInput_Image" and and output image called "_protocolOutput_Image". Whatever happens in between is up to you. CamTwist also supports the "_protocolInput_PreviewMode" key which you can use to detect being in CamTwist Studio preview mode.
Supported Published Inputs:
Most of the published inputs will show up in the CamTwist settings panel automatically except anything published with a name starting with an underscore.
- Anything called "Font_Name" is assumed to be a font and presents as a font picker.
- For the same of simplicity for the end user, Number inputs that have a min and max are shown as sliders.
- Numbers called "X_Position" or "Y_Position" are assumed to be vec2 positions and are bounded at [-1, 1].
- If you have both X_Position and Y_Position, CamTwist will show the draggable "dot".
- If you need more than 1 draggable dot you can add a prefix to the pairs, for example: "Foo_X_Position", "Foo_Y_Position".
- Other numbers are shown as text fields.
- Indexes (enumeration type)
If you create any cool effects, please send them to me so I can include them in the next release.
Installation of effects
Effects can be placed in the Effects folder that comes with CamTwist, or ~/Library/Application Support/CamTwist/Effects.