De ontwikkelaars van het Cuarzo OS-project hebben de eerste release van de Louvre-bibliotheek gepresenteerd, die componenten biedt voor de ontwikkeling van composietservers op basis van het Wayland-protocol. De code is geschreven in C++ en wordt verspreid onder de GPLv3-licentie.
De bibliotheek neemt alle laag-niveau bewerkingen voor zijn rekening, waaronder het beheer van grafische buffers, interactie met invoersystemen en grafische API's in Linux, en biedt ook kant-en-klare implementaties van verschillende uitbreidingen van het Wayland-protocol. De beschikbaarheid van kant-en-klare componenten voorkomt dat ontwikkelaars maanden werk besteden aan het creëren van standaard laag-niveau elementen, zodat ze direct een werkend kader voor hun composietserver kunnen krijgen. de server, dat kan worden aangepast aan hun behoeften en kan worden uitgebreid met de benodigde functionaliteit. Indien nodig kan de ontwikkelaar de door de bibliotheek aangeboden methoden voor protocolverwerking, invoerevenementen en rendering opnieuw definiëren.
Volgens de ontwikkelaars presteert de bibliotheek aanzienlijk beter dan concurrerende oplossingen. Zo verbruikt een voorbeeld van een composietserver, louvre-weston-clone, die met behulp van Louvre is geschreven en de functionaliteit van het Weston-project nabootst, in vergelijking met Weston en Sway minder CPU- en GPU-resources, en biedt het een stabiel hoge FPS, zelfs in complexe scenario's.

Belangrijkste mogelijkheden van Louvre:
- Ondersteuning voor configuraties met meerdere GPU's (Multi-GPU).
- Ondersteuning voor meerdere gebruikerssessies (Multi-Session, TTY-wisseling).
- Renderingssysteem met ondersteuning voor methoden op basis van 2D-rendering (LPainter), scènes (Scene) en weergaven (Views).
- Mogelijkheid om eigen shaders en OpenGL ES 2.0 programma's te gebruiken.
- Automatische hertekening, uitgevoerd wanneer nodig (alleen bij wijziging van de inhoud van het gebied).
- Multithreading, wat een hoge FPS mogelijk maakt met ingeschakelde v-sync, zelfs bij het renderen van complexe scenario's (single-threaded implementaties hebben problemen om een hoge FPS te behouden vanwege gemiste frames door wachten op synchronisatie met de verticale synchronisatiepuls (vblank)).
- Ondersteuning voor enkelvoudige, dubbele en drievoudige buffering.
- Implementatie van een clipboard voor tekstgegevens.
- Ondersteuning voor Wayland en uitbreidingen:
- XDG Shell — een interface voor het creëren en interactie met oppervlakken als vensters, waarmee ze over het scherm kunnen worden verplaatst, geminimaliseerd, vergroot, van grootte veranderd, enzovoort.
- XDG Decoration — het tekenen van vensterdecoraties aan de serverzijde.
- Presentation Time — zorgt voor de weergave van video.
- Linux DMA-Buf — het delen van meerdere grafische kaarten via de dma-buf technologie.
- Ondersteuning voor werken in omgevingen die gebaseerd zijn op Intel (i915), AMD (amdgpu) en NVIDIA (propriëtaire driver of nouveau).
- Nog niet gerealiseerde mogelijkheden (in de plannenlijst):
- Touch Events — verwerking van aanraakschermgebeurtenissen.
- Pointer Gestures — bediening vanaf aanraakschermen.
- Viewporter — stelt de klant in staat om acties uit te voeren voor het schalen en bijsnijden van de randen van een oppervlak aan de serverzijde.
- Transformatie van LView-objecten.
- XWayland — starten van X11-toepassingen.


Bron: opennet.ru
