The Quartz Composer development team is proud to announce a new
version of both the Quartz Composer Engine and the Quartz Composer
Editor for the release of Mac OS X Leopard. This release was largely
driven by a combination of user feedback (via bug reports and
enhancement requests :) and our own desire to build something we love.
Here's a few highlights of what you'll find:
* A new QCPlugIn API for creating your own patches.
* A redesigned high performance image pipeline.
* A new editor designed to greatly improve workflow including an
infinite workspace, compatibility testing, composition comparison and
even undo!
* Many new patches including patches such as Smooth, Sample & Hold,
Mathematical Expression, OSC, Composition Loader, a new Timelines
patch, a generic XML Downloader patch and many more.
* Updates to many existing patches including the JavaScript patch
which can now store images and structures and a new Core Image Filter
patch.
* iTunes support for Music Visualizers including Jelly, Stix and Lathe.
* A system wide Composition Repository for sharing compositions
throughout the operating system (e.g. Photobooth and iTunes).
* The QCVisualizer: a new application used to render compositions on
networked computers across multiple screens (including source code).
* Automator actions to batch apply effects to images and movies.
* Many new and updated developer examples including compositions,
custom patches, Dashboard widgets and applications. If that's not
enough, the full list of changes are attached.
{\rtf1\ansi\ansicpg1252\cocoartf949
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid1}
{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid2}
{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid3}
{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid4}
{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid5}
{\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid6}
{\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid7}
{\list\listtemplateid8\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid8}
{\list\listtemplateid9\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid9}
{\list\listtemplateid10\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid10}
{\list\listtemplateid11\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid11}
{\list\listtemplateid12\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid12}
{\list\listtemplateid13\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid2\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid13}
{\list\listtemplateid14\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid2\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid14}
{\list\listtemplateid15\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid2\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid15}
{\list\listtemplateid16\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid2\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid16}}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}}
\vieww27920\viewh20280\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\f0\b\fs72 \cf0 Release Notes\
For Quartz Composer Leopard
\fs48 \
\b0\fs24 \
\i\fs28 This document lists all the major changes to Quartz Composer in Leopard versus the previous version released in Mac OS X Tiger.
\i0\fs24 \
\
\
\b\fs48 1) Quartz Composer Engine:
\b0\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul \ulc0 1.0 Redesigned Image Pipeline:
\fs24 \ulnone \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 The Quartz Composer image pipeline has been completely redesigned and provides the following major enhancements over its former Tiger implementation:\
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls1\ilvl0\cf0 {\listtext \'95 }Accurate color management\
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls2\ilvl0\cf0 {\listtext \'95 }Support for arbitrary sized images\
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls3\ilvl0\cf0 {\listtext \'95 }Support for float and half-float rendering\
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls4\ilvl0\cf0 {\listtext \'95 }Improved sharing of resources between all QCViews, QCRenderers and QCCompositionLayers in the same process\
{\listtext \'95 }Simplified texture properties (texture target, texturing matrix..)\
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls5\ilvl0\cf0 {\listtext \'95 }Optimized Image Crop and Image Transform patches\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\cf0 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul 1.1 Composition Repository:
\fs24 \ulnone \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 To encourage sharing of compositions through the system and applications, there is a new system-wide repository of compositions (which have to comply to standardized sets of inputs / outputs a.k.a. "protocols") located in /System/Library/Compositions, /Library/Compositions and ~/Library/Compositions. Users and installers can add new compositions to those places, while the repository can be easily be queried by application clients using new APIs.\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul 1.2 Support For Virtual Patches:
\fs24 \ulnone \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 It's now possible to use composition files as virtual patches if placed into "/Library/Graphics/Quartz Composer Patches" or "~/Library/Graphics/Quartz Composer Patches". Any composition file in these directories will appear like a native patch to Quartz Composer. You can instantiate them in your compositions like any regular built-in patches, but contrary to editor clips, each instantiation results in a non-editable virtual copy, instead of a real autonomous copy. Furthermore, when saving a composition file that uses virtual patches, only weak references are stored: if the composition file corresponding to a given virtual patch has been modified, or is simply missing, its dependend composition files will be affected.\
\
If you want remove all dependencies to virtual patches from a composition, select "Save a Copy As..." while pressing the Option key, and this will save a flattened copy of the composition that embeds real copies of the virtual patches.\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul 1.3 Other Enhancements:
\fs24 \ulnone \
\
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls6\ilvl0
\b0 \cf0 {\listtext \'95 }Structures generated by patches can be keyless\
{\listtext \'95 }Closed loops are fully allowed within the graph\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs48 \cf0 \
2) Quartz Composer Patches:
\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\fs36 \cf0 \ul 2.1 New Patches:
\fs24 \ulnone \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls7\ilvl0\cf0 {\listtext \'95 }Anchor Position - Outputs absolute values for the location an object should be if it were pinned to the edges or center of the screen with an optional offset amount towards the center of the screen.\
{\listtext \'95 }Apple Remote - Outputs the current state of the Apple Remote buttons if available.\
{\listtext \'95 }Color Mixer - Given two colors, finds the RGB mix of those colors with weights dependent on the mix value and interpolation.\
{\listtext \'95 }Composition Loader - Loads a composition into the current composition. Provides modularity and flexibility within compositions.\
{\listtext \'95 }Composition Info - Retrieves the metadata and a list of inputs/outputs from a composition on disk.\
{\listtext \'95 }Cylinder - Renders a 3D cylinder in space.\
{\listtext \'95 }Demultiplexer - Translates a value received on the input to one of the outputs selected by an index.\
{\listtext \'95 }Derivator - Outputs the derivative of a number. In other words, the speed at which it is changing.\
{\listtext \'95 }Image Histogram - Computes a structure of values for quantities of each Red, Green, Blue and Alpha.\
{\listtext \'95 }Image Origin - Reports the internal origin of the image in pixels.\
{\listtext \'95 }Image Pixel - Gives the RGBA component values of a pixel in an image.\
{\listtext \'95 }Image Resize - Modifies the size of an image to best fit the parameters given on the inputs.\
{\listtext \'95 }Integrator - Outputs a running sum of the input number each time it changes.\
{\listtext \'95 }GLSL - Live editing of GLSL shaders which apply to objects inside this macro.\
{\listtext \'95 }Grep - Uses regular expressions to scan a string and find patterns. Can also be used to search and replace based on a pattern.\
{\listtext \'95 }HID Input - Outputs the current state of a list of observed elements of a HID compliant USB input device.\
{\listtext \'95 }Line - Draws a line in 3D space and interpolates between a start color and end color.\
{\listtext \'95 }Math Expression - Parses an equation and creates the variables as input ports. Expressions are evaluated as necessary and the result is output.\
{\listtext \'95 }MIDI Controls - Sends arbitrary MIDI controller values on a given MIDI channel to one or more MIDI destinations.\
{\listtext \'95 }Network Broadcaster - Transmits a string over the local Bonjour network. Receivers can only listen to one Network Broadcast patch at a time so multiple values should be concatenated and sent simultaneously.\
{\listtext \'95 }Network Receiver - Receives values from the broadcaster.\
{\listtext \'95 }Network Synchronizer - Two way communication across the local Bonjour network.\
{\listtext \'95 }Noise - Given an input point in 1D, 2D, or 3D space this patch outputs a random value.\
{\listtext \'95 }Number Formatter - Outputs a number as a formatted string.\
{\listtext \'95 }OSC Client - Implements the client of the Open Sound Control protocol.\
{\listtext \'95 }OSC Server - Implements the server of the Open Sound Control protocol.\
{\listtext \'95 }Pulse - Outputs a true boolean value for a single frame when the input changes. The input condition can be rising edge, falling edge or both.\
{\listtext \'95 }Queue - Implements a first-in last-out queue of an arbitrary size and which accepts any kind of values.\
{\listtext \'95 }Sample And Hold - Stores an arbitrary value or object on its output port.\
{\listtext \'95 }Smooth - Gradually interpolates between the current numeric value to a new value provided on the input port.\
{\listtext \'95 }String MD5 - Produces a hash of the input string.\
{\listtext \'95 }String Replace - Replaces occurrences of a substring within a string with another string.\
{\listtext \'95 }String Subrange - Extracts a substring from the input string.\
{\listtext \'95 }Timelines - Allows drawing arbitrary curves and setting keyframes for outputting values.\
{\listtext \'95 }Watcher - Outputs a signal when the input changes.\
{\listtext \'95 }XML Downloader - A more generalized XML loader, for files on disk or on the internet.\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\cf0 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul 2.2 Updated Patches:
\fs24 \ulnone \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls8\ilvl0\cf0 {\listtext \'95 }Affine Transform is now Image Transform - No longer has Texture Format and Parameters.\
{\listtext \'95 }Audio Input - Added fall speed inputs for peak and spectrum and an option to turn on specific source listening. When this is off all sources are listened to. \
{\listtext \'95 }Billboard - A new setting for determining image dimensions has been added. Force pixel alignment is good for ensuring images do not get blurred by straddling pixel boundaries but is not suited for billboards which are animated because the movement will appear choppy as the image jumps from pixel to pixel.\
{\listtext \'95 }Core Image Accumulator - Image dimensions are now an input, Texture format and Parameters have been removed.\
{\listtext \'95 }Core Image Filter - Domain of Defintion is a union of input samplers. New advanced input sampler options are available. It is now possible to edit the filter function and call multipass core image routines.\
{\listtext \'95 }Folder Images became Directory Scanner, with an option to scan for images, movies or compositions.\
{\listtext \'95 }Gradient - Variable number of gradient points, at user defined positions. More direction modes were also added.\
{\listtext \'95 }Host Info - CPU load is now a structure instead of separate output ports.\
{\listtext \'95 }Image Crop - The crop patch is no longer a Core Image filter and is instead handled directly in QC for better performance and less image transformations.\
{\listtext \'95 }Image Downloader - Update Signal to tell the image downloader to reload the image. Removed Texture Format and Parameters. Synchronous Download option to ensure the composition does not continue until the image has loaded. Disable Color Correction setting added. Also outputs the progress of the download.\
{\listtext \'95 }Image Importer - Texture Format and Parameters removed. Disable Color Correction setting added.\
{\listtext \'95 }Image Texturing Matrix is now Image Texturing Properties, has added Target and Mipmapping options.\
{\listtext \'95 }Image With Movie is now Movie Loader - Movie playhead position output, Asynchronous mode setting added (for audio syncing). To decompress a video directly at a specific size, Frame dimensions setting has been added. Deinterlace hint, Clean aperature, Disable color correction settings have also been added.\
{\listtext \'95 }Image With String - Texture Format and Texture Parameters are no longer available on this patch. Quartz Composer has improved support for images that are larger than can fit on the video card.\
{\listtext \'95 }Javascript - Typed return values, function declarations, improved image and structure support.\
{\listtext \'95 }Lighting - Added a setting to control when the specular color is computed. This is necessary for the antialiasing feature added to the Sprite.\
{\listtext \'95 }Math - UI change to make number of operations visible.\
{\listtext \'95 }Midi Clock - Option to listen to all midi sources.\
{\listtext \'95 }Midi Controllers - Option to listen to all midi sources, Listen button to add the next modified controller to the observed controllers list.\
{\listtext \'95 }Midi Notes - An option to listen to all midi sources has been added. There is also a setting to translate the labels on the midi notes to match other applications.\
{\listtext \'95 }Mouse - Scroll wheel support added.\
{\listtext \'95 }Multiplexer - UI changed so that Number of Inputs is visible\
{\listtext \'95 }Particle System - Particle Count is now an input. Interpolate Size and Color adds inputs for a target size and an interpolation mode to arrive there over the lifetime.\
{\listtext \'95 }Psychedelic - Clear Depth Buffer setting\
{\listtext \'95 }RSS Feed is now RSS Downloader - Update signal input for reloading article, a setting to preserve HTML in contents, Preserve Extensions option for non-RSS xml elements, and an Synchronous dowload option to ensure the RSS is loaded before the composition continues. Also outputs the progress of the download.\
{\listtext \'95 }Random - Now works in an iterator when "Use Perlin Noise" is selected. New instances of this patch do this automatically, but old compositions retain their previous random behavior.\
{\listtext \'95 }Render in image - Inputs for Texture Target and Mip Mapping, dimensions. Settings for Depth Buffer Rendering, Feedback rendering and color matching.\
{\listtext \'95 }Sphere - Scale input is now Diameter\
{\listtext \'95 }Splitter - When the splitter has type "Index" and the range is bounded, index elements can be named. These show up as labels on the splitter and parameter views in Quartz Composer and client applications.\
{\listtext \'95 }Sprite - Resolution setting to add fragments and verticies for GLSL to act upon. Added an Antialiased Edges setting, allowing sprite edges which are not pixel aligned to be smooth. This setting requires that the sprite's blend mode be "Over" or "Add".\
{\listtext \'95 }Stop Watch - Refactored start modes to be more intuitive.\
{\listtext \'95 }TrackBall - Track Mouse allows you to disable mouse tracking as needed.\
{\listtext \'95 }Video Input - Added a Capture input to enable camera, video device selector, Clean aperature and color correction settings, removed Image Dimensions, Texture Format and Texture Parameters\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\cf0 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul 2.3 Deprecated Patches:
\fs24 \ulnone \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls9\ilvl0\cf0 {\listtext \'95 }Plasma Image\
{\listtext \'95 }Spotlight Images\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\cf0 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul 2.4 New Core Image Filters:
\fs24 \ulnone \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls10\ilvl0\cf0 {\listtext \'95 }Area Average - Returns a single-pixel image, containing the average color in the region-of-interest.\
{\listtext \'95 }Area Histogram - Returns a 1D image containing the component-wise histogram over the specified rectangle area.\
{\listtext \'95 }Area Maximum - Returns a single-pixel image, containing the maximum color components in the region-of-interest.\
{\listtext \'95 }Area Maximum Alpha - Returns a single-pixel image, containing the color vector with the maximal alpha value in the region-of-interest. If more than one pixel exists with the maximal alpha value, the vector with the lowest y and x coordinate is returned.\
{\listtext \'95 }Area Minimum - Returns a single-pixel image, containing the minimum color components in the region-of-interest.\
{\listtext \'95 }Area Minimum Alpha - Returns a single-pixel image, containing the color vector with the minimal alpha value in the region-of-interest. If more than one pixel exists with the minimal alpha value, the vector with the lowest y and x coordinate is returned.\
{\listtext \'95 }Bars Swipe Transition - Transitions from one image to another by swiping rectangular portions of the foreground image to disclose the target image. \
{\listtext \'95 }Box Blur - Smooths or sharpens an image using a box-shaped convolution kernel.\
{\listtext \'95 }Bump Distortion Linear - Creates a bump that originates from a linear portion of the image.\
{\listtext \'95 }Column Average - Returns a 1-pixel high image containing the average color in each scan-column\
{\listtext \'95 }Comic Effect - Simulates a comic book drawing by outlining edges and applying a color halftone effect.\
{\listtext \'95 }Disc Blur - Smooths or sharpens an image using a disc-shaped convolution kernel.\
{\listtext \'95 }Eightfold Reflected Tile - Produces a tiled image from a source image by applying an 8-way reflected symmetry.\
{\listtext \'95 }Fourfold Reflected Tile - Produces a tiled image from a source image by applying a 4-way reflected symmetry.\
{\listtext \'95 }Fourfold Rotated Tile - Produces a tiled image from a source image by rotating the source at increments of 90 degrees.\
{\listtext \'95 }Fourfold Translated Tile - Produces a tiled image from a source image by applying 4 tranlsation operations.\
{\listtext \'95 }Glide Reflected Tile - Produces a tiled image from a source image by translating and smearing the image.\
{\listtext \'95 }Hexagonal Pixellate - Displays an image as colored hexagons whose color is an average of the pixels they replace.\
{\listtext \'95 }Line Overlay - Creates a sketch that outlines the edges of an image in black, leaving the non-outlined portions of the image transparent.\
{\listtext \'95 }Maximum Component - Return a grayscale image from max(r, g, b)\
{\listtext \'95 }Minimum Component - Return a grayscale image from min(r, g, b)\
{\listtext \'95 }Row Average - Returns a 1-pixel high image containing the average color in each scan-row.\
{\listtext \'95 }Sixfold Reflected Tile - Produces a tiled image from a source image by applying a 6-way reflected symmetry.\
{\listtext \'95 }Sixfold Rotated Tile - Produces a tiled image from a source image by rotating the source at increments of 60 degrees.\
{\listtext \'95 }Spot Color - Replaces one ore more color ranges with spot colors.\
{\listtext \'95 }Twelvefold Reflected Tile - Produces a tiled image from a source image by applying a 12-way reflected symmetry.\
{\listtext \'95 }\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs48 \cf0 3) Quartz Composer Editor:
\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\fs36 \cf0 \ul 3.1 New Features:
\fs24 \ulnone \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls11\ilvl0
\b0 \cf0 {\listtext \'95 }Patch Creator\
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls12\ilvl1\cf0 {\listtext \'95 }The Patch browser has been replaced with the new Patch Creator window. The Patch Creator allows users to quickly find the patch or clip they want and insert it into the graph. \
{\listtext \'95 }You can show the Patch Creator by hitting cmd-Enter, and you can easily dismiss it by pressing escape.\
{\listtext \'95 }The Patch Creator's search scope can be limited by using the pull down menu in the Patch Creator's search field.\
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }There is also a preference, which is off by default, to automatically hide the Patch Creator after inserting a patch into the workspace.\
{\listtext \'95 }Patches based on Core Image filters are no longer reported with a bullet in the list, but appear like regular patches.\
\pard\tx220\tx720\tx1440\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'95 }Comparing Compositions\
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }Users can now compare two compositions in order to see rendering differences, as well as graph differences.\
{\listtext \'95 }In order to access this tool, choose 'Compare Compositions' from the File menu of the Quartz Composer Editor application.\
{\listtext \'95 }This tool is very powerful if there are multiple individuals working on the same composition.\
\pard\tx220\tx720\tx1440\tx2160\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'95 }Template Assistant\
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }The initial user experience has been completely rewritten to provide a better set of templates that correspond to compositions in the new Composition Repository.\
\pard\tx220\tx720\tx1120\tx1680\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }Protocol Conformance Editor\
\pard\tx940\tx1440\tx1680\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }This editor allows users to modify which Composition Repository protocols the composition responds to. It will insert, and remove the necessary patches to ensure compliance.\
\pard\tx220\tx720\tx1120\tx1680\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }Metadata Editor\
\pard\tx940\tx1440\tx1680\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }The Composition Information Editor has been extended (i.e. Metadata Editor) to allow users to enter arbitrary types of information. Thus allowing the users generate their own metadata for use in their own compositions.\
\pard\tx220\tx720\tx1440\tx1680\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'95 }Clip Management\
\pard\tx940\tx1440\tx1680\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }Clip management has been integrated into the Editor application. To expose the Clip Manager, open the Preferences, and choose the 'Clips' tab.\
{\listtext \'95 }You can also create clips on the fly from a given selection. This clip will then be added to the user's list of clips.\
{\listtext \'95 }Choose the patches you want in your clip, then choose 'Create Clip...' from the Editor menu. \
\pard\tx220\tx720\tx1440\tx1680\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'95 }Patch Inputs Pane\
\pard\tx940\tx1440\tx1680\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }There is a new Patch inputs pane that allows you to easily compare and edit selected patches input values. It also shows the parent macro's inputs. \
{\listtext \'95 }You can expose this by selecting 'Show Input Parameters' from the Editor menu.\
\pard\tx220\tx720\tx1440\tx2160\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'95 }Independent Settings Windows\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }Users now have the ability to open a separate window that contains the contents of the inspector's Settings pane for the selected patch. This is very useful for programming patches, as well as duplicating settings between two similar patches.\
{\listtext \'95 }To open one of these, select a patch with a settings pane and choose 'Show Patch Settings' from the Editor menu.\
\pard\tx220\tx720\tx1440\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'95 }Compatibility\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls13\ilvl1\cf0 {\listtext \'95 }To ensure compositions will behave the same on OS X Tiger, select "Display 10.4 Compatibility Information" in the Editor menu.\
{\listtext \'95 }To check which patches will be disallowed from running in safe environments (WebKit and QuickTime for example), select "Indicate Unsafe Patches" in the Editor menu. Unsafe patches are those which could potentially disclose personal user information or access certain hardware resources.\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls13\ilvl2\cf0 \
\pard\tx720\tx1440\tx2160\pardeftab720\sl380\sa20\ql\qnatural
\cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs36 \cf0 \ul 3.3 Improvements:
\b0\fs24 \ulnone \
\pard\tx220\tx720\tx1120\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls14\ilvl0\cf0 {\listtext \'95 }Workspace Improvements\
\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }The workspace now has unlimited size.\
{\listtext \'95 }Zooming in/out is now supported via the scroll wheel, or the improved toolbar buttons.\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }There are now buttons to zoom to fit all patches, and zooming to fit selected patches.\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }Users can now click on ports to create connections, rather than having to click-drag to create them.\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }Option click retains hold on a connection, allowing multiple inputs to be connected from one output in succession.\
\pard\tx940\tx1440\tx1680\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }Insert Input/Output Splitter Contextual menu\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }These menu items insert an input splitter for a specified port. All connections and published states will be moved to the new splitter's port.\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }Select Upstream/Downstream Patches\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }These menu items will allow you to select all patches 'downstream', or 'upstream' of the selected patches. This means that every patch connected to the output ports (downstream) or input ports (upstream) will be selected recursively through the graph. This is very useful for rearranging or moving functional units of your composition.\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }Connection highlighting\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }When a patch is selected, all connections in the composition that are not connected to a selected patch are drawn in a gray color. All connections that either end or begin in a selected patch are drawn their normal color. This allows users to easily track where connections originate and terminate.\
\pard\tx940\tx1440\tx1680\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }Patch Titles: The patch title can now be set by simply double clicking on it.\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }Some patches have automatic titles (Splitters, Multiplexer, and Mathematical Expression for example). These titles are automatically set to represent specific aspects of the patch's settings. You can still customize the title on those patches by editing it and removing the quotes.\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }Tooltip Improvements\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }Patch Descriptions are now shown in the tooltip.\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls14\ilvl1\cf0 {\listtext \'95 }Workspace Notes\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls14\ilvl2\cf0 {\listtext \uc0\u8259 }Users can now create Notes to annotate a composition. To create a note, right click or control click on the workspace. If a multi-line description is necessary, press option-return to insert a newline. Colors can be changed by right click or control clicking on the note.\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls15\ilvl1\cf0 {\listtext \'95 }Other Workspace Improvements\
\pard\tx1660\tx2160\tx2880\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls15\ilvl2\cf0 {\listtext \uc0\u8259 }The 'Rendering Layer' section of a patch now acts like a pulldown button, rather than a contextual menu.\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls15\ilvl2\cf0 {\listtext \uc0\u8259 }Blending mode now uses Replace rather than None for clarity on all patches.\
\pard\tx220\tx720\tx1440\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls15\ilvl2\cf0 {\listtext \uc0\u8259 }Inspector Improvements\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls15\ilvl2\cf0 {\listtext \uc0\u8259 }The Information pane has been removed.\
{\listtext \uc0\u8259 }Inspector window now remembers the selected pane, rather than defaulting to the Information pane when you change patches.\
{\listtext \uc0\u8259 }A new Inputs/Outputs Pane allows the reordering of input and output ports, while preserving connections, and published port state.\
\pard\tx220\tx720\tx1440\tx2160\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\ls16\ilvl0\cf0 {\listtext \'95 }Viewer Improvements\
\pard\tx940\tx1440\tx2160\pardeftab720\li1440\fi-1440\sl380\sa20\ql\qnatural
\ls16\ilvl1\cf0 {\listtext \'95 }The viewer window's minimum dimensions have been reduced. Allowing you to create compositions that are targeted at much smaller rendering dimensions.\
{\listtext \'95 }The CPU load has been removed, since the numbers were quite misleading.\
{\listtext \'95 }There is now a 'Snapshot' toolbar item that allows users to save a snapshot to disk.\
{\listtext \'95 }Customizable Viewer dimensions\
\pard\tx1660\tx2160\pardeftab720\li2160\fi-2160\sl380\sa20\ql\qnatural
\ls16\ilvl2\cf0 {\listtext \uc0\u8259 }It is now possible to define arbitrary aspect ratios and pixel dimensions that the viewer will be constrained to. To choose one of these, simply select the desired setting from the lower left corner of the Viewer window.\
{\listtext \uc0\u8259 }Custom Viewer dimensions can be defined under the 'Viewer' tab Editor's preferences.\
\pard\tx560\pardeftab720\sl380\sa20\ql\qnatural
\cf0 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs48 \cf0 4) Quartz Composer Visualizer:
\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 There's a new Quartz Composer developer tool located in /Developer/Applications/Graphic Tools: Quartz Composer Visualizer. This application can render a Quartz Composition spanned over multiple screens on a single computer or even on a cluster of computers.\
The source code of Quartz Composer Visualizer is available as well in /Developer/Examples/Quartz Composer.\
\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs48 \cf0 5) Quartz Composer Support in Automator:
\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 There are 3 new Automator actions for Quartz Composer Support:\
\'95 Apply Quartz Composition Filter to Image Files\
\'95 Convert Quartz Compositions to QuickTime Movies\
\'95 Render Quartz Compositions to Image Files\
\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs48 \cf0 6) Quartz Composer Developer Examples:
\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 The Quartz Composer Developer Examples are in "/Developer/Examples/Quartz Composer", and they contain a great number of new demo compositions, custom patches and applications demonstrating all kinds of techniques with Quartz Composer: make sure to browse them all.\
\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs48 \cf0 7) Quartz Composer APIs:
\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\fs36 \cf0 \ul 5.1 New APIs:
\b0\fs24 \ulnone \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs28 \cf0 QCPlugIn / QCPlugInViewController:
\fs24 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 \
The API to write custom patches for Quartz Composer.\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs28 \cf0 QCComposition:
\b0\fs24 \
\
An opaque object representing a Quartz composition, either created directly from a file on disk or from the composition repository.\
\
\
\b\fs28 QCCompositionRepository:
\b0\fs24 \
\
The API to access the system-wide repository of compositions which comply to standardized sets of inputs / outputs (also called "protocols").\
\
\
\b\fs28 QCCompositionLayer:
\b0\fs24 \
\
A Core Animation layer that renders a Quartz composition within Core Animation. \
\
\
\b\fs28 QCCompositionPickerView / QCCompositionPickerPanel:
\b0\fs24 \
\
A view that displays a configurable picker to select a composition from the composition repository.\
\
\b\fs28 \
QCCompositionParameterView:
\b0\fs24 \
\
A view that builds a standard UI to edit the input parameters of a composition loaded on a QC renderer.\
\
\
\b\fs28 QCView:
\b0\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b \cf0 Loading and unloading compositions:
\b0 \
- (BOOL) loadComposition:(QCComposition*)composition;\
- (BOOL) isCompositionLoaded;\
- (void) unloadComposition;\
\
\b Pausing rendering:
\b0 \
- (void) pauseRendering;\
- (BOOL) isPausedRendering;\
- (void) resumeRendering;\
\
\b Customizing rendering by subclassing QCView:
\b0 \
- (BOOL) renderAtTime:(NSTimeInterval)time arguments:(NSDictionary*)arguments;\
- (NSOpenGLContext*) openGLContext;\
- (NSOpenGLPixelFormat*) openGLPixelFormat;\
\
\b Capturing the QCView contents as an NSImage, CIImage, CGImage...
\b0 \
- (NSImage*) snapshotImage;\
- (id) createSnapshotImageOfType:(NSString*)type;\
\
\b Retrieving composition results as a given data type:
\b0 \
- (id) valueForOutputKey:(NSString*)key ofType:(NSString*)type;\
\
\b New Interface Builder action to play / pause:
\b0 \
- (IBAction) play:(id)sender;\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b\fs28 \cf0 QCRenderer
\b0\fs24 \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b \cf0 Creating a QCRenderer from a CGLContextObj and a colorspace:
\b0 \
- (id) initWithCGLContext:(CGLContextObj)context pixelFormat:(CGLPixelFormatObj)format colorSpace:(CGColorSpaceRef)colorSpace composition:(QCComposition*)composition;\
\
\b Creating an offscreen QCRenderer:
\b0 \
- (id) initOffScreenWithSize:(NSSize)size colorSpace:(CGColorSpaceRef)colorSpace composition:(QCComposition*)composition;\
\
\b Creating a QCRenderer with a purely processing composition:
\b0 \
- (id) initWithComposition:(QCComposition*)composition colorSpace:(CGColorSpaceRef)colorSpace;\
\
\b Capturing the QCRenderer contents as an NSImage, CIImage, CGImage...
\b0 \
- (NSImage*) snapshotImage;\
- (id) createSnapshotImageOfType:(NSString*)type;\
\
\
\b\fs36 \ul 5.2 Updated APIs:
\fs24 \ulnone \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\b0 \cf0 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl380\sa20\ql\qnatural
\cf0 \'95 For optimal image passing between multiple QC renderers, a new opaque image type is supported: QCImage.\
\'95 The methods [QCRenderer attributes] and -[QCView attributes] now returns all metadata stored in the composition.\
\'95 When looking at port attributes for index ports, QCPortAttributeMenuItemsKey may be present and contain an NSArray of NSStrings representing the menu item titles.\
}
- The Quartz Composer team
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com
This email sent to [EMAIL PROTECTED]