Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Quartz Composer

From Wikipedia, the free encyclopedia
Node-based visual programming language

Not to be confused withQuartz Compositor.
Quartz Composer
The Quartz Composer 4.0 interface and a composition
DeveloperApple Computer
Stable release
4.6.2 / December 12, 2016
Operating systemMac OS X Tiger (Version 2.0)
Mac OS X Leopard (Version 3.0)
Mac OS X Leopard +iPhone SDK (Version 3.1)
Mac OS X Snow Leopard (Version 4.0)
macOS Sierra (Version 4.6.2)
Available inEnglish
TypeVisual programming language/Software development tool
LicenseProprietary
WebsiteApple - Quartz Composer (User Guide)

Quartz Composer is anode graph system provided as part of theXcodedevelopment environment inmacOS for processing andrendering graphical data. It is capable of making sophisticated animations for keynote or presentations and creating animated screensavers.[1]

Quartz Composer usesOpenGL (includingGLSL),OpenCL (only in Mac OS X Snow Leopard and later),OpenAL,Core Image,Core Video,JavaScript and other technologies to create anAPI and a developer tool around a simple visual programming paradigm. Apple has embedded Quartz technologies deeply into theoperating system. Compositions created in Quartz Composer can be played standalone in anyQuickTime-aware application[2] (although only on Mac OS X Tiger and later), as a systemScreen Saver,[3] as an iTunes Visualizer, from inside the Quartz Composer application, or can be embedded into aCocoa orCarbon application via supplieduser interfacewidgets. While Quartz Composer is included with the iPhone SDK, as of December 2015[update] there is no way of running Quartz Compositions oniOS devices. Starting inmacOS Catalina, the Quartz Composer framework has been deprecated, although it is still present for compatibility.[4]

Patches

[edit]

Quartz programming through Quartz Composer works by implementing and connectingpatches.[5] Similar to routines in traditional programming languages, patches are base processing units. They execute and produce a result. For better performance, patch execution follows alazy evaluation approach, meaning that patches are only executed when their output is needed. There are three types of patches: Consumers, Processors and External Input patches that can receive and output mouse clicks, scrolls and movements;MIDI and 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.

To control the order of rendering, each renderer is assigned a layer, indicated in its upper-right corner. Layers are rendered sequentially, lowest to highest. Renderers can be enabled or disabled, essentially turning on or off that particular layer. Turning off unused layers often results in better performance, since fewer upstream patches need to be evaluated.

Some patches can have subpatches, which allows for global parameter changes to just the included subpatches. This is useful for lighting, 3D transformation andGLSL shaders, among other things. Subpatch support is indicated by square corners on a patch, rather than the typical rounded corners.

Quartz Composer Multiplexer

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. The Quartz Composer Editor allows the user to save a "flattened" copy (with the virtual patches fully expanded inside), for easy distribution. Version 4.0 extended this functionality even more and automatically includes "flattened" copies of virtual patches for use as a fallback if the desired virtual patch isn't installed on the host system. This greatly simplifies composition distribution.

Network functionality was greatly improved with the release of Leopard. It became possible to transmit data and synchronize over a network interface and it also added support forOpen Sound Control transmission and reception.

Plugins

[edit]
The Quartz Composer 3.0 interface

Also new in Version 3.0 was the possibility to write custom patch plugins using anXcode template, 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.[6]

Hidden options

[edit]

In the Quartz Composer editor, holding theoption key while selecting "Preferences..." from the menu adds 3 additional tabs of options for the user to configure. These options include System settings, Editor settings and QuickTime integration settings. Notable options include expanded tooltips, software rendering and uncapped framerate rendering. Multisample antialiasing (MSAA) was added as a hidden option in version 4.0, allowing for antialiasing inside the QC Editor, though it only works on GPU's that support MSAA.

Native datatypes

[edit]

Data inside QC can be one of the following types:

  • Boolean – a Boolean value, 0 or 1
  • Index – a positive integer between 0 and 2147483647
  • Number – adouble precision floating point number
  • String – aunicode string
  • Color – anRGBA orCMYK quartet, or aGrayscale value
  • Image – a 2D image of arbitrary (possibly infinite) dimensions
  • Structure – a named or ordered collection of objects, including nested structures
  • Virtual – any of the above

Two additional types were introduced in version 4.0:

  • Mesh – a collection of vertices and per-vertex normals, texture coordinates and colors in3-space
  • Interaction – a valueless type used to associate user input with user-interactive elements of the composition

Type conversion

[edit]

Data can usually be converted to other types transparently. In Quartz Composer 3.0, the connections between patches change color to indicate conversions that are taking place. Yellow connections mean no conversion is taking place, Orange indicates a possible loss of data from conversion (Number to Index) and Red indicates a severe conversion; Image to Boolean, for example.

Compositions

[edit]

Quartz Composer documents are calledCompositions. Compositions are BinaryProperty Lists (thoughXML versions are also supported) with afilename extension.qtz and acom.apple.quartz-composer-compositionUTI.[7] 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. By dragging a movie file into the Quartz Composer editor, a reference to the movie file is created, providing a changing image that can be connected to a renderer.

Compositions also storemetadata such as composition author,copyright and description. The user can also add arbitrary metadata items, if desired.

Many image formats are supported, includingJPEG,JPEG2000,GIF,PNG,TIFF,TGA,OpenEXR,BMP,ICO,PDF,PICT,ICNS and some raw digital camera types.[8] Images are maintained in their native form for as long as possible before rasterizing for display. This means that Quartz Composer will keep vector images as vectors when cropping, scaling, rotating, or translating which allows it to work with very large logical image dimensions without consuming large amounts of memory or processing time. Such functionality is most apparent when working with text-based images, or PDFs.

