Modelo de gráficos de macOS |
---|
Representación |
Composición |
Quartz 2D es la API de renderizado de gráficos bidimensionales nativa para plataformas macOS e iOS , parte del marco Core Graphics .
Quartz 2D está disponible para todos los entornos de aplicaciones de macOS e iOS y ofrece una representación independiente de la resolución y del dispositivo de gráficos de mapa de bits, texto y vectores, tanto en pantalla como en preparación para la impresión. Sus responsabilidades dentro de la capa de gráficos incluyen: [1]
Dado que Quartz 2D es una de varias tecnologías de cuarzo, el término "Cuarzo" en sí mismo debe tomarse en contexto.
Quartz 2D amplía las funciones de dibujo asociadas con QuickDraw . La diferencia más notable es que Quartz 2D elimina la especificidad del dispositivo de salida y la resolución.
El modelo de dibujo utilizado por Quartz 2D se basa en la especificación PDF 1.4. [2] El dibujo se realiza utilizando un sistema de coordenadas cartesianas , donde el texto, los vectores o las imágenes de mapa de bits se colocan en una cuadrícula. [3] Sin embargo, la salida del dibujo no se envía directamente al dispositivo de salida. Quartz 2D utiliza contextos gráficos, entornos en los que se realiza el dibujo. Cada contexto gráfico define cómo debe presentarse el dibujo: en una ventana, enviado a una impresora, una capa OpenGL o fuera de la pantalla. Cada contexto rasteriza el dibujo a la resolución deseada sin alterar los datos que definen el dibujo. Por lo tanto, los contextos son el mecanismo por el cual Quartz 2D emplea la independencia de la resolución y del dispositivo. Por ejemplo, un contexto de ventana puede rasterizar un objeto a la resolución de pantalla adecuada para crear gráficos reales en la pantalla. El mismo objeto se puede enviar a un contexto de impresión a una resolución mucho mayor. Esto permite que los mismos comandos gráficos produzcan una salida en cualquier dispositivo que utilice la resolución más adecuada. [4]
Quartz 2D es similar a Display PostScript de NeXT en su uso de contextos. Apareció por primera vez como la biblioteca de renderizado de gráficos 2D llamada Core Graphics Rendering; junto con Core Graphics Services (Compositing), se incluyó en la encarnación inicial de Quartz. [5] Quartz (y su renderizador) se mostraron por primera vez en la WWDC en mayo de 1999. [6]
Actualmente, el nombre Quartz 2D define con mayor precisión las capacidades de renderizado 2D de Core Graphics (Quartz). Con el lanzamiento de Mac OS X 10.2, la atención de marketing se centró en Quartz Extreme , la capa de composición, dejando el término "Quartz" para referirse al marco Core Graphics o simplemente a su renderizador 2D. Actualmente, las tecnologías Quartz pueden describir todas las tecnologías de renderizado y composición introducidas por macOS (incluido Core Image , por ejemplo).
Antes de Mac OS X Tiger, el renderizado de QuickDraw superaba al de Quartz 2D. Mac OS X 10.4 corrigió esto, aumentando sustancialmente el rendimiento de renderizado estándar de Quartz 2D. [7] Tiger también introdujo Quartz 2D Extreme: aceleración del procesador gráfico (GPU) opcional para Quartz 2D, aunque no es una función oficialmente compatible. [7] Quartz 2D Extreme está deshabilitado de forma predeterminada en Mac OS X 10.4 porque puede provocar problemas de redibujado de video o pánicos del kernel. [8] En Mac OS X Leopard, Quartz 2D Extreme pasó a llamarse QuartzGL.