Articulo de referencia

Resolución de independencia

La independencia de la resolución se refiere a que los elementos en una pantalla de computadora se renderizan en tamaños independientes de la cuadrícula de píxeles , lo que da c...

La independencia de la resolución se refiere a que los elementos en una pantalla de computadora se renderizan en tamaños independientes de la cuadrícula de píxeles , lo que da como resultado una interfaz gráfica de usuario que se muestra en un tamaño físico consistente, independientemente de la resolución de la pantalla. [ 1 ]

Concepto

Ya en 1978, el sistema de composición tipográfica TeX, creado por Donald Knuth, introdujo la independencia de resolución en el mundo de la informática. La visualización deseada puede representarse más allá de la resolución atómica sin distorsiones, y las decisiones de composición automática garantizan la misma precisión en cualquier ordenador, con un margen de error inferior al diámetro de un átomo. Este sistema pionero cuenta con un sistema de fuentes equivalente , Metafont , que proporciona fuentes adecuadas con los mismos altos estándares de independencia de resolución.

El formato de archivo independiente del dispositivo (DVI) es el formato de archivo del innovador sistema TeX de Donald Knuth . El contenido de dicho archivo puede interpretarse a cualquier resolución sin artefactos, incluso a resoluciones muy altas que actualmente no se utilizan.

Implementación

El cuadro de diálogo Preferencias del Sistema de macOS 10.8.5, interfaz de usuario sin escalar (izquierda) e interfaz de usuario HighDPI escalada (derecha).

macOS

Apple incluyó cierta compatibilidad con la independencia de resolución en las primeras versiones de macOS , lo que se podía demostrar con la herramienta para desarrolladores Quartz Debug, que incluía una función que permitía al usuario escalar la interfaz. Sin embargo, la función estaba incompleta, ya que algunos iconos no se mostraban (como en Preferencias del Sistema), los elementos de la interfaz de usuario se mostraban en posiciones extrañas y ciertos elementos de la interfaz gráfica de usuario de mapa de bits no se escalaban correctamente. [ 2 ] Debido a que la función de escalado nunca se completó, la interfaz de usuario de macOS siguió dependiendo de la resolución.

El 11 de junio de 2012, Apple presentó el MacBook Pro de 2012 con una resolución de 2880 × 1800 o 5,2 megapíxeles , duplicando la densidad de píxeles en ambas dimensiones. [ 3 ] El portátil venía con una versión de macOS que permitía escalar la interfaz de usuario al doble de su tamaño anterior. Esta función se llama modo HighDPI en macOS y utiliza un factor de escala fijo de 2 para aumentar el tamaño de la interfaz de usuario para pantallas de alta resolución. Apple también introdujo la posibilidad de escalar la interfaz de usuario renderizándola en una resolución mayor o menor que la resolución nativa integrada del portátil y escalando la salida a la pantalla del portátil. Una desventaja obvia de este enfoque es una disminución del rendimiento al renderizar la interfaz de usuario en una resolución mayor que la nativa o una mayor borrosidad al renderizarla en una resolución menor que la nativa. Por lo tanto, aunque la interfaz de usuario de macOS se puede escalar utilizando este enfoque, la interfaz de usuario en sí no es independiente de la resolución.

Microsoft Windows

El sistema GDI de Windows se basa en píxeles y, por lo tanto , no es independiente de la resolución. Para escalar la interfaz de usuario, Microsoft Windows admite la especificación de un DPI personalizado desde el Panel de control desde Windows 95. [ 4 ] (En Windows 3.1 , la configuración de DPI está vinculada a la resolución de pantalla, según el archivo de información del controlador). Cuando se especifica un DPI de sistema personalizado, la interfaz de usuario integrada del sistema operativo se escala. Windows también incluye API para que los desarrolladores de aplicaciones diseñen aplicaciones que se escalen correctamente.

GDI+ en Windows XP agrega representación de texto independiente de la resolución [ 5 ] , sin embargo, la interfaz de usuario en versiones de Windows hasta Windows XP no es completamente compatible con DPI altos [ 6 ], ya que en ese período no estaban disponibles pantallas con resoluciones muy altas y alta densidad de píxeles. Windows Vista y Windows 7 escalan mejor a DPI más altos.

