Gerenciador de janela de composição - Compositing window manager

Um gerenciador de janela de composição , ou compositor , é um gerenciador de janela que fornece aos aplicativos um buffer fora da tela para cada janela. O gerenciador de janelas compósitos os buffers janela para uma imagem que representa a tela e escreve o resultado na memória de vídeo.

Os gerenciadores de janela de composição podem realizar processamento adicional em janelas em buffer, aplicando efeitos animados 2D e 3D , como mesclagem , desbotamento , dimensionamento , rotação , duplicação , dobra e contorção, embaralhamento, desfoque , redirecionamento de aplicativos e conversão de janelas em uma das várias telas e desktops virtuais . A tecnologia de computação gráfica permite que efeitos visuais sejam renderizados em tempo real, como sombras projetadas, visualizações ao vivo e animações complexas. Como a tela tem buffer duplo , ela não pisca durante as atualizações.

Os gerenciadores de janela de composição mais comumente usados ​​incluem:

Comparação com gerenciadores de janela de empilhamento

O gerenciador de janelas envia a cada janela uma mensagem para se redesenhar sempre que apropriado (como quando é redimensionada ou quando outra janela passa na frente dela). Com um gerenciador de empilhamento, o processo de repintura pode ser corrompido quando um programa lento, sem resposta ou com erros não responde às mensagens em tempo hábil. Um programa malicioso pode fazer com que o sistema pareça instável, simplesmente se negligenciando a pintura de sua janela. Então, uma ou mais das seguintes condições podem resultar:

  • uma janela recortada não repinta regiões descobertas, resultando em espaços em branco ou um "rastro" deixado para trás de outra janela
  • partes das janelas (como sombras decorativas) são deixadas para trás e não são devidamente pintadas
  • o ponteiro do mouse está corrompido
  • atualizações de tela tornam-se insuportavelmente lentas
  • a tela inteira congela até que o programa responda ou seja encerrado

Com um gerenciador de composição, se uma janela parar de se redesenhar quando solicitado pelo gerenciador de janelas, sua última pintura permanecerá exibida e a janela poderá ser escurecida. Freqüentemente, o título muda para refletir o status da janela como sem resposta. Um programa pode impedir que sua janela seja movida ou desmapeada, mas geralmente não causa problemas de repintura.

História

Um dos primeiros sistemas com um sistema de janela de composição foi o Commodore Amiga , lançado em 1985. Os aplicativos podiam primeiro solicitar uma região de memória fora da região de exibição atual para uso como bitmap. O sistema de janelas Amiga, então, usar uma série de blits bit usando o hardware do sistema blitter para construir uma composição de bitmaps destas aplicações - juntamente com botões e sliders - em memória de vídeo, sem a necessidade de esses aplicativos para redesenhar qualquer um dos seus bitmaps.

Gerenciador de janelas Metacity , parte do GNOME .

Em 24 de março de 2001, o Mac OS X v10.0 se tornou o primeiro sistema operacional convencional a apresentar composição e efeitos 3D baseados em software, fornecidos por seu componente Quartz . Com o lançamento do Mac OS X v10.2 e Quartz Extreme , o trabalho de composição pode ser movido para hardware gráfico dedicado .

Em 2003, a Sun Microsystems demonstrou um ambicioso sistema de gráficos 3D chamado Project Looking Glass para colocar em cima de seu kit de ferramentas Swing . Ele foi exibido pela primeira vez na LinuxWorld Expo 2003 . Embora a Apple tenha ameaçado processar a Sun por violação de direitos de propriedade intelectual, outros gerenciadores de janelas implementaram algumas das funcionalidades do Looking Glass. Em 2006, o desenvolvimento foi descontinuado pela Sun, cujo principal negócio era a transição de estações de trabalho Unix orientadas graficamente para a venda de mainframes corporativos .

A Microsoft apresentou pela primeira vez o Desktop Window Manager no Project Longhorn na Windows Hardware Engineering Conference 2003 , demonstrando as janelas instáveis . Atrasos graves no desenvolvimento do Longhorn levaram a Microsoft a não lançar seu gerenciador de janelas de composição 3D até o lançamento do Windows Vista em janeiro de 2007.

