Os desenvolvedores do proxecto Cuarzo OS presentaron a primeira versión da biblioteca Louvre, que proporciona compoñentes para o desenvolvemento de servidores compostos baseados no protocolo Wayland. O código está escrito en C++ e distribúese baixo a licenza GPLv3.
A biblioteca encárgase de todas as operacións de baixo nivel, incluíndo a xestión de búfers gráficos, a interacción cos subsistemas de entrada e as API de gráficos en Linux, e tamén ofrece implementacións preparadas de varias extensións do protocolo Wayland. A presenza de compoñentes preparados fai posible non gastar meses de traballo na creación de elementos estándar de baixo nivel, senón recibir inmediatamente un cadro de servidor composto listo e funcionante, que se pode adaptar ás túas necesidades e completar co necesario. funcionalidade estendida. Se é necesario, o programador pode anular os métodos proporcionados pola biblioteca para xestionar protocolos, eventos de entrada e eventos de renderización.
Segundo os desenvolvedores, a biblioteca é notablemente superior en rendemento ás solucións da competencia. Por exemplo, un exemplo dun servidor composto, louvre-weston-clone, escrito usando Louvre, que reproduce a funcionalidade do proxecto Weston, en comparación con Weston e Sway, consume menos recursos de CPU e GPU nas probas e tamén che permite para lograr un FPS constantemente alto, incluso en escenarios complexos.
Características principais do Louvre:
- Soporte para configuracións multi-GPU (Multi-GPU).
- Admite varias sesións de usuario (multi-sesión, cambio TTY).
- Un sistema de renderizado que admite métodos baseados na representación 2D (LPainter), escenas e vistas.
- Capacidade de usar os seus propios sombreadores e programas OpenGL ES 2.0.
- Realizouse o redeseño automático segundo sexa necesario (só cando cambie o contido da área).
- Traballo multiproceso, que lle permite acadar altos FPS coa sincronización v activada mesmo cando se procesan escenarios complexos (as implementacións de fío único teñen problemas para manter altos FPS debido a que faltan fotogramas que non se poden procesar debido aos atrasos que esperan a sincronización co pulso de supresión de cadros). (vblank).
- Admite buffer simple, dobre e triple.
- Implantación dun portapapeis para datos de texto.
- Compatibilidade con Wayland e extensións:
- XDG Shell é unha interface para crear e interactuar con superficies como fiestras, que permite movelas pola pantalla, minimizar, expandir, redimensionar, etc.
- Decoración XDG: renderizando decoracións de fiestras no lado do servidor.
- Tempo de presentación: ofrece visualización de vídeo.
- Linux DMA-Buf: compartición de varias tarxetas de vídeo mediante a tecnoloxía dma-buf.
- Admite o traballo en ambientes baseados en controladores Intel (i915), AMD (amdgpu) e NVIDIA (controlador propietario ou nouveau).
- Funcións aínda non implementadas (na lista de plans):
- Eventos táctiles: xestionar eventos da pantalla táctil.
- Xestos do punteiro: controis da pantalla táctil.
- Viewporter: permítelle ao cliente realizar a escala do servidor e o recorte dos bordos da superficie.
- Transformación de obxectos LView.
- XWayland: lanzamento de aplicacións X11.
Fonte: opennet.ru