Windows Vista también añade soporte para que los programas se declaren a sí mismos en el sistema operativo como compatibles con alta resolución (DPI) mediante un archivo de manifiesto o utilizando una API. [ 7 ] [ 8 ] Para los programas que no se declaran como compatibles con DPI, Windows Vista admite una función de compatibilidad llamada virtualización de DPI, de modo que las métricas del sistema y los elementos de la interfaz de usuario se presentan a las aplicaciones como si se ejecutaran a 96 DPI y el Administrador de ventanas de escritorio escala la ventana de la aplicación resultante para que coincida con la configuración de DPI. Windows Vista conserva la opción de escalado al estilo de Windows XP que, cuando está habilitada, desactiva la virtualización de DPI (texto borroso) para todas las aplicaciones globalmente.

Windows Vista también introduce Windows Presentation Foundation ( WPF). Las aplicaciones WPF se basan en vectores, no en píxeles, y están diseñadas para ser independientes de la resolución.

Windows 7 permite cambiar la configuración de DPI simplemente cerrando la sesión, sin necesidad de reiniciar el equipo, y lo convierte en una configuración por usuario. Además, Windows 7 lee la configuración de DPI del monitor a partir del EDID y ajusta automáticamente el valor de DPI para que coincida con la densidad de píxeles física del monitor, a menos que la resolución efectiva sea inferior a 1024 x 768.

En Windows 8 , solo se muestra el porcentaje de escalado de DPI en el cuadro de diálogo de cambio de DPI y se ha eliminado la visualización del valor DPI sin procesar. [ 9 ] En Windows 8.1 , se elimina la configuración global para deshabilitar la virtualización de DPI (solo usar el escalado de estilo XP). [ 9 ] En densidades de píxeles superiores a 120 PPI (125 %), la virtualización de DPI está habilitada para todas las aplicaciones sin una bandera (manifiesto) de reconocimiento de DPI establecida dentro del EXE. Windows 8.1 conserva una opción por aplicación para deshabilitar la virtualización de DPI de una aplicación. [ 9 ] Windows 8.1 también agrega la capacidad para que cada pantalla use una configuración de DPI independiente, aunque la calcula automáticamente para cada pantalla. Windows 8.1 impide que un usuario habilite forzosamente la virtualización de DPI de una aplicación. Por lo tanto, si una aplicación afirma erróneamente ser compatible con DPI, se verá demasiado pequeña en pantallas de alto DPI en 8.1, y un usuario no puede corregir eso. [ 10 ]

Windows 10 añade control manual sobre DPI para monitores individuales. Además, la versión 1703 de Windows 10 recupera el escalado GDI al estilo XP bajo la opción "Sistema (Mejorado)". Esta opción combina la representación de texto de GDI+ a una resolución más alta con el escalado habitual de otros elementos, de modo que el texto aparece más nítido que en el modo de virtualización "Sistema" normal. [ 11 ]

Androide

Desde Android 1.6 "Donut" (septiembre de 2009) [ 12 ] , Android ha brindado soporte para múltiples tamaños y densidades de pantalla. Android expresa las dimensiones y la posición del diseño a través del píxel independiente de la densidad o "dp", que se define como un píxel físico en una pantalla de 160 dpi. En tiempo de ejecución, el sistema maneja de forma transparente cualquier escalado de las unidades dp, según sea necesario, en función de la densidad real de la pantalla en uso. [ 13 ]

Para facilitar la creación de mapas de bits subyacentes, Android clasifica los recursos en función del tamaño y la densidad de la pantalla:

Ilustración de cómo Android asigna aproximadamente tamaños y densidades reales a tamaños y densidades generalizados.
Ilustración de cómo Android asigna aproximadamente tamaños y densidades reales a tamaños y densidades generalizados.

Sistema X Window

Configuración de la impresora en el Centro de control de GNOME 3.10, sin escalar (izquierda) y escalada (derecha).

La biblioteca Xft , la biblioteca de renderizado de fuentes para el sistema X11, tiene una configuración de DPI que por defecto es 75. Esto es simplemente una envoltura alrededor del sistema FC_DPI en fontconfig, pero es suficiente para escalar el texto en aplicaciones basadas en Xft. Los entornos de escritorio también detectan este mecanismo para establecer su propio DPI, generalmente junto con la familia de funciones DisplayWidthMM de Xlib basadas en EDID . Esta última se ha vuelto ineficaz en Xorg Server 1.7; desde entonces, la información EDID solo está disponible para XRandR . [ 14 ]