A implementação da composição no X Window System exigiu algumas reformulações, que ocorreram de forma incremental. O Metacity 2.8.4 foi lançado em agosto de 2004. No entanto, o primeiro gerenciador de janela de composição amplamente divulgado para o X foi o Xfwm , lançado em janeiro de 2005. Em 26 de janeiro de 2005, o Compiz foi lançado, introduzindo a composição 3D totalmente acelerada para a plataforma Linux. O KWin do KDE também suporta composição.

Composição e efeitos 3D em sistemas operacionais

Na composição, os efeitos 3D podem ser aplicados nas janelas para fornecer efeitos 3D na área de trabalho. Os gerenciadores de janela de composição modernos usam aceleração de hardware 3D. O software gerenciador de janelas de composição se comunica com o hardware gráfico por meio de interfaces de programação como OpenGL ou Direct3D .

As primeiras implementações generalizadas usando essa técnica foram lançadas para o Mac no Mac OS X 10.2 e para o Linux em um protótipo Luminocity . Atualmente, os gerenciadores de janela que usam OpenGL incluem Compiz, KWin e Quartz Compositor, enquanto o Desktop Window Manager usa DirectX 9. O OpenGL ainda não é totalmente compatível com o hardware, então o desempenho da composição baseada em OpenGL deve continuar a melhorar à medida que o hardware melhora.

Linux

Os gerenciadores de janela de empilhamento em execução no servidor X exigiam um chroma key ou extensão de triagem verde . A composição foi introduzida por meio da extensão "Composto" . Os gerenciadores de composição usam aceleração de hardware por meio desta extensão, se disponível.

Ubuntu 8.04 Hardy Heron executando o Shift Switcher do Compiz no modo Flip.

No Linux e no UNIX, a capacidade de fazer composição totalmente acelerada em 3D exigia mudanças fundamentais no X11 para usar a aceleração de hardware. Originalmente, várias implementações X11 modificadas projetadas em torno do OpenGL começaram a aparecer, incluindo o Xgl . A introdução do AIGLX eliminaria a necessidade de usar o Xgl e permitiria aos gerenciadores de janela fazer composição 3D acelerada em um servidor X padrão, enquanto ainda permitia a renderização direta . Atualmente, as placas NVIDIA , Intel e ATI suportam AIGLX .

O Compiz introduziu um efeito de cubo, que permite ao usuário ver até 6 desktops virtuais ao mesmo tempo. Cada área de trabalho é convertida em uma textura de superfície do cubo, que pode ser girada à vontade. O Compiz exibe uma ampla gama de efeitos 2D e 3D e tem requisitos de hardware relativamente baixos. Em 2012, o Compiz foi incluído no Ubuntu Linux e foi ativado automaticamente quando o hardware e os drivers compatíveis estavam disponíveis e o usuário não selecionou o modo 2D.

Mutter (Metacity + Clutter ) substituiu o Metacity como gerenciador de janelas padrão do GNOME . É apresentado no componente GNOME Shell do GNOME 3.0. Ele usa o mecanismo de exibição Clutter, que foi portado para todos os principais sistemas operacionais, netbooks e smartphones .

Desde a versão 4, o gerenciador de janelas KWin do KDE possui recursos de composição. O KWin apresenta muitas das mesmas funcionalidades também presentes no Compiz .

Java

O Project Looking Glass era um gerenciador de janelas que combinava renderização 3D e a linguagem de programação de plataforma cruzada Java . Ele agora está inativo e lançado sob a GNU General Public License . A distribuição do Live CD Granular Linux inclui o Looking Glass como um gerenciador de janelas opcional.

Depois de ser descontinuado, alguns de seus recursos, como troca de capa e pré-visualizações ao vivo em miniatura, encontraram seu caminho para outros gerenciadores de janela. Suas características mais originais incluem inclinação de janela, molduras de janela de dois lados e fundos de rolagem paralaxe .

AmigaOS 4 e MorphOS

Embora sejam capazes de rodar em hardware compatível com 3D, o AmigaOS 4 e o MorphOS são projetados para rodar em computadores Amiga antigos , começando com o Amiga 1200 . Como tal, seus gerenciadores de janela têm principalmente recursos de renderização plana que incluem camadas compostas, mistura alfa, gradientes, alta resolução e vários desktops ("telas") que podem cortar parcialmente uns aos outros.

