high español winapi directx gdi smoothing text-rendering

winapi - override high dpi scaling behavior español



¿Por qué la representación de texto DirectX/DirectWrite/Direct2D no puede ser tan nítida como GDI? (1)

Ya sé que el posicionamiento de subpíxeles hace que la representación del texto de DirectWrite sea borrosa en comparación con GDI .

Sin embargo, mi pregunta es un poco más fundamental: ¿por qué no se puede hacer que DirectWrite (y los métodos relacionados) representen un texto tan nítido como GDI?

En otras palabras:
¿Qué impide que DirectWrite pueda ajustar el texto al píxel más cercano, como puede hacerlo GDI?

¿Es, por ejemplo, un problema de hardware? ¿Un problema de arquitectura del conductor? ¿Simplemente no está implementado? ¿O algo mas?

Muestra más pequeña:

Muestras más grandes:

Direct2D, alias:

Direct2D, por defecto:

Direct2D ("GDI clásico"):

Direct2D ("GDI natural"):

GDI actual :


No estás comparando como con igual. Todas las muestras de Direct2D se procesan en escala de grises, mientras que las muestras de GDI y Linux utilizan antialias de subpíxeles (también conocido como ClearType en Windows).

Esta página describe lo que debe hacer para habilitar cleartype: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368170%28v=vs.85%29.aspx

NB: Cuando se realiza una prueba de este tipo, siempre vale la pena usar Windows Magnifier o similar para comprobar que realmente está obteniendo lo que cree que está obteniendo.