Издаване на Wayland-Protocols 1.46

Обявен е пакет wayland-protocols 1.46, който съдържа набор от протоколи и разширения, допълващи основния протокол Wayland и предоставящи необходимите възможности за изграждане на композитни сървъри и потребителски среди.

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

  • Добавен е експериментален протокол xx-input-method, който позволява на приложенията да реализират методи за въвеждане на текст за композитни сървъри и да формират въведения текст, което може да се използва, например, за създаване на виртуални клавиатури и IME-слоеве (Input Method Editor) за обработка на входа.
  • Добавен е експериментален протокол xx-text-input, който позволява на композитните сървъри да реализират методи за въвеждане и да изпращат текст в приложения. Протоколът стандартизира взаимодействието между композитния сървър и приложенията и позволява управление на подобни възможности като предаване на въведения текст, обработка на събития за промяна на фокуса на входа и отчитане на спецификата на полетата за въвеждане (език, маркиране на текст, тип съдържание).
  • Доработени са протоколите color-management-v1 и color-representation-v1, които предоставят възможности за управление на цвета, поддръжка на HDR и определяне на цветното представяне на Wayland повърхността.

Всички протоколи последователно преминават през етапите на разработка, тестване и стабилизиране. След завършването на етапа на разработка (категория „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 — дава възможност за идентифициране на клиенти, използващи sandbox-изолация. Клиентът може да регистрира ново свързване към композитен сървър на базата на 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 — позволява на приложението моментално да премества курсора в зададена позиция.

Протоколи, разработвани в клон "experimental":

  • xx-session-management — възстановяване на състоянието на прозорците за прекратени сесии (например, след аварийно завършване на композитен мениджър).

Протоколите, разработвани в клона «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