La pakaĵo wayland-protocols 1.49 estis publikigita, enhavante aron da protokoloj kaj etendaĵoj kiuj kompletigas la kernan Wayland-protokolon kaj provizas la kapablojn necesajn por konstrui kompozitajn servilojn kaj uzantmediojn.
En la nova versio:
- Добавлен экспериментальный протокол xx-fractional-scale, предоставляющий возможность масштабирования системы логических координат, значения в которой задаются целыми числами, для повышения точности позиционирования и увеличения разрешения логических координат до отдельных пикселей. Подобная возможность решает проблему с ограниченным разрешением системы логических координат, недостаточным для позиционирования на уровне отдельных пикселей, необходимого для полноценной реализации дробного масштабирования.
- В протокол «linux-dmabuf» добавлена поддержка работы на системах с несколькими GPU. На подобных системах клиент может согласовать с композитными сервером какой из GPU следует использовать.
- В протокол color-management-v1 добавлена поддержка метаданных изображений в формате BT.2100 для применения в композитном сервере специфичных обработчиков, позволяющих корректно отображать HDR-контент, созданный для Windows.
Ĉiuj protokoloj sinsekve trairas evoluajn, testajn kaj stabiligajn fazojn. Post kompletigado de la disvolva etapo (la "malstabila" kategorio), la protokolo estas metita en la "sceniga" branĉo kaj oficiale inkluzivita en la aro de wayland-protokoloj, kaj post kiam testado estas finita, ĝi estas movita al la stabila kategorio. Protokoloj de la kategorio "scenigo" jam povas esti uzataj en kunmetitaj serviloj kaj klientoj kie rilata funkcieco estas postulata. Male al la "malstabila" kategorio, en "scenigo" estas malpermesite fari ŝanĝojn kiuj malobservas kongruon, sed se problemoj kaj mankoj estas identigitaj dum testado, anstataŭigo kun nova signifa versio de la protokolo aŭ alia Wayland-etendo ne estas ekskludita.
Por akceli la liveron de protokoloj al programistoj kaj instigi fruan efektivigon de protokoloj en ekzistantaj projektoj, komencante de la antaŭa eldono, "eksperimenta" fazo estis aldonita, kiu permesas ŝanĝojn kiuj rompas kongruecon kaj la aldonon de "krudaj" protokoloj kiuj povas esti iom post iom alportitaj al la taŭga nivelo. Dum protokolo bezonas formi subtenan teamon kaj ricevi certan nombron da agnoskoj (ACK) de recenzistoj por eniri la enscenfazon, ĝi nur bezonas ricevi neniujn obĵetojn (NACK) dum la dusemajna revizioperiodo por eniri la eksperimentan fazon.
La aro de wayland-protokoloj nuntempe inkluzivas la sekvajn stabilajn protokolojn, kiuj estas malantaŭen kongruaj:
- "vidportisto" - permesas al la kliento elfari skaladon kaj surfacrandan tondado agojn sur la servilflanko.
- "prezento-tempo" - provizas videan ekranon.
- "xdg-shell" estas interfaco por krei kaj interagi kun surfacoj kiel fenestroj, permesante al vi movi ilin ĉirkaŭ la ekrano, kolapsi, vastigi, regrandigi ktp.
- "linux-dmabuf" - provizas kapablojn por krei wl_buffers bazitajn sur DMA-BUF.
- "tablojdo" - organizo de enigo de grafikaj tabuletoj.
Protokoloj testitaj en la "sceniga" branĉo:
- drm-lease - provizas la rimedojn necesajn por generi stereon bildon kun malsamaj bufroj por la maldekstraj kaj dekstraj okuloj dum eligo al virtualrealaj kapaŭskultiloj.
- "ext-session-lock" - difinas rimedon por ŝlosi seancon, ekzemple, dum la ekranŝparo funkcias aŭ la aŭtentikiga dialogo estas montrata.
- "single-pixel-buffer" - permesas al vi krei unu-pikselan bufrojn, kiuj inkluzivas kvar 32-bitajn RGBA-valorojn.
- «xdg-activation» — позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое). - content-type - Permesas al klientoj pasi informojn pri la enhavo estanta montrita al la kunmetaĵservilo, kiu povas esti uzita por optimumigi enhav-konscian konduton, kiel ekzemple fiksi specifajn DRM-ecojn kiel ekzemple "enhavspeco". Subteno por la sekvaj enhavtipoj estas deklarita: neniu (neniu informo pri la datumtipo), foto (eligo de ciferecaj fotoj, postulanta minimuma prilaborado), video (vidbendo aŭ animacio, pli preciza sinkronigo estas postulata por eviti balbutadon) kaj ludo (lanĉo). ludoj, eligo de minimuma prokrasto).
- ext-idle-notify - Permesas al kunmetitaj serviloj sendi sciigojn al klientoj pri uzanta neaktiveco, kiu povas esti uzata por aktivigi pliajn energiŝparreĝimojn post certa tempo de neaktiveco.
- tearing-control - permesas al vi malŝalti vertikalan sinkronigon (VSync) kun vertikala malseketiga pulso en plenekranaj aplikoj, uzata por protekti kontraŭ ŝirado en eligo. En plurmediaj aplikoj, artefaktoj pro ŝirado estas nedezirinda efiko, sed en videoludadprogramoj, artefaktoj povas esti toleritaj se trakti ilin kaŭzas kromajn prokrastojn.
- ext-foreign-toplevel-list - Prenas informojn pri surfacoj metitaj ĉe la supra nivelo, kiuj ebligas al vi organizi fenestrojn por albordiĝi al alia enhavo, ekzemple, por kunligi viajn proprajn panelojn kaj fenestroŝaltilojn.
- security-context - permesas vin identigi klientojn per sablokesto-izolado. Kliento povas registri novan ligon al Wayland-bazita kunmetita servilo kaj alkroĉi sekurecan kuntekston al ĝi, post kiu la kunmetaĵmanaĝero limigos la kapablojn haveblajn al la establita ligo bazita sur la precizigita sekureckunteksto.
- kursoro-formo estas alternativa maniero personecigi la aspekton de la kursoro, surbaze de pasado de serio da kursoraj bildoj anstataŭ alklaki al surfaco (wl_surface).
- "ext-transient-seat" - dizajnita por krei provizorajn sendependajn sesiojn (sidlokojn) dizajnitajn por uzo kun virtualaj enigaparatoj. Ekzemple, kiam vi efektivigas la kapablon konekti al fora labortablo, la protokolo permesas krei apartan sesion por ĉiu uzanto per virtuala klavaro kaj muso.
- "xdg-toplevel-drag" - etendas la "drag & drop" mekanismon kun la kapablo alkroĉi supernivelajn fenestrojn al trena operacio, kiu povas esti uzata, ekzemple, por organizi trenadon de ilbretoj aŭ foliumiloj per la muso. La nova protokolo permesas krei forpreneblajn partojn de fenestro, kiuj, trenite de tiu fenestro, fariĝas novaj fenestroj kaj povas esti movitaj supre de la ekzistanta fenestro antaŭ ol esti alfiksitaj.
- "xdg-dialog" - permesas vin asigni dialog-specifajn atributojn al supraj surfacoj, ekzemple, vi povas krei modalaj dialogoj kiuj blokas uzantinteragon kun la resto de la interfaco.
- "linux-drm-syncobj" - provizas ilojn por eksplicita bufro-sinkronigado uzante DRM (Direct Rendering Manager) sinkronigaj objektoj. Oni supozas, ke en la kunteksto de sinkronigo dum bildigo al bufro, la proponita protokolo plibonigos laboron kun ŝoforoj bazitaj sur la grafikaj APIoj de Vulkan kaj OpenGL (la efektivigo baziĝas sur pritraktiloj en la ŝoforoj). La nova protokolo ebligas certigi ke tiroperacio al bufro estas kompleta antaŭ ol la kunmetadmanaĝero montras tiun bufron.
- alfa-modifilo, kiu permesas al klientoj ŝanĝi la nivelon de travidebleco de la surfaco kaj translokigi operaciojn por certigi travideblecon al la flanko de la kunmetita servilo, kiu siavice povas redirekti ĉi tiujn operaciojn al KMS.
- xdg-toplevel-icon - ligu la ikonon al la supra nivela fenestro.
- ext-image-capture-source kaj ext-image-copy-capture - organizo de kaptado de enhavo montrita sur la ekrano.
- xdg-system-bell - permesas vin eligi sisteman signalon, kiu povas esti uzata, ekzemple, kiel averto en fina emulilo. La formo de la signala eligo estas determinita laŭ la bontrovo de la kunmetita administranto ĝi povas esti ne nur sono, sed vida respondo.
- fifo - efektivigas FIFO-mekanismon por prilabori la enhavan ĝisdatigvicon de la montrita surfaco. En la praktika flanko, la protokolo permesas al eligo uzi atendado de la kompletiĝo de vertikala skanado (vblank) anstataŭ uzi alvokojn ĉiufoje kiam ĝi pretas montri novan kadron, kiu solvas la problemon de alta GPU-ŝarĝo kiam vi uzas VSync.
- commit-timing - permesas vin ligi tempolimon al la surfaca enhavo (la kunmetita servilo devus reflekti la enhavŝanĝon se eble post la specifita tempo, sed ne pli frue).
- ext-data-control - Permesas privilegiitajn klientojn kontroli datumtraktadon, ekzemple efektivigi tondujo-manaĝerojn.
- ext-workspace - efektivigas la koncepton de virtualaj labortabloj kaj ofertas eventojn kun informoj pri la statuso de labortabloj, same kiel kapablojn por aktivigi kaj malaktivigi labortablojn. La protokolo povas esti uzata por krei panelojn kaj indikilojn, kiuj montras liston de disponeblaj virtualaj labortabloj kaj ebligas al vi ŝanĝi inter ili.
- koloradministrado - provizas kapablojn por koloradministrado kaj subtenon por plilongigita dinamika gamo de brilo (HDR, Alta Dinamika Intervalo). Kun la aldonita etendaĵo, klientaplikoj povas akiri informojn pri la kolor-rilataj propraĵoj de produktaĵaparatoj kaj transdoni datumojn pri la kolor-rilataj propraĵoj de sia propra enhavo al la kunmetita servilo. En kunmetita servilo, ĉi tiu informo povas esti uzata por aŭtomate administri koloron kiam oni montras enhavon sur malsamaj eligaj aparatoj, ekzemple por konverti enhavon en prezenton taŭgan por montri en HDR-ekranoj. ICC-profiloj estas uzataj por priskribi kolorspacojn.
- xdg-toplevel-tag — Permesas al Wayland-klientoj aldoni etikedojn al ĉefnivelaj surfacoj, kiujn la komponiga servilo povas uzi por identigi fenestrojn post kiam la aplikaĵo estas rekomencita (ekzemple, aplikaĵo povus agordi etikedojn "ĉefa fenestro" kaj "agordoj" por la ĉefa fenestro kaj la agorda fenestro). Tia identigo utilas por restarigi la pozicion, grandecon kaj ecojn de fenestroj post rekomenco, kaj por difini specialajn regulojn por individuaj specoj de fenestroj.
- kolor-reprezentado — difinas la kolorreprezentadon de la Wayland-surfaco. Wayland-klientoj povas pasi metadatenojn necesajn por difini travideblecon, kolormodelon, subspecimenigon kaj kvantigintervalon, kaj uzatajn dum konvertado de bufro kun datumoj respondantaj al la YCbCr-kolormodelo al RGB-reprezentado.
- ekst-fono-efiko - aplikas efektojn al duontravideblaj partoj de Wayland-surfaco, kiel ekzemple fonmalklareco.
- montrilo-varpo - Permesas al aplikaĵo tuj movi la montrilon al specifa pozicio.
- xdg-session-management — возможности для восстановления состояния и позиции окон прерванного сеанса, например, после аварийного завершения композитного сервера или приложения.
Protokoloj disvolvataj en la eksperimenta branĉo:
- xx-session-management - restarigas la staton de fenestroj por interrompitaj sesioj (ekzemple, post kraŝo de la kompozicia administrilo).
- xx-input-method — permesas al aplikaĵoj efektivigi tekstajn enigajn metodojn por komponitaj serviloj kaj generi enigitan tekston, kiu povas esti uzata, ekzemple, por krei virtualajn klavarojn kaj IME (Input Method Editor) tavolojn por eniga prilaborado.
- xx-text-input — permesas al komponitaj serviloj efektivigi enigmetodojn kaj sendi tekston al aplikaĵoj. La protokolo normigas interagojn inter komponitaj serviloj kaj aplikaĵoj kaj ebligas kontrolon super funkcioj kiel ekzemple sendi enigtekston, trakti enigfokusajn eventojn, kaj konsideri specifajn enigkampojn (lingvo, teksta elekto, enhavtipo).
- xx-cutouts — для получения информации о вырезах на экране (например, области под фронтальную камеру на экране смартфона).
- xx-zones — для создания и добавления окон верхнего уровня в «зоны» — окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- xx-keyboard-filter — для перехвата клиентом выбранных событий клавиатуры, изменения событий ввода или блокирования передачи определённых событий в Wayland-поверхность, на которой установлен фокус ввода.
Protokoloj evoluantaj en la "malstabila" branĉo:
- "fullscreen-shell" - kontrolo de laboro en plenekrana reĝimo.
- "input-method" - prilaboraj enigmetodoj.
- "idle-inhibit" - blokante la lanĉon de la ekranŝparo (ekranŝparo).
- "input-timestamps" - tempomarkoj por enigokazaĵoj.
- "keyboard-shortcuts-inhibit" - kontrolas la aldonon de klavarkovoj kaj klavklavoj.
- "linux-explicit-syncization" estas specifa por Linux mekanismo por sinkronigi bufrojn rilate al la surfaco.
- "montriloj-gestoj" - kontrolo de tuŝekranoj.
- “pointer constraints” - montraj limigoj (blokado).
- "primara elekto" - analoge kun X11, ĝi certigas la funkciadon de la primara tondujo (primara elekto), el kiu informoj kutime estas enmetitaj per la meza musbutono.
- “relative pointer events” - relativaj montraj eventoj.
- “text-input” - organizo de teksta enigo.
- "xdg-foreign" estas interfaco por interagado kun la surfacoj de la "najbara" kliento.
- "xdg-decoration" - farante fenestroornamadojn ĉe la servilo.
- "xdg-output" - pliaj informoj pri la videoproduktaĵo (uzata por frakcia skalo).
- "xwayland-keyboard-grab" - kaptas enigaĵon en XWayland-aplikoj.
fonto: opennet.ru
