La sortie de GTK 3.99.0 a marqué l'achèvement des fonctionnalités prévues pour GTK 4

Publié version expérimentale finale du framework GTK 3.99.0, qui implémente toutes les fonctionnalités prévues pour GTK 4. La branche GTK 4 est développée dans le cadre d'un nouveau processus de développement qui tente de fournir aux développeurs d'applications une API stable et supportée pendant plusieurs années pouvant être utilisée sans crainte de devoir le faire. réécrivez les applications tous les six mois en raison des changements d'API dans la prochaine branche GTK. GTK 4 devrait sortir avant la fin de l’année.

De la plus significatif changements в GTK 4 vous pouvez noter:

  • Méthode de disposition des éléments en fonction de contraintes (disposition des contraintes), dans lequel l'emplacement et la taille des éléments enfants sont déterminés en fonction de la distance par rapport aux bordures et de la taille des autres éléments.
  • Un moteur de rendu basé sur l'API graphique Vulkan qui implémente des shaders pour de nombreux éléments CSS gourmands en ressources utilisés dans les widgets GTK.
  • intégration GSK (GTK Scene Kit) avec la possibilité de restituer des scènes graphiques via OpenGL et Vulkan.
  • L'organisation du rendu a été révisée - au lieu de la sortie vers un tampon, un modèle basé sur des nœuds de rendu est désormais utilisé, dans lequel la sortie est organisée sous la forme d'un arbre d'opérations de haut niveau, traitées efficacement par le GPU à l'aide d'OpenGL. et Vulkan.
  • Fonds pour une gestion flexible des changements de focus d’entrée.
  • Un modèle de diffusion d'événements modernisé qui élimine le besoin de sous-fenêtres lors du routage des événements d'entrée. La nécessité de mettre en œuvre un nouveau modèle est associée à une utilisation plus active des effets d'animation, dont le rendu doit se faire sans modifier la disposition des éléments visibles et, par conséquent, sans sous-fenêtre.
  • L'API GDK a été repensée en vue d'utiliser le protocole Wayland et les concepts associés. Les fonctionnalités basées sur X11 et Wayland ont été déplacées vers backends séparés.
  • Un grand nettoyage de l'API a été effectué, avec notamment la suppression des classes GtkMenu, GtkMenuBar et GtkToolbar, au profit de GMenu et d'options basées sur des menus popover.
  • GtkTextView et d'autres widgets d'entrée ont une pile d'annulation intégrée.
  • Ajout d'une nouvelle classe GtkNative pour les widgets qui ont leur propre surface d'affichage et peuvent fonctionner séparément au premier niveau, sans être liés aux widgets parents.
  • De nouveaux widgets ont été ajoutés, notamment GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView et un widget d'affichage Emoji.
  • Pour le développement des widgets, un nouvel objet GtkLayoutManager est introduit avec la mise en place d'un système de contrôle 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 tels que GtkBox et GtkGrid.
  • La gestion des événements a été simplifiée et est désormais utilisée uniquement pour la saisie. Les événements restants sont remplacés par des signaux séparés, par exemple, au lieu des événements de sortie, le signal « GdkSurface :: render » est proposé, et au lieu des événements de configuration, « GdkSurface :: size-changed » est proposé.
  • Ajout d'un nouveau calque d'abstraction GdkPaintable, représentant des objets qui peuvent être dessinés n'importe où et n'importe quelle taille, sans avoir besoin de trier les calques de mise en page.
  • Le backend Broadway a été réécrit pour permettre le rendu de la sortie de la bibliothèque GTK dans une fenêtre de navigateur Web.
  • L'API associée à l'exécution d'opérations de glisser-déposer a été repensée, y compris les objets GdkDrag et GdkDrop séparés proposés.

Améliorations par rapport à la version de test précédente :

  • L'ancienne implémentation de l'API d'accessibilité pour les personnes handicapées a été supprimée, remplacée par une nouvelle version basée sur la spécification AIR et le widget GtkAccessible.
  • Ajout de la prise en charge des étiquettes modifiables (GtkEditableLabel).
  • De nouveaux modèles de listes ont été proposés pour afficher les signets (GtkBookmarkList), les chaînes (GtkStringList) et les blocs de sélection (GtkBitset).
  • Le widget GtkTreeView a la possibilité de modifier des cellules.
  • L'implémentation du défilement a été améliorée dans GtkGridView et GtkListView, la prise en charge du défilement et de l'expansion automatiques a été ajoutée.
  • GtkWidget accélère considérablement le traitement de diverses actions.
  • Ajout de la prise en charge du défilement et du filtrage incrémentiels pour GtkFilterListModel et GtkSortListModel.
  • Inspector a ajouté la prise en charge de l'inspection des modèles de liste et la possibilité de naviguer directement entre les objets.
  • Dans GDK, l'historique de défilement a été enregistré, l'API GdkDevice a été nettoyée et la séparation des appareils en maître et esclave a été arrêtée.
  • Ajout d'un nouveau backend GDK pour macOS.
  • Un nouveau backend de rendu GDK basé sur ANGLE, intercalaires pour traduire les appels OpenGL ES vers OpenGL, Direct3D 9/11, Desktop GL et Vulkan.

Source: opennet.ru

Ajouter un commentaire