# Quartz 2D

Quartz 2D est l'interface de programmation principale pour le rendu bi-dimensionnel de Mac OS X faisant partie du paquet Core Graphics.

## Détails

Quartz 2D est mis à disposition de toutes les applications Mac OS X et permet un rendu indépendant de la résolution et du périphérique utilisé des images bitmap, vectorielles et du texte à la fois à l'écran et lors des pré-impressions. Ces fonctions au sein de la couche graphique incluent :
* rendu du texte en utilisant l'Apple Type Services for Unicode Imaging
* l'affichage, la manipulation et le rendu des documents PDF
* la conversion depuis PostScript en PDF et inversement
* l'affichage, la manipulation et le rendu des images bitmap par l'intermédiaire d'ImageIO
* la gestion des couleurs par l'intermédiaire de ColorSync
* l'affichage des éléments de l'interface utilisateur Aqua

## L'affichage dans Quartz 2D

Quartz 2D augmente les capacités d'affichage de QuickDraw. La différence la plus importante est que Quartz 2D supprime toutes particularités liées au périphérique de sortie et sa résolution.
Le modèle d'affichage utilisé par Quartz 2D est basé sur les spécifications PDF v1.4. L'affichage s'effectue en utilisant un repère cartésien où le texte, les vecteurs et les images bitmap sont placés sur une grille. Cependant, l'affichage n'est pas envoyé à un périphérique. Quartz 2D utilise des contextes graphiques, des emplacements où se fait l'affichage. Chaque contexte graphique définie comment l'affichage devrait se faire : dans une fenêtre, envoyé à une imprimante, une couche OpenGL ou hors-champs. Chaque contexte calcule l'affichage pour la résolution souhaitée sans altérer les données qui sont à l'origine de ce rendu. Les contextes sont donc les mécanismes qui permettent à Quartz 2D d'obtenir l'indépendance de résolution et de périphérique. Par exemple, un contexte de fenêtre peut rendre un objet dans la résolution en cours de l'écran. Le même objet peut être envoyé à une imprimante dans une résolution plus importante. Cela permet que l'affichage soit adapté au plus près de la meilleure résolution du périphérique.

## Histoire

Quartz 2D est similaire à l'affichage PostScript de NeXT dans son utilisation des contextes. Sa première apparition date de la bibliothèque de rendu 2D appelé Core Graphics Rendering, en parallèle du service de composition Core Graphics Services (Compositing). Quartz (et ses moteurs de rendu) a été présenté pour la première fois à la WWDC en mai 1999.
Actuellement, le nom Quartz 2D s'applique plus les capacités de rendu 2D de Core Graphics (Quartz). Avec la version de Mac OS X 10.2, le marketing s'est attardé sur Quartz Extreme, la couche de composition, laissant le terme "Quartz" aux fonctionnalités de Core Graphics ou de ses capacités 2D. Les technologies Quartz peuvent décrire toutes les technologies de rendu et de composition introduites par Mac OS X (y compris Core Image par exemple).
Avant Mac OS X 10.4, le rendu de QuickDraw était plus performant que celui de Quartz 2D. Mac OS X 10.4 a corrigé cela, augmentant les performances initiales de Quartz 2D. Mac OS X 10.4 a aussi introduit Quartz 2D Extreme : une accélération GPU optionnelle pour Quartz 2D bien que ce ne soit pas une fonctionnalité officiellement supportée. Quartz 2D Extreme est désactivé par défaut car il peut provoquer des erreurs d'affichage ou des kernel panics. Dans Mac OS X 10.5, Quartz 2D Extreme a été renommé QuartzGL.