stringtranslate.com

Independencia de resolución

La independencia de resolución es cuando los elementos en la pantalla de una computadora se representan 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 la resolución en el mundo de los ordenadores. La imagen deseada se puede reproducir más allá de la resolución atómica sin ningún tipo de artefactos y se garantiza que las decisiones de composición tipográfica automáticas serán idénticas en cualquier ordenador hasta un error menor que el diámetro de un átomo. Este sistema pionero tiene un sistema de fuentes correspondiente, Metafont , que proporciona fuentes adecuadas con los mismos altos estándares de independencia de la resolución.

El formato de archivo independiente del dispositivo (DVI) es el formato de archivo del sistema pionero TeX de Donald Knuth . El contenido de un archivo de este tipo se puede interpretar a cualquier resolución sin ningún tipo de artefactos, incluso a resoluciones muy altas que actualmente no se utilizan.

Implementación

El cuadro de diálogo de preferencias del sistema de macOS 10.8.5, la interfaz de usuario sin escala (izquierda) y la interfaz de usuario HighDPI escalada (derecha)

macOS

Apple incluyó cierto soporte para independencia de resolución en las primeras versiones de macOS , lo que se pudo 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 íconos 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 GUI de mapa de bits no se escalaban de manera fluida. [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ó la MacBook Pro 2012 con una resolución de 2880 × 1800 o 5,2 megapíxeles , duplicando la densidad de píxeles en ambas dimensiones. [3] La computadora portátil se envió con una versión de macOS que brindaba soporte para escalar la interfaz de usuario al doble de tamaño de lo que era anteriormente. 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 alto DPI. Apple también introdujo soporte para escalar la IU al renderizar la interfaz de usuario en una resolución mayor o menor que la resolución nativa incorporada de la computadora portátil y escalar la salida a la pantalla de la computadora portátil. Una desventaja obvia de este enfoque es un rendimiento disminuido al renderizar la IU en una resolución mayor que la nativa o un mayor desenfoque cuando se renderiza en una resolución menor que la nativa. Por lo tanto, si bien la interfaz de usuario de macOS se puede escalar utilizando este enfoque, la IU 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 ampliar 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 la pantalla, según el archivo de información del controlador). Cuando se especifica un DPI de sistema personalizado, la interfaz de usuario integrada en el sistema operativo se amplía. Windows también incluye API para que los desarrolladores de aplicaciones diseñen aplicaciones que se escalarán correctamente.

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

Windows Vista también agrega soporte para que los programas se declaren al sistema operativo que son conscientes de DPI alto a través de un archivo de manifiesto o usando una API. [7] [8] Para los programas que no se declaran conscientes de DPI, Windows Vista admite una función de compatibilidad llamada virtualización de DPI para que las métricas del sistema y los elementos de la interfaz de usuario se presenten a las aplicaciones como si se estuvieran ejecutando a 96 DPI y el Administrador de ventanas del escritorio luego escale 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 a nivel mundial.

Windows Vista también presenta Windows Presentation Foundation . 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 agrega la capacidad de cambiar el DPI con solo cerrar la sesión, no con un reinicio completo, y lo convierte en una configuración por usuario. Además, Windows 7 lee el DPI del monitor desde el EDID y configura 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 menor a 1024 x 768.

En Windows 8 , solo se muestra el porcentaje de escala de DPI en el cuadro de diálogo de cambio de DPI y se ha eliminado la visualización del valor de DPI sin procesar. [9] En Windows 8.1 , se ha eliminado la configuración global para deshabilitar la virtualización de DPI (solo usar la escala de estilo XP). [9] En densidades de píxeles superiores a 120 PPP (125 %), la virtualización de DPI está habilitada para todas las aplicaciones sin un indicador de reconocimiento de DPI (manifiesto) establecido 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 de que cada pantalla use una configuración de DPI independiente, aunque la calcula automáticamente para cada pantalla. Windows 8.1 evita que un usuario habilite a la fuerza la virtualización de DPI de una aplicación. Por lo tanto, si una aplicación afirma erróneamente ser consciente de DPI, se verá demasiado pequeña en pantallas de alto DPI en 8.1, y un usuario no puede corregir eso. [10]

