S'ha publicat el paquet wayland-protocols 1.49, que conté un conjunt de protocols i extensions que complementen el protocol principal de Wayland i proporcionen les capacitats necessàries per construir servidors compostos i entorns d'usuari.
En la nova versió:
- S'ha afegit el protocol experimental xx-fractional-scale. Permet l'escalat de sistemes de coordenades lògiques basats en enters per millorar la precisió del posicionament i augmentar la resolució de les coordenades lògiques fins a píxels individuals. Aquesta característica soluciona la resolució limitada dels sistemes de coordenades lògiques, que és insuficient per al posicionament a nivell de píxel, necessari per a la implementació completa de l'escalat fraccional.
- El protocol "linux-dmabuf" s'ha actualitzat per admetre sistemes amb diverses GPU. En aquests sistemes, el client pot negociar dades compostes servidor quina GPU s'hauria d'utilitzar.
- El protocol de gestió del color v1 s'ha actualitzat per admetre metadades d'imatge BT.2100 per al seu ús en format compost. servidor controladors específics que permeten la visualització correcta del contingut HDR creat per a Windows.
Tots els protocols passen seqüencialment per les fases de desenvolupament, prova i estabilització. Després de completar la fase de desenvolupament (la categoria "inestable"), un protocol es col·loca a la branca "staging" i s'inclou oficialment al conjunt wayland-protocols. Un cop finalitzades les proves, es mou a la categoria estable. Els protocols de la categoria "staging" es poden utilitzar en compostos. servidors i clients que requereixen funcionalitats relacionades. A diferència de la categoria "inestable", la "posta en fase" prohibeix els canvis que trenquen la compatibilitat. Tanmateix, si es descobreixen problemes o deficiències durant les proves, no es pot descartar una substitució per una nova versió significativa del protocol o una altra extensió de Wayland.
Per accelerar el lliurament de protocols als desenvolupadors i fomentar la implementació primerenca dels protocols en projectes existents, a partir de la versió anterior, es va afegir una fase "experimental", que permet fer canvis que trenquin la compatibilitat i afegir protocols "bruts" que es puguin portar gradualment al nivell adequat. Tot i que un protocol ha de formar un equip de suport i rebre un cert nombre d'aprovacions (ACK) dels revisors per entrar a la fase d'escenificació, només ha de rebre cap objecció (NACK) durant el període de revisió de dues setmanes per entrar a la fase experimental.
La suite wayland-protocols actualment inclou els següents protocols estables, compatibles amb versions anteriors:
- viewporter" - permet al client realitzar accions d'escalat i retall de les vores de la superfície al lateral servidor.
- "presentation-time": proporciona visualització de vídeo.
- "xdg-shell" és una interfície per crear i interactuar amb superfícies com a finestres, que us permet moure-les per la pantalla, col·lapsar, ampliar, canviar la mida, etc.
- "linux-dmabuf" - proporciona capacitats per crear wl_buffers basats en DMA-BUF.
- "tauleta" - organització de l'entrada de tauletes gràfiques.
Protocols provats a la branca “escenificació”:
- drm-lease: proporciona els recursos necessaris per generar una imatge estèreo amb diferents buffers per als ulls esquerre i dret quan s'emet a auriculars de realitat virtual.
- "ext-session-lock" - defineix un mitjà per bloquejar una sessió, per exemple, mentre s'està executant l'estalvi de pantalla o es mostra el diàleg d'autenticació.
- "single-pixel-buffer": us permet crear memòries intermèdies d'un sol píxel que inclouen quatre valors RGBA de 32 bits.
- "xdg-activation" - permet transferir el focus entre diferents superfícies de primer nivell (per exemple, utilitzant
activació xdg una aplicació pot canviar el focus a una altra). - tipus de contingut: permet als clients passar contingut compost servidor Informació sobre el contingut que es mostra que es pot utilitzar per optimitzar el comportament en funció del contingut, com ara la configuració de propietats DRM específiques com ara "tipus de contingut". Es declara compatibilitat amb els següents tipus de contingut: cap (no hi ha informació sobre el tipus de dades), foto (sortida de fotos digitals que requereix un processament mínim), vídeo (vídeo o animació, que requereix una sincronització més precisa per evitar entrebancs) i joc (inici del joc, que requereix una sortida amb una latència mínima).
- ext-idle-notify: permet als servidors compostos enviar notificacions als clients sobre la inactivitat de l'usuari, que es poden utilitzar per activar modes d'estalvi d'energia addicionals després d'un cert temps d'inactivitat.
- tearing-control: us permet desactivar la sincronització vertical (VSync) amb un pols d'amortiment vertical en aplicacions de pantalla completa, que s'utilitza per protegir contra el trencament de la sortida. A les aplicacions multimèdia, els artefactes a causa del trencament són un efecte no desitjat, però en els programes de jocs, els artefactes es poden tolerar si tractar-los provoca retards addicionals.
- ext-foreign-toplevel-list: recupera informació sobre superfícies col·locades al nivell superior, que us permeten organitzar finestres per acoblar-les a un altre contingut, per exemple, per adjuntar els vostres propis panells i interruptors de finestres.
- context de seguretat: us permet identificar clients mitjançant l'aïllament de sandbox. Un client pot registrar una nova connexió a un servidor compost basat en Wayland i adjuntar-hi un context de seguretat, després del qual el gestor compost limitarà les capacitats disponibles per a la connexió establerta en funció del context de seguretat especificat.
- La forma del cursor és una forma alternativa de personalitzar l'aparença del cursor, basant-se en passar una sèrie d'imatges del cursor en lloc d'enganxar-se a una superfície (wl_surface).
- "ext-transient-seat": dissenyat per crear sessions (seients) independents temporals dissenyades per utilitzar-les amb dispositius d'entrada virtuals. Per exemple, quan s'implementa la possibilitat de connectar-se a un escriptori remot, el protocol permet crear una sessió independent per a cada usuari amb un teclat i un ratolí virtuals.
- "xdg-toplevel-drag": amplia el mecanisme d'"arrossegar i deixar anar" amb la possibilitat d'adjuntar finestres de nivell superior a una operació d'arrossegament, que es pot utilitzar, per exemple, per organitzar l'arrossegament de barres d'eines o pestanyes del navegador amb el ratolí. El nou protocol permet crear parts desmuntables d'una finestra que, quan s'arrosseguen des d'aquesta finestra, es converteixen en finestres noves i es poden moure a sobre de la finestra existent abans de tornar-les a adjuntar.
- "xdg-dialog" - us permet assignar atributs específics del diàleg a les superfícies de nivell superior, per exemple, podeu crear diàlegs modals que bloquegen la interacció de l'usuari amb la resta de la interfície.
- "linux-drm-syncobj": proporciona eines per a la sincronització explícita del buffer mitjançant objectes de sincronització DRM (Direct Rendering Manager). Se suposa que en el context de la sincronització quan es renderitza a un buffer, el protocol proposat millorarà el treball amb controladors basats en les API de gràfics Vulkan i OpenGL (la implementació es basa en els controladors dels controladors). El nou protocol permet assegurar-se que s'hagi completat una operació de dibuix a un buffer abans que el gestor de composició mostri aquest buffer.
- modificador alfa, que permet als clients canviar el nivell de transparència de la superfície i les operacions de transferència per garantir la transparència al costat del servidor compost, que al seu torn pot redirigir aquestes operacions al KMS.
- xdg-toplevel-icon: enllaça la icona a la finestra de nivell superior.
- ext-image-capture-source i ext-image-copy-capture: organització de la captura de contingut que es mostra a la pantalla.
- xdg-system-bell - us permet enviar un senyal del sistema, que es pot utilitzar, per exemple, com a avís en un emulador de terminal. La forma de la sortida del senyal es determina a criteri del gestor de compostos, no només pot ser un so, sinó una resposta visual.
- fifo - implementa un mecanisme FIFO (first in, first out) per processar la cua d'actualització de contingut de la superfície mostrada. Pel que fa a la pràctica, el protocol permet que la sortida s'esperi fins que es completi l'escaneig vertical (vblank) en lloc d'utilitzar trucades de retorn de trucada cada vegada que estigui llest per mostrar un fotograma nou, cosa que resol el problema de la càrrega elevada de la GPU quan s'utilitza VSync.
- commit-timing — permet vincular un límit de temps al contingut de la superfície (compost) servidor hauria de mostrar el canvi de contingut si és possible després del temps especificat, però no abans).
- ext-data-control - Permet als clients privilegiats controlar el processament de dades, per exemple per implementar gestors de porta-retalls.
- ext-workspace — implementa el concepte virtualnyx rabochikh stolov i ofereix esdeveniments amb informació sobre l'estat dels escriptoris, així com la capacitat d'activar i desactivar escriptoris. El protocol es pot utilitzar per crear quadres de comandament i indicadors que mostren una llista d'escriptoris virtuals disponibles i permeten canviar entre ells.
- gestió del color: proporciona capacitats per a la gestió del color i suport per a un rang dinàmic estès de brillantor (HDR, alt rang dinàmic). Amb l'extensió afegida, les aplicacions client poden obtenir informació sobre les propietats relacionades amb el color dels dispositius de sortida i passar dades sobre les propietats relacionades amb el color del seu propi contingut al servidor compost. En un servidor compost, aquesta informació es pot utilitzar per gestionar automàticament el color quan es mostra contingut en diferents dispositius de sortida, per exemple, per convertir contingut en una presentació adequada per mostrar-se en monitors HDR. Els perfils ICC s'utilitzen per descriure els espais de color.
- xdg-toplevel-tag — Permet als clients de Wayland adjuntar etiquetes a les superfícies de nivell superior que el servidor de composició pot utilitzar per identificar finestres després que es reiniciï l'aplicació (per exemple, una aplicació pot establir etiquetes de "finestra principal" i "configuració" per a la finestra principal i la finestra de configuració). Aquesta identificació és útil per restaurar la posició, la mida i les propietats de les finestres després d'un reinici i per definir regles especials per a tipus individuals de finestres.
- representació-del-color — defineix la representació del color de la superfície de Wayland. Els clients de Wayland poden passar les metadades necessàries per definir la transparència, el model de color, el submostreig i el rang de quantificació, i s'utilitzen en convertir un buffer amb dades corresponents al model de color YCbCr a una representació RGB.
- ext-background-effect: aplica efectes a les parts semitransparents d'una superfície de Wayland, com ara el desenfocament de fons.
- pointer-warp: permet a una aplicació moure instantàniament el punter a una posició especificada.
- xdg-session-management — capacitats per restaurar l'estat i la posició de les finestres d'una sessió interrompuda, per exemple després d'una fallada d'un servidor o aplicació composta.
Protocols que s'estan desenvolupant a la branca experimental:
- xx-session-management: restaura l'estat de les finestres per a sessions interrompudes (per exemple, després d'un error del gestor de composició).
- xx-input-method — permet a les aplicacions implementar mètodes d'entrada de text per a servidors compostos i generar text introduït, que es pot utilitzar, per exemple, per crear teclats virtuals i capes IME (Input Method Editor) per al processament d'entrada.
- xx-text-input — permet als servidors compostos implementar mètodes d'entrada i enviar text a les aplicacions. El protocol estandarditza les interaccions entre els servidors compostos i les aplicacions i permet controlar funcions com ara la transmissió de text d'entrada, la gestió dels esdeveniments de focus d'entrada i la consideració de les especificitats del camp d'entrada (idioma, selecció de text, tipus de contingut).
- xx-cutouts — per obtenir informació sobre els retalls a la pantalla (per exemple, la zona que hi ha sota la càmera frontal a la pantalla del telèfon intel·ligent).
- xx-zones — per crear i afegir finestres de nivell superior a "zones", entorns amb el seu propi espai de coordenades. El protocol permet una disposició lògica de les finestres, en què cada finestra es posiciona en relació amb totes les altres finestres.
- xx-keyboard-filter — perquè el client pugui interceptar esdeveniments de teclat seleccionats, modificar esdeveniments d'entrada o bloquejar certs esdeveniments perquè no es passin a la superfície de Wayland en què s'ha seleccionat el focus.
Protocols que s'estan desenvolupant a la branca "instable":
- "fullscreen-shell" - control del treball en mode de pantalla completa.
- "input-method" - mètodes d'entrada de processament.
- "idle-inhibit": bloqueja l'inici de l'estalvi de pantalla (salvapantalles).
- "input-timestamps" - marques de temps per a esdeveniments d'entrada.
- "keyboard-shortcuts-inhibit": controla la connexió de tecles de drecera i tecles d'accés directe.
- "linux-explicit-syncronization" és específic de Linux mecanisme per sincronitzar els buffers en relació amb la superfície.
- "gestos de punter": control des de les pantalles tàctils.
- "restriccions del punter" - restriccions del punter (bloqueig).
- "selecció primària": per analogia amb X11, assegura el funcionament del porta-retalls principal (selecció principal), informació de la qual normalment s'insereix amb el botó central del ratolí.
- "esdeveniments de punter relatiu" - esdeveniments de punter relatius.
- "entrada de text" - organització de l'entrada de text.
- "xdg-foreign" és una interfície per interactuar amb les superfícies del client "veí".
- "xdg-decoration": representa les decoracions de la finestra al costat del servidor.
- "xdg-output": informació addicional sobre la sortida de vídeo (utilitzada per a l'escala fraccionada).
- "xwayland-keyboard-grab" - captura l'entrada a les aplicacions XWayland.
Font: opennet.ru