En 2013, el entorno de escritorio GNOME comenzó a trabajar para brindar independencia de resolución ("compatibilidad con hi-DPI") a varias partes de la pila gráfica. El desarrollador Alexander Larsson escribió inicialmente [ 15 ] sobre los cambios necesarios en GTK+ , Cairo , Wayland y los temas de GNOME. Al final de las sesiones BoF en GUADEC 2013, el desarrollador de GTK+ Matthias Clasen mencionó que la compatibilidad con hi-DPI estaría "prácticamente completa" en GTK 3.10 [ 16 ] una vez que se completara el trabajo en Cairo . A partir de enero de 2014, la compatibilidad con hi-DPI para Clutter y GNOME Shell sigue en desarrollo. [ 17 ] [ 18 ] [ 19 ] [ 20 ]

GTK admite el escalado de todos los elementos de la interfaz de usuario mediante factores enteros, y de todo el texto mediante cualquier factor de número real no negativo. A partir de 2019, el escalado fraccional de la interfaz de usuario mediante el aumento y posterior disminución de la escala es experimental. [ 21 ]

Otro

Aunque no está directamente relacionado con la independencia de la resolución, algunos sistemas operativos utilizan interfaces gráficas de usuario (GUI) que se adaptan a los cambios de tamaño de fuente. Windows 95 y versiones posteriores utilizan la fuente Marlett TrueType para escalar algunos controles de ventana (cerrar, maximizar, minimizar, redimensionar) a tamaños arbitrarios. AmigaOS, a partir de la versión 2.04 (1991), puede adaptar sus controles de ventana a cualquier tamaño de fuente.

Los videojuegos renderizados con polígonos suelen ser independientes de la resolución. Another World (1991) para MS-DOS utiliza polígonos para dibujar su contenido 2D y posteriormente se rehizo con los mismos polígonos a una resolución mucho mayor. Los videojuegos 3D normalmente permiten al usuario seleccionar entre diferentes resoluciones de pantalla, lo que supone un equilibrio entre calidad y rendimiento.

Véase también

Referencias

  1. Carmody, Tim. "¿Llegarán alguna vez las interfaces independientes de la resolución a Mac?" . Wired . ISSN 1059-1028 . Consultado el 6 de mayo de 2022 . 
  2. Apple (29 de abril de 2005). "Notas de la versión de la interfaz de usuario independiente de la resolución para Mac OS X v10.4" . Apple Developer Connection . Consultado el 25 de marzo de 2007 .
  3. Anand Lal Shimpi (11 de junio de 2012). "Análisis de la pantalla Retina del MacBook Pro" . AnandTech. Archivado del original el 12 de junio de 2012. Consultado el 12 de junio de 2012 .
  4. ¿De dónde provienen los 96 DPI en Windows?
  5. ¿Por qué el texto se ve diferente cuando se dibuja con GDIPlus en comparación con GDI?
  6. Windows XP y Windows 2000 no admiten de forma nativa pantallas de alta resolución (DPI).
  7. "Función Win32 SetProcessDPIAware" .
  8. "Configuración de DPI de Windows Vista" . 10 de diciembre de 2006.
  9. 1 2 3 Configuración de DPI alto en Windows
  10. "Escalado de ventanas: la carrera armamentista de DPI - Vista de impresión" . Archivado del original el 18 de abril de 2014.
  11. "Mejora de la experiencia de alta resolución en aplicaciones de escritorio basadas en GDI" . Blog para desarrolladores de Windows (MSDN) . 19 de mayo de 2017. Consultado el 20 de febrero de 2020 .
  12. "Aspectos destacados de la plataforma Android 1.6" .
  13. "Descripción general de la compatibilidad de pantallas" .
  14. "Error #589485 "Ignora el tamaño físico de la pantalla y calcula en base a..." : Errores : paquete xorg-server : Ubuntu" . bugs.launchpad.net .   
  15. "Soporte para pantallas HiDPI en Gnome – Alexander Larsson" .
  16. "Notas de la reunión de GTK+ | Novedades" .
  17. ^ "ThreePointNine/Características/Hidpi - ¡GNOME Wiki!" .
  18. "Error 705915 – Compatibilidad con pantallas de alta resolución" .
  19. "Error 705410 – Compatibilidad con alta resolución: Escalar la interfaz de usuario" .
  20. "Error 705411 – Compatibilidad con alta resolución: Escalar las decoraciones de la ventana" .
  21. "Cómo habilitar el escalado fraccional HiDPI para Wayland o X11 en Ubuntu 19.04 Disco Dingo" . Blog de Linux Uprising .
  • Declaración de resolución de independencia de Juan Siracusa