Version 1.35 des protocoles Wayland

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

Tous les protocoles passent séquentiellement par trois phases : développement, tests et 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.

Dans la nouvelle version:

  • Le protocole tablet-v2, qui fournit des outils pour organiser les saisies des tablettes graphiques, a été transféré dans la catégorie stable.
  • Un nouveau protocole alpha-modifier a été ajouté à la catégorie « staging », permettant aux clients de modifier le niveau de transparence de la surface et d'externaliser les opérations de transparence vers le serveur composite, qui à son tour peut transmettre ces opérations à KMS.
  • Une recommandation a été ajoutée au protocole xdg-shell pour ne pas afficher la décoration en dehors des limites géométriques de la fenêtre lors de l'utilisation d'une disposition de fenêtre en mosaïque.

Actuellement, Wayland-protocols inclut les protocoles stables suivants, qui assurent une compatibilité ascendante :

  • "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 pour créer et interagir avec des surfaces sous forme de fenêtres, qui vous permet de les déplacer sur l'écran, de les minimiser, de les agrandir, de les redimensionner, etc.
  • "linux-dmabuf" - permet le partage de plusieurs cartes vidéo utilisant la technologie DMA-BUF (vous permet de créer un wl_buffer basé 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 synchroniser explicitement les tampons à l'aide d'objets de synchronisation DRM (Direct Rendering Manager). On suppose que dans le contexte de la synchronisation lors du dessin 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 rendu dans un tampon est terminée avant que le gestionnaire composite ne restitue le tampon.

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