Wayland-protocols 1.39 пакети чыгарылды, анда негизги Wayland протоколун толуктаган жана композиттик серверлерди жана колдонуучу чөйрөсүн куруу үчүн зарыл болгон мүмкүнчүлүктөрдү камсыз кылган протоколдордун жана кеңейтүүлөрдүн топтомун камтыган.
Бардык протоколдор ырааттуу түрдө иштеп чыгуу, сыноо жана турукташтыруу этаптарынан өтөт. Иштеп чыгуу стадиясын аяктагандан кийин («туруктуу эмес» категория) протокол «сценировка» тармагына жайгаштырылат жана расмий түрдө wayland-протоколдор топтомуна киргизилет, ал эми тестирлөө аяктагандан кийин ал туруктуу категорияга которулат. "Эхчилдик" категориясындагы протоколдорду композиттик серверлерде жана тиешелүү функциялар талап кылынган кардарларда колдонууга болот. "Туруктуу эмес" категориядан айырмаланып, "сценировка" шайкештикти бузган өзгөртүүлөрдү киргизүүгө тыюу салат, бирок тестирлөө учурунда көйгөйлөр жана кемчиликтер аныкталса, протоколдун жаңы маанилүү версиясы же Wayland кеңейтүүсүнүн башка версиясы менен алмаштыруу жокко чыгарылбайт.
Жаңы версия протоколдорду илгерилетүүнүн кошумча фазасын кошот - "эксперименталдык", протоколдорду Wayland-Protocols топтомуна киргизүүдөгү тоскоолдуктарды азайтуу, протоколдорду иштеп чыгуучуларга жеткирүүнү тездетүү жана учурдагы долбоорлордо эрте ишке ашырууну стимулдаштыруу. Жаңы фаза протоколду иштеп чыгуучуларды Уэйленд-Протоколдоруна кабыл алынганга чейин узакка созулган талкуулардан жана бюрократиядан бошотот.
Эгерде протокол "сценировка" фазасына өтүү үчүн колдоо тобун түзүү жана кароонун катышуучуларынан белгилүү бир сандагы ыраазычылыктарды (ACK) алуу зарыл болсо, анда "эксперименталдык" фазага өтүү, каршы пикирлердин жоктугу (NACK) эки жумалык кароо мезгилинде жетиштүү. "Эксперименталдык" фазада шайкештикти бузган өзгөртүүлөрдү киргизүүгө жана акырындык менен тиешелүү деңгээлге жеткирилиши мүмкүн болгон "чийки" протоколдорду кошууга жол берилет.
Төмөнкү протоколдор "сценировка" категориясына кошулду:
- ext-data-control - артыкчылыктуу кардарларга маалыматтарды иштетүүнү көзөмөлдөөгө, мисалы алмашуу буферинин менеджерлерин ишке ашырууга мүмкүндүк берет.
- тышкы жумуш мейкиндиги — концепцияны ишке ашырат virtualnyx rabochikh stolov жана жумушчу столдордун абалы жөнүндө маалымат менен иш-чараларды, ошондой эле жумушчу столдорду иштетүү жана өчүрүү мүмкүнчүлүгүн сунуштайт. Протоколду жеткиликтүү виртуалдык жумушчу столдордун тизмесин көрсөткөн жана алардын ортосунда которулууга мүмкүндүк берген башкаруу панелдерин жана индикаторлорду түзүү үчүн колдонсо болот.
Азыркы учурда, wayland-протоколдор артка шайкештикти камсыз кылган төмөнкү туруктуу протоколдорду камтыйт:
- "viewporter" - кардарга сервер тарабындагы масштабдоо жана беттик четтерин кыркып салуу аракеттерин аткарууга мүмкүндүк берет.
- "презентация убактысы" - видео дисплейди камсыз кылат.
- “xdg-shell” – терезелер катары беттерди түзүү жана алар менен иштешүү үчүн интерфейс, ал аларды экрандын айланасында жылдырууга, кичирейтүүгө, кеңейтүүгө, өлчөмүн өзгөртүүгө ж.б.
- "linux-dmabuf" - DMA-BUF технологиясын колдонуу менен бир нече видеокарталарды бөлүшүүнү камсыз кылат (DMA-BUF негизинде wl_buffer түзүүгө мүмкүндүк берет).
- "планшет" - графикалык планшеттерден киргизүүнү уюштуруу.
Протоколдор "сценировка" тармагында сыналган:
- drm-lease - виртуалдык реалдуулук гарнитураларына чыгарууда сол жана оң көздөр үчүн ар кандай буферлери бар стерео сүрөттү түзүү үчүн зарыл болгон ресурстарды камсыз кылат.
- "ext-session-lock" - мисалы, экран сактагыч иштеп турганда же аутентификация диалогу көрсөтүлүп турганда, сессияны кулпулоо каражатын аныктайт.
- "single-pixel-buffer" - төрт 32-бит RGBA маанисин камтыган бир пикселдик буферлерди түзүүгө мүмкүндүк берет.
- "xdg-активациялоо" - фокусту ар кандай биринчи деңгээлдеги беттердин ортосунда өткөрүүгө мүмкүндүк берет (мисалы, xdg-активациялоону колдонуу менен бир тиркеме фокусту экинчисине которушу мүмкүн).
- мазмун түрү - кардарларга композиттик файлдарды өткөрүп берүүгө мүмкүндүк берет сервер Көрсөтүлүп жаткан мазмун жөнүндө маалымат, ал мазмунду сезүү жүрүм-турумун оптималдаштыруу үчүн колдонулушу мүмкүн, мисалы, "мазмун түрү" сыяктуу белгилүү бир DRM касиеттерин орнотуу. Төмөнкү мазмун түрлөрү колдоого алынат: жок (маалымат түрү жөнүндө маалымат жок), сүрөт (минималдуу иштетүүнү талап кылган санариптик сүрөт чыгаруу), видео (кекечтенүүдөн качуу үчүн так синхрондоштурууну талап кылган видео же анимация) жана оюн (оюнду ишке киргизүү, минималдуу кечигүү менен чыгарууну талап кылат).
- ext-idle-notify - Композиттик серверлерге колдонуучунун аракетсиздиги жөнүндө кардарларга эскертмелерди жөнөтүүгө мүмкүндүк берет, аны белгилүү бир убакыт аракетсиздиктен кийин кошумча энергия үнөмдөө режимдерин иштетүү үчүн колдонсо болот.
- жыртылууну көзөмөлдөө - вертикалдык синхрондоштурууну (VSync) толук экрандуу тиркемелерде вертикалдык демпфинг импульсу менен өчүрүүгө мүмкүндүк берет, чыгарууда жыртылуудан коргоо үчүн колдонулат. Мультимедиялык тиркемелерде жыртылуудан улам пайда болгон артефакттар жагымсыз эффект болуп саналат, бирок оюн программаларында, эгерде алар менен иштөө кошумча кечигүүлөрдү жаратса, аларга чыдай берсе болот.
- ext-foreign-toplevel-list - Терезелерди башка мазмундун үстүнө бекитүү үчүн уюштурууга, мисалы, өзүңүздүн панелдериңизди жана терезе которгучтарыңызды тиркөөгө мүмкүндүк берүүчү жогорку деңгээлде жайгаштырылган беттер жөнүндө маалыматты чыгарат.
- коопсуздук-контекст - кумдук обочолонууну колдонуу менен кардарларды аныктоого мүмкүндүк берет. Кардар Wayland негизиндеги композиттик серверге жаңы туташууну каттай алат жана ага коопсуздук контекстин кошо алат, андан кийин курама башкаруучу белгиленген коопсуздук контекстинин негизинде белгиленген байланыш үчүн жеткиликтүү мүмкүнчүлүктөрдү чектейт.
- cursor-shape - курсордун сырткы көрүнүшүн ыңгайлаштыруунун альтернативалуу жолу, ал бетке (wl_surface) чапталбай, курсордун сүрөттөрүнүн сериясын өткөрүүгө негизделген.
- "Ex-transient-seat" - виртуалдык киргизүү түзүлүштөрү менен колдонуу үчүн иштелип чыккан убактылуу көз карандысыз сессияларды (орундарды) түзүү үчүн иштелип чыккан. Мисалы, алыскы иш тактага туташуу мүмкүнчүлүгүн ишке ашырууда, протокол виртуалдык клавиатура жана чычкан менен ар бир колдонуучу үчүн өзүнчө сеанс түзүүгө мүмкүндүк берет.
- "xdg-toplevel-drag" - "сүйрөө жана таштоо" механизмин сүйрөө операциясына жогорку деңгээлдеги терезелерди тиркөө мүмкүнчүлүгү менен кеңейтет, аны, мисалы, чычкан менен куралдар тилкелерин же браузер өтмөктөрүн сүйрөөнү уюштуруу үчүн колдонсо болот. Жаңы протокол терезенин ажыратылуучу бөлүктөрүн түзүүгө мүмкүндүк берет, аларды ошол терезеден сүйрөп келгенде, жаңы терезелер болуп калат жана кайра тиркөөдөн мурун учурдагы терезенин үстүнө жылдырууга болот.
- "xdg-dialog" - жогорку деңгээлдеги беттерге диалогго тиешелүү атрибуттарды дайындоого мүмкүндүк берет, мисалы, сиз интерфейстин калган бөлүгү менен колдонуучунун өз ара аракеттенүүсүн блоктоочу модалдык диалогдорду түзө аласыз.
- "linux-drm-syncobj" - DRM (Direct Rendering Manager) синхрондоштуруу объекттерин колдонуу менен буферлерди ачык синхрондоштуруу үчүн куралдар менен камсыз кылат. Буферге тартууда синхрондоштуруу контекстинде сунушталган протокол Vulkan жана OpenGL графикалык API негизинде драйверлер менен иштөөнү жакшыртат деп болжолдонууда (ишке ашыруу драйверлердеги иштеткичтерге негизделген). Жаңы протокол композиттик башкаруучу буферди көрсөткөнгө чейин буферге көрсөтүү операциясы аяктаганын камсыз кылууга мүмкүндүк берет.
- alpha-модификатор, ал кардарларга беттин ачыктыгынын деңгээлин өзгөртүүгө жана композиттик сервер тарапка ачыктыкты камсыз кылуу үчүн операцияларды өткөрүүгө мүмкүндүк берет, ал өз кезегинде бул операцияларды KMSке багыттай алат.
- xdg-toplevel-icon - сөлөкөтүн жогорку деңгээлдеги терезеге байланыштырат.
- ext-image-capture-source and ext-image-copy-cature - экранда көрсөтүлгөн мазмунду тартууну уюштуруу.
- xdg-system-bell - мисалы, терминалдык эмулятордо эскертүү катары колдонула турган системалык сигналды чыгарууга мүмкүндүк берет. Сигналдын чыгуу формасы композиттик менеджердин каалоосу боюнча аныкталат, ал үн гана эмес, визуалдык жооп болушу мүмкүн;
- fifo - көрсөтүлгөн беттин мазмунду жаңыртуу кезегин иштетүү үчүн FIFO (биринчи кирген, биринчи чыккан) механизмин ишке ашырат. Практикалык жагынан, протокол VSyncти колдонууда GPU жогорку жүктөө маселесин чечүүчү жаңы кадрды көрсөтүүгө даяр болгон сайын кайра чалууларды колдонуунун ордуна вертикалдык сканерлөөнүн аягына чейин күтүүгө (vblank) мүмкүндүк берет.
- commit-timeing - сизге убакыт чегин жер үстүндөгү мазмунга байлоого мүмкүндүк берет (композиттик сервер мүмкүн болсо, көрсөтүлгөн убакыттан кийин мазмундун өзгөрүшүн чагылдырышы керек, бирок эрте эмес).
“Туруктуу эмес” тармакта иштелип жаткан протоколдор:
- "толук экран-кабык" - толук экран режиминде ишти башкаруу.
- "киргизүү ыкмасы" - киргизүү ыкмаларын иштетүү.
- "idle-inhibit" - экран сактагычты ишке киргизүүгө бөгөт коюу (экран сактагыч).
- "input-timestamps" - киргизүү окуялары үчүн убакыт белгилери.
- "keyboard-shortcuts-inhibit" - клавиатуранын жарлыктарын жана ысык баскычтарды тиркөөнү көзөмөлдөйт.
- "linux-айкын-синхрондоштуруу" бетине байланышкан буферлерди синхрондоштуруу үчүн Linux үчүн атайын механизм.
- "көрсөткүч-жаңсоо" - сенсордук экрандардан башкаруу.
- "көрсөткүч чектөөлөрү" - көрсөткүч чектөөлөрү (бөгөттөө).
- "Негизги тандоо" - X11ге окшошуп, ал негизги алмашуу буферинин иштешин камсыздайт (негизги тандоо), маалымат көбүнчө чычкандын ортоңку баскычы менен киргизилет.
- "салыштырмалуу көрсөткүч окуялары" - көрсөткүчтүн салыштырмалуу окуялары.
- "текст киргизүү" - текст киргизүүнү уюштуруу.
- "xdg-foreign" - бул "коңшу" кардардын беттери менен өз ара аракеттенүү үчүн интерфейс.
- "xdg-decoration" - сервер тарабында терезе жасалгаларын көрсөтүү.
- "xdg-output" - видео чыгаруу жөнүндө кошумча маалымат (бөлчөк масштабдоо үчүн колдонулат).
- "xwayland-keyboard-grab" - XWayland тиркемелериндеги киргизүүнү тартуу.
Source: opennet.ru
