A Cuarzo OS projekt fejlesztői bemutatták a Louvre könyvtár első kiadását, amely komponenseket biztosít a Wayland protokollon alapuló kompozit szerverek fejlesztéséhez. A kód C++ nyelven íródott, és GPLv3 licenc alatt terjesztik.
A könyvtár vállalja az összes alacsony szintű művelet végrehajtását, beleértve a grafikus pufferek kezelését, a bemeneti alrendszerekkel és a grafikus API-kkal való interakciót Linux alatt, valamint kész megvalósításokat kínál a Wayland protokoll különböző kiterjesztéseire. A kész komponensek lehetővé teszik, hogy hónapok munkáját spóroljunk meg a tipikus alacsony szintű elemek létrehozásán, és azonnal működő kompozit keretet kapjunk. a szerver, amelyet az igényeinkhez igazíthatunk, és kiegészíthetjük a szükséges bővített funkciókkal. Szükség esetén a fejlesztő felülírhatja a könyvtár által biztosított módszereket a protokollok, bemeneti események és a rajzolás kezelésére.
A fejlesztők állítása szerint a könyvtár jelentősen felülmúlja a versenytárs megoldások teljesítményét. Például a Louvre segítségével írt louvre-weston-clone kompozit szerver példa, amely a Weston projekt funkcionalitását reprodukálja, a tesztek során a Westonhoz és Swayhez képest kevesebb CPU- és GPU-erőforrást használ, valamint állandóan magas FPS-t biztosít, még összetett forgatókönyvek esetén is.

A Louvre főbb jellemzői:
- Több GPU-val működő konfigurációk támogatása (Multi-GPU).
- Több felhasználói munkamenet támogatása (Multi-Session, TTY váltás).
- Rajzolási rendszer, amely támogatja a 2D-rajzolás alapú módszerek (LPainter), jelenetek (Scene) és nézetek (Views) használatát.
- Saját shaderek és OpenGL ES 2.0 programok használatának lehetősége.
- Automatikus újrarajzolás, amely szükség szerint történik (csak a tartalom változásakor).
- Többszálú működés, amely lehetővé teszi a magas FPS elérését a v-szinkron bekapcsolásával, még bonyolult forgatókönyvek rajzolása esetén is (az egy szálú megvalósítások problémákat tapasztalnak a magas FPS fenntartásában, mivel a keretek elmaradnak a feldolgozás alatt, ami a képkibocsátási impulzus (vblank) szinkronizálására való várakozás okozta késlekedés miatt történik).
- Egyszeres, kettős és háromszoros pufferezés támogatása.
- A vágott szövegek vágólapjának megvalósítása.
- Wayland és bővítmények támogatása:
- XDG Shell — felületek létrehozásának és kezelésének interfésze ablakokként, amely lehetővé teszi azok mozgatását a képernyőn, minimalizálását, maximalizálását, átméretezését stb.
- XDG Decoration — az ablakdekorációk rajzolása a szerveren.
- Presentation Time — video megjelenítést biztosít.
- Linux DMA-Buf — több grafikus kártya megosztása a dma-buf technológián keresztül.
- Támogatja az Intel (i915), AMD (amdgpu) és NVIDIA (zárt meghajtó vagy nouveau) illesztőprogramokkal rendelkező környezetek működését.
- A még meg nem valósult funkciók (tervek listáján):
- Touch Events — érintőképernyős események kezelése.
- Pointer Gestures — érintőképernyős vezérlés.
- Viewporter — lehetővé teszi a kliens számára, hogy a felület méretezését és a szélek levágását a szerveren végezze.
- LView objektumok transzformációja.
- XWayland — X11 alkalmazások indítása.


Forrás: opennet.ru