Windows 10 agrega control manual sobre el DPI para monitores individuales. Además, la versión 1703 de Windows 10 recupera el escalado GDI al estilo XP bajo una 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 se ve 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 ofrece compatibilidad con múltiples tamaños y densidades de pantalla. Android expresa las dimensiones y la posición del diseño mediante el 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 escala 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 según el 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.

Sistema de ventanas X

Configuración de impresora del Centro de control de GNOME 3.10, sin escala (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 un envoltorio alrededor del sistema FC_DPI en fontconfig, pero es suficiente para escalar el texto en aplicaciones basadas en Xft. El mecanismo también es detectado por los entornos de escritorio para configurar su propio DPI, normalmente en conjunción con la familia de funciones Xlib DisplayWidthMM basadas en EDID . Esta última se ha vuelto ineficaz en Xorg Server 1.7; desde entonces, la información EDID solo se expone a XRandR . [14]

En 2013, el entorno de escritorio GNOME comenzó a trabajar para lograr independencia de resolución (soporte "hi-DPI") para varias partes de la pila de gráficos. 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 de BoF en GUADEC 2013, el desarrollador de GTK+ Matthias Clasen mencionó que el soporte hi-DPI estaría "prácticamente completo" en GTK 3.10 [16] una vez que se completara el trabajo en Cairo . A partir de enero de 2014, el soporte hi-DPI para Clutter y GNOME Shell es un trabajo en curso. [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 fraccionario de la interfaz de usuario mediante el aumento y la reducción de la escala es experimental. [21]

Otro

Aunque no está relacionado con la independencia de resolución real, algunos otros sistemas operativos utilizan GUI que pueden adaptarse a tamaños de fuente modificados. Microsoft Windows 95 en adelante utilizó la fuente Marlett TrueType para escalar algunos controles de ventana (controladores de cierre, maximización, minimización y cambio de tamaño) a tamaños arbitrarios. AmigaOS a partir de la versión 2.04 (1991) pudo adaptar sus controles de ventana a cualquier tamaño de fuente. [ verificación fallida ]

Los videojuegos a menudo son independientes de la resolución; un ejemplo temprano es Another World para DOS , que usaba polígonos para dibujar su contenido 2D y luego fue rehecho usando los mismos polígonos con una resolución mucho mayor. Los juegos 3D son independientes de la resolución ya que la perspectiva se calcula en cada cuadro y puede variar su resolución.

Véase también

Referencias

  1. ^ Carmody, Tim. "¿Llegarán algún día 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 de MacBook Pro". AnandTech . Consultado el 12 de junio de 2012 .
  4. ^¿ De dónde viene 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 alto DPI
  7. ^ "Función Win32 SetProcessDPIAware".
  8. ^ "Configuración de DPI de Windows Vista". 10 de diciembre de 2006.
  9. ^ abc Configuración de DPI alto en Windows
  10. ^ "Escalamiento de ventanas: la carrera armamentista del DPI: Vista de impresión".
  11. ^ "Mejora de la experiencia de alta resolución en aplicaciones de escritorio basadas en GDI". Blog de 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 compatibilidad de pantalla".
  14. ^ "Error n.° 589485 "Ignora el tamaño físico de la pantalla y calcula en función de..." : Errores : paquete xorg-server : Ubuntu". bugs.launchpad.net .
  15. ^ "Soporte de 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 alto dpi".
  19. ^ "Error 705410: compatibilidad con alta resolución: interfaz de usuario de escala".
  20. ^ "Error 705411 – Compatibilidad con alta resolución: escalar decoraciones de ventanas".
  21. ^ "Cómo habilitar el escalado fraccional HiDPI para Wayland o X11 en Ubuntu 19.04 Disco Dingo". Blog de Linux Uprising .

Enlaces externos