Опубликован выпуск пакета wayland-protocols 1.46, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
Jaunajā versijā:
- Добавлен экспериментальный протокол xx-input-method, позволяющий приложениям реализовывать методы ввода текста для композитных серверов и формировать введённый текст, что может применяться, например, для создания виртуальных клавиатур и IME-прослоек (Input Method Editor) для обработки ввода.
- Добавлен экспериментальный протокол xx-text-input, позволяющий композитным серверам реализовывать методы ввода и отправлять текст в приложения. Протокол стандартизирует взаимодействие между композитным сервером и приложениями, и позволяет управлять такими возможностями, как передача вводимого текста, обработка событий об изменении фокуса ввода и учёт специфики полей ввода (язык, выделение текста, тип контента).
- Доработаны протоколы color-management-v1 и color-representation-v1, предоставляющие возможности для управления цветом, поддержки HDR и определения цветового представления Wayland-поверхности.
Visi protokoli secīgi pāriet attīstības, testēšanas un stabilizācijas fāzēs. Pabeidzot attīstības posmu (kategorija „unstable”), protokols tiek pārcelts uz „staging” filiāli un oficiāli tiek iekļauts wayland-protocols kopumā, pēc tam, kad testēšana ir pabeigta, tas tiek pārvietots uz stabilo kategoriju. Protokolus no „staging” kategorijas jau var izmantot kompozīto serveru un klientu izstrādē, kur ir nepieciešama attiecīgā funkcionalitāte. Atšķirībā no „unstable” kategorijas, „staging” fāzē nav atļautas izmaiņas, kas pārkāpj saderību, taču, ja testēšanas procesā tiek konstatēti problēmas un nepilnības, nav izslēgta esoša būtiska protokola versijas vai cita Wayland-paplašinājuma maiņa.
Для ускорения доведения протоколов до разработчиков и стимулирования ранней реализации протоколов в существующих проектах, начиная с позапрошлого выпуска дополнительно была добавлена фаза «experimental», в которой допускается внесение изменений, нарушающих совместимость, и добавление «сырых» протоколов, которые можно постепенно доводить до должного уровня. Если для попадания протокола в фазу «staging» требуется сформировать команду поддержки и получить определённое число подтверждений (ACK) от участников рецензирования, то для попадания в «experimental» достаточно отсутствия возражений (NACK) в течение двухнедельного периода рецензирования.
В настоящее время в состав набора wayland-protocols входят следующие стабильные протоколы, в которых обеспечивается обратная совместимость:
- «viewporter» — ļauj klientam veikt darbības par mērogošanu un malas apgriešanu virsmas pusē servera.
- «presentation-time» — nodrošina video attēlošanu.
- «xdg-shell» — интерфейс создания и взаимодействия с поверхностями как с окнами, позволяющий передвигать их по экрану, сворачивать, разворачивать, изменять размер и т.д.
- «linux-dmabuf» — предоставляет возможности для создания wl_buffer-ов на базе DMA-BUF.
- «tablet» — ievade no grafiskajiem planšetdatoriem.
Protokoli, kas tiek testēti «staging» atzarā:
- drm-lease — nodrošina resursus, kas nepieciešami stereoskāras attēla veidošanai ar dažādiem buferiem kreisajam un labajam acs attēlam virtuālās realitātes brillēm.
- «ext-session-lock» — nosaka sesiju bloķēšanas līdzekļus, piemēram, ekrāna aizsargprogrammas laikā vai autentifikācijas dialoga izvadē.
- «single-pixel-buffer» — ļauj izveidot vienas pikseļa buferus, kas sastāv no četriem 32-bitu RGBA vērtībām.
- «xdg-activation» — ļauj pārnest fokusu starp dažādām pirmā līmeņa virsmām (piemēram, ar xdg-activation viena lietojumprogramma var pārsūtīt fokusu uz citu).
- content-type — позволяет клиентам передать композитному серверу сведения об отображаемом содержимом, которые могут использоваться для оптимизации поведения с учётом содержимого, например, выставлении специфичных DRM-свойств, таких как «content type». Заявлена поддержка следующих типов контента: none (нет сведений о типе данных), photo (вывод цифровых фото, требующий минимальной обработки), video (видео или анимация, требуется более точная синхронизация, чтобы исключить подтормаживания) и game (запуск игр, требуется вывод с минимальной задержкой).
- ext-idle-notify — ļauj kompozītu serveriem nosūtīt klientiem paziņojumus par lietotāja neaktivitāti, ko var izmantot, lai aktivizētu papildu enerģijas taupīšanas režīmus pēc noteikta neaktivitātes laika.
- tearing-control — ļauj atslēgt vertikālo sinhronizāciju (VSync) pilnekrāna lietojumprogrammās ar kadru iznīcināšanas impulsu, kas tiek izmantots, lai novērstu asarošanu attēlā. Multimediālos lietojumos asarošanas artefaktu parādīšanās ir nevēlams efekts, bet spēļu programmās šo artefaktu klātbūtne ir pieņemama, ja to novēršana noved pie papildu aiztures.
- ext-foreign-toplevel-list — iegūst informāciju par virsotnēm, kas izvietotas augstākajā līmenī (toplevel), kas ļauj organizēt logu piesaisti virs cita satura, piemēram, savienojot savas paneļus un logu slēdzējus.
- security-context — ļauj identificēt klientus, kas izmanto sand-box izolāciju. Klients var reģistrēt jaunu savienojumu ar kompozītu serveri, kas balstās uz Wayland, un pievienot tam drošības kontekstu, pēc kura, pamatojoties uz norādīto drošības kontekstu, kompozītu menedžeris ierobežos iespējas, kas pieejamas iestatītajam savienojumam.
- cursor-shape — alternatīvs veids, kā pielāgot kursora izskatu, balstoties uz kursora attēlu sērijas pārsūtīšanu, nevis piesaistot to virsotnei (wl_surface).
- «ext-transient-seat» — предназначен для создания временных независимых сеансов (seat), рассчитанных на использование вместе с виртуальными устройствами ввода. Например, при реализации возможности подключения к удалённому рабочему столу протокол позволяет создать для каждого пользователя отдельный сеанс с виртуальными клавиатурой и мышью.
- «xdg-toplevel-drag» — paplašina «drag & drop» mehānismu ar iespēju pievienot augstākā līmeņa logus pārvietošanas operācijai, ko var izmantot, piemēram, lai organizētu rīkjoslu vai pārlūkprogrammas cilņu pārvilkšanu ar peles palīdzību. Jaunais protokols ļauj izveidot atvienojamas loga daļas, kas, pārvilkta no šī loga, kļūst par jauniem logiem un var pārvietoties virs esošā loga, pirms tiek atkārtoti pievienotas.
- «xdg-dialog» — ļauj piešķirt augstākā līmeņa virsmām dialogu logiem specifiskus parametrus, piemēram, var izveidot modālos dialogus, kas bloķē lietotāja mijiedarbību ar pārējo interfeisu.
- «linux-drm-syncobj» — предоставляет инструменты для явной синхронизации буферов при помощи объектов синхронизации DRM (Direct Rendering Manager). Предполагается, что в контексте синхронизации при отрисовке в буфер предложенный протокол позволит улучшить работу с драйверами на базе графических API Vulkan и OpenGL (реализация базируется на обработчиках в драйверах). Новый протокол даёт возможность убедиться, что операция отрисовки в буфер завершена до того, как композитный менеджер отобразит данный буфер.
- alpha-modifier, kas ļauj klientiem mainīt virsmas caurspīdīguma līmeni un pārnest caurspīdīguma nodrošināšanas operācijas uz kompozīcijas servera pusi, kas var pāradresēt šīs operācijas KMS.
- xdg-toplevel-icon — ikonas piesaiste augstākā līmeņa logam.
- ext-image-capture-source un ext-image-copy-capture — satura uztveršana, kas tiek attēlota ekrānā.
- xdg-system-bell — ļauj izvadīt sistēmas signālu, ko var izmantot, piemēram, kā brīdinājumu termināla emulatorā. Signāla iznākuma forma tiek noteikta kompozīcijas menedžera ieskatos, tas var būt ne tikai skaņa, bet arī vizuāla atbilde.
- fifo — īsteno FIFO mehānismu (pirmais ieradās — pirmais aizgāja) attēlojamās virsmas saturu atjaunošanas rindu apstrādei. Praktiski šis protokols ļauj izvadē izmantot vertikālo sinhronizāciju (vblank) gaidīšanu, kas risina problēmu ar augstu slodzi uz GPU, izmantojot VSync, vietā, kurā callback izsaukumi tiek izmantoti katras jaunā kadra gatavības laikā.
- commit-timing — ļauj piešķirt laika ierobežojumu virsmas saturam (kompozīcijas serverim jāattēlo izmaiņas saturā, cik drīz vien iespējams, noteiktā laikā, bet ne ātrāk).
- ext-data-control — ļauj privileģētiem klientiem pārvaldīt datu apstrādi, piemēram, starpniekbuferu pārvaldītāju īstenošanai.
- ext-workspace — īsteno koncepciju uz virtuālām darbvirsmām un piedāvā notikumus ar informāciju par darba virsmu stāvokli, kā arī iespējas aktivizēt un deaktīvēt darba virsmas. Protokols var tikt izmantots, lai izveidotu paneļus un indikatorus, kas parāda pieejamo virtuālo darba virsmu sarakstu un ļauj starp tām pārslēgties.
- color-management — предоставляет возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о свойствах цветопередачи собственного контента. В композитном сервере данная информация может использоваться для автоматического управления цветом при отображении содержимого на различных устройствах вывода, например, для преобразования контента в предоставление, подходящее для отображения на HDR-мониторах. Для описания цветовых пространств используются профили ICC.
- xdg-toplevel-tag — позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения (например, приложение может выставить теги «main window» и «settings» для основного окна и окна с настройками). Подобная идентификация полезна для восстановления позиции, размера и свойств окон после перезапуска, а также для определения особых правил для отдельных видов окон.
- color-representation — определение цветового представления Wayland-поверхности. Wayland-клиенты могут передавать метаданные, необходимые для определения прозрачности, цветовой модели, субдискретизации и диапазона квантования, и применяемые при преобразовании буфера с данными, соответствующими цветовой модели YCbCr, в представление RGB.
- ext-background-effect — применение эффектов к полупрозрачным частям Wayland-поверхности, таких как размытие фона.
- pointer-warp — позволяет приложению мгновенно переместить указатель в указанную позицию.
Протоколы, разрабатываемые в ветке «experimental»:
- xx-session-management — восстановление состояния окон для прерванных сеансов (например, после аварийного завершения композитного менеджера).
Protokoli, kas tiek izstrādāti «unstable» zarā:
- «fullscreen-shell» — pilnekrāna režīma vadība.
- «input-method» — ievades metožu apstrāde.
- «idle-inhibit» — ekrāna saudzētāja (screensaver) palaišanas bloķēšana.
- «input-timestamps» — ievades notikumu un laika zīmes.
- «keyboard-shortcuts-inhibit» — kontroles taustiņu kombināciju un īsceļu piesaistes.
- «linux-explicit-synchronization» — Linux specifisks buferu sinhronizācijas mehānisms, kas saistīts ar virsmu.
- «pointer-gestures» — kontrole no skārienekrāniem.
- «pointer constraints» — rādītāju ierobežojumi (bloķēšana).
- «primary-selection» — līdzīgi kā X11 nodrošina primārā starpbuferu (primary selection) darbību, informācijas ielīmēšana parasti notiek ar vidējo peles pogu.
- «relative pointer events» — relatīvie rādītāju notikumi.
- «text-input» — tekstu ievades organizācija.
- «xdg-foreign» — interfeiss mijiedarbībai ar «kaimiņu» klienta virsmām.
- «xdg-decoration» — logu noformējuma atveidošana servera pusē.
- «xdg-output» — papildu informācija par video izeju (izmanto, lai veiktu daļēju mērogošanu).
- «xwayland-keyboard-grab» — ievades uztveršana XWayland lietotnēs.
Avots: opennet.lv
