Los desarrolladores del proyecto Cuarzo OS han publicado la primera versión de la biblioteca Louvre, que proporciona componentes para desarrollar servidores compuestos basados en el protocolo Wayland. El código está escrito en C++ y se distribuye bajo la licencia GPLv3.
La biblioteca gestiona todas las operaciones de bajo nivel, incluyendo la gestión de búferes gráficos, la interacción con subsistemas de entrada y las API gráficas de Linux, y también ofrece implementaciones listas para usar de diversas extensiones del protocolo Wayland. La disponibilidad de componentes listos para usar elimina la necesidad de dedicar meses a crear elementos típicos de bajo nivel y permite contar con un marco compuesto listo para usar y funcional. servidor, que puede adaptarse a sus necesidades y complementarse con la funcionalidad extendida necesaria. Si es necesario, el desarrollador puede anular los métodos proporcionados por la biblioteca para gestionar protocolos, eventos de entrada y renderizado.
Según los desarrolladores, la biblioteca supera significativamente el rendimiento de las soluciones de la competencia. Por ejemplo, un servidor compuesto de muestra, louvre-weston-clone, desarrollado con Louvre y que replica la funcionalidad del proyecto Weston, consume menos recursos de CPU y GPU en las pruebas en comparación con Weston y Sway, y además permite un FPS consistentemente alto, incluso en escenarios complejos.

Características principales del Louvre:
- Soporte para trabajar en configuraciones con múltiples GPU (Multi-GPU).
- Soporte para múltiples sesiones de usuario (Multi-Sesión, conmutación TTY).
- Un sistema de renderizado que admite métodos basados en renderizado 2D (LPainter), escena y vista.
- Capacidad de utilizar sus propios shaders y programas OpenGL ES 2.0.
- Redibujado automático realizado según sea necesario (solo cuando cambia el contenido del área).
- El funcionamiento de múltiples subprocesos permite altos FPS con v-sync habilitado, incluso al renderizar escenarios complejos (las implementaciones de un solo subproceso tienen problemas para mantener altos FPS debido a la pérdida de cuadros que no se pueden procesar debido a demoras en la espera de la sincronización con el pulso de borrado de cuadros (vblank).
- Admite almacenamiento en búfer simple, doble y triple.
- Implementación de un portapapeles para datos de texto.
- Wayland y soporte de extensiones:
- XDG Shell es una interfaz para crear e interactuar con superficies como ventanas, permitiéndole moverlas por la pantalla, minimizarlas, maximizarlas, cambiar su tamaño y más.
- Decoración XDG: representación de decoraciones de ventanas en el lado del servidor.
- Tiempo de presentación: garantiza la visualización del vídeo.
- Linux DMA-Buf: compartir varias tarjetas de vídeo mediante la tecnología dma-buf.
- Soporte para trabajar en entornos basados en controladores Intel (i915), AMD (amdgpu) y NVIDIA (controlador propietario o nouveau).
- Funciones aún no implementadas (en la lista de planes):
- Eventos táctiles: manejo de eventos de la pantalla táctil.
- Gestos del puntero: control desde pantallas táctiles.
- Viewporter: permite al cliente realizar acciones de recorte y escalamiento de la superficie del lado del servidor.
- Transformación de objetos LView.
- XWayland — lanzamiento de aplicaciones X11.


Fuente: opennet.ru
