Posterous theme by Cory Watilo

¿Qué es Quartz? - Algunos conceptos

Quartz es el corazón gráfico de Mac OS X. Provee soporte a renderización de contenido 2D y combina un rico modelo de imagen con renderización, composición y anti-aliasing de contenidos, todo ello al vuelo. También implementa el sistema de ventanas para Mac OS X y ofrece servicios de bajo nivel como rutinas de eventos y manejo del cursor.

Quartz consta de un API (Quartz 2D) y un servidor de ventanas (Quartz Compositor). El API provee clases para manejar el contexto gráfico y para dibujar primitivas, imágenes, texto y otro contenido. El servidor de ventanas controla la pantalla y ofrece servicios esenciales tales como manejo básico de ventanas, rutinas de eventos y manejo del comportamiento del cursor.

El API Quartz 2D está implementada como parte del framework “Application Services” (ApplicationServices.framework), el cual es el que debes incluir en tus proyectos si quieres usar Quartz. Este framework incluye a su vez el framework Core Graphics (CoreGraphics.framework). Este define las interfaces, tipos y constantes de Quartz que se usarán en tus aplicaciones.

El API Quartz Services (el cual también es parte del framework Core Graphics) provee acceso directo a algunas características de bajo nivel del servidor de ventanas. Puedes usar este API para coger información sobre el monitor conectado, capturar el monitor para uso exclusivo o ajustar los atributos del monitor, tales como su resolución, profundidad, frecuencia de refresco...

Quartz también ofrece soporte para operar remotamente un sistema Mac OS X.

La metáfora del papel digital:

La arquitectura de imagen de Quartz está basada en una “metáfora” del papel digital. En este caso, el papel digital es el PDF, el cual es el modelo interno usado por Quartz para almacenar el contenido renderizado. El contenido almacenado en este medio tiene una altísima fidelidad y puede ser reproducido en muchos tipos diferentes de dispositivos, como monitores, impresoras y fax. Este contenido puede ser escrito a un archivo PDF y ser visto por cualquier aplicación que pueda abrir PDFs.

El modelo PDF da al desarrollador mucho más control sobre la apariencia final de sus contenidos. PDF tiene en cuenta caracerísticas de la aplicación como por ejemplo el espacio de color, fuentes, compresión de la imagen y resolución.

 

Mac OS X toma algunas de las ventajas de la flexibilidad de PDF implementado con él algunas de sus características. Por ejemplo, al imprimir; el dialogo de impresión ofrece opciones tales como salvar el documento como un PDF, vista previa del documento antes de imprimir o enviarlo por fax. El PDF usado por estas operaciones viene de la misma fuente: el código de renderizado de la aplicación. La única diferencia es el dispositivo a donde enviar el contenido.

Quartz Compositor

Quartz Compositor, el servidor de ventanas de Mac OS X, coordina todos los comportamientos de bajo nivel de las ventanas y hace cumplir una igualdad uniforme en cuanto a la apariencia en la pantalla. Maneja las pantallas disponibles en el sistema de usuario, interactuando con el driver del dispositivo necesario.

Para la administración de ventanas, Quartz Compositor maneja la composición de todo el contenido visible del escritorio del usuario. Soporta efectos de transparencia a través del uso del canal de información alfa, lo cual hace posible mostrar sombras, recortes y otros efectos que añaden una textura más real y voluminosa a la ventana.

La ejecución de Quartz Compositor permanece constantemente activa por diversos factores. Para mejorar el redibujado de la ventana, Quartz Compositor soporta un bufer de ventanas y un sistema de capas componiendo la ventana y el contenido de la ventana. Así, las ventanas que son ocultadas detrás de contenido opaco no son nunca compuestas. Quartz Compositor incorpora también Quartz extreme, con lo que la velocodad de render aumenta haciendo llamadas al hardware gráfico siempre que sea posible.

La figura de abajo muestra las relaciones de alto nivel entre Quartz Compositer y las tecnologías de renderizado disponibles en Mac OS X. Quicktime y OpenGL tienen menos dependencias en Quartz Compositor por que implementan sus propias versiones para asegurarse ciertas capacidades.

Quartz 2D

Quartz 2D provee muchas características importantes para aplicaciones, algunas de ellas son:

  • Renderizado de alta calidad en pantalla.
  • Soporte para interfaces de usuario independientes de la resolución.
  • Anti-Aliasing para gráficos y texto.
  • Soporte para añadir información de transferencias a la ventana.
  • Compresión interna de datos.
  • Manejo del color a través de ColorSync.
  • Generación automática de PDF para impresión, envío de fax o guardado como PDF.

Algunas especificaciones técnicas sobre Quartz:

  • Profundidad de Bit: Mínimo una profundidad de 16-bits para usuarios normales. Una profundidad de 8-bits en modo pantalla completa para juegos, aplicaciones multimedia y aplicaciones Clásicas (aplicaciones de Mac OS9 o anteriores).
  • Resolución mínima: Soporte para 800x600 como resolución mínima para usuarios normales. 640x480 está disponible para iBooks y así como para juegos, aplicaciones multimedia y aplicaciones Clásicas (aplicaciones de Mac OS9 o anteriores).
  • Quartz Extreme: Quartz Extreme usa OpenGL para dibujar el escritorio de Mac OS X. Todo ello se lleva a cabo usando la GPU, liberando a la CPU para otras tareas.


Texto: Davíd Arias Vazquez