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