Publication de GTK 3.96, version expérimentale de GTK 4

Après 10 mois depuis le précédent version test présenté GTK 3.96, nouvelle version expérimentale du futur relâchement stable de GTK 4. La branche GTK 4 se développe dans le cadre d'un nouveau processus de développement qui tente de fournir aux développeurs d'applications une API stable et maintenue pendant plusieurs années, que l'on peut utiliser sans craindre de devoir refaire l'application tous les six mois à cause des changements d'API dans une nouvelle branche de GTK. Jusqu'à la stabilisation complète de GTK 4, il est recommandé de continuer à compiler les applications proposées pour les utilisateurs en utilisant la branche GTK 3.24.

Principales modifications dans GTK 3.96 :

  • Dans l'API GSK (GTK Scene Kit), qui fournit le rendu de scènes graphiques via OpenGL et Vulkan, a fait l'objet d'un travail de correction de bugs, dont l'identification a été facilitée par le nouvel outil de débogage gtk4-node-editor, permettant de charger et d'afficher un nœud de rendu au format sérialisé (pouvant être sauvegardé en mode d'inspection GTK inspector), ainsi que de comparer le résultat du rendu lors de l'utilisation de différents backends ;

    Publication de GTK 3.96, version expérimentale de GTK 4
  • Les capacités de transformation 3D ont été portées à un niveau permettant de créer des effets d'animation tels qu'un cube tournant ;

    Publication de GTK 3.96, version expérimentale de GTK 4
  • Entièrement réécrit Le backend GDK Broadway, destiné à rendre la sortie de la bibliothèque GTK dans une fenêtre de navigateur web. L'ancienne implémentation de Broadway ne s'inscrivait pas dans les méthodes de rendu proposées dans GTK 4 (au lieu de la sortie dans un tampon, un modèle basé sur des nœuds de rendu est utilisé, où la sortie est assemblée sous forme d'arbre d'opérations de haut niveau, efficacement traitées par le GPU à l'aide d'OpenGL et Vulkan).
    La nouvelle version de Broadway transforme les nœuds de rendu en nœuds DOM avec des styles CSS pour afficher l'interface dans le navigateur. Chaque nouvel état de l'écran est traité comme un changement de l'arbre DOM par rapport à l'état précédent, permettant ainsi de réduire la taille des données transmises au client distant. Les transformations 3D et les effets graphiques sont réalisés via la propriété CSS transform ;
  • Dans GDK, la mise en œuvre de l'API, développée en tenant compte de l'utilisation du protocole Wayland, se poursuit et le nettoyage de l'API liée à X11 est en cours, ou son transfert vers un backend X11 séparé. Des progrès sont notés dans le travail visant à abandonner l'utilisation des sous-surfaces et des coordonnées globales. Le support de GDK_SURFACE_SUBSURFACE a été supprimé de GDK.
  • Le refactoring du code lié à l'exécution des opérations de glisser-déposer se poursuit, y compris la proposition d'objets séparés GdkDrag et GdkDrop.
  • Le traitement des événements a été simplifié, ceux-ci étant désormais utilisés uniquement pour les entrées. D'autres événements ont été remplacés par des signaux distincts, par exemple, au lieu des événements de sortie, on propose le signal « GdkSurface::render », au lieu des événements de configuration — « GdkSurface::size-changed », au lieu des événements de mappage — « GdkSurface::mapped », et au lieu de gdk_event_handler_set() — « GdkSurface::event ».
  • Dans le backend GDK pour Wayland, le support de l'interface portal pour accéder aux réglages de GtkSettings a été ajouté. Un support pour l'extension du protocole text-input-unstable-v3 a également été proposé pour pouvoir travailler avec les méthodes d'entrée.
  • Pour le développement de widgets, un nouvel objet GtkLayoutManager a été introduit, implémentant un système de gestion de la disposition des éléments en fonction de la taille de la zone visible. GtkLayoutManager remplace les propriétés enfants dans les conteneurs GTK, comme GtkBox et GtkGrid. Plusieurs gestionnaires de disposition prêts à l'emploi ont été proposés : GtkBinLayout pour les conteneurs simples avec un seul élément enfant, GtkBoxLayout pour les éléments enfants alignés linéairement, GtkGridLayout pour l'alignement des éléments enfants dans une grille, GtkFixedLayout pour le positionnement arbitraire des éléments enfants, GtkCustomLayout pour la translation des éléments traditionnels basée sur les gestionnaires size_allocate.
  • Des objets accessibles publiquement pour l'affichage par page des éléments enfants ont été ajoutés aux widgets GtkAssistant, GtkStack et GtkNotebook, remplaçant les propriétés enfants non liées à la disposition (Layout) de ces widgets. Étant donné que toutes les propriétés enfants existantes ont été transformées en propriétés normales, les propriétés de mise en page ont été déplacées vers les objets de page, et le support des propriétés enfants a été complètement supprimé de GtkContainer.
  • La fonctionnalité de base de GtkEntry a été transférée dans un nouveau widget GtkText, qui comprend également une interface d'édition étendue GtkEditable. Tous les sous-classes existantes de saisie de données ont été re-implémentées sous forme de réalisations de GtkEditable basées sur le nouveau widget GtkText.
  • Un nouveau widget GtkPasswordEntry a été ajouté pour les formulaires de saisie de mot de passe;
  • La possibilité de transformer les éléments enfants à l'aide de méthodes de transformation linéaire, définies via CSS ou l'argument gtk_widget_allocate dans GskTransform, a été ajoutée dans GtkWidgets. Cette possibilité a déjà été appliquée au widget GtkFixed;
  • De nouveaux modèles de création de listes ont été ajoutés : GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel et GtkSingleSelection. La prise en charge des modèles de listes dans GtkListView est prévue pour plus tard;
  • Dans GtkBuilder, il est désormais possible de définir des propriétés d'objets sur place (inline), au lieu d'utiliser des références par identifiant;
  • La commande pour convertir des fichiers UI de GTK 3 en GTK 4 a été ajoutée à gtk4-builder-tool;
  • La prise en charge des thèmes principaux (key theme), des menus à onglets (tabular menu) et des boîtes combinées (combo box) a été interrompue. Le widget GtkInvisible a été supprimé.

    Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster