Version 1.42 des protocoles Wayland

Le package wayland-protocols 1.42 a été publié, contenant un ensemble de protocoles et d'extensions qui complètent le protocole de base Wayland et fournissent les fonctionnalités nécessaires à la création de serveurs composites et d'environnements utilisateur.

Wayland-Protocols 1.42 introduit une nouvelle version du protocole « cursor-shape », qui étend les capacités de mise en forme de l'apparence du curseur et ajoute la prise en charge des formes de curseur avec des indicateurs de réception d'informations (point d'interrogation) et de changement de taille. La version du protocole « tablette » a également été mise à jour, offrant des possibilités d'organisation des saisies à partir de tablettes graphiques. La nouvelle version du protocole de tablette ajoute la prise en charge des événements « bustype » et implémente la possibilité de gérer les événements à partir de commandes rotatives avec la transmission de modifications relatives similaires à la gestion du mouvement de la molette de la souris.

Tous les protocoles passent séquentiellement par des phases de développement, de test et de stabilisation. Après avoir terminé la phase de développement (la catégorie « unstable »), le protocole est placé dans la branche « staging » et officiellement inclus dans l'ensemble des protocoles wayland, et une fois les tests terminés, il est déplacé vers la catégorie stable. Les protocoles de la catégorie « staging » peuvent déjà être utilisés dans des serveurs et clients composites où des fonctionnalités associées sont requises. Contrairement à la catégorie « instable », la « mise en scène » interdit d'apporter des modifications qui violent la compatibilité, mais si des problèmes et des lacunes sont identifiés lors des tests, le remplacement par une nouvelle version significative du protocole ou une autre extension Wayland n'est pas exclu.

Pour accélérer la livraison des protocoles aux développeurs et encourager la mise en œuvre précoce des protocoles dans les projets existants, à partir de la version précédente, une phase « expérimentale » a été ajoutée, qui permet des modifications qui rompent la compatibilité et l'ajout de protocoles « bruts » qui peuvent être progressivement amenés au niveau approprié. Alors qu'un protocole doit former une équipe de soutien et recevoir un certain nombre d'accusés de réception (ACK) de la part des examinateurs pour entrer dans la phase de préparation, il n'a besoin de recevoir aucune objection (NACK) pendant la période d'examen de deux semaines que pour entrer dans la phase expérimentale.

La suite wayland-protocols comprend actuellement les protocoles stables suivants, qui sont rétrocompatibles :

  • "viewporter" - permet au client d'effectuer des actions de mise à l'échelle et de découpage des bords de surface côté serveur.
  • "presentation-time" - fournit un affichage vidéo.
  • « xdg-shell » est une interface permettant de créer et d'interagir avec des surfaces sous forme de fenêtres, vous permettant de les déplacer sur l'écran, de les réduire, de les agrandir, de les redimensionner, etc.
  • « linux-dmabuf » - fournit des fonctionnalités pour créer des wl_buffers basés sur DMA-BUF.
  • "tablette" - organisation de la saisie des tablettes graphiques.

Protocoles testés dans la branche « staging » :

  • drm-lease - fournit les ressources nécessaires pour générer une image stéréo avec différents tampons pour les yeux gauche et droit lors de la sortie vers des casques de réalité virtuelle.
  • "ext-session-lock" - définit un moyen de verrouiller la session, par exemple, pendant que l'économiseur d'écran est en cours d'exécution ou que la boîte de dialogue d'authentification est affichée.
  • "single-pixel-buffer" - vous permet de créer des tampons à un seul pixel qui incluent quatre valeurs RGBA 32 bits.
  • "xdg-activation" - vous permet de transférer le focus entre différentes surfaces de premier niveau (par exemple, en utilisant xdg-activation, une application peut basculer le focus sur une autre).
  • type de contenu - Permet aux clients de transmettre des informations sur le contenu affiché au serveur composite, qui peuvent être utilisées pour optimiser le comportement sensible au contenu, comme la définition de propriétés DRM spécifiques telles que le « type de contenu ». La prise en charge des types de contenu suivants est déclarée : aucun (aucune information sur le type de données), photo (sortie de photos numériques, nécessitant un traitement minimal), vidéo (vidéo ou animation, une synchronisation plus précise est requise pour éviter les bégaiements) et jeu (lancement jeux, sortie à partir du délai minimum).
  • ext-idle-notify - Permet aux serveurs composites d'envoyer des notifications aux clients concernant l'inactivité des utilisateurs, qui peuvent être utilisées pour activer des modes d'économie d'énergie supplémentaires après un certain temps d'inactivité.
  • Tearing-Control - vous permet de désactiver la synchronisation verticale (VSync) avec une impulsion d'amortissement verticale dans les applications plein écran, utilisée pour vous protéger contre le déchirement de la sortie. Dans les applications multimédias, les artefacts dus au déchirement constituent un effet indésirable, mais dans les programmes de jeux, les artefacts peuvent être tolérés si leur traitement entraîne des retards supplémentaires.
  • ext-foreign-toplevel-list - Récupère des informations sur les surfaces placées au niveau supérieur, ce qui vous permet d'organiser les fenêtres pour qu'elles s'ancrent au-dessus d'autres contenus, par exemple, pour attacher vos propres panneaux et commutateurs de fenêtre.
  • contexte de sécurité - vous permet d'identifier les clients à l'aide de l'isolation sandbox. Un client peut enregistrer une nouvelle connexion à un serveur composite basé sur Wayland et y attacher un contexte de sécurité, après quoi le gestionnaire composite limitera les capacités disponibles pour la connexion établie en fonction du contexte de sécurité spécifié.
  • La forme du curseur est une autre manière de personnaliser l'apparence du curseur, basée sur le passage d'une série d'images de curseur au lieu de l'accrochage à une surface (wl_surface).
  • « ext-transient-seat » - conçu pour créer des sessions indépendantes temporaires (sièges) conçues pour être utilisées avec des périphériques d'entrée virtuels. Par exemple, lors de la mise en œuvre de la possibilité de se connecter à un bureau distant, le protocole vous 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 glisser, qui peut être utilisée, par exemple, pour organiser le glissement de barres d'outils ou d'onglets de navigateur avec la souris. Le nouveau protocole vous permet de créer des parties détachables d'une fenêtre qui, lorsqu'elles sont glissées depuis cette fenêtre, deviennent de nouvelles fenêtres et peuvent être déplacées au-dessus de la fenêtre existante avant d'être rattachées.
  • "xdg-dialog" - vous permet d'attribuer des attributs spécifiques aux boîtes de dialogue aux surfaces de niveau supérieur. Par exemple, vous pouvez créer des boîtes de dialogue modales qui bloquent l'interaction de l'utilisateur avec le reste de l'interface.
  • "linux-drm-syncobj" - fournit des outils pour la synchronisation explicite des tampons à l'aide d'objets de synchronisation DRM (Direct Rendering Manager). On suppose que dans le contexte de la synchronisation lors du rendu dans un tampon, le protocole proposé améliorera le travail avec les pilotes basés sur les API graphiques Vulkan et OpenGL (l'implémentation est basée sur des gestionnaires dans les pilotes). Le nouveau protocole permet de garantir qu'une opération de dessin dans un tampon est terminée avant que le gestionnaire de composition n'affiche ce tampon.
  • alpha-modifier, qui permet aux clients de modifier le niveau de transparence de la surface et des opérations de transfert pour assurer la transparence du côté du serveur composite, qui à son tour peut rediriger ces opérations vers KMS.
  • xdg-toplevel-icon - lie l'icône à la fenêtre de niveau supérieur.
  • ext-image-capture-source et ext-image-copy-capture - organisant la capture du contenu affiché à l'écran.
  • xdg-system-bell - vous permet d'émettre un signal système, qui peut être utilisé, par exemple, comme avertissement dans un émulateur de terminal. La forme du signal émis est déterminée à la discrétion du gestionnaire composite ; il peut s'agir non seulement d'une réponse sonore, mais également d'une réponse visuelle.
  • fifo - implémente un mécanisme FIFO (premier entré, premier sorti) pour traiter la file d'attente de mise à jour du contenu de la surface affichée. Côté pratique, le protocole permet à la sortie d'attendre la fin du balayage vertical (vblank) au lieu d'utiliser des appels de rappel à chaque fois qu'elle est prête à afficher une nouvelle image, ce qui résout le problème de charge GPU élevée lors de l'utilisation de VSync.
  • commit-timing - vous permet de lier une limite de temps au contenu de surface (le serveur composite doit refléter le changement de contenu si possible après l'heure spécifiée, mais pas avant).
  • ext-data-control - Permet aux clients privilégiés de contrôler le traitement des données, par exemple pour implémenter des gestionnaires de presse-papiers.
  • ext-workspace — met en œuvre le concept bureaux virtuels Il propose des événements fournissant des informations sur l'état des postes de travail, ainsi que la possibilité de les activer et de les désactiver. Le protocole permet de créer des tableaux de bord et des indicateurs affichant la liste des postes de travail virtuels disponibles et permettant de basculer entre eux.
  • Gestion des couleurs — offre des fonctionnalités de gestion des couleurs et la prise en charge de la plage dynamique étendue (HDR). Cette extension permet aux applications clientes d’obtenir des informations sur les propriétés colorimétriques des périphériques de sortie et de transmettre des données sur les propriétés colorimétriques de leur propre contenu au serveur composite. En mode composite, serveur Ces informations peuvent servir à la gestion automatique des couleurs lors de l'affichage de contenu sur différents périphériques de sortie, par exemple pour convertir un contenu en une présentation adaptée à l'affichage sur des moniteurs HDR. Les profils ICC sont utilisés pour décrire les espaces colorimétriques.

Protocoles en cours de développement dans la branche « unstable » :

  • "fullscreen-shell" - contrôle du travail en mode plein écran.
  • "méthode de saisie" - traitement des méthodes de saisie.
  • "idle-inhibit" - bloquer le lancement de l'économiseur d'écran (économiseur d'écran).
  • "input-timestamps" - horodatages pour les événements d'entrée.
  • "keyboard-shortcuts-inhibit" - contrôle l'attachement des raccourcis clavier et des raccourcis clavier.
  • "linux-explicit-synchronization" est un mécanisme spécifique à Linux pour synchroniser les tampons liés à la surface.
  • « gestes de pointeur » - contrôle à partir d'écrans tactiles.
  • « contraintes de pointeur » - contraintes de pointeur (blocage).
  • "sélection primaire" - par analogie avec X11, il assure le fonctionnement du presse-papiers principal (sélection primaire), à ​​partir duquel les informations sont généralement insérées avec le bouton central de la souris.
  • « événements de pointeur relatif » - événements de pointeur relatifs.
  • "text-input" - organisation de la saisie de texte.
  • « xdg-foreign » est une interface permettant d'interagir avec les surfaces du client « voisin ».
  • "xdg-decoration" - rendu des décorations de fenêtres côté serveur.
  • "xdg-output" - informations supplémentaires sur la sortie vidéo (utilisées pour la mise à l'échelle fractionnaire).
  • "xwayland-keyboard-grab" - capture les entrées dans les applications XWayland.

Source: opennet.ru

Ajouter un commentaire