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 TeX, creado por Donald Knuth, introdujo la independencia de resolución en el mundo de los ordenadores. La vista deseada se puede representar más allá de la resolución atómica sin ningún artefacto, y se garantiza que las decisiones de composición tipográfica automática serán idénticas en cualquier computadora 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 resolución.

El formato de archivo independiente del dispositivo terminológico (DVI) es el formato de archivo del sistema TeX pionero de Donald Knuth. El contenido de dicho archivo se puede interpretar en cualquier resolución sin ningún artefacto, incluso en resoluciones muy altas que no se utilizan actualmente.

Implementación

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

Mac OS

Apple incluyó cierto soporte para la independencia de resolución en las primeras versiones de macOS , lo que se pudo demostrar con la herramienta de desarrollo 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 suavemente. [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 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 interfaz de usuario al representar 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 menor rendimiento al renderizar la interfaz de usuario con una resolución superior a la nativa o una mayor borrosidad al renderizar con una resolución inferior a la nativa. Por lo tanto, si bien 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 en Windows se basa en píxeles y, por 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 del sistema personalizado, la interfaz de usuario integrada en el sistema operativo aumenta. Windows también incluye API para que los desarrolladores de aplicaciones diseñen aplicaciones que se escalen adecuadamente.

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 compatible con DPI altos [6] ya que las pantallas con resoluciones muy altas y altas densidades de píxeles no estaban disponibles en ese momento marco. Windows Vista y Windows 7 escalan mejor con DPI más altos.

Windows Vista también agrega soporte para que los programas declaren al sistema operativo que son conscientes de alto DPI a través de un archivo de manifiesto o mediante una API. [7] [8] Para los programas que no se declaran compatibles con DPI, Windows Vista admite una función de compatibilidad llamada virtualización de DPI, por lo que las métricas del sistema y los elementos de la interfaz de usuario se presentan a las aplicaciones como si se estuvieran ejecutando a 96 DPI y el Administrador de ventanas del escritorio. luego escala la ventana de la aplicación resultante para que coincida con la configuración de DPI. Windows Vista conserva la opción de escala de estilo de Windows XP que, cuando está habilitada, desactiva la virtualización de DPI (texto borroso) para todas las aplicaciones a nivel global.

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 simplemente cerrando sesión, no reiniciando por completo y lo convierte en una configuración por usuario. Además, Windows 7 lee el DPI del monitor a partir del EDID y establece automáticamente el valor de DPI para que coincida con la densidad física de píxeles del monitor, a menos que la resolución efectiva sea inferior 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 eliminó la configuración global para deshabilitar la virtualización de DPI (solo use escalado 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 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 impide que un usuario habilite por la fuerza la virtualización DPI de una aplicación. Por lo tanto, si una aplicación afirma erróneamente que admite DPI, se verá demasiado pequeña en pantallas con altos DPI en 8.1 y el usuario no podrá corregirlo. [10]

Windows 10 agrega control manual sobre DPI para monitores individuales. Además, Windows 10 versión 1703 recupera el escalado GDI estilo XP en la opción "Sistema (mejorado)". Esta opción combina la representación de texto de GDI+ a una resolución más alta con la escala habitual de otros elementos, de modo que el texto aparece más nítido que en el modo de virtualización normal "Sistema". [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 ppp. 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 ayudar en 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 ventana X

Configuración de la impresora del Centro de control de GNOME 3.10, sin escala (izquierda) y escalada (derecha)

La biblioteca Xft , la biblioteca de representación de fuentes para el sistema X11, tiene una configuración de ppp predeterminada de 75. Esto es simplemente un contenedor 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 el mecanismo para establecer su propio DPI, generalmente junto con la familia de funciones Xlib DisplayWidthMM basada en EDID . Este último ha quedado ineficaz en Xorg Server 1.7; desde entonces, la información EDID solo está expuesta a XRandR . [14]

En 2013, el entorno de escritorio GNOME inició esfuerzos para brindar 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 de alto DPI sería "bastante completo" en GTK 3.10 [16] una vez que se completara el trabajo en Cairo . A partir de enero de 2014, se está trabajando en la compatibilidad con alto DPI para Clutter y GNOME Shell . [17] [18] [19] [20]

Gtk admite el escalado de todos los elementos de la interfaz de usuario mediante factores enteros y todo el texto mediante factores de números reales no negativos. A partir de 2019, el escalado fraccional de la interfaz de usuario ampliando y luego reduciendo es experimental. [21]

Otro

Aunque no están relacionados con la verdadera independencia de la resolución, algunos otros sistemas operativos utilizan GUI que pueden adaptarse a los tamaños de fuente modificados. Microsoft Windows 95 en adelante utilizó la fuente Marlett TrueType para escalar algunos controles de ventana (cerrar, maximizar, minimizar, cambiar el tamaño de los controladores) a tamaños arbitrarios. AmigaOS desde la versión 2.04 (1991) pudo adaptar sus controles de ventana a cualquier tamaño de fuente. [ verificación fallida ]

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

Ver también

Referencias

  1. ^ Carmody, Tim. "¿Llegarán alguna vez las interfaces independientes de resolución a Mac?". Cableado . 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 resolución para Mac OS X v10.4". Conexión de desarrollador de Apple . 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 . Consultado el 12 de junio de 2012 .
  4. ^ ¿ De dónde vienen 96 DPI en Windows?
  5. ^ Por qué el texto aparece diferente cuando se dibuja con GDIPlus versus 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 alto DPI en Windows
  10. ^ "Ampliación de ventanas - La carrera armamentista del DPI - Vista de impresión".
  11. ^ "Mejora de la experiencia de alto DPI 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 compatibilidad de pantalla".
  14. ^ "Error n.º 589485" Ignora el tamaño de la pantalla física y calcula en función de ...": Errores: paquete xorg-server: Ubuntu". bugs.launchpad.net .
  15. ^ "Soporte HiDPI en Gnome - Alexander Larsson".
  16. ^ "Notas de la reunión GTK + | Continúa".
  17. ^ "ThreePointNine/Características/Hidpi - ¡GNOME Wiki!".
  18. ^ "Error 705915: admite pantallas de ppp altos".
  19. ^ "Error 705410: compatibilidad con alta resolución de ppp: interfaz de usuario escalada".
  20. ^ "Error 705411: compatibilidad con alta resolución de ppp: escalar decoraciones de ventanas".
  21. ^ "Cómo habilitar el escalado fraccional HiDPI para Wayland o X11 en Ubuntu 19.04 Disco Dingo". Blog del levantamiento de Linux .

enlaces externos