Un administrador de ventanas de composición , o compositor , es un administrador de ventanas que proporciona a las aplicaciones un búfer fuera de la pantalla para cada ventana. El gestor de ventanas Mezclas de los buffers de ventana en una imagen que representa la pantalla y escribe el resultado en la memoria de la pantalla. [1] [2]
Los administradores de ventanas de composición pueden realizar un procesamiento adicional en las ventanas almacenadas en búfer, aplicando efectos animados en 2D y 3D como fusión , desvanecimiento , escalado , rotación , duplicación , flexión y contorsión, barajado, difuminado , redireccionamiento de aplicaciones y traducción de ventanas a una de varias pantallas. y escritorios virtuales . La tecnología de gráficos por computadora permite renderizar efectos visuales en tiempo real, como sombras , vistas previas en vivo y animaciones complejas. [3] [4] Dado que la pantalla escon doble búfer , no parpadea durante las actualizaciones.
Los administradores de ventanas de composición más utilizados incluyen:
- para Linux , BSD , Hurd y OpenSolaris : Compiz , KWin , Xfwm , Enlightenment , Mutter , xcompmgr y picom;
- para Windows : el Administrador de ventanas del escritorio ; y
- para macOS : Quartz Compositor .
Comparación con los administradores de ventanas apilables
El administrador de ventanas envía a cada ventana un mensaje para que se vuelva a pintar cuando sea apropiado (como cuando se cambia de tamaño o cuando otra ventana pasa frente a ella). Con un administrador de apilamiento, el proceso de repintado puede corromperse cuando un programa que es lento, no responde o tiene errores no responde a los mensajes de manera oportuna. [5] [6] Un programa malicioso puede hacer que el sistema parezca inestable simplemente descuidando volver a pintar su ventana. Entonces, una o más de las siguientes condiciones pueden resultar:
- una ventana recortada no vuelve a pintar las regiones descubiertas, lo que da como resultado espacios en blanco o un "rastro" dejado atrás desde otra ventana
- partes de las ventanas (como sombras decorativas) se dejan atrás y no se pintan correctamente
- el puntero del mouse está dañado [7] [ fuente no confiable ]
- las actualizaciones de pantalla se vuelven insoportablemente lentas [8]
- toda la pantalla se congela hasta que el programa responde o se termina [9]
Con un administrador de composición, si una ventana deja de pintarse a sí misma cuando lo solicita el administrador de ventanas, su último repintado permanecerá visible y la ventana podría atenuarse. A menudo, el título cambia para reflejar el estado de la ventana como que no responde. Un programa puede evitar que su ventana se mueva o desasigne, pero generalmente no causará problemas de repintado.
Historia
Uno de los primeros sistemas con un sistema de composición de ventanas fue el Commodore Amiga , lanzado en 1985. Las aplicaciones podían solicitar primero una región de memoria fuera de la región de visualización actual para usarla como mapa de bits. El sistema de ventanas Amiga luego usaría una serie de bit blits usando el blitter de hardware del sistema para construir una combinación de mapas de bits de estas aplicaciones, junto con botones y controles deslizantes, en la memoria de pantalla, sin requerir que estas aplicaciones vuelvan a dibujar ninguno de sus mapas de bits. [10]
El 24 de marzo de 2001, Mac OS X v10.0 se convirtió en el primer sistema operativo convencional en presentar composición y efectos 3D basados en software, proporcionados por su componente Quartz . Con el lanzamiento de Mac OS X v10.2 y Quartz Extreme , el trabajo de composición podría trasladarse al hardware de gráficos dedicado . [2] [11]
En 2003, Sun Microsystems demostró un ambicioso sistema de gráficos 3D llamado Project Looking Glass para colocarlo encima de su kit de herramientas Swing . Se mostró por primera vez en la LinuxWorld Expo 2003 . Aunque Apple amenazó con demandar a Sun por violación de los derechos de propiedad intelectual, otros administradores de ventanas han implementado algunas de las funciones en Looking Glass. En 2006, Sun interrumpió el desarrollo, cuyo negocio principal era la transición de estaciones de trabajo Unix con orientación gráfica a la venta de mainframes empresariales . [12]
Microsoft presentó por primera vez el Administrador de ventanas de escritorio en Project Longhorn en la Conferencia de ingeniería de hardware de Windows 2003 , demostrando ventanas inestables . [13] Los graves retrasos en el desarrollo de Longhorn hicieron que Microsoft no debutara su administrador de ventanas de composición 3D hasta el lanzamiento de Windows Vista en enero de 2007. [14]
La implementación de la composición en el sistema X Window requirió cierto rediseño, que se llevó a cabo de forma incremental. [15] Metacity 2.8.4 fue lanzado en agosto de 2004. [16] Sin embargo, el primer administrador de ventanas de composición para X ampliamente publicitado fue Xfwm , lanzado en enero de 2005. [17] El 26 de enero de 2005 se lanzó Compiz , introduciendo 3D totalmente acelerado -composición en la plataforma Linux. [18] KDE 's KWin también es compatible con la composición.
Composición y efectos 3D en sistemas operativos
En la composición, los efectos 3D se pueden aplicar en Windows para proporcionar efectos de escritorio 3D. Los administradores de ventanas de composición modernos utilizan la aceleración de hardware 3D. El software de administración de ventanas de composición se comunica con el hardware de gráficos a través de interfaces de programación como OpenGL o Direct3D .
Las primeras implementaciones generalizadas que utilizan esta técnica se lanzaron para Mac en Mac OS X 10.2 y para Linux en un prototipo de Luminocity . Actualmente, los administradores de ventanas que usan OpenGL incluyen Compiz, KWin y Quartz Compositor, mientras que Desktop Window Manager actualmente usa DirectX 9. OpenGL aún no es totalmente compatible con el hardware, por lo que el rendimiento de la composición basada en OpenGL debería continuar mejorando a medida que mejora el hardware [ cita necesario ] .
Linux
Los administradores de ventanas apilables que se ejecutan en el servidor X requieren una extensión de croma keying o green screen . La composición se introdujo mediante la extensión "Composite" . Los administradores de composición utilizan la aceleración de hardware a través de esta extensión, si está disponible.
En Linux y UNIX, la capacidad de realizar una composición acelerada en 3D completa requería cambios fundamentales en X11 para poder utilizar la aceleración por hardware. Originalmente, comenzaron a aparecer una serie de implementaciones X11 modificadas diseñadas en torno a OpenGL , incluido Xgl . La introducción de AIGLX eliminaría la necesidad de utilizar Xgl y permitiría a los administradores de ventanas realizar una composición acelerada en 3D en un servidor X estándar, al tiempo que permitiría el renderizado directo . Actualmente, las tarjetas NVIDIA , Intel y ATI son compatibles con AIGLX .
Compiz introdujo un efecto de cubo, que permite al usuario ver hasta 6 escritorios virtuales a la vez. Cada escritorio se convierte en una textura de superficie del cubo, que se puede girar a voluntad. Compiz muestra una amplia gama de efectos 2D y 3D y tiene requisitos de hardware relativamente bajos. [19] En 2012, Compiz se incluyó en Ubuntu Linux y se habilitó automáticamente cuando el hardware y los controladores compatibles estaban disponibles y el usuario no había seleccionado el modo 2D. [20]
Mutter (Metacity + Clutter ) ha reemplazado a Metacity como el administrador de ventanas predeterminado para GNOME . Se incluye en el componente GNOME Shell de GNOME 3.0. Utiliza el motor de visualización Clutter, que se ha adaptado a todos los principales sistemas operativos, netbooks y teléfonos inteligentes .
Desde la versión 4, el administrador de ventanas de KDE, KWin, tiene capacidades de composición. KWin presenta muchas de las mismas funciones que también están presentes en Compiz .
Java
Project Looking Glass era un administrador de ventanas que combinaba renderizado 3D y el lenguaje de programación Java multiplataforma . Ahora está inactivo y publicado bajo la Licencia Pública General GNU . La distribución de CD en vivo de Granular Linux incluye Looking Glass como administrador de ventanas opcional.
A raíz de su descontinuación, algunas de sus características, como el cambio de portada y las vistas previas en vivo de miniaturas, se han abierto camino en otros administradores de ventanas. Sus características más originales incluían la inclinación de la ventana, los marcos de las ventanas de dos lados y los fondos de desplazamiento de paralaje .
AmigaOS 4 y MorphOS
Si bien pueden ejecutarse en hardware compatible con 3D, AmigaOS 4 y MorphOS están diseñados para ejecutarse en antiguas computadoras Amiga heredadas , comenzando con Amiga 1200 . Como tal, sus administradores de ventanas tienen principalmente capacidades de renderizado plano que incluyen capas compuestas, fusión alfa, degradados, alta resolución y múltiples escritorios ("pantallas") que pueden recortarse parcialmente entre sí.
Microsoft Windows
Si bien el administrador de ventanas en Windows 2000 realiza la composición, no realiza transformaciones como un alfa por píxel. Pocas aplicaciones comerciales aprovecharon la mezcla alfa; Los programas gratuitos fueron de los primeros en experimentar con él, aunque a través de configuraciones opcionales. [21] [22] La composición se introdujo con Desktop Window Manager en Windows Vista . [1]
Windows Vista y Windows 7 permiten al usuario deshabilitar el Administrador de ventanas de escritorio seleccionando la configuración de apariencia básica de Windows. Además, Windows lo desactiva automáticamente para realizar la superposición de hardware a través del filtro mezclador de superposición .
Facilidad de uso y atractivo visual
El enfoque de composición facilita la implementación de una serie de características que hacen que la interfaz de usuario sea más accesible, más simple de usar o con elementos atractivos para la vista.
Lupas
Los gráficos vectoriales , como las fuentes TrueType y los elementos acelerados en 3D, se pueden expandir sin degradación (generalmente debido al aliasing ). Una lupa de pantalla amplía un área de la pantalla, lo que facilita la lectura de partes del texto, ya sea para evitar la fatiga visual , para las personas con discapacidad visual o simplemente a distancia. Los efectos de zoom , como la lupa de ojo de pez y los efectos de escritorio de zoom, proporcionan esta funcionalidad.
Vista previa en vivo
Se puede mostrar una vista previa de una ventana en una miniatura emergente cuando el usuario coloca el botón de la barra de tareas asociado . Esto permite al usuario identificar y administrar varios programas que se ejecutan simultáneamente.
Cambio de ventana
Las ventanas con nombres e iconos similares tienden a causar confusión, especialmente cuando sus barras de título se superponen; la posición de cada una de estas ventanas en la barra de tareas debe ser memorizada. Cuando hay muchas ventanas abiertas de esta manera, el usuario a menudo tiene que recurrir a prueba y error, haciendo clic en cada botón de la barra de tareas uno por uno, antes de continuar. El cambio de ventana permite obtener una vista previa rápida de varias ventanas a la vez reorganizándolas temporalmente contra un fondo decorativo. Después de realizar una selección, las ventanas se restauran a su disposición original.
La selección comienza cuando el usuario ingresa una combinación de teclas de acceso rápido , mueve el puntero del mouse a un punto de acceso en la pantalla o, en algunas situaciones, usa la rueda de desplazamiento del mouse . Los elementos se navegan con el teclado o el mouse. Un elemento se selecciona soltando la tecla de acceso rápido, presionando la tecla Enter o haciendo clic en él con el mouse.
Cambio de tapa
El conmutador flip es una mejora de la función de cambio Alt-Tab . Las ventanas en ejecución se organizan en una pila, similar a un selector de estilo abatible en una máquina de discos de los años 50 o un Rolodex . En algunos sistemas, el usuario puede presionar Alt-Shift-Tab para navegar hacia atrás. Las transiciones visuales se aplican a cada elemento durante la navegación.
Las implementaciones comunes de flip switching incluyen Flip 3D en Windows y Shift Switcher en Compiz.
Cambio de cubierta
El cambio de cobertura es como un cambio de tapa con algunas diferencias, en su mayoría visuales. En lugar de una pila con la selección en la parte superior, se muestran dos pilas simétricas con la selección actual al frente y al centro (similar a la función de inclinación de la ventana en Looking Glass).
Cover Flow es una implementación del cambio de cobertura en macOS. Las versiones más recientes usan el desenfoque para restar énfasis a los elementos no seleccionados. Cover Flow también se ha implementado en otro software publicado por Apple como iTunes .
Esto también se conoce como "vista de libro rápido".
Cambio de anillo
El cambio de anillo es como el cambio de tapa, excepto que las ventanas se mueven en un círculo, con la selección actual al frente, generalmente en la parte inferior. La mayoría de los gestores de ventanas de composición incluyen esta característica fuera de la caja , y las aplicaciones de terceros , tales como 3D-escritorio , también están disponibles.
Agrupamiento
El usuario puede agrupar ventanas juntas, de modo que solo una ventana a la vez sea visible en cada grupo. En Compiz, el marco de la ventana se invierte para indicar cuándo se ha cambiado la ventana activa en su grupo.
Exponer
macOS muestra una vista previa de cada ventana en la pantalla colocándolas en mosaico. Otros sistemas con funcionalidad similar (Microsoft Windows, Compiz, KWin, aplicaciones de terceros) se denominan clones de Exposé. La tecla de acceso rápido para activar Exposé no es Alt-Tab, sino F3.
Control de misión
Mac OS X 10.7 combina varias otras funciones de composición desarrolladas por Apple, como Exposé, Dashboard y Spaces, en un programa más grande llamado Mission Control .
Motores de widgets
En macOS, los "widgets" ( subprogramas de un solo propósito ) como un reloj, un bloc de notas y una calculadora pueden aparecer al presionar una tecla de acceso rápido . Los motores de widgets aceleran el trabajo al mantener accesibles los widgets de uso común sin ser molestos. Son manejados por el programa Dashboard en macOS.
Compiz comienza con una capa de widgets en blanco, lo que permite al usuario agregar aplicaciones haciendo clic en ellas. Se admiten una variedad de widgets, incluidos Screenlets , gDesklets y SuperKaramba . [23]
Windows Vista proporciona gadgets que el usuario puede colocar en la barra lateral de Windows (gadgets de la barra lateral), una página de inicio de Windows Live (gadgets web) o una pantalla externa, como el teléfono móvil del usuario ( gadgets SideShow ). La barra lateral de Windows era una partición visible en Windows Vista y se eliminó en Windows 7, junto con los gadgets de la barra lateral que se cambiaron a Gadgets de escritorio .
Transiciones y otros efectos
Antes de que se desarrollaran los administradores de ventanas de composición, las ventanas entraban y salían instantáneamente de la vista, lo cual es incongruente con la metáfora de la interfaz (y con un entorno físico de oficina ). Algunos sistemas como el Mac OS clásico evitaron este problema con ZoomRects , animando el contorno de las ventanas "haciendo zoom" hacia su posición final. [24] Pero en la mayoría de los sistemas, la aparición y desaparición repentina de elementos GUI puede parecer confusa o incluso caótica para usuarios inexpertos. [ cita requerida ] Las transiciones visuales proporcionan contexto y ayudan a distinguir las relaciones causales de los elementos de la GUI. En lugar de simplemente desaparecer, una ventana puede desaparecer o reducirse visiblemente a la barra de tareas. Un menú desplegable en el que se ha hecho clic puede irradiarse suavemente hacia afuera desde la barra de menú, lo que facilita la determinación de su origen y propósito.
Las transiciones graduales y naturales pueden ser [ ¿investigación original? ] especialmente útil para usuarios de edad avanzada o con discapacidad visual que notan cambios en la pantalla más lentamente y con menos claridad. Por ejemplo, un usuario sin experiencia puede hacer clic impulsivamente en un menú que se activó por accidente, provocando que pierda el trabajo. El breve retraso necesario para mostrar una transición visual puede dar al usuario el tiempo suficiente para tomar una decisión consciente y evitar tales errores.
Fachadas de la interfaz de usuario
Metisse implementa fachadas de interfaz de usuario, un sistema que proporciona a los usuarios formas sencillas de adaptar, reconfigurar y recombinar interfaces gráficas existentes, mediante el uso de técnicas de manipulación directa . [25]
Lista de gestores de ventanas de composición
- 3Dwm , un administrador de espacio de trabajo tridimensional [26] y una plataforma de propósito general para interfaces de usuario 3D. [27] [28] [29] En junio de 2006 este proyecto está inactivo.
- Desktop Window Manager y el tema Windows Aero en Windows
- Quartz Compositor en macOS
- Compiz
- Marco
- KWin (desde la versión 3.3)
- Murmurar
- Xfwm desde dentro de Xfce (desde la versión 4.2)
- Sistema de ventanas Metisse
- Mir (desde la versión 1.0)
Lista de administradores de composición independientes
- xcompmgr: una alternativa mínima a Compiz
- Compton: una bifurcación corregida de errores de dcompmgr, que es una bifurcación de xcompmgr. (No se mantiene desde 2017.)
- Picom: un compositor ligero para X11. Es una bifurcación de Compton.
- Cairo Compmgr (Cairo Composite Manager): un complemento de composición para administradores de ventanas existentes. Utiliza Cairo , una biblioteca de gráficos vectoriales que también se usa en GTK + .
- Unagi Compositing Manager: un administrador de composición que se puede utilizar junto con un administrador de ventanas existente. Utiliza la biblioteca XCB . (No se mantiene desde 2014.)
- MCompositor: utilizado en teléfonos MeeGo .
Sistemas operativos con gestores de ventanas de composición
- Mac OS X 10.0 y posterior
- cualquier sistema operativo similar a Unix que utilice XOrg / AIGLX o Xgl
- AmigaOS 4
- MorphOS 2.0 y posterior
- Windows Vista y posterior
Ver también
- Administrador de ventanas
- Gestor de ventanas de mosaico
- Administrador de ventanas apilables
- Administrador de ventanas de crianza
- Modo retenido
- Interfaz de usuario con zoom
- Gráficos de computadora
Referencias
- ^ a b "Administrador de ventanas de escritorio" . Msdn2.microsoft.com . Consultado el 21 de noviembre de 2008 .
- ^ a b "Mac OS X 10.4 Tiger: Página 13" . Arstechnica.com . Consultado el 21 de noviembre de 2008 .
- ^ "Compiz.org :: Inicio / Inicio - Compiz" . Compiz.org. Archivado desde el original el 12 de octubre de 2006 . Consultado el 21 de noviembre de 2008 .
- ^ "Blueprint:" Gestión de ventanas de composición (compiz / beryl) " " . Blueprints.launchpad.net . Consultado el 21 de noviembre de 2008 .
- ^ "Varias instancias de Internet Explorer no vuelven a dibujar la pantalla correctamente" . Microsoft. 9 de octubre de 2003 . Consultado el 17 de diciembre de 2010 .
- ^ "Preguntas frecuentes sobre el soporte de PHOTOSCORE" . Consultado el 17 de diciembre de 2010 .
- ^ "Corrupción del cursor de Mouser en xinerama" . Canonical Ltd. 2 de agosto de 2006 . Consultado el 17 de diciembre de 2010 .
- ^ "Archivado de grupos: microsoft.public.windowsxp.video" . Grupo Bestofmedia. 18 de julio de 2004 . Consultado el 17 de diciembre de 2010 .
- ^ "Mustang: las aplicaciones de swing se congelan y luego se pintan corruptas" . Oráculo. 1 de mayo de 2006. Archivado desde el original el 26 de julio de 2011 . Consultado el 17 de diciembre de 2010 .
- ^ "Manual de Bibliotecas Amiga RKM" .
- ^ "Una breve historia de Mac OS X" . Kernelthread.com. Archivado desde el original el 22 de enero de 2009 . Consultado el 21 de noviembre de 2008 .
- ^ "Sun e IBM ofrecerán una nueva clase de servidores de gama alta" .
- ^ "Interfaz de usuario 3D Longhorn de Microsoft - Emerge más información" . ExtremeTech.
- ^ "Historial de Microsoft Windows" . Computerhope.com . Consultado el 21 de noviembre de 2008 .
- ^ "La (Re) Arquitectura del Sistema X Window" . Keithp.com . Consultado el 21 de noviembre de 2008 .
- ^ "pkgsrc.se | La colección de paquetes NetBSD" . Pkgsrc.se . Consultado el 21 de noviembre de 2008 .
- ^ "¡Xfce 4.2.0 lanzado!" . foo-projects.org. 16 de enero de 2005 . Consultado el 25 de febrero de 2009 .
- ^ "Historial de versiones - Preferencias Ocultar y buscar" . Hideseek.sourceforge.net . Consultado el 21 de noviembre de 2008 .
- ^ "Instalación / ejecución de Compiz en GeForce2 MX / MX 400" .[ enlace muerto permanente ]
- ^ "¿De qué es responsable la aplicación" compiz "en ubuntu 12.04?" .
- ^ "Ejemplo de utilidad de transparencia alfa" .
- ^ "Ventanas Alpha Blending (Transparente)" . CodeGuru.
- ^ "Complementos / Widget - Compiz Wiki" . Compiz . Consultado el 26 de diciembre de 2010 .
- ^ "Binoculares de alta tecnología" .
- ^ "Metisse: Fachadas de interfaz de usuario" . Metisse . Consultado el 3 de agosto de 2011 .
- ^ 3Dwm - About , 23 de enero de 2004, archivado desde el original el 6 de febrero de 2004 , consultado el 4 de febrero de 2010
- ^ 3Dwm - Acerca de - Preguntas frecuentes - Acerca del proyecto , 3 de diciembre de 2003, archivado desde el original el 24 de febrero de 2004 , consultado el 4 de febrero de 2010
- ^ Administrador de ventanas 3D , archivado desde el original el 17 de julio de 2011 , consultado el 16 de diciembre de 2010
- ^ Yeargin, Ray (31 de marzo de 2005), 3DWM: una captura de pantalla en el escritorio 3D , consultado el 16 de diciembre de 2010
enlaces externos
- Varios efectos en Compiz en YouTube
- Comparación entre Windows Aero y Compiz en YouTube
- Mac OS X y Quartz Compositor en YouTube
- Sombras y transparencia en xcompmgr en YouTube
- Cambio de escritorio usando el escritorio 3d en YouTube
- Cambio de escritorio usando el efecto cubo en YouTube
- Video de demostración oficial de Project Looking Glass en YouTube
- Efectos de fondo y ventanas en Looking Glass en YouTube