Microsoft Windows

Embora o gerenciador de janelas no Windows 2000 execute a composição, ele não executa transformações, como um alfa por pixel. Poucos aplicativos comerciais aproveitaram a combinação alfa; programas freeware foram os primeiros a experimentá-lo, embora por meio de configurações opcionais. A composição foi introduzida com o Desktop Window Manager no Windows Vista .

O Windows Vista e o Windows 7 permitem que o usuário desative o Desktop Window Manager selecionando as configurações básicas de aparência do Windows. Além disso, ele é desabilitado automaticamente pelo Windows para realizar a sobreposição de hardware por meio do Filtro do Mixer de Sobreposição .

Usabilidade e colírio para os olhos

A abordagem de composição torna mais fácil implementar uma série de recursos que tornam a interface do usuário mais acessível, mais simples de usar ou com elementos atraentes.

Lupas

O efeito de ampliação no Compiz (clique na imagem para visualizá-la em escala).

Gráficos vetoriais , como fontes TrueType e elementos acelerados em 3D, podem ser expandidos sem degradação (geralmente devido ao aliasing ). Uma lupa amplia uma área da tela, facilitando a leitura de partes do texto - seja para evitar o cansaço visual , para os deficientes visuais ou simplesmente à distância. Os efeitos de zoom , como o ampliador olho de peixe e os efeitos de zoom da área de trabalho, fornecem essa funcionalidade.

Visualização ao vivo

Uma visualização de uma janela pode ser exibida em uma miniatura pop-up quando o usuário passa o mouse sobre o botão da barra de tarefas associado . Isso permite que o usuário identifique e gerencie vários programas em execução simultânea.

Troca de janela

Troca de janela básica no Xgl.

Janelas com nomes e ícones semelhantes tendem a causar confusão, especialmente quando suas barras de título se sobrepõem; a posição de cada uma dessas janelas na barra de tarefas deve ser memorizada. Quando há muitas janelas abertas dessa maneira, o usuário geralmente precisa recorrer a tentativa e erro - clicando em cada botão da barra de tarefas um por um - antes de prosseguir. A alternância de janelas permite uma pré-visualização rápida de várias janelas ao mesmo tempo, reorganizando-as temporariamente contra um fundo decorativo. Depois que uma seleção é feita, as janelas são restauradas à sua disposição original.

A seleção começa quando o usuário insere uma combinação de teclas de atalho , move o ponteiro do mouse para um ponto ativo na tela ou, em algumas situações, usa a roda de rolagem do mouse . Os itens são navegados usando o teclado ou mouse. Um item é selecionado liberando a tecla de atalho, pressionando a tecla Enter ou clicando nele com o mouse.

Alternância de flip

Alternar flip no Compiz.

O switcher flip é um aprimoramento do recurso de alternância Alt-Tab . As janelas em execução são organizadas em uma pilha - semelhante a um seletor tipo flip em uma jukebox dos anos 1950 ou um Rolodex . Em alguns sistemas, o usuário pode pressionar Alt-Shift-Tab para navegar para trás. As transições visuais são aplicadas a cada item durante a navegação.

Implementações comuns de alternância de flip incluem Flip 3D no Windows e Shift Switcher no Compiz.

Troca de tampa

Chave da tampa no KWin.

A troca de cobertura é como a troca de flip com algumas diferenças, principalmente visuais. Em vez de uma pilha com a seleção no topo, duas pilhas simétricas são mostradas com a seleção atual na frente e no centro (semelhante ao recurso de inclinação da janela no Looking Glass).

Cover Flow é uma implementação de comutação de cobertura no macOS. Versões mais recentes usam desfoque para tirar a ênfase de itens não selecionados. O Cover Flow também foi implementado em outro software publicado pela Apple , como o iTunes .

Isso também é conhecido como "visualização de livro rápido".

Troca de anel

Troca de anel no Compiz Fusion.

A troca de anel é como a troca de flip, exceto que as janelas se movem em um círculo, com a seleção atual na frente, geralmente na parte inferior. A maioria dos gerenciadores de janela de composição incluem esse recurso pronto para uso , e aplicativos de terceiros , como 3d-desktop , também estão disponíveis.

Agrupamento

O usuário pode agrupar janelas, de forma que apenas uma janela por vez fique visível em cada grupo. No Compiz, a moldura da janela é invertida para indicar quando a janela ativa em seu grupo foi alterada.

Expor

O macOS exibe uma visualização de cada janela na tela, agrupando-as. Outros sistemas com funcionalidade semelhante (Microsoft Windows, Compiz, KWin, aplicativos de terceiros) são chamados de clones Exposé. A tecla de atalho para ativar o Exposé não é Alt-Tab, mas sim F3.

Controle da missão

O Mac OS X 10.7 combina vários outros recursos de composição desenvolvidos pela Apple - como Exposé, Dashboard e Spaces - em um programa maior chamado Mission Control .

Mecanismos de widget

No macOS, "widgets" ( miniaplicativos de finalidade única ), como relógio, bloco de notas e calculadora, podem aparecer pressionando uma tecla de atalho . Os mecanismos de widget aceleram o trabalho, mantendo os widgets comumente usados ​​acessíveis e discretos. Eles são gerenciados pelo programa Dashboard no macOS.

O Compiz começa com uma Camada Widget em branco, permitindo ao usuário adicionar aplicativos clicando neles. Uma variedade de widgets são suportados, incluindo Screenlets , gDesklets e SuperKaramba .

O Windows Vista fornece gadgets que o usuário pode colocar na barra lateral do Windows (gadgets da barra lateral), uma página inicial do Windows Live (gadgets da Web) ou uma tela externa, como o telefone celular do usuário ( gadgets SideShow ). A Barra Lateral do Windows era uma partição visível no Windows Vista e foi eliminada no Windows 7, junto com os gadgets da Barra Lateral que foram alterados para Gadgets da Área de Trabalho .

Transições e outros efeitos

Antes de os gerenciadores de janela de composição serem desenvolvidos, as janelas instantaneamente entrariam e saíam da vista, o que é incongruente com a metáfora da interface (e com um ambiente físico de escritório ). Alguns sistemas, como o Mac OS clássico, evitaram esse problema com ZoomRects , animando o contorno da janela "ampliando" em direção à sua posição final. Mas na maioria dos sistemas, o aparecimento repentino e o desaparecimento de elementos da GUI podem parecer confusos ou até caóticos para usuários inexperientes. As transições visuais fornecem contexto e ajudam a distinguir as relações causais dos elementos da GUI. Em vez de apenas desaparecer, uma janela pode desbotar ou encolher visivelmente para a barra de tarefas. Um menu suspenso que foi clicado pode irradiar suavemente para fora da barra de menus, tornando mais fácil determinar sua origem e propósito.

As transições graduais e naturais podem ser especialmente úteis para usuários idosos ou com deficiência visual que notam mudanças na tela mais lentamente e com menos clareza. Por exemplo, um usuário inexperiente pode clicar impulsivamente em um menu que foi ativado acidentalmente, fazendo com que ele perca o trabalho. O pequeno atraso necessário para exibir uma transição visual pode dar ao usuário tempo suficiente para tomar uma decisão consciente e evitar tais erros.

Fachadas da interface do usuário

Metisse implementa fachadas de interface de usuário, um sistema que fornece aos usuários maneiras simples de adaptar, reconfigurar e recombinar interfaces gráficas existentes, por meio do uso de técnicas de manipulação direta .

Lista de gerenciadores de janela de composição

Lista de gerenciadores de composição autônomos

  • xcompmgr - uma alternativa mínima para o Compiz
  • Compton - uma bifurcação corrigida por bug de dcompmgr, que é uma bifurcação de xcompmgr. (Não é mantido desde 2017.)
  • Picom - um compositor leve para X11. É um fork do Compton.
  • Cairo Compmgr (Cairo Composite Manager) - um complemento de composição para gerenciadores de janela existentes. Ele usa Cairo , uma biblioteca de gráficos vetoriais também usada no GTK + .
  • Unagi Compositing Manager - um gerenciador de composição que pode ser usado junto com um gerenciador de janelas existente. Ele usa a biblioteca XCB . (Não é mantido desde 2014.)
  • MCompositor - usado em aparelhos MeeGo .

Sistemas operacionais com gerenciadores de janela de composição

Veja também

Referências

links externos