De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

GLX ( inicialismo para "Open GL Extension to the X Window System") es una extensión del protocolo central del sistema X Window que proporciona una interfaz entre OpenGL y el sistema X Window , así como extensiones para el propio OpenGL. Permite que los programas que deseen utilizar OpenGL lo hagan dentro de una ventana proporcionada por el sistema X Window. GLX distingue dos "estados": estado indirecto y estado directo.

Historia [ editar ]

Silicon Graphics desarrolló GLX como parte de su esfuerzo por admitir OpenGL en el sistema X Window . En 1999 SGI lanzó GLX bajo una licencia de código abierto , [2] permitiendo que se incorpore en el código fuente XFree86 versión 4.0 en 2000. A partir de ahí, el código fue heredado por la versión bifurcada de X.Org Foundation del X Window System X11R6. 7.0. El 19 de septiembre de 2008, SGI creó una nueva licencia SGI FreeB, versión 2.0, que "ahora refleja la licencia gratuita X11 utilizada por X.Org" y "cumple con la definición ampliamente aceptada de 'libre' de la comunidad de software libre y de código abierto". [3] En 2009, la Free Software Foundation aprobó la SGI Free License B para ser unlicencia de software libre y GLX para ser un importante proyecto de gráficos de software libre . [4] [5] A partir de 2011, GLX alcanzó la versión 1.4.

La primera implementación interna de GLX API, llamada GLcore, [6] cargó una versión del renderizador de software de Mesa dentro del servidor X y renderizó los comandos OpenGL en una ventana o mapa de píxeles. Con el desarrollo de DRI , se agregó la capacidad de usar OpenGL acelerado por hardware a través de contextos directos (utilizado principalmente por videojuegos ). En 2006, la popularización del servidor Xgl X anidado y el administrador de ventanas de composición de Compiz llevaron al desarrollo de GLX indirecto acelerado ( AIGLX). AIGLX brinda aceleración de hardware a las aplicaciones GLX (contexto indirecto) al cargar el controlador DRI de Mesa dentro del servidor X. Este método permite compartir objetos GL entre clientes X utilizando contextos indirectos (todos están en el mismo espacio de direcciones en el servidor X) y también entre un cliente X y el administrador de ventanas de composición, acelerando así la composición. En 2008, el enlace en GLcore al renderizador de software Mesa se reescribió como un módulo de interfaz DRI, llamado swrast_dri.so , mejorando el acoplamiento de Mesa y el servidor X. También en el año 2008 se introdujo el nuevo DRI2 para reemplazar a DRI, y con él un nuevo modelo basado en la configuración del modo Kernel . En 2011, el Glamourcomenzó el proyecto, con el objetivo de agregar un controlador 2D X genérico acelerado por hardware basado en OpenGL. En 2013, Adam Jackson hizo una reescritura importante del código GLX para consolidar las diversas rutas desde Glamour, renderizado indirecto, ... a una ruta única a la biblioteca libGL de OpenGL. [7]

  • Controladores 2D dentro del servidor X

  • Renderizado indirecto sobre GLX, usando Utah GLX

  • Infraestructura de renderizado directo temprano

  • Finalmente, todos los accesos pasan por el Direct Rendering Manager.

  • En el kernel de Linux 3.12, los nodos de renderización se fusionaron y el KMS se separó. Wayland implementa el renderizado directo sobre EGL

Funciones [ editar ]

Demostración de GLX ( glxgears ) incluida con X11

GLX consta de tres partes:

  1. Una API que proporciona funciones OpenGL a una aplicación del sistema X Window.
  2. Una extensión del protocolo X, que permite al cliente (la aplicación OpenGL) enviar comandos de renderizado 3D al servidor X (el software responsable de la visualización). El software de cliente y servidor puede ejecutarse en diferentes computadoras.
  3. Una extensión del servidor X que recibe los comandos de renderizado del cliente y los pasa a la biblioteca OpenGL instalada.

Si el cliente y el servidor se ejecutan en la misma computadora y hay disponible una tarjeta gráfica 3D acelerada que usa un controlador adecuado, DRI puede omitir los dos componentes anteriores . En este caso, la aplicación cliente puede acceder directamente al hardware de video a través de varias capas de API.

Implementaciones [ editar ]

  • Mesa 3D : una biblioteca gratuita y de código abierto que implementa un par de API gráficas y también los controladores de dispositivo gratuitos y de código abierto disponibles : gráficos ; Como último recurso, Mesa 3D también ofrece renderizado de software alternativo .
  • Los controladores de dispositivos patentados para chips gráficos también incluyen una implementación de GLX.

Ver también [ editar ]

  • WGL : la interfaz de Microsoft Windows equivalente a OpenGL
  • CGL : la interfaz macOS equivalente a OpenGL
  • EGL : una interfaz multiplataforma similar entre OpenGL ES o VG y el sistema de ventanas de la plataforma nativa subyacente
  • GLUT - biblioteca de utilidades para programas OpenGL

Referencias [ editar ]

  1. oss-project-owner (2012). "Historial y versión más reciente de la licencia B de software libre de SGI" . Silicon Graphics International . Archivado desde el original el 20 de abril de 2017 . Consultado el 11 de abril de 2017 .
  2. ^ Jon Leech (2012). "Implementación de muestra de OpenGL" . Silicon Graphics International . Consultado el 11 de abril de 2017 .
  3. ^ "SGI abre aún más sus contribuciones OpenGL" . 2008-09-19. Archivado desde el original el 11 de febrero de 2012.
  4. Lee, Matt (19 de septiembre de 2008). "¡Gracias SGI, por liberar el escritorio 3D GNU / Linux!" . Fundación de Software Libre . Consultado el 11 de abril de 2017 .
  5. brett (13 de enero de 2009). "Los gráficos 3D son software 100% gratuito" . Fundación de Software Libre . Consultado el 11 de abril de 2017 .
  6. ^ "DRI - GLcore" . freedesktop.org . 2016-07-20 . Consultado el 11 de abril de 2017 .
  7. Jackson, Adam (4 de febrero de 2014). "Reescritura de GLX para reescribir X" . Linux.conf.au . Consultado el 11 de abril de 2017 .

Enlaces externos [ editar ]

  • Gráficos OpenGL® con X Window System®
  • SGI - Código fuente abierto / GLX en Wayback Machine (archivado el 8 de junio de 2009)
  • API de OpenGL actual, lenguaje de sombreado OpenGL y especificaciones y páginas de referencia de GLX