Vývojáři projektu Cuarzo OS představili první vydání knihovny Louvre, která poskytuje komponenty pro vývoj kompozitních serverů založených na protokolu Wayland. Kód je napsán v C++ a distribuován pod licencí GPLv3.
Knihovna se stará o všechny nízkoúrovňové operace včetně správy grafických bufferů, interakce se vstupními subsystémy a grafickými API v Linuxu a nabízí také hotové implementace různých rozšíření protokolu Wayland. Přítomnost hotových komponent umožňuje nestrávit měsíce práce na vytváření standardních nízkoúrovňových prvků, ale okamžitě získat hotový a funkční kompozitní serverový framework, který lze přizpůsobit vašim potřebám a doplnit o potřebné rozšířená funkčnost. V případě potřeby může vývojář přepsat metody poskytované knihovnou pro zpracování protokolů, vstupních událostí a vykreslovacích událostí.
Podle vývojářů je knihovna ve výkonu znatelně lepší než konkurenční řešení. Například příklad kompozitního serveru, louvre-weston-clone, napsaný pomocí Louvre, který reprodukuje funkčnost projektu Weston, ve srovnání s Weston a Sway, spotřebovává méně CPU a GPU zdrojů v testech a také umožňuje k dosažení trvale vysokých FPS, a to i ve složitých scénářích.
Klíčové vlastnosti Louvre:
- Podpora konfigurací s více GPU (Multi-GPU).
- Podporuje více uživatelských relací (Multi-Session, přepínání TTY).
- Vykreslovací systém, který podporuje metody založené na 2D vykreslování (LPainter), scénách a pohledech.
- Možnost používat vlastní shadery a programy OpenGL ES 2.0.
- Automatické překreslování prováděné podle potřeby (pouze při změně obsahu oblasti).
- Vícevláknová práce, která umožňuje dosáhnout vysokých FPS s povolenou v-sync i při vykreslování složitých scénářů (jednovláknové implementace mají problémy s udržením vysokých FPS kvůli chybějícím snímkům, které nelze zpracovat kvůli zpožděním čekání na synchronizaci s pulzem zatemnění snímku (vblank).
- Podporuje jednoduché, dvojité a trojité ukládání do vyrovnávací paměti.
- Implementace schránky pro textová data.
- Podpora Wayland a rozšíření:
- XDG Shell je rozhraní pro vytváření a interakci s povrchy jako okna, které vám umožňuje přesouvat je po obrazovce, minimalizovat, rozšiřovat, měnit velikost atd.
- XDG Decoration - vykreslování dekorací oken na straně serveru.
- Čas prezentace – poskytuje zobrazení videa.
- Linux DMA-Buf - sdílení více grafických karet pomocí technologie dma-buf.
- Podporuje práci v prostředích založených na ovladačích Intel (i915), AMD (amdgpu) a NVIDIA (proprietární ovladač nebo nouveau).
- Funkce ještě neimplementované (v seznamu plánů):
- Dotykové události – zpracování událostí na dotykové obrazovce.
- Gesta ukazatele – ovládání dotykové obrazovky.
- Viewporter – Umožňuje klientovi provádět na straně serveru škálování a ořezávání okrajů povrchu.
- Transformace objektů LView.
- XWayland - spouštění aplikací X11.
Zdroj: opennet.ru