Utvecklarna av Cuarzo OS har presenterat det första utgivningen av biblioteken Louvre, som erbjuder komponenter för utveckling av kompositservrar baserade pÄ Wayland-protokollet. Koden Àr skriven i C++ och distribueras under GPLv3-licensen.
Biblioteket tar hand om alla lÄgnivÄoperationer, inklusive hantering av grafiska buffertar, interaktion med inmatnings- och grafiska API:er i Linux, och erbjuder Àven fÀrdiga implementationer av olika Wayland-protokollutvidgningar. NÀrvaro av fÀrdiga komponenter gör det möjligt att inte spendera mÄnader pÄ att skapa typiska lÄgnivÄelement, utan att fÄ en fÀrdig och fungerande struktur för kompositen. servern, som kan anpassas till egna behov och kompletteras med nödvÀndig utökad funktionalitet. Vid behov kan utvecklaren ÄsidosÀtta metoderna som biblioteket tillhandahÄller för att bearbeta protokoll, inmatningsevent och rendering.
Enligt utvecklarna övertrÀffar biblioteket konkurrerande lösningar vad gÀller prestanda. Till exempel, ett exempel pÄ en kompositserver som skapats med hjÀlp av Louvre, louvre-weston-clone, som Äterskapar funktionaliteten hos projektet Weston, förbrukar i tester mindre CPU- och GPU-resurser jÀmfört med Weston och Sway, samt möjliggör stabilt hög FPS Àven i komplexa scenarier.

Huvudsakliga funktioner hos Louvre:
- Stöd för att arbeta i konfigurationer med flera GPU:er (Multi-GPU).
- Stöd för flera anvÀndarsessioner (Multi-Session, TTY-vÀxling).
- Rendreringssystem med stöd för metoder baserade pÄ 2D-rendering (LPainter), scener (Scene) och visningar (Views).
- Möjlighet att anvÀnda egna shaders och program för OpenGL ES 2.0.
- Automatisk omritning, som utförs vid behov (endast vid Àndring av omrÄdet).
- FlertrÄdad drift, som möjliggör hög FPS med v-sync aktiverat Àven vid rendering av komplexa scenarier (enkla implementeringar har problem med att upprÀtthÄlla hög FPS pÄ grund av ramfÀllor som inte hinner bearbetas pÄ grund av fördröjningar som orsakas av vÀntan pÄ synkronisering med bildskÀrmens avstÀngning (vblank).
- Stöd för enkel, dubbel och trippel buffring.
- Implementering av en klippbord för textdata.
- Stöd för Wayland och utvidgningar:
- XDG Shell â ett grĂ€nssnitt för skapande och interaktion med ytor som fönster, vilket gör det möjligt att flytta dem pĂ„ skĂ€rmen, minimera, maximera, Ă€ndra storlek osv.
- XDG Decoration â rendering av fönsterdekorationer pĂ„ serversidan.
- Presentation Time â möjliggör visning av video.
- Linux DMA-Buf â delning av flera grafikkort med hjĂ€lp av dma-buf-teknik.
- Stöd för drift i miljöer baserade pÄ drivrutiner frÄn Intel (i915), AMD (amdgpu) och NVIDIA (proprietÀr drivrutin eller nouveau).
- Ănnu orealiserade funktioner (i planlistan):
- Touch Events â hantering av hĂ€ndelser frĂ„n pekskĂ€rmar.
- Pointer Gestures â styrning frĂ„n pekskĂ€rmar.
- Viewporter â gör det möjligt för kunden att utföra Ă„tgĂ€rder för att zooma och beskĂ€ra kanterna av ytan pĂ„ serversidan.
- Transformation av LView-objekt.
- XWayland â körning av X11-applikationer.


KĂ€lla: opennet.ru
