- Quartz Composer
name = Quartz Composer
caption = The Quartz Composer 3.x interface and a composition
latest release version = 3.1 (63.2)
latest release date =
latest preview version =
latest preview date =
operating system =
Mac OS X v10.4(Version 2.0) Mac OS X v10.5(Version 3.0)
Mac OS X v10.5 + iPhone SDK (Version 3.1)
language = English
status = Active
Visual programming language/ Software development tool
license = Proprietary
website = [http://developer.apple.com/graphicsimaging/quartz/quartzcomposer.html Apple - Quartz Composer]
Quartz Composer is a node-based
visual programming languageprovided as part of the Xcode development environmentin Mac OS X v10.4"Tiger" and Mac OS X v10.5"Leopard" for processing and rendering graphical data.
Quartz Composer uses
Quartz programming through Quartz Composer works by implementing and connecting "patches" [ [http://developer.apple.com/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/qc_concepts/chapter_2_section_3.html#//apple_ref/doc/uid/TP40005381-CH212-DontLinkElementID_2 Quartz Composer User Guide - Patches] ] . Similar to routines in traditional programming languages, patches are base processing units. They execute and produce a result. For better performance, patch execution follows a
Lazy evaluationapproach, meaning that patches are only executed when their output is needed. There are three color-coded types of patches, the pink renderers, green data processors, and blue external input patches that can receive and output mouse clicks, scrolls, and movements; MIDIand audio; keyboard; or other movements. A collection of patches can be melded into one, called a macro. Macros can be nested and their subroutines also edited.
Some patches can have subpatches, which allows for global parameter changes to just the included subpatches. This is useful for lighting, 3D Transformation, and
GLSLshaders, among other things. Subpatch support is indicated by square corners on a patch, rather than the typical rounded corners.
With Version 3.0, it became possible to turn compositions into Virtual Patches. These allow the user to reuse functionality without having to store duplicate copies in each composition.
Also new in Version 3.0 was the possibility to write custom patch plugins, using an
Xcodetemplate, and the notion of a "safe-mode", where plugins and other unsafe patches fail to load. This prevents malicious compositions from performing dangerous or insecure operations. Custom patches using Apple's Xcode template are always considered unsafe.
It was possible to develop custom patch plugins for Version 2.0, but the API was undocumented and private, and was never supported by Apple. Eventually templates were released to simplify this procedure [ [http://fdiv.net/2007/05/08/xcode-template-for-custom-quartz-composer-patches/ fdiv.net: Xcode Template for Custom Quartz Composer Patches] ] .
Quartz Composer documents are called "Compositions". Compositions are Binary Property Lists with a
filename extension".qtz", and a "com.apple.quartz-composer-composition" UTI [ [http://developer.apple.com/documentation/Carbon/Conceptual/understanding_utis/utilist/chapter_4_section_1.html#//apple_ref/doc/uid/TP40001319-CH205-CHDIJFGJ Uniform Type Identifiers Overview] ] . Patches, their connections, and their input port states are saved in the composition file. Images can be stored inside a composition as well, making for self-contained compositions with embedded graphics. Movies, however, cannot be stored inside a composition.
Compositions also store
metadatasuch as composition author, copyright, and description. The user can also add arbitrary metadata items, if desired.
A wide variety of image formats are supported, including
JPEG, JPEG2000, GIF, PNG, TIFF, TGA, OpenEXR, BMP, ICO, PICT, ICNS, and some raw digital camera types [ [http://developer.apple.com/graphicsimaging/workingwithimageio.html Using the ImageIO Framework] ] .
Version 3.0 added the ability to add annotations to areas of the composition, called "notes". These notes parallel comments in other programming languages. Notes can be
Yellow, Red, Green, Blue, or Grey, and can overlap other notes.
In Version 3.0, the concept of Composition Protocols was introduced. Protocols provide a template of required and optional inputs and outputs to qualify conforming compositions for various purposes. The following protocols are available by default:
* Graphic Animation - These don't have required inputs or outputs, but are required to render to the screen. Graphic Animations are useful for animated backgrounds in applications such as Keynote.
* Image Filter - Modifies an image using filters. No renderers are allowed in Image Filters.
* Graphic Transition - Generates a transition from a source image to a destination image over a fixed time interval.
* RSS Visualizer - Parses and Displays an
* Screen Saver - Integrates with Finder for animated screen savers.
* Music Visualizer - Integrates with
iTunesfor audio visualization.
There is no officially supported way to add additional protocols to Quartz Composer. However, there are some undocumented methods that may make this possible in the future [ [http://kineme.net/Discussion/ProgrammingQuartzComposerPatches/CreatingYourOwnProtocols Creating Your Own Protocols] ] .
In addition to protocols, compositions can also conform to different runtimes where Quartz Composer is available. In Leopard, there are runtimes for Tiger (32-bit), as well as 32-bit and 64-bit versions of the Leopard Quartz Composer runtime. The editor can also indicate used patches that are unsafe, or unavailable in Tiger to aid in making compatible compositions.
A System-wide Composition Repository is available as of Version 3.0 [ [http://developer.apple.com/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/qc_concepts/chapter_2_section_6.html Quartz Composer User Guide: Composition Repository] ] . This allows applications to share and make use of common compositions for effects and processing. It is also possible for applications to query the repository for compositions that match certain criteria, such as protocol conformance.
The Repository is spread across 3
* /System/Library/Compositions - core system compositions (the user typically doesn't modify these)
* /Library/Compositions - compositions available for all users
* ~/Library/Compositions - compositions available for only this user
Adding compositions to the repository is as simple as adding the composition file to one of these locations.
It became possible to compare compositions in Quartz Composer 3.0. This feature allows the user to compare inputs, rendered output, and graph appearance of any two compositions.
Quartz Composer Visualizer
A developer tool called Quartz Composer Visualizer was released with Quartz Composer 3.0 that allows compositions to be rendered across multiple screens on a single machine, or even spanned across several machines and displays.
Support for some automator actions were added with the release of Leopard.
* Apply Quartz Composition Filter to Image Files
* Convert Quartz Compositions to QuickTime Movies
* Render Quartz Compositions to Image Files
Data inside QC can be one of the following types:
* Boolean- a boolean value, 0 or 1
* Index - a positive integer between 0 and 4294967295
* Number - a
double precisionfloating point number
* String - a
* Color - an
RGBAor CMYKquartet, or a Grayscalevalue
* Image - a 2D image of arbitrary dimensions
* Structure - a named or ordered collection of objects, including nested structures
Quartz Composer has many similarities to
Max/MSPor Vvvvalthough its primary usage is for graphical rather than audio processing. The ability to construct interactive video compositions that react to audio or MIDIsignals but which can be played from any QuickTime-aware application has caused a great deal of interest in Quartz Composer from VJs. Pierre-Olivier Latouroriginally developed the predecessor to Quartz Composer under the name PixelShox Studio[http://www.pol-online.net/web-archives/pixelshox_technology/ PixelShox Technology] .
Tutorials and Documentation
* [http://developer.apple.com/documentation/GraphicsImaging/Conceptual/QuartzComposer/index.html#//apple_ref/doc/uid/TP40001357 Quartz Composer Programming Guide] from Apple
* [http://www.dvcreators.net/rayz-o-lite/ Quartz Composer tutorial]
* [http://www.quartzcompositions.com/phpBB2/mediawiki/index.php/Main_Page Quartz Composer wiki]
* [http://www.qtzlcodex.com/ Qtzlcodex Quartz Composer Tutorials]
* [http://lists.apple.com/mailman/listinfo/quartzcomposer-dev Mailing List]
* [http://lists.apple.com/archives/quartzcomposer-dev/ Mailing List Archives]
* [http://www.quartzcompositions.com/phpBB2/ QuartzCompositions.com Forum and Composition Repository]
* [http://www.zugakousaku.com/index.php?ref=study-quartz-jp ZUGAKOUSAKU]
* [http://www.quartzcandy.com Quartzcandy.com]
* [http://www.qtzlcodex.com/ Qtzlcodex: MachineCodex Composition repository]
Custom Patches / Plugins
* [http://kineme.net/ Kineme Quartz Composer Patches and Development Community]
* [http://code.google.com/p/google-mac-qtz-patches/ Google Quartz Composer Patches]
* [http://www.qtzlcodex.com/ Qtzlcodex Quartz Composer Custom Patches]
Images and Videos
* [http://www.flickr.com/groups/quartzcomposer/ Quartz Composer on Flickr]
* [http://vimeo.com/tag:quartzcomposer Quartz Composer on Vimeo]
Wikimedia Foundation. 2010.
Look at other dictionaries:
Quartz Composer — Mac OS X Graphics Model Файл:Apple Quartz.jpg Прорисовка QuickDraw • OpenGL • Quartz 2D • Core Image • Core Video Составление Quartz Quartz Composer это оконная система, используемая в Mac OS X. Она отвечает за представление и подде … Википедия
Quartz Composer — est un langage de programmation visuel, fourni depuis Mac OS X 10.4 avec le logiciel Xcode, spécialisé dans le traitement et le rendu de données graphiques. Réaliser un programme consiste à connecter entre eux des blocs de traitement. Quartz… … Wikipédia en Français
Quartz Composer — Entwickler Apple Aktuelle Version 4.0 (103.1) (22. Mai 2011) Betriebssystem Mac OS X ab 10.4 Kategorie Visuelle Programmierumgebung … Deutsch Wikipedia
Quartz Compositor — Saltar a navegación, búsqueda Quartz Compositor es el servidor de ventanas en Mac OS X. Es responsable de presentar y mantener gráficos del resto del framework Core Graphics y otros renderers en la familia Quartz technologies. Contenido 1 Sumario … Wikipedia Español
Quartz (графический уровень) — Графическая модель Mac OS X Прорисовка QuickDraw • Quartz 2D • Core Image • Core Video Составление Quartz Composer Quartz представляет собой пару технологий Mac OS X, являющиеся частью Core Graphics framework: Quartz 2D и Quartz Composer. Она… … Википедия
Quartz — Графическая модель Mac OS X Прорисовка QuickDraw • OpenGL • Quartz 2D • Core Image • Core Video Составление Quartz Composer Quartz представляет собой пару технологий Mac OS X, являющиеся частью Core Graphics framework: Quartz 2D и Quartz Composer … Википедия
Quartz (graphics layer) — Mac OS X graphics model Rendering QuickDraw • Core OpenGL Quartz 2D • Core Image Core Animation • Core V … Wikipedia
Quartz Compositor — Mac OS X Graphics Model Quartz Compositor is the window server in Mac OS X. It is responsible for presenting and maintaining rasterized, rendered graphics from the rest of the Core Graphics framework and other renderers in the Quartz technologies … Wikipedia
Quartz Compositor — Не следует путать с Quartz Composer визуальным языком программирования в инструментарии Xcode. Quartz Compositor это оконная система, используемая в Mac OS X. Она отвечает за представление и поддержание растеризованной и отрисованной… … Википедия
Quartz — ● np. m. ►APPLE Système graphique 2D utilisé par MacOS X pour composer des jolis graphiques PostScript, anti aliaser les polices, produire des widgets transparents, donner des ombres aux fenêtres, etc. Le tout basé sur PDF … Dictionnaire d'informatique francophone