Հրապարակվել է 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» կատեգորիայում պրոտոկոլները կարող են օգտագործվել կոմպոզիտային սերվերներում և հաճախորդներում, որտեղ պահանջվում է դրանց հետ կապված գործառույթը։ Վերապահվածնելով փոխհամադրությունը, «staging» կատեգորիայի մեջ չի թույլատրվում փոփոխություններ, սակայն փորձարկումների ընթացքում խնդիրների և բացթողումների հայտնվելու դեպքում չի բացառվում նոր զգալի տարբերակի կամ այլ Wayland-հարկեցման փոխարինումը։
Պրոտոկոլները մշակողներին հասցնելու արագացման և առկա նախագծերում նախնական իրականացմամբ խրախուսելու նպատակով, սկսած անցյալ թողարկումից, լրացվել է «experiment» փուլը, որտեղ թույլատրելի է փոխում իրականացնել, որոնք խախտում են համատեղելիությունը և «կոպիտ» պրոտոկոլների ավելացում, որոնք կարելի է աստիճանաբար հասցնել անհրաժեշտ մակարդակին: Եթե պրոտոկոլի համար «staging» փուլը մտնելու համար անհրաժեշտ է ձևավորել աջակցող թիմի և ստանալ որոշակի քանակությամբ հաստատում (ACK) վերանայում մասնակիցներից, ապա «experimental» փուլ տանելու համար բավարար է հասկացության բացակայություն (NACK) երկու շաբաթվա վերանայման ընթացքում:
Այս պահին wayland-protocols խմբում ներառում են հետևյալ կայուն պրոտոկոլները, որտեղ ապահովվում է հետադարձ համատեղելիություն:
- «viewporter» — թույլ է տալիս հաճախորդին իրականացնել մակերեսի մասշտաբավորման և տրամագծերի կտրում գործողություններ սերվերի կողմից։
- «presentation-time» — ապահովում է վիդեո ցուցադրում:
- «xdg-shell» — պատուհանների նման մակերեսներ ստեղծելու և նրանց հետ փոխազդեցիկ լինելու ինտերֆեյս, որը թույլ է տալիս տանել դրանք էկրանին, նեղացնել, genişացնել, չափը փոխել և այլն:
- «linux-dmabuf» — առաջարկում է հնարավորություններ wl_buffer-ների ստեղծման համար DMA-BUF վրա:
- «tablet» — կազմակերպում է մուտքը գրաֆիկական պլանշետներից:
«Staging» ճյուղում փորձարկվող պրոտոկոլներ:
- drm-lease — տրամադրում է անհրաժեշտ ռեսուրսները 3D պատկերների ձևավորման համար տարբեր բուֆերներով ձախ և աջ աչքերի համար վիրտուալ իրադարձությունների ժամանակ:
- «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) տեղադրված մակերեսների մասին, որոնք թույլ են տալիս կազմակերպել պատուհանների ֆիքսումը այլ պարունակության վերևում, օրինակ, սեփական պանելների և պատուհանSwitcher-ների միացման համար:
- security-context — հնարավորություն է տալիս նույնականացնել հաճախորդներին, ովքեր օգտագործում են sandbox-են մեկուսացում: Հաճախորդը կարող է գրանցել նոր միացում կոմպոզիտային սերվերին հիմնված Wayland-ի վրա և կապել նրան անվտանգության համատեքստ, այնպես որ, ըստ նշված անվտանգության համատեքստի կոմպոզիտային կառավարիչը սահմանափակի հնարավորությունները, որոնք հասանելի են տեղադրված միացման:
- cursor-shape — կուրսորի տեսքը ձևավորելու այլընտրանքային միջոց, հիմնված կուրսորի պատկերների շարքի передачи վրա, այլ ոչ թե մակերեսին (wl_surface) կապելու:
- «ext-transient-seat» — նախատեսված է ժամանակավոր անկախ նստավայրերի (seat) ստեղծման համար, նախատեսված վիրտուալ մտքի սարքերի հետ միասին. օրինակ, արդյունաբերությունների կապվելու հնարավորություն: մերժման desktop պրոտոկոլը թույլ է տալիս յուրաքանչյուր օգտվողի համար առանձին նստավայր ստեղծել վիրտուալ ստեղնավերի և մկնիկի համար:
- «xdg-toplevel-drag» — ընդլայնում է «drag & drop» մեխանիզմը, մատակարարելով բարձր մակարդակի պատուհանների կցման հնարավորությունն շարժման գործողությանը, ինչի շնորհիվ կարելի է կազմակերպել տարբեր Ֆոնտերի կամ էջանշվող թերթիկների քաշում մկնիկով: Նոր պրոտոկոլը թույլ է տալիս ստեղծել առանձնացված պատուհանային մասեր, որոնք երբ քաշվում են այդ պատուհանից, դառնում են նոր պատուհաններ և կարող են տեղափոխվել գոյություն ունեցող պատուհանի վերևում՝ նորից կցելու համար.
- «xdg-dialog» — թույլ է տալիս վերին մակերեսներին նշանակել բարձր մակարդակի, առանձնահատուկ նշաններ, օրինակ՝ կարելի է ստեղծել մոդալային զրույցներ, որոնք արգելում են օգտախաղարկողի միջամտությունը ճիշտ ձևաչափի մյուս մասերի.
- «linux-drm-syncobj» — առաջարկում է DRM (Direct Rendering Manager) սինխրոնացման օբյեկտների միջոցով բուֆերների բացահայտ սինխրոնացման գործիքներ: Ըստ կանխատեսման, այս սինխրոնացման շրջանակներում նկարագրումները բուֆերում բարելավելու համար առաջարկվող պրոտոկոլը թույլ կտա բարելավված աշխատանք կատարել Vulkan և OpenGL գրաֆիկական API-ների վրա (իրականացման անընդհատ համահունչ է драйվերների մշակման): Նոր պրոտոկոլը հնարավորություն է տալիս համոզվել, որ նկարելու գործողությունն ավարտված է, մինչև կոմպոզիտոր մենեջերը այս բուֆերը ցույց կտա:
- Alpha-modifier, որը թույլ է տալիս հաճախորդներին փոխել մակերեսի թափանցիկության մակարդակը եւ իրականացնել թափանցիկության ապահովման գործողությունները կոմպոզիտիկ սերվերի կողմից, որը կարող է վերաֆորմացնել այդ գործողությունները KMS-ի:
- xdg-toplevel-icon — մակերեսի բարձր մակարդակի պատկերակը կցելը.
- ext-image-capture-source եւ ext-image-copy-capture — կազմակերպել էկրանին արտադրվող պարունակության շնորհաթողումը.
- xdg-system-bell — թույլ է տալիս արտադրել համակարգային ազդանշան, որը կարող է օգտագործվել, օրինակ, որպես նախազգուշացում համակարգային տերմինալային էմուլյատորում: Արդյունքի ձևը որոշվում է կոմպոզիտորային կառավարման կողմից, դա կարող է լինել ոչ միայն աղեր, այլ նաև տեսողական արձագանքը:
- fifo — իրականացնում է FIFO մեխանիզմ (առաջինը եկել է, առաջնությանը) տպաչափման գծի թարմացման очередь: Նվազագույն ծնկների միջից, պրոտոկոլը թույլ է տալիս օգտագործել դիտումը ճ Vertical sync (vblank) ավարտի փոխարեն, երկրորդ դեպքում որակով, ինչը լուծում է բարձր բեռնվածության խնդիրը GPU-ի VSync-ի ժամանակ:
- commit-timing — թույլ է տալիս կցել ժամանակի սահմանափակումներին, որոնք միանում են մակերեսի բովանդակությանը (կոմպոզիտորային սերվերը պետք է ներկայացնի բովանդակության փոփոխությունը հնարավորինս նշված ժամանակից, բայց ոչ շուտ):
- ext-data-control — թույլ է տալիս արտոնյալ հաճախորդներին կառավարել տվյալների մշակումը, օրինակ, կպահանջի բուֆերային մենեջերների իրականացման:
- ext-workspace — իրականացնում է վիրտուալ աշխատանքային սեղանների եւ առաջարկում է իրադարձություններ աշխատանքային սեղանների վիճակի մասին տեղեկություններով, ինչպես նաև աշխատասեղանների ակտիվացման և չակտիվացման հնարավորություններով: Պրոտոկոլը կարող է օգտագործվել պանելների եւ ցուցիչների ստեղծման համար, որոնք ցուցադրում են հասանելի վիրտուալ աշխատանքային սեղանների ցանկը և հնարավորություն տալիս переключаться դրանց միջև:
- color-management — տրամադրում է գույների կառավարման հնարավորություններ և ընդլայնված դինամիկ պայծառության (HDR, High Dynamic Range) աջակցություն: Ավելացված ընդլայնման միջոցով հաճախորդային ծրագրերը կարող են ստանալ կապակցված գույն փոխանցման հատկությունների տեղեկությունը արտահանման սարքերի համար եւ փոխանցել կոմպոզիտոր սարքին տվյալները իրենց բովանդակության գույն փոխանցման հատկությունների մասին: Կոմպոզիտոր սարքում այս տեղեկությունը կարող է օգտագործվել գույնի ավտոմատ կառավարման համար բովանդակությունը տարբեր արտահանման սարքերում ցուցադրելու համար, օրինակ, HDR-monitor-ների վրա ցուցադրում համար բովանդակության համապատասխան դարձնելու: Գույնային տարածքների նկարագրության համար օգտագործվում են ICC պրոֆիլներ.
- xdg-toplevel-tag — թույլ է տալիս Wayland հաճախորդներին կցել պիտակներ բարձր մակարդակի մակերեսներին, որոնք կոմպոզիտոր սարքը կարող է օգտագործել պատուհանների ճանաչման համար, ծրագիրը վերագործարկելուց հետո (օրինակ, ծրագիրը կարող է սահմանել «главное окно» և «настройки» պիտակները հիմնական պատուհանի և կարգավորման պատուհանի համար): Սա հնարավորություն է տալիս վերականգնել պատուհանների դիրքը, չափը և հատկությունները ետ բեռնման գործընթացից հետո, ինչպես նաև սահմանել առանձնահատուկ կանոններ տարբեր տեսակի պատուհանների համար.
- color-representation — Wayland մակերեսի գույնի ներկայացման սահմանումը: Wayland հաճախորդները կարող են փոխանցել մետադատա, որը անհրաժեշտ է թափանցության, գույնի մոդելի, ենթադիսկերացման և քվանտավորման ծոմերի որոշման համար, և կիրառվելուց ճիշտ տվյալների բունփղում, որոնք համապատասխանում են YCbCr գույնի մոդելին, RGB ներկայացմանը փոխարկելու համար.
- ext-background-effect — կիրառման պրոցեսներ Wayland մակերեսների առկայութեան թափանցիկ մասերի համար, ներկայացնելով հետերի մղումը.
- pointer-warp — թույլ է տալիս ծրագրին միանգամից տեղափոխել ցուցիչը նշված դիրքում.
Փորձնական հատվածում մշակվող պրոտոկոլներ.
- 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
