# Wayland 1.25: kluczowe aktualizacje protokołu i rozszerzenia
19 marca 2026 roku ukazała się wersja 1.25 protokołu Wayland — graficznego serwera zapewniającego komunikację międzyprocesową oraz biblioteki dla kompozytorów. Aktualizacja jest wstecznie kompatybilna z poprzednimi wydaniami 1.x na poziomie API i ABI. Główny nacisk położono na poprawianie błędów, ulepszanie dokumentacji i dodawanie precyzyjnych funkcji protokołu. Licencja MIT pozostaje bez zmian dla wszystkich komponentów.
Referencyjny kompozytor Weston nadal rozwija się niezależnie, dostarczając przykłady integracji Wayland z środowiskami desktopowymi i systemami wbudowanymi.
Zmiany w podstawowym protokole
Programiści przepisali dokumentację: format DocBook zastąpiono mdBook opartym na Markdown. Pełny opis dialektu Wayland XML, modelu aktualizacji treści oraz zarządzania kolorem.
Dodano nowe elementy:
- Atrybut
frozendla interfejsów z wieloma rodzicami — upraszcza obsługę stanów w złożonych hierarchiach. - Zapytanie
wl_surface.get_release— generuje powiadomienie o zwolnieniu bufora dołączonego za pomocąwl_surface.attach. W przeciwieństwie dowl_buffer.release, zdarzenie jest powiązane z konkretnym cyklem renderowania, co zwiększa przewidywalność w renderingu. - Funkcja
wl_display_dispatch_pending_single()— pobiera i przetwarza dokładnie jedno zdarzenie z kolejki, w przeciwieństwie dowl_display_dispatch_pending(), która opróżnia całą kolejkę.
Wyjście debugowania WAYLAND_DEBUG teraz obsługuje kolorowe podświetlenie dla lepszej czytelności logów.
Nowe i udoskonalone protokoły Wayland-Protocols
Od czasu wydania dodano rozszerzenia uzupełniające podstawowy protokół. Są one dostarczane oddzielnie i koncentrują się na wprowadzaniu tekstu oraz zarządzaniu kolorem.
Protokoły dla wprowadzania tekstu
- xx-input-method: Umożliwia aplikacjom generowanie tekstu dla kompozytorów. Stosowany w wirtualnych klawiaturach i IME (Input Method Editor). Klienci generują zdarzenia wejścia, serwer je agreguje.
- xx-text-input: Serwer wysyła tekst do aplikacji. Standaryzuje:
- Przesyłanie wprowadzanego tekstu.
- Obsługę fokusu wejścia.
- Uwzględnienie języka, zaznaczenia i typu pola (hasło, wieloliniowe itp.).
Zarządzanie kolorem
Protokoły color-management-v1 i color-representation-v1 zostały udoskonalone:
- Obsługa HDR.
- Określanie przestrzeni kolorów dla powierzchni Wayland.
- Integracja z buforami dla precyzyjnego przekazywania profili kolorów.
Te rozszerzenia ułatwiają implementację w kompozytorach takich jak Weston czy Mutter.
Praktyczne zastosowanie dla programistów
Aktualizacje są skierowane do programistów średniozaawansowanych i zaawansowanych pracujących z niestandardowymi kompozytorami. Nowy atrybut frozen jest przydatny w scenariuszach z dynamicznymi rodzicami, np. w menedżerach nakładek.
Funkcja wl_display_dispatch_pending_single() rozwiązuje problemy w architekturach event-driven, gdzie pełne przetwarzanie kolejki może blokować interfejs użytkownika.
Dla rozwoju IME protokoły xx-input-method i xx-text-input standaryzują interakcję, minimalizując specyficzne dla vendorów triki.
Przykład integracji wl_surface.get_release w kliencie (pseudokod):
wl_surface_add_listener(surface, &surface_listener, data);
static void surface_release(void *data, struct wl_surface *surface, uint32_t serial) {
// Bufer zwolniony po commit
buffer_pool_release(buffer);
}
To zapewnia terminowe czyszczenie zasobów bez warunków wyścigu.
Co ważne
- Dokumentacja w mdBook i pełne pokrycie XML/koloru przyspieszają wprowadzanie nowych programistów.
wl_surface.get_releasewiąże zdarzenia z klatką, zwiększając precyzję renderingu.wl_display_dispatch_pending_single()daje granularną kontrolę nad zdarzeniami.- Nowe protokoły wejścia standaryzują IME dla kompatybilności między kompozytorami.
- Udoskonalenia color-management wzmacniają obsługę HDR w ekosystemie Wayland.
— Editorial Team
Brak komentarzy.