GLX - GLX

GLX
Autor (es) original (is) SGI
lançamento inicial 1992
Versão estável
1.4 / 16 de dezembro de 2005
Escrito em C
Licença Licença SGI FreeB
Local na rede Internet dri .freedesktop .org / wiki / GLX /

GLX ( inicialismo para " Extensão Open GL para o Sistema X Window") é uma extensão do protocolo central do Sistema X Window que fornece uma interface entre o OpenGL e o Sistema X Window , bem como extensões para o próprio OpenGL. Ele permite que os programas que desejam usar o OpenGL o façam em uma janela fornecida pelo X Window System. O GLX distingue dois "estados": estado indireto e estado direto.

História

A Silicon Graphics desenvolveu o GLX como parte de seu esforço para oferecer suporte a OpenGL no X Window System . Em 1999, a SGI lançou o GLX sob uma licença de código aberto , permitindo que fosse incorporado ao código-fonte do XFree86 versão 4.0 em 2000. A partir daí, o código foi herdado pela versão bifurcada da X.Org Foundation do X Window System X11R6.7.0. Em 19 de setembro de 2008, a SGI criou uma nova licença SGI FreeB versão 2.0, que "agora reflete a licença X11 gratuita usada pelo X.Org" e "atende à definição amplamente aceita da comunidade de software livre e de código aberto de 'livre'". Em 2009, a Free Software Foundation endossou a SGI Free License B como uma licença de software livre e o GLX como um importante projeto gráfico de software livre . Em 2011, o GLX atingiu a versão 1.4.

A primeira implementação interna da API GLX, chamada GLcore, carregou uma versão do renderizador de software Mesa dentro do servidor X e renderizou os comandos OpenGL em uma janela ou pixmap. Com o desenvolvimento do DRI , foi adicionada a capacidade de usar OpenGL acelerado por hardware por meio de contextos diretos (usado principalmente em videogames ). Em 2006, a popularização do servidor Xgl X aninhado e do gerenciador de janelas de composição Compiz levou ao desenvolvimento do Accelerated Indirect GLX ( AIGLX ). O AIGLX traz aceleração de hardware para os aplicativos GLX (contexto indireto) carregando o driver Mesa DRI dentro do servidor X. Este método permite o compartilhamento de objetos GL entre clientes X usando contextos indiretos (todos eles estão no mesmo espaço de endereço no servidor X) e também entre um cliente X e o gerenciador de janela de composição, acelerando assim a composição. Em 2008, a ligação em GLcore ao renderizador de software Mesa foi reescrita como um módulo de interface DRI, chamado swrast_dri.so, melhorando o acoplamento de Mesa e o servidor X. Também no ano de 2008 o novo DRI2 foi introduzido para substituir o DRI, e com ele um novo modelo baseado na configuração do modo Kernel . Em 2011, o projeto Glamour começou, com o objetivo de adicionar um driver 2D X acelerado por hardware genérico baseado em OpenGL. Em 2013, Adam Jackson fez uma grande reescrita do código GLX para consolidar os diversos caminhos do Glamour, renderização indireta, ... para um caminho único para a biblioteca libGL do OpenGL.

Características

Demonstração GLX ( glxgears ) incluída com o X11

O GLX consiste em três partes:

  1. Uma API que fornece funções OpenGL para um aplicativo X Window System.
  2. Uma extensão do protocolo X, que permite ao cliente (o aplicativo OpenGL) enviar comandos de renderização 3D para o servidor X (o software responsável pela exibição). O software cliente e servidor podem ser executados em computadores diferentes.
  3. Uma extensão do servidor X que recebe os comandos de renderização do cliente e os passa para a biblioteca OpenGL instalada

Se o cliente e o servidor estiverem sendo executados no mesmo computador e uma placa de vídeo 3D acelerada usando um driver adequado estiver disponível, os dois primeiros componentes podem ser ignorados pelo DRI . Nesse caso, o aplicativo cliente pode acessar diretamente o hardware de vídeo por meio de várias camadas de API.

Implementações

Veja também

  • WGL - a interface equivalente do Microsoft Windows ao OpenGL
  • CGL - a interface macOS equivalente ao OpenGL
  • EGL - uma interface de plataforma cruzada semelhante entre OpenGL ES ou VG e o sistema de janela de plataforma nativa subjacente
  • GLUT - biblioteca de utilitários para programas OpenGL

Referências

links externos