Version 3.0 added the ability to add annotations to areas of the composition, callednotes. These notes parallelcomments in other programming languages. Notes can be yellow, red, green, blue, or gray, and can overlap other notes.

Composition protocols

[edit]

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 asKeynote.
  • Image Filter – Modifies an image using filters. No renderers are allowed in Image Filters, unless they are inside of a Render In Image environment.
  • Graphic Transition – Generates a transition from a source image to a destination image over a fixed time interval.
  • RSS Visualizer – Parses and Displays anRSS Feed.
  • Screen Saver – Integrates withFinder for animated screen savers.
  • Music Visualizer – Integrates withiTunes for audio visualization.

There is an additional protocol that Apple uses in their private API:

  • Photo Visualizer – Receives an image list, provides information about total image count and currently displayed image.

One new protocol was added in version 4.0:

  • Mesh Filter – deforms an input mesh.

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.[9]

Composition runtimes

[edit]

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.

Composition repository

[edit]

A System-wide Composition Repository is available as of Version 3.0.[10] 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 3file system locations:

  • /System/Library/Compositions – core system compositions (the user typically doesn't modify these)
  • /Library/Compositions – compositions available for all users
  • /Users/username/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.

Comparing compositions

[edit]

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.

Related software

[edit]

Quartz Composer Visualizer

[edit]

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.

Automator support

[edit]

Support for some Automator actions was 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

History

[edit]
[icon]
This sectionneeds expansion. You can help byadding missing information.(June 2025)
  • 2002 - Apple acquired the foundation of its Quartz Composer fromPierre-Olivier Latour, who originally developed the tool under the namePixelShox Studio.[11]
  • 2005 - Apple used this foundational technology to develop Quartz Composer, first released inMac OS X Tiger (version 10.4) as part of theXcode suite.[12]
  • 2007 -Mac OS X Leopard (version 10.5) improved the performance of the Quartz Composer, including integration with OpenCL, idle state rendering, and GPU-efficient geometry pipelines.[13] The system gained a redesigned UI, multitouch support, and new workflow tools like Virtual Macros, Interactive Placement, and an enhanced Patch Library.[13] These improved the performance and hardware rendering.
  • 2009 - AlongsideMac OS X Snow Leopard (version 10.6), Quartz Composer 4.0 was released, introducing minor performance upgrades. The UI was refined for better usability including a "snap to grid" feature. It also gained support for a new 3D model importer supporting theCollada (.dae) file format, enabling handling 3D textured meshes within compositions.[14]
  • 2011 - Tool became more embedded within Xcode 4.0 toolchain.
  • 2014 - With the release ofMac OS Yosemite, Apple released theMetal API designed to replaceOpenGL embedded libraries to improve performance on iOS devices.[15] As a result, this shift marked the decline of Quartz Composer, as it was heavily reliant on OpenGL technologies that Metal replaced. Although still supported in Yosemite, it lacked any major updates and was increasingly seen asdeprecated.
  • 2019 - Quartz Composer became increasingly buggy, and starting inMac OS 10.15, it was officially marked as deprecated by Apple and removed from Xcode.[16] However, it remained present for compatibility purposes but users were urged to transition to newer frameworks includingMetal,SceneKit andCore Image.[16]
  • 2021- InMac OS Monterey, QuartzComposer.mdimporte plugin was removed, signifying Apple's removal of support for Quartz Composer components.[17] Since then, several users reported that the software does not work onApple M1 laptops.

Progression images

[edit]
  • QC Leopard (2007)
    QC Leopard (2007)
  • QC Snow Leopard (2009)
    QC Snow Leopard (2009)
  • QC (2010)
    QC (2010)
  • QC (2010+)
    QC (2010+)

References

[edit]
  1. ^Chen, Jim X."Guide to Graphics Software Tools".
  2. ^Quartz Composer User GuideArchived March 4, 2009, at theWayback Machine
  3. ^Quartz Composer Users Guide - Making a Screen SaverArchived March 4, 2009, at theWayback Machine
  4. ^Xcode 11 Release Notes
  5. ^Quartz Composer User Guide - Patches[permanent dead link]
  6. ^fdiv.net: Xcode Template for Custom Quartz Composer Patches
  7. ^Uniform Type Identifiers Overview
  8. ^Using the ImageIO Framework
  9. ^Creating Your Own Protocols
  10. ^Quartz Composer User Guide: Composition Repository[permanent dead link]
  11. ^"PixelShox Technology". Archived fromthe original on January 29, 2017. RetrievedMarch 8, 2009.
  12. ^"Sunsetting Quartz Composer in VDMX6".VDMX - MAC VJ SOFTWARE. November 26, 2024. RetrievedJune 15, 2025.
  13. ^ab"Quartz Composer Release Note".developer.apple.com. RetrievedJune 15, 2025.
  14. ^vade (August 31, 2009)."Mac OS X 10.6: Quartz Composer 4.0 Hands-On Review, New Features".CDM Create Digital Music. RetrievedJune 15, 2025.
  15. ^Smith, Ryan."Some Thoughts on Apple's Metal API".www.anandtech.com. Archived fromthe original on June 4, 2014. RetrievedJune 15, 2025.
  16. ^ab"Xcode 11 Release Notes".Apple Developer Documentation. RetrievedJune 15, 2025.
  17. ^hoakley (December 14, 2021)."What has changed in Monterey 12.1?".The Eclectic Light Company. RetrievedJune 15, 2025.

External links

[edit]

Books

[edit]

Tutorials and documentation

[edit]

Mailing list

[edit]

Compositions

[edit]

Custom patches / plugins

[edit]

Images and videos

[edit]
Current tools
Xcode
Former tools
Retrieved from "https://en.wikipedia.org/w/index.php?title=Quartz_Composer&oldid=1330444266"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp