Представлен выпуск пакета wayland-protocols 1.48, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
Në versionin e ri:
- В категорию «staging» добавлен протокол xdg-session-management, предоставляющий возможности для восстановления состояния и позиции окон прерванного сеанса в окружениях на основе протокола Wayland, например, после аварийного завершения композитного сервера или приложения.
- Расширены возможности протокола text-input, позволяющий композитным серверам реализовывать методы ввода и отправлять текст в приложения. Например, добавлен флаг no_emoji для ввода без Emoji, реализована поддержка дополнительных действий помимо вставки текста, добавлен флаг language для передачи информации об языке, добавлены запросы для показа и скрытия панели ввода, добавлен флаг preedit_hint для настройки стиля предварительного редактирования.
- Добавлен экспериментальный протокол xx-cutouts для получения информации о вырезах на экране (например, области под фронтальную камеру на экране смартфона).
- Добавлен экспериментальный протокол xx-zones для создания и добавления окон верхнего уровня в «зоны» — окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- Добавлен экспериментальный протокол xx-keyboard-filter для перехвата клиентом выбранных событий клавиатуры, изменения событий ввода или блокирования передачи определённых событий в Wayland-поверхность, на которой установлен фокус ввода.
Все протоколы последовательно проходят фазы разработки, тестирования и стабилизации. После завершения стадии разработки (категория «unstable») протокол помещается в ветку «staging» и официально включается в состав набора wayland-protocols, а после завершения тестирования перемещается в категорию стабильных. Протоколы из категории «staging» уже можно применять в композитных sistemet и клиентах, где требуется связанная с ними функциональность. В отличие от категории «unstable» в «staging» запрещено внесение изменений, нарушающих совместимость, но в случае выявление проблем и недоработок в ходе тестирования, не исключается замена новой значительной версией протокола или другим Wayland-расширением.
Për të përshpejtuar mbërritjen e protokolleve te zhvilluesit dhe për të inkurajuar zbatimin e hershëm të protokolleve në projektet ekzistuese, që nga edicioni i fundit, është shtuar një fazë "experimental", në të cilën lejohet të bëhen ndryshime që cënojnë përputhshmërinë dhe shtimi i protokolleve "të papërpunuara", të cilat mund të rafinohen gradualisht. Nëse për të kaluar protokollin në fazën "staging" kërkohet formimi i një ekipi mbështetjeje dhe marrja e një numri të caktuar konfirmimesh (ACK) nga pjesëmarrësit në rishikim, për të kaluar në "experimental" mjafton që të mos ketë kundërshtime (NACK) gjatë një periudhe rishikimi prej dy javësh.
Aktualisht, seti i wayland-protocols përfshin protokollët e mëposhtëm të qëndrueshëm, të cilat ofrojnë përputhshmëri prapa:
- viewporter» — позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
- ‘presentation-time’ — siguron shfaqjen e videos.
- «xdg-shell» — një ndërfaqe për krijimin dhe ndërveprimin me sipërfaqet si dritare, duke lejuar qarkullimin e tyre në ekran, minimizimin, maksimizimin, rregullimin e madhësisë, etj.
- «linux-dmabuf» — ofron mundësi për krijimin e wl_buffer-ave mbi bazën e DMA-BUF.
- «tablet» — organizimi i hyrjeve nga tableta grafike.
Protokollet që testohen në degën «staging»:
- drm-lease — ofron burimet e nevojshme për formimin e përmbajtjes stereoskopike me buferat e ndryshëm për syrin e majtë dhe të djathtë kur shfaqet në helmetat e realitetit virtual.
- «ext-session-lock» — përcakton mjetet për bllokimin e seancës, për shembull, gjatë funksionimit të ruajtësit të ekranit ose shfaqjes së një dialogu autentikimi.
- «single-pixel-buffer» — lejon krijimin e buferave me një piksel, që përfshijnë katër vlera 32-bit RGBA.
- «xdg-activation» — lejon kalimin e fokusit midis sipërfaqeve të nivelit të parë (për shembull, me anë të xdg-activation, një aplikacion mund të kalojë fokusin në një tjetër).
- content-type — lejon klientët të dërgojnë kompozitit серверу informacioni për përmbajtjen e shfaqur, e cila mund të përdoret për optimizimin e sjelljes në përputhje me përmbajtjen, siç është caktimi i pronave specifike DRM, siç është "tipo i përmbajtjes". Është shpallur mbështetje për lloje të ndryshme përmbajtjeje: asnjë (pa informacion në lidhje me llojin e të dhënave), foto (shfaqja e fotografive digjitale, që kërkon përpunim minimal), video (video ose animacione, kërkohet sinkronizim më i saktë për të eliminuar ngadalësimet) dhe lojë (nisja e lojërave, kërkohet shfaqje me vonesë minimale).
- ext-idle-notify — i jep mundësinë serverëve kompozues të dërgojnë klientëve njoftime mbi pasivitetin e përdoruesit, që mund të përdoren për aktivizimin e modave të tjera të ruajtjes së energjisë pas një periudhe të caktuar pasiviteti.
- tearing-control — lejon çaktivizimin e sinkronizimit vertikal (VSync) në aplikacionet në modin e plotë, që përdoret për të parandaluar shfaqjen e përçarjeve gjatë shfaqjes (tearing). Në aplikacionet multimedia, shfaqja e artefakteve për shkak të përçarjeve është një efekt i padëshiruar, por në programet lojrave, shfaqja e artefakteve mund të tolerohet, nëse lufta ndaj tyre sjell vonesa të tjera.
- ext-foreign-toplevel-list — marrja e informacionit rreth sipërfaqeve të vendosura në nivelin më të lartë (toplevel), të cilat lejojnë organizimin e ngjitjes së dritareve mbi përmbajtje të tjera, siç është lidhja e paneleve dhe kaluesve të dritareve të vetë.
- security-context — lejon identifikimin e klientëve që përdorin izolimin sandbox. Klienti mund të regjistrojë një lidhje të re me një server kompozues të bazuar në Wayland dhe t'i bashkëngjisë një kontekst sigurie, pas së cilës, sipas kontekstit të dhënë të sigurisë, menaxheri kompozues do të kufizojë mundësitë në dispozicion për lidhjen e vendosur.
- cursor-shape — një mënyrë alternative për të përcaktuar pamjen e treguesit, e bazuar në dërgimin e një serie imazhesh të treguesit në vend të lidhjes me sipërfaqen (wl_surface).
- «ext-transient-seat» — është e dizajnuar për të krijuar seanca të përkohshme të pavarura (seat), të destinuara për t'u përdorur së bashku me pajisjet e virtualizuara të hyrjes. Për shembull, gjatë implementimit të mundësisë për t'u lidhur me një desktop të largët, protokolli lejon krijimin e një seance të veçantë për secilin përdorues me tastierën dhe miun virtual.
- "xdg-toplevel-drag" — zgjeron mekanizmin "drag & drop" me mundësinë e bashkimit të dritareve të nivelit të lartë me operacionin e lëvizjes, e cila mund të përdoret, për shembull, për organizimin e tërheqjes me miun të paneleve të mjeteve ose faqeve të shfletuesit. Protokolli i ri lejon krijimin e pjesëve të ndara të dritares, të cilat në procesin e tërheqjes nga kjo dritare bëhen dritare të reja dhe mund të lëvizin mbi dritaren ekzistuese para ribashkimit.
- "xdg-dialog" — lejon caktimin e karakteristikave specifike për dritaret e nivelit të lartë për dialogët, për shembull, mund të krijoni dialogë modalë, të cilët bllokojnë ndërveprimin e përdoruesit me pjesën tjetër të ndërfaqes.
- «linux-drm-syncobj» — предоставляет инструменты для явной синхронизации буферов при помощи объектов синхронизации DRM (Direct Rendering Manager). Предполагается, что в контексте синхронизации при отрисовке в буфер предложенный протокол позволит улучшить работу с драйверами на базе графических API Vulkan и OpenGL (реализация базируется на обработчиках в драйверах). Новый протокол даёт возможность убедиться, что операция отрисовки в буфер завершена до того, как композитный менеджер отобразит данный буфер.
- alpha-modifier, që u lejon klientëve të ndryshojnë nivelin e transparencës së sipërfaqeve dhe të transferojnë operacionet për sigurimin e transparencës në anën e serverit të kompozitit, i cili nga ana e tij mund të redirect këto operacione në KMS.
- xdg-toplevel-icon — lidhja e një ikone me një dritare të nivelit të lartë.
- ext-image-capture-source dhe ext-image-copy-capture — organizimi i kapjes së përmbajtjes që shfaqet në ekran.
- xdg-system-bell — lejon të jepet një sinjal sistemor, i cili mund të përdoret, për shembull, si një paralajmërim në emulatorët e terminaleve. Forma e paraqitjes së sinjalit është në vullnetin e menaxherit të kompozitit, kjo mund të jetë jo vetëm zë, por gjithashtu një reagim vizual.
- fifo — implementon një mekanizëm FIFO (i pari që vjen — i pari që shkon) për përpunimin e radhës së përmbajtjes që shfaqet. Nga një këndvështrim praktik, protokolli lejon që gjatë shfaqjes të përdoret pritja e përfundimit të skanimit vertikal (vblank) në vend të thirrjeve callback me çdo gatishmëri për të shfaqur kuadrin e ri, gjë që zgjidh problemin e ngarkesës së lartë në GPU gjatë përdorimit të VSync.
- commit-timing — lejon lidhjen e një kufizimi kohor me përmbajtjen e sipërfaqes (serveri i kompozitit duhet të shfaqë ndryshimin e përmbajtjes sa më shpejt të jetë e mundur brenda kohës së caktuar, por jo më herët).
- ext-data-control — lejon klientët me privilegje të menaxhojnë përpunimin e të dhënave, për shembull, për implementimin e menaxherëve të buferit të shkëmbimit.
- ext-workspace — implementon konceptin e skripteve virtuale dhe ofron ngjarje me informacion mbi gjendjen e ambienteve të punës, si dhe mundësi për aktivizimin dhe deaktivizimin e ambienteve të punës. Protokolli mund të përdoret për të krijuar panelet dhe treguesit, duke shfaqur një listë të ambienteve virtuale të punës të disponueshme dhe duke lejuar kalimin midis tyre.
- color-management — предоставляет возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о свойствах цветопередачи собственного контента. В композитном сервере kjo informacion mund të përdoret për menaxhimin automatik të ngjyrave gjatë paraqitjes së përmbajtjes në pajisje të ndryshme dalëse, për shembull, për të transformuar përmbajtjen në një format të përshtatshëm për shfaqje në monitorët HDR. Përshkrimet e hapësirave të ngjyrave përdorin profile ICC.
- xdg-toplevel-tag — позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения (например, приложение может выставить теги «main window» и «settings» для основного окна и окна с настройками). Подобная идентификация полезна для восстановления позиции, размера и свойств окон после перезапуска, а также для определения особых правил для отдельных видов окон.
- color-representation — определение цветового представления Wayland-поверхности. Wayland-клиенты могут передавать метаданные, необходимые для определения прозрачности, цветовой модели, субдискретизации и диапазона квантования, и применяемые при преобразовании буфера с данными, соответствующими цветовой модели YCbCr, в представление RGB.
- ext-background-effect — применение эффектов к полупрозрачным частям Wayland-поверхности, таких как размытие фона.
- pointer-warp — позволяет приложению мгновенно переместить указатель в указанную позицию.
Протоколы, разрабатываемые в ветке «experimental»:
- xx-session-management — восстановление состояния окон для прерванных сеансов (например, после аварийного завершения композитного менеджера).
- xx-input-method — даёт возможность приложениям реализовывать методы ввода текста для композитных serverësh и формировать введённый текст, что может применяться, например, для создания виртуальных клавиатур и IME-прослоек (Input Method Editor) для обработки ввода.
- xx-text-input — позволяет композитным серверам реализовывать методы ввода и отправлять текст в приложения. Протокол стандартизирует взаимодействие между композитным сервером и приложениями, и позволяет управлять такими возможностями, как передача вводимого текста, обработка событий об изменении фокуса ввода и учёт специфики полей ввода (язык, выделение текста, тип контента).
Protokollet që zhvillohen në degën «unstable»:
- «fullscreen-shell» — menaxhimi i funksionimit në modalitetin e ekranit të plotë.
- «input-method» — përpunimi i metodave të inputit.
- «idle-inhibit» — bllokimi i fillimit të ekranit ruajtës (screensaver).
- «input-timestamps» — vulat e kohës për ngjarjet e inputit.
- «keyboard-shortcuts-inhibit» — menaxhimi i bashkimit të kombinimeve të tastierës dhe shkurtoreve.
- «linux-explicit-synchronization» — mekanizmi i sinkronizimit të buferave specifik për Linux në lidhje me sipërfaqen.
- «pointer-gestures» — menaxhimi i nga ekranet prekje.
- «pointer constraints» — kufizimet e treguesve (bllokimi).
- «primary-selection» — në përputhje me X11, ofron funksionimin e buferit primar të kopjimit (primary selection), ku informacioni zakonisht futet me anë të dügës së mesme të mausit.
- «relative pointer events» — ngjarje relative të treguesve.
- «text-input» — organizimi i inputit të tekstit.
- «xdg-foreign» — ndërfaqja e ndërveprimit me sipërfaqet e klientit «fqinj».
- «xdg-decoration» — vizatimi i dekorimeve të dritareve në anën e serverit.
- «xdg-output» — informacione të tjera mbi dalje video (përdoret për shkallëzim të fractuar).
- «xwayland-keyboard-grab» — kapja e inputit në aplikacionet XWayland.
Burimi: opennet.ru
