Powrót do strony głównej

Wayland 1.25: aktualizacje protokołu i protokoły

Wayland 1.25 skupia się na stabilności, dokumentacji i rozszerzeniach dla wprowadzania tekstu i koloru. Dodano `wl_surface.get_release`, `dispatch_pending_single()` i protokoły xx-input-method, xx-text-input. Ulepszono obsługę HDR i IME.

Wydany Wayland 1.25 z IME i zarządzaniem kolorami
Advertisement 728x90

# 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.

Google AdInline article slot

Dodano nowe elementy:

  • Atrybut frozen dla 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 do wl_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 do wl_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.

Google AdInline article slot

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.).

Google AdInline article slot

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_release wiąż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

Advertisement 728x90

Czytaj dalej