Esta páginacita fontes, mas quenão cobrem todo o conteúdo. Ajude ainserir referências (Encontre fontes:ABW • CAPES • Google (notícias • livros • acadêmico)).(Novembro de 2022) |
Xgl é uma arquitetura deServidor X, desenvolvida por David Reveman, que roda sobreOpenGL viaglitz. Tira proveito de placas gráficas modernas através de seusdrivers OpenGL, suportando aceleração dehardware de todas as aplicações X, OpenGL e XVideo e efeitos gráficos através de um gerenciador de composição de janelas, tal como oCompiz. Em maio de2006, oServidor X Xgl (e componentes relacionados incluindo ogerenciador de janelas Compiz e ferramentas de configuração gráfica associadas) passou a ser suportado – instalado separadamente – por algumas das maioresdistribuições Linux, comoSUSE 10.1 eUbuntu 6.06.
O OpenGL não especifica como iniciar uma tela e manipular contextos gráficos. Essas operações são realizadas por uma API específica de umsistema de janelas nativo. Até agora há doisbackends diferentes para resolver este problema de iniciação. Muito provavelmente, a maioria dosbackends conterá o mesmo código e as diferenças estarão primariamente nas porções de iniciação dos servidores.
Xglx foi o primeirobackend implementado para esta arquitetura. É também nele que a maioria do desenvolvimento acontece até o momento. Ele precisa de um servidor X já existente para rodar e usaGLX para criar uma janela OpenGL, a qual o Xgl, então, usa, de maneira parecida ao Xnest. Este modo é pretendido somente para desenvolvimento no futuro, devido à redundância de requerer um servidor X para rodar o Xgl. Na XDevConf 2006, anVidia fez uma apresentação argumentando que este é o caminho errado a tomar porque o servidor em camadas não abstrai características dasplacas de vídeo. Isto faz com que capacidades dependentes dedriver, como suporte a recursos3D e suporte a dois monitores, se tornem muito mais difíceis.[1] No entanto, delegar a iniciação a um servidor X existente permite aos desenvolvedores se concentrarem diretamente na funcionalidade do servidor, ao invés de dedicarem tempo substancial a conexões específicas de inúmeroshardwares de vídeo. Até o momento, o Xglx não suporta múltiplos monitores!
Xegl é o futuro do Xgl, e uma meta de longo prazo do desenvolvimento do servidor X. O servidor Xegl compartilhará muito do código de desenho em vídeo com o servidor Xglx, a não ser que a iniciação do gerenciador de contexto e desenhos do OpenGL seja manipulado pela especificação Embedded GL, referido como API EGL. A implementação atual usaMesa-solo para proverrenderização OpenGL diretamente noframebuffer do Linux ou DRI para ohardware responsável pelos gráficos. Desde agosto de2005, o Xegl só funciona com placas gráficasRadeon R200 e seu desenvolvimento está atualmente atrasado. É provável que continue assim até que o servidor Xglx tenha se provado eficiente e os drivers de código proprietário adicionem suporte à API EGL. Neste caso, deve se tornar um substituto transparente ao servidor Xglx aninhado.
Estruturar toda arenderização em cima do OpenGL poderia potencialmente simplificar o desenvolvimento de drivers de vídeo. Removeria a separação artificial entre aceleração2D e3D. Isto é vantajoso, já que operações 2D são frequentemente (e contraintuitivamente, já que 3D implica 2D) desaceleradas. Também removeria todo o código dependente dehardware do servidor X e permitiria operações aceleradas de Composição e Renderização independentes de driver gráfico. Adicionalmente, gerenciadores de composição podem usar a API OpenGL para renderizar, permitindo efeitos bastante surpreendentes. Existem notícias de que afiliadas da NVidia e ATI estariam dispostas a lançar drivers binários para um servidor X baseado em OpenGL, uma vez que uma API seja estabelecida, embora naXorg Developers Conferece de 2006 tenha sido indicado pela NVidia que eles estão muito felizes com o driver já existente. A ideia de estendê-lo está sendo trabalhada no projetoAIGLX, doFedora Project.[2]
Renderização de janelas e desktop baseados em aceleração dehardware OpenGL, limitado ao uso de OpenGL para composição de texturas, vem sendo usado noMac OS X, em uma tecnologia chamadaQuartz Extreme, desde oMac OS X v10.2. OQuartz 2D Extreme é um avanço desta característica e é mais diretamente comparável ao Xgl. Como o Xgl, oQuartz 2D Extreme traz a aceleração OpenGL para todas as operações de desenho 2D (não apenas composição desktop) e vem com oMac OS X v10.4, mas é desabilitado por padrão exigindo uma declaração formal para entrar em funcionamento. A pioneira neste tipo de tecnologia parece ter sido aSun Microsystems, quando iniciou suas pesquisas em umainterface gráfica de um projeto chamadoProject Looking Glass.[3]
AMicrosoft anunciou a sua intenção de prover tecnologia similar baseada emDirectX, em lugar de OpenGL, chamadaDesktop Window Manager (DWM), como parte do seu próximosistema operacionalWindows Vista.
A tecnologia Xgl requer bom desempenho OpenGL, além de muitas características exclusivas de placas 3D mais recentes, as quais só podem ser acessadas usando módulos denúcleo binários (proprietários) para placas ATI e NVidia (tecnicamente, osdrivers usam um componente binário em conjunto comcódigo aberto). Existem algunsdrivers de código aberto para essas placas que permitem somente gráficos 2D, ou algumas funcionalidades OpenGL 3D primitivas. Atualmente, esta é uma situação que gera um impasse, porque os fabricantes de placas gráficas declararam não ter qualquer intenção de patrocinaremdrivers completamente de código aberto.