Издание Wayland-Protocols 1.49

Представено издание пакета wayland-protocols 1.49, съдържащо набор от протоколи и разширения, допълващи основния протокол Wayland и предоставящи функции, необходими за изграждането на композитни сървъри и потребителски среди.

В новата версия:

  • Добавен е експериментален протокол xx-fractional-scale, който предоставя възможност за мащабиране на системата на логични координати, където стойностите се задават с цели числа, за повишаване на точността на позиционирането и увеличаване на резолюцията на логичните координати до отделни пиксели. Тази възможност решава проблема с ограничената резолюция на системата на логични координати, недостатъчна за позициониране на ниво отделни пиксели, необходимо за пълната реализация на дробното мащабиране.
  • В протокола «linux-dmabuf» е добавена поддръжка за работа на системи с множество GPU. На подобни системи клиентът може да се съгласи с композитните сървър кой от GPU следва да се използва.
  • В протокола color-management-v1 е добавена поддръжка за метаданни на изображения в формат BT.2100 за прилагане в композитен сървър специфични обработчици, позволяващи правилното показване на HDR съдържание, създадено за Windows.

Всички протоколи последователно преминават през фази на разработка, тестване и стабилизация. След завършване на етапа на разработка (категория «unstable») протоколът се поставя в клона «staging» и официално се включва в набора wayland-protocols, а след приключване на тестването преминава в категория стабилни. Протоколите от категория «staging» вече могат да се използват в композитни сървъри и клиенти, където е необходима свързаната с тях функционалност. За разлика от категория «unstable», в «staging» е забранено въвеждането на промени, които нарушават съвместимостта, но при откритие на проблеми и недоизработки по време на тестването, не се изключва замяната с нова съществена версия на протокола или друго разширение на Wayland.

За да се ускори предаването на протоколите на разработчиците и стимулирането на ранната им реализация в съществуващите проекти, от предходния релиз беше добавена допълнителна фаза „experimental“, в която се допуска извършването на промени, нарушаващи съвместимостта, и добавянето на „сурови“ протоколи, които могат постепенно да бъдат приведени до необходимото ниво. Ако за попадането на протокола в фаза „staging“ е необходимо да се формира екип за поддръжка и да се получат определен брой потвърждения (ACK) от участниците в рецензирането, то за влизането в „experimental“ е достатъчно да няма възражения (NACK) в продължение на двуседмичен период на рецензиране.

В момента в набора wayland-protocols влизат следните стабилни протоколи, които осигуряват обратна съвместимост:

  • viewporter» — позволява на клиента да извършва операции по мащабиране и изрязване на ръбовете на повърхността от страната на клиента. сървър.
  • «presentation-time» — обеспечивает отображение видео.
  • «xdg-shell» — интерфейс за създаване и взаимодействие с повърхности като с прозорци, позволяващ тяхното преместване по екрана, свиване, разширяване, промяна на размера и т.н.
  • «linux-dmabuf» — предоставя възможности за създаване на wl_buffer-и, базирани на DMA-BUF.
  • «tablet» — организация на входа от графични таблети.

Протоколы, тестируемые в ветке «staging»:

  • drm-lease — предоставя ресурси, необходими за формиране на стереоизображение с различни буфери за лявото и дясното око при изход на шлемове за виртуална реалност.
  • «ext-session-lock» — определя средствата за блокиране на сесията, например, по време на работа на екранната защита или изход на диалог за удостоверяване.
  • «single-pixel-buffer» — позволява създаване на однопикселови буфери, включващи четири 32-битови стойности RGBA.
  • «xdg-activation» — позволява предаване на фокуса между различни повърхности на първо ниво (например, чрез
    xdg-activation едно приложение може да прехвърли фокуса на друго).
  • content-type — позволява на клиентите да предават композитната сървъра информация за показваното съдържание, която може да се използва за оптимизация на поведението в зависимост от съдържанието, например, задаване на специфични DRM свойства, като «content type». Заявена е поддръжка на следните типове съдържание: none (няма информация за типа данни), photo (изход на цифрови снимки, изисква минимална обработка), video (видео или анимация, изискваща по-точна синхронизация, за да се изключат забавяния) и game (стартиране на игри, изискващо изход с минимална латентност).
  • ext-idle-notify — предоставя възможност на композитните сървъри да предават на клиентите уведомления за неактивност на потребителя, което може да се използва за активиране на допълнителни режими на пестене на енергия след определен период на неактивност.
  • tearing-control — позволява деактивиране на вертикалната синхронизация (VSync) в приложения на цял екран с кадров импулс за гасене, използван за защита от появата на разкъсвания при изход (tearing). В мултимедийните приложения появата на артефакти поради разкъсвания е нежелан ефект, но в игровите програми е възможно да се понесат артефакти, ако справянето с тях води до допълнителни забавяния.
  • ext-foreign-toplevel-list — получаване на информация за повърхности, разположени на най-високо ниво (toplevel), които позволяват организиране на закрепване на прозорци над друго съдържание, например, за свързване на собствени панели и превключватели на прозорци.
  • security-context — позволява на идентификация на клиенти, използващи изолация в sandox. Клиентът може да регистрира ново свързване към композитен сървър на базата на Wayland и да прикрепи към него контекст за безопасност, след което в съответствие с посочения контекст за безопасност композитният мениджър ще ограничи възможностите, достъпни за установеното свързване.
  • cursor-shape — алтернативен начин за настройка на вида на курсора, основан на предаване на серия от изображения на курсора вместо свързване с повърхност (wl_surface).
  • «ext-transient-seat» — предназначен за създаване на временни независими сесии (seat), проектирани да се използват с виртуални входни устройства. Например, при реализирането на възможността за свързване към отдалечен работен плот, протоколът позволява да се създаде отделна сесия с виртуална клавиатура и мишка за всеки потребител.
  • «xdg-toplevel-drag» — разширява механизма «drag & drop» с възможността за прикрепяне на прозорци от най-високо ниво към операцията по преместване, което може да бъде използвано, например, за организиране на плъзгането с мишката на панели с инструменти или раздели в браузъра. Новият протокол позволява създаването на отделими части от прозореца, които при плъзгане от този прозорец стават нови прозорци и могат да се преместят над съществуващ прозорец преди повторно прикрепяне.
  • «xdg-dialog» — позволява определяне на повърхностите от най-високо ниво с признаци, специфични за диалогови прозорци, например, могат да се създават модални диалози, които блокират взаимодействието на потребителя с останалата част от интерфейса.
  • «linux-drm-syncobj» — предоставя инструменти за явна синхронизация на буферите с помощта на обекти за синхронизация DRM (Direct Rendering Manager). Предполага се, че в контекста на синхронизацията при рисуването в буфер, предложеното протокол ще подобри работата с драйвери на базата на графичните API Vulkan и OpenGL (реализацията е базирана на обработчиците в драйверите). Новият протокол дава възможност да се уверите, че операцията по рисуването в буфер е завършена, преди композитният мениджър да покаже този буфер.
  • alpha-modifier, който позволява на клиентите да променят нивото на прозрачност на повърхността и да прехвърлят операциите по осигуряване на прозрачността на страната на композитния сървър, който от своя страна може да пренасочва тези операции към KMS.
  • xdg-toplevel-icon — свързване на икона с прозорец на най-високо ниво.
  • ext-image-capture-source и ext-image-copy-capture — организиране на улавяне на съдържанието, показвано на екрана.
  • xdg-system-bell — позволява излъчването на системен сигнал, който може да се използва, например, като предупреждение в емулацията на терминали. Формата на излъчване на сигнала се определя по усмотрение на композитния мениджър, това може да бъде не само звук, но и визуален отговор.
  • fifo — реализира механизма FIFO (първи влязъл — първи излязъл) за обработка на опашка за обновяване на съдържанието на показваната повърхност. Практически, протоколът позволява при излъчване да се използва изчакване за завършване на вертикалното разгръщане (vblank), вместо да се използват callback-викания при всяка готовност за показване на нов кадър, което решава проблема с високата натовареност на GPU при използване на VSync.
  • commit-timing — позволява свързването на времево ограничение към съдържанието на повърхността (композитният сървър трябва да покаже промяната в съдържанието възможно най-скоро в определеното време, но не по-рано).
  • ext-data-control — позволява на привилегированите клиенти да контролират обработката на данни, например, за реализиране на мениджъри на клипборд.
  • ext-workspace — реализира концепцията виртуални работни площи и предлага събития с информация за състоянието на работните площи, както и възможности за активиране и деактивиране на работни площи. Протоколът може да се използва за създаване на панели и индикатори, показващи списъка с налични виртуални работни площи и позволяващи превключване между тях.
  • color-management — предоставя възможности за управление на цвета и поддръжка на разширен динамичен диапазон на яркост (HDR, High Dynamic Range). С добавеното разширение клиентските приложения могат да получават информация за свързаните с цветопредаването свойства на изходните устройства и да предават на композитния сървър данни за свойствата на цветопредаването на собственото съдържание. В композитния сървър тази информация може да се използва за автоматично управление на цвета при показване на съдържание на различни изходни устройства, например, за преобразуване на съдържанието в формати, подходящи за показване на HDR-монитори. За описание на цветовите пространства се използват ICC профили.
  • xdg-toplevel-tag — позволява на Wayland-клиентите да прикрепят тагове към повърхности на най-високо ниво, които композитният сървър може да използва за идентифициране на прозорците след рестартиране на приложението (например, приложението може да зададе тагове "основен прозорец" и "настройки" за основния прозорец и прозореца с настройки). Тази идентификация е полезна за възстановяване на позицията, размера и свойствата на прозорците след рестартиране, а също така и за определяне на специални правила за отделни видове прозорци.
  • color-representation — определение цветового представления на Wayland-повърхността. Wayland-клиентите могат да предават метаданни, необходими за определяне на прозрачността, цветната модел, субдискретизацията и диапазона на квантоване, и се прилагат при преобразуването на буфера с данни, съответстващи на цветния модел YCbCr, в представяне RGB.
  • ext-background-effect — прилагане на ефекти към полупрозрачните части на Wayland-повърхността, като размазване на фона.
  • pointer-warp — позволява на приложението незабавно да премести указателя в указаната позиция.
  • xdg-session-management — възможности за възстановяване на състоянието и позицията на прозорците на прекъснат сеанс, например, след аварийно приключване на композитен сървър или приложение.

Протоколите, разработвани в клон «experimental»:

  • xx-session-management — възстановяване на състоянието на прозорците за прекъснати сесии (например, след аварийно приключване на композитния мениджър).
  • xx-input-method — дава възможност на приложенията да реализират методи за въвеждане на текст за композитни сървъри и да генерират въведения текст, което може да се използва, например, за създаване на виртуални клавиатури и IME-прослойки (Input Method Editor) за обработка на въвеждането.
  • xx-text-input — позволява на композитните сървъри да реализират методи за въвеждане и да изпращат текст до приложения. Протоколът стандартизира взаимодействието между композитния сървър и приложенията и позволява управление на функции като предаване на въвеждания текст, обработка на събития за смяна на фокуса на въвеждане и отчитане на специфики на полетата за въвеждане (език, маркиране на текст, тип съдържание).
  • xx-cutouts — за получаване на информация за изрези на екрана (например, области под предната камера на екрана на смартфона).
  • xx-zones — за създаване и добавяне на прозорци от горно ниво в „зони“ — среди със собствено пространство от координати. Протоколът позволява организиране на логично разположение на прозорците, при което всеки прозорец е разположен спрямо друг прозорец.
  • xx-keyboard-filter — за прихващане от клиента на избрани събития от клавиатурата, промяна на събитията за въвеждане или блокиране на предаване на определени събития в Wayland повърхността, на която е установлен фокусът за въвеждане.

Протоколите, разработвани в клона «unstable»:

  • «fullscreen-shell» — управление на работата в режим на цял екран.
  • «input-method» — обработка на методите за въвеждане.
  • «idle-inhibit» — предотвратяване на стартиране на екранната заставка.
  • «input-timestamps» — времеви печати за входни събития.
  • «keyboard-shortcuts-inhibit» — контрол на привързаността на клавишни комбинации и бързи клавиши.
  • «linux-explicit-synchronization» — специфичен за Linux механизъм за синхронизация на буферите, свързан с повърхността.
  • «pointer-gestures» — управление на сензорни екрани.
  • «pointer constraints» — ограничения на указателите (блокиране).
  • «primary-selection» — подобно на X11 осигурява работа с основния буфер за обмен (primary selection), чийто вариант обикновено се вмъква с средния бутон на мишката.
  • «relative pointer events» — относителни събития на указатели.
  • «text-input» — организация на въвеждане на текст.
  • «xdg-foreign» — интерфейс за взаимодействие с повърхности на «съседен» клиент.
  • «xdg-decoration» — отразяване на декорации на прозорците от страна на сървъра.
  • «xdg-output» — допълнителна информация за видеовыхода (използва се за дробно мащабиране).
  • «xwayland-keyboard-grab» — захващане на входа в приложенията XWayland.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster