Compartir a través de


Información general sobre la arquitectura de gráficos de Windows

Windows proporciona varias API de C++/COM para gráficos. Estas API se muestran en el diagrama siguiente.

diagrama que muestra las API de gráficos de Windows.

  • La interfaz de dispositivo gráfico (GDI) es la interfaz gráfica original para Windows. GDI se escribió por primera vez para Windows de 16 bits y luego se actualizó para Windows de 32 y 64 bits.
  • GDI+ se introdujo en Windows XP como sucesor de GDI. Se accede a la biblioteca GDI+ a través de un conjunto de clases de C++ que encapsulan funciones de C planas. .NET Framework también proporciona una versión administrada de GDI+ en el espacio de nombres System.Drawing .
  • Direct3D admite gráficos 3D.
  • Direct2D es una API moderna para gráficos 2D, sucesora de GDI y GDI+.
  • DirectWrite es un motor de rasterización y diseño de texto. Puede usar GDI o Direct2D para dibujar el texto rasterizado.
  • DirectX Graphics Infrastructure (DXGI) realiza tareas de bajo nivel, como presentar fotogramas para la salida. La mayoría de las aplicaciones no usan DXGI directamente. En su lugar, actúa como una capa intermedia entre el controlador de gráficos y Direct3D.

Direct2D y DirectWrite se introdujeron en Windows 7. También están disponibles para Windows Vista y Windows Server 2008 a través de una actualización de plataforma. Para obtener más información, vea Actualización de plataforma para Windows Vista.

Direct2D es el foco de este módulo. Aunque GDI y GDI+ siguen siendo compatibles con Windows, se recomienda Direct2D y DirectWrite para nuevos programas. En algunos casos, una combinación de tecnologías podría ser más práctica. En estas situaciones, Direct2D y DirectWrite están diseñados para interoperar con GDI.

En las secciones siguientes se describen algunas de las ventajas de Direct2D.

Aceleración de hardware

El término aceleración de hardware hace referencia a los cálculos de gráficos realizados por la unidad de procesamiento de gráficos (GPU), en lugar de a la CPU. Las GPU modernas están altamente optimizadas para los tipos de cálculo utilizados en la representación de gráficos. Por lo general, cuanto más trabajo se mueva de la CPU a la GPU, mejor.

Aunque GDI admite la aceleración de hardware para determinadas operaciones, muchas operaciones de GDI están enlazadas a la CPU. Direct2D se superpone a Direct3D y aprovecha al máximo la aceleración de hardware proporcionada por la GPU. Si la GPU no admite las características necesarias para Direct2D, Direct2D vuelve a la representación de software. En general, Direct2D supera GDI y GDI+ en la mayoría de las situaciones.

Transparencia y suavizado de contorno

Direct2D admite la combinación alfa (transparencia) totalmente acelerada por hardware.

GDI tiene compatibilidad limitada con la combinación alfa. La mayoría de las funciones GDI no admiten la combinación alfa, aunque GDI admite la fusión alfa durante una operación bitblt. GDI+ admite transparencia, pero la combinación alfa se realiza mediante la CPU, por lo que no se beneficia de la aceleración de hardware.

La combinación alfa acelerada por hardware también permite el suavizado de alias. El alias es un artefacto causado por el muestreo de una función continua. Por ejemplo, cuando una línea curva se convierte en píxeles, el alias puede provocar una apariencia irregular. Cualquier técnica que reduzca los artefactos causados por el alias se considera una forma de suavizado de alias. En los gráficos, el suavizado de alias se realiza mezclando bordes con el fondo. Por ejemplo, este es un círculo dibujado por GDI y el mismo círculo dibujado por Direct2D.

ilustración de técnicas de suavizado de alias en direct2d.

En la imagen siguiente se muestra un detalle de cada círculo.

un detalle de la imagen anterior.

El círculo dibujado por GDI (izquierda) consta de píxeles negros que aproximan una curva. El círculo dibujado por Direct2D (derecha) usa la combinación para crear una curva más suave.

GDI no admite suavizado de alias cuando dibuja geometría (líneas y curvas). GDI puede dibujar texto con alias mediante ClearType; pero, de lo contrario, el texto de GDI también tiene alias. El alias es especialmente notable para el texto, ya que las líneas irregulares interrumpen el diseño de fuente, lo que hace que el texto sea menos legible. Aunque GDI+ admite suavizado de alias, se aplica mediante la CPU, por lo que el rendimiento no es tan bueno como Direct2D.

Gráficos vectoriales

Direct2D admite gráficos vectoriales. En los gráficos vectoriales, las fórmulas matemáticas se usan para representar líneas y curvas. Estas fórmulas no dependen de la resolución de pantalla, por lo que se pueden escalar a dimensiones arbitrarias. Los gráficos vectoriales son especialmente útiles cuando se debe escalar una imagen para admitir diferentes tamaños de monitor o resoluciones de pantalla.

Siguientes

Administrador de ventanas de escritorio