La publication de la version 1.39 du paquet wayland-protocols a été effectuée, contenant un ensemble de protocoles et d'extensions qui complÚtent le protocole de base Wayland et fournissent les fonctionnalités nécessaires à la construction de serveurs de composition et d'environnements utilisateur.
Tous les protocoles passent successivement par les phases de dĂ©veloppement, de test et de stabilisation. Une fois la phase de dĂ©veloppement terminĂ©e (catĂ©gorie « unstable »), le protocole est placĂ© dans la branche « staging » et est officiellement intĂ©grĂ© Ă l'ensemble des wayland-protocols ; aprĂšs la fin des tests, il est dĂ©placĂ© dans la catĂ©gorie stable. Les protocoles de la catĂ©gorie « staging » peuvent dĂ©jĂ ĂȘtre utilisĂ©s dans les serveurs composites et les clients oĂč la fonctionnalitĂ© associĂ©e est requise. Contrairement Ă la catĂ©gorie « unstable », les changements qui compromettent la compatibilitĂ© sont interdits dans « staging », mais en cas de problĂšmes et de lacunes identifiĂ©s lors des tests, le remplacement par une nouvelle version significative du protocole ou une autre extension Wayland n'est pas exclu.
La nouvelle version introduit une phase supplĂ©mentaire de promotion des protocoles - "experimental", visant Ă rĂ©duire la barriĂšre Ă l'inclusion des protocoles dans l'ensemble des Wayland-Protocols, Ă accĂ©lĂ©rer la transmission des protocoles aux dĂ©veloppeurs et Ă encourager leur mise en Ćuvre prĂ©coce dans les projets existants. Cette nouvelle phase permettra d'Ă©viter aux dĂ©veloppeurs de protocoles de longs dĂ©bats et des lenteurs administratives avant leur inclusion dans les Wayland-Protocols.
Pour qu'un protocole ait accĂšs Ă la phase "staging", il est nĂ©cessaire de former une Ă©quipe de soutien et d'obtenir un certain nombre de confirmations (ACK) de la part des participants Ă la rĂ©vision; alors que pour passer Ă la phase "experimental", il suffit qu'il n'y ait pas d'opposition (NACK) pendant une pĂ©riode de rĂ©vision de deux semaines. Dans la phase "experimental", des modifications susceptibles de rompre la compatibilitĂ© et l'ajout de protocoles "bruts" qui peuvent ĂȘtre progressivement ammenĂ©s au niveau requis sont autorisĂ©s.
Les protocoles suivants ont été ajoutés à la catégorie "staging" :
- ext-data-control â permet aux clients privilĂ©giĂ©s de gĂ©rer le traitement des donnĂ©es, par exemple, pour la mise en Ćuvre de gestionnaires de presse-papiers.
- ext-workspace â met en Ćuvre le concept des bureaux virtuels et propose des Ă©vĂ©nements contenant des informations sur l'Ă©tat des bureaux, ainsi que des possibilitĂ©s d'activation et de dĂ©sactivation des bureaux. Le protocole peut ĂȘtre utilisĂ© pour crĂ©er des panneaux et des indicateurs affichant la liste des bureaux virtuels disponibles et permettant de naviguer entre eux.
Actuellement, l'ensemble des wayland-protocols comprend les protocoles stables suivants, garantissant la rétrocompatibilité :
- « viewporter » â permet au client d'effectuer des actions de mise Ă l'Ă©chelle et de rognage des bords de la surface cĂŽtĂ© serveur.
- « presentation-time » â assure l'affichage de la vidĂ©o.
- « xdg-shell » â interface de crĂ©ation et d'interaction avec les surfaces en tant que fenĂȘtres, permettant de les dĂ©placer Ă l'Ă©cran, de les minimiser, de les agrandir, de redimensionner, etc.
- « linux-dmabuf » â permet le partage de plusieurs cartes graphiques grĂące Ă la technologie DMA-BUF (permet de crĂ©er un wl_buffer basĂ© sur DMA-BUF).
- «tablet» â organisation de l'entrĂ©e Ă partir de tablettes graphiques.
Protocoles testés dans la branche « staging » :
- drm-lease â fournit les ressources nĂ©cessaires pour crĂ©er une image stĂ©rĂ©o avec des tampons diffĂ©rents pour l'Ćil gauche et l'Ćil droit lors de l'affichage sur des casques de rĂ©alitĂ© virtuelle.
- «ext-session-lock» â dĂ©finit les moyens de verrouillage de session, par exemple, lors de l'utilisation d'un Ă©conomiseur d'Ă©cran ou lors de l'affichage d'une boĂźte de dialogue d'authentification.
- «single-pixel-buffer» â permet de crĂ©er des tampons de un pixel comprenant quatre valeurs 32 bits RGBA.
- «xdg-activation» â permet de transfĂ©rer le focus entre diffĂ©rentes surfaces de niveau supĂ©rieur (par exemple, avec xdg-activation, une application peut dĂ©placer le focus sur une autre).
- content-type â permet aux clients de transmettre des informations sur le contenu affichĂ©, qui peuvent ĂȘtre utilisĂ©es pour optimiser le comportement en fonction du contenu, par exemple, pour dĂ©finir des propriĂ©tĂ©s DRM spĂ©cifiques telles que «content type». Les types de contenu suivants sont pris en charge : none (aucune information sur le type de donnĂ©es), photo (affichage de photos numĂ©riques nĂ©cessitant un minimum de traitement), video (vidĂ©o ou animation nĂ©cessitant une synchronisation plus prĂ©cise pour Ă©viter les saccades) et game (exĂ©cution de jeux nĂ©cessitant un affichage avec un retard minimal). serveur ext-idle-notify â permet aux serveurs de composition de transmettre aux clients des notifications d'inactivitĂ© de l'utilisateur, ce qui peut ĂȘtre utilisĂ© pour activer des modes d'Ă©conomie d'Ă©nergie supplĂ©mentaires aprĂšs une certaine pĂ©riode d'inactivitĂ©.
- tearing-control â permet de dĂ©sactiver la synchronisation verticale (VSync) dans les applications en plein Ă©cran avec une impulsion de suppression de frame, utilisĂ©e pour Ă©viter les dĂ©chirements lors de l'affichage. Dans les applications multimĂ©dias, l'apparition d'artefacts causĂ©s par le tearing est un effet indĂ©sirable, mais dans les programmes de jeux, la prĂ©sence d'artefacts peut ĂȘtre tolĂ©rĂ©e si la lutte contre ceux-ci entraĂźne des retards supplĂ©mentaires.
- ext-foreign-toplevel-list â obtention d'informations sur les surfaces placĂ©es au niveau supĂ©rieur, permettant d'organiser le maintien des fenĂȘtres au-dessus d'un autre contenu, par exemple pour connecter des panneaux et des commutateurs propres.
- ext-foreign-toplevel-list â obtention d'informations sur les surfaces placĂ©es au niveau supĂ©rieur, permettant d'organiser le maintien des fenĂȘtres au-dessus d'un autre contenu, par exemple pour connecter des panneaux et des commutateurs propres.
- security-context â permet d'identifier les clients utilisant l'isolation sandbox. Le client peut enregistrer une nouvelle connexion au serveur composite basĂ© sur Wayland et y attacher un contexte de sĂ©curitĂ©, aprĂšs quoi, conformĂ©ment au contexte de sĂ©curitĂ© spĂ©cifiĂ©, le gestionnaire de composition restreindra les capacitĂ©s disponibles pour la connexion Ă©tablie.
- cursor-shape â une mĂ©thode alternative de configuration de l'apparence du curseur, basĂ©e sur la transmission d'une sĂ©rie d'images de curseur au lieu d'une liaison Ă la surface (wl_surface).
- «ext-transient-seat» â destinĂ© Ă la crĂ©ation de sessions indĂ©pendantes temporaires, adaptĂ©es Ă une utilisation avec des dispositifs d'entrĂ©e virtuels. Par exemple, lors de la mise en Ćuvre de la possibilitĂ© de connexion Ă un bureau distant, le protocole permet de crĂ©er une session distincte pour chaque utilisateur avec un clavier et une souris virtuels.
- «xdg-toplevel-drag» â Ă©tend le mĂ©canisme «glisser-dĂ©poser» avec la possibilitĂ© d'attacher des fenĂȘtres de niveau supĂ©rieur Ă une opĂ©ration de dĂ©placement, ce qui peut ĂȘtre utilisĂ©, par exemple, pour organiser le glissement de panneaux d'outils ou d'onglets de navigateur. Le nouveau protocole permet de crĂ©er des parties dĂ©tachables de la fenĂȘtre, qui, lorsqu'elles sont glissĂ©es hors de cette fenĂȘtre, deviennent de nouvelles fenĂȘtres et peuvent ĂȘtre dĂ©placĂ©es au-dessus d'une fenĂȘtre existante avant d'ĂȘtre reconnectĂ©es.
- «xdg-dialog» â permet d'attribuer des caractĂ©ristiques spĂ©cifiques aux fenĂȘtres de niveau supĂ©rieur, par exemple, il est possible de crĂ©er des dialogues modaux qui bloquent l'interaction de l'utilisateur avec le reste de l'interface.
- « linux-drm-syncobj » â fournit des outils pour la synchronisation explicite des buffers Ă l'aide d'objets de synchronisation DRM (Direct Rendering Manager). Il est supposĂ© que dans le contexte de la synchronisation lors du rendu dans le buffer, le protocole proposĂ© permettra d'amĂ©liorer le fonctionnement avec les pilotes basĂ©s sur les APIs graphiques Vulkan et OpenGL (la rĂ©alisation est basĂ©e sur des gestionnaires dans les pilotes). Le nouveau protocole permet de s'assurer que l'opĂ©ration de rendu dans le buffer est terminĂ©e avant que le gestionnaire composite n'affiche ce buffer.
- alpha-modifier, permettant aux clients de modifier le niveau de transparence de la surface et de déplacer les opérations de gestion de la transparence vers le serveur composite, qui peut ensuite rediriger ces opérations vers KMS.
- xdg-toplevel-icon â liaison d'une icĂŽne Ă une fenĂȘtre de niveau supĂ©rieur.
- ext-image-capture-source et ext-image-copy-capture â organisation de la capture de contenu affichĂ© Ă l'Ă©cran.
- xdg-system-bell â permet de gĂ©nĂ©rer un signal systĂšme qui peut ĂȘtre utilisĂ©, par exemple, comme alerte dans les Ă©mulateurs de terminal. La forme de sortie du signal est laissĂ©e Ă la discrĂ©tion du gestionnaire de composition, cela peut ĂȘtre non seulement un son, mais aussi une rĂ©ponse visuelle.
- fifo â met en Ćuvre un mĂ©canisme FIFO (premier arrivĂ©, premier parti) pour le traitement de la file d'attente de mise Ă jour du contenu de la surface affichĂ©e. D'un point de vue pratique, le protocole permet d'utiliser l'attente de la fin du dĂ©calage vertical (vblank) au lieu d'appels de rappel Ă chaque fois qu'il est prĂȘt Ă afficher un nouveau cadre, ce qui rĂ©sout le problĂšme d'une charge GPU Ă©levĂ©e en utilisant VSync.
- commit-timing â permet d'associer une limite de temps au contenu d'une surface (le serveur composite doit afficher la modification du contenu dans la mesure du possible aprĂšs le temps indiquĂ©, mais pas avant).
Protocoles en cours de développement dans la branche «unstable»:
- «fullscreen-shell» â gestion du mode plein Ă©cran.
- «input-method» â traitement des mĂ©thodes d'entrĂ©e.
- «idle-inhibit» â dĂ©sactivation du lancement de l'Ă©conomiseur d'Ă©cran.
- «input-timestamps» â horodatages pour les Ă©vĂ©nements d'entrĂ©e.
- «keyboard-shortcuts-inhibit» â gestion de l'attachement des combinaisons de touches et des raccourcis clavier.
- «linux-explicit-synchronization» â mĂ©canisme de synchronisation des tampons spĂ©cifique Ă Linux liĂ© Ă la surface.
- «pointer-gestures» â contrĂŽle des gestes des Ă©crans tactiles.
- «pointer constraints» â contraintes des pointeurs (blocage).
- «primary-selection» â de maniĂšre similaire Ă X11, fournit un fonctionnement du tampon de sĂ©lection primaire, dont l'insertion d'informations se fait gĂ©nĂ©ralement par le bouton central de la souris.
- «relative pointer events» â Ă©vĂ©nements de pointeur relatifs.
- «text-input» â gestion de l'entrĂ©e de texte.
- «xdg-foreign» â interface d'interaction avec les surfaces du client «voisin».
- «xdg-decoration» â rendu des dĂ©corations des fenĂȘtres cĂŽtĂ© serveur.
- «xdg-output» â informations supplĂ©mentaires sur la sortie vidĂ©o (utilisĂ©e pour le zoom fractionnĂ©).
- «xwayland-keyboard-grab» â capture de l'entrĂ©e dans les applications XWayland.
Source : opennet.ru
