Представлен выпуск пакета wayland-protocols 1.49, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
Në versionin e ri:
- Добавлен экспериментальный протокол xx-fractional-scale, предоставляющий возможность масштабирования системы логических координат, значения в которой задаются целыми числами, для повышения точности позиционирования и увеличения разрешения логических координат до отдельных пикселей. Подобная возможность решает проблему с ограниченным разрешением системы логических координат, недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования.
- В протокол «linux-dmabuf» добавлена поддержка работы на системах с несколькими GPU. На подобных системах клиент может согласовать с композитными сервером какой из GPU следует использовать.
- В протокол color-management-v1 добавлена поддержка метаданных изображений в формате BT.2100 для применения в композитном сервере специфичных обработчиков, позволяющих корректно отображать HDR-контент, созданный для Windows.
Все протоколы последовательно проходят фазы разработки, тестирования и стабилизации. После завершения стадии разработки (категория «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» — позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое). - 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 — позволяет привязать ограничение времени к содержимому поверхности (композитный server должен отобразить изменение контента по возможности через указанное время, но не раньше).
- 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). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о свойствах цветопередачи собственного контента. В композитном сервере данная информация может использоваться для автоматического управления цветом при отображении содержимого на различных устройствах вывода, например, для преобразования контента в предоставление, подходящее для отображения на HDR-мониторах. Для описания цветовых пространств используются профили ICC.
- xdg-toplevel-tag — позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения (например, приложение может выставить теги «main window» и «settings» для основного окна и окна с настройками). Подобная идентификация полезна для восстановления позиции, размера и свойств окон после перезапуска, а также для определения особых правил для отдельных видов окон.
- 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-поверхность, на которой установлен фокус ввода.
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
