Vývojáři projektu Cuarzo OS představili první vydání knihovny Louvre, která poskytuje komponenty pro vývoj kompozitních serverů na základě protokolu Wayland. Kód je napsán v jazyce C++ a je distribuován pod licencí GPLv3.
Knihovna se postará o všechny nízkoúrovňové operace, včetně správy grafických bufferů, interakce se subsystémy vstupu a grafickými API v Linuxu, a také nabízí hotové implementace různých rozšíření protokolu Wayland. Přítomnost hotových komponent umožňuje ušetřit měsíce práce na vytváření typových nízkoúrovňových prvků a okamžitě získat připravený a funkční rámec pro kompozitní server, serverukterý lze přizpůsobit podle svých potřeb a doplnit potřebnou rozšířenou funkcionalitou. V případě potřeby může vývojář předefinovat metody poskytované knihovnou pro zpracování protokolů, vstupních událostí a vykreslování.
Podle tvrzení vývojářů knihovna výrazně překonává konkurenci v oblasti výkonu. Například příklad kompozitního serveru louvre-weston-clone, napsaný pomocí Louvre, reprodukuje funkčnost projektu Weston a ve srovnání s Weston a Sway spotřebovává při provedených testech méně zdrojů CPU a GPU a také umožňuje dosáhnout stabilně vysokého FPS, i v náročných scénářích.

Hlavní možnosti Louvre:
- Podpora provozu v konfiguracích s více GPU (Multi-GPU).
- Podpora více uživatelských sezení (Multi-Session, přepínání TTY).
- Systém vykreslování s podporou metod na základě 2D-renderingu (LPainter), scén (Scene) a pohledů (Views).
- Možnost použití vlastních shaderů a programů OpenGL ES 2.0.
- Automatické přeřízení prováděné podle potřeby (pouze při změně obsahu oblasti).
- Vícevláknová práce, která umožňuje dosáhnout vysokého FPS se zapnutým v-synchronizací i při vykreslování složitých scénářů (jednovláknové implementace mají problémy s udržením vysokého FPS kvůli ztrátě snímků, které nebyly zpracovány kvůli zpožděním při čekání na synchronizaci s rámečkovým výpočněním (vblank).
- Podpora jednovrstvé, dvouvrstvé a třívrstvé buffering.
- Implementace schránky pro textová data.
- Podpora Wayland a rozšíření:
- XDG Shell — rozhraní pro vytvoření a interakci s plochami jako s okny, což umožňuje je přesouvat po obrazovce, minimalizovat, maximalizovat, měnit velikost atd.
- XDG Decoration — vykreslování dekorací oken na serverové straně.
- Presentation Time — zajišťuje zobrazování videa.
- Linux DMA-Buf — sdílení více grafických karet pomocí technologie dma-buf.
- Podpora práce v prostředích založených na ovladačích Intel (i915), AMD (amdgpu) a NVIDIA (proprietární ovladač nebo nouveau).
- Dosud nerealizované možnosti (v seznamu plánů):
- Touch Events — zpracování událostí dotykových obrazovek.
- Pointer Gestures — ovládání z dotykových obrazovek.
- Viewporter — umožňuje klientovi provádět akce pro změnu měřítka a ořezávání okrajů plochy na serverové straně.
- Transformace objektů LView.
- XWayland — spuštění aplikací X11.


Zdroj: opennet.ru
