Article de reference

GDK

GDK ( GIMP Drawing Kit) est une bibliothèque qui agit comme un wrapper autour des fonctions de bas niveau fournies par les systèmes de fenêtrage et de graphisme sous-jacents. GD...

GDK ( GIMP Drawing Kit) est une bibliothèque qui agit comme un wrapper autour des fonctions de bas niveau fournies par les systèmes de fenêtrage et de graphisme sous-jacents. GDK se situe entre le serveur d'affichage et la bibliothèque GTK , gérant le rendu de base comme les primitives de dessin, les graphiques raster (bitmaps), les curseurs , les polices , ainsi que les événements de fenêtre et la fonctionnalité glisser-déposer .

Comme GTK Scene Graph Kit (GSK), GDK fait partie de GTK et est sous licence GNU Lesser General Public License (LGPL).

Architecture logicielle

GDK contient des back-ends pour X11 , Wayland , Broadway ( HTTP ), Quartz et GDI et s'appuie sur Cairo pour le rendu. Son nouveau graphe de scène (canvas) est en cours de développement, son arrivée devrait annoncer GTK 4.0.

GTK est implémenté sur une couche d'abstraction appelée GDK, libérant GTK des problèmes de bas niveau comme la collecte des entrées, le glisser-déposer et la conversion des formats de pixels. GDK est une couche intermédiaire qui sépare GTK des détails du système de fenêtrage.

GDK est un élément important de la portabilité de GTK. Étant donné que les fonctionnalités multiplateformes de bas niveau sont déjà fournies par GLib , il suffit de porter GDK sur la couche graphique du système d'exploitation sous-jacent pour que GTK fonctionne sur d'autres plates-formes. Par conséquent, les ports GDK vers l' API Windows et Quartz permettent aux applications GTK de fonctionner respectivement sur Windows et macOS .

À partir de GTK+ 2.8, GDK prend en charge Cairo qui doit être utilisé avec GTK+ 3 au lieu des fonctions de dessin de GDK.

GDK est une couche intermédiaire qui isole GTK des détails du système de fenêtrage . GDK est une enveloppe mince autour de Xlib . Le système X Window est fourni avec une bibliothèque de bas niveau appelée Xlib . Presque toutes les fonctions de GDK sont une enveloppe très mince autour d'une fonction Xlib correspondante ; mais une partie de la complexité (et des fonctionnalités) de Xlib est cachée, pour simplifier la programmation et rendre GDK plus facile à porter sur d'autres systèmes de fenêtrage, tels que Wayland ou Microsoft Windows. La fonctionnalité cachée de Xlib intéressera rarement les programmeurs d'applications ; par exemple, de nombreuses fonctionnalités utilisées uniquement par les gestionnaires de fenêtres ne sont pas exposées dans GDK.

GDK vous permet de faire des choses de bas niveau, comme par exemple « afficher cette pixmap sur l'écran ».

GDK fournit une couche beaucoup plus portable que le protocole X, par exemple, sans sacrifier l'accessibilité de bas niveau que fournissent des systèmes tels que X. La véritable puissance de cette abstraction est que si vous choisissez de l'utiliser plutôt que, par exemple, X, votre logiciel s'affichera automatiquement sur le Framebuffer Linux et Windows.

Le support d'OpenGL (ou d'OpenGL ES ) dans GDK facilite un contrôle légèrement meilleur du pipeline graphique ; OpenGL est bien adapté à la composition de données texturées mais totalement inadapté au dessin.

Horloge de cadre Gdk

GdkFrameClock a été ajouté dans GTK 3.8

Alors que les applications GTK restent pilotées par la boucle principale (cf. Boucle d'événements Glib ), ce qui signifie que l'application est inactive dans cette boucle principale la plupart du temps et attend simplement que quelque chose se produise puis appelle la sous-routine appropriée lorsque cela se produit, GdkFrameClock ajoute un mécanisme supplémentaire, qui donne une « impulsion » à l'application. Il indique à l'application quand mettre à jour et repeindre une fenêtre. La fréquence de battement peut être synchronisée avec la fréquence de rafraîchissement du moniteur.

Kit graphique de scène GTK

Au cours de son histoire, GDK a contenu et a été lié à plusieurs toiles différentes .

  • https://wiki.gnome.org/Attic/ProjectRidley/CanvasOverview
    • https://wiki.gnome.org/Attic/ProjectRidley/CanvasOverview/Canvases
  • https://wiki.gnome.org/Projects/GooCanvas

Les développeurs envisageaient également de nouvelles directions pour la bibliothèque, notamment la suppression des composants API obsolètes et l'ajout d'un système de graphique de scène intégré (canvas) , similaire à la bibliothèque graphique Clutter, intégrant efficacement GTK avec OpenGL et Vulkan .

Le kit de graphes de scènes GTK+ (GSK) a été publié dans le cadre de GTK+ 3.90 en mars 2017. Il s'agit de l'API de graphe de scènes et de rendu pour GTK. GSK n'a pas été davantage intégré à GDK (qui fait également partie de GTK) mais est conservé dans son propre répertoire.

Systèmes de fenêtrage

GDK contient des back-ends vers plusieurs systèmes de fenêtrage , à savoir les protocoles X11 et Wayland , Quartz et GDI , et même vers le moteur de protocole de transfert hypertexte (HTTP) Broadway.

Avec la sortie de GNOME 3.16 en mars 2015, GDK a obtenu un back-end expérimental pour le protocole de serveur d'affichage Mir . Le protocole de serveur d'affichage Mir est un produit de Canonical pour leur distribution Ubuntu de Linux, qu'ils ont l'intention de concurrencer avec le protocole de serveur d'affichage Wayland ; jusqu'à présent, il n'est implémenté que dans Ubuntu.

Actuellement, il n'existe pas de back-end pour KMS .

Pour démarrer une application et forcer cette instance à utiliser un certain système de fenêtrage, vous spécifiez la variable GDK_BACKEND :
GDK_BACKEND=wayland gnome-calculator
GDK_BACKEND=wayland CLUTTER_BACKEND=wayland cheese

gdk-pixbuf

gdk-pixbuf est une boîte à outils pour le chargement d'images et la manipulation de tampons de pixels. La bibliothèque fournit des fonctions de chargement et de sauvegarde d'images, une mise à l'échelle et une composition rapides de pixbufs, un chargement d'animation simple (c'est-à-dire des GIF animés) et le rendu du tampon d'image libart dans une instance GdkDrawable.

gdk-pixbuf possède une API assez volumineuse.

La structure fondamentale de la bibliothèque gdk-pixbuf est GdkPixbuf, une structure de données privée et opaque qui reflète de nombreux concepts pris en charge par ArtPixBuf. En fait, la plupart des champs de données privés de GdkPixbuf ont les mêmes noms et types de données que ceux correspondants dans ArtPixBuf. Cette similitude remonte aux premiers jours où gdk-pixbuf était un wrapper autour de libart . Depuis lors, la dépendance à libart a été supprimée et gdk-pixbuf a été intégré dans la base de code GTK+ 2.0. Ainsi, les jours de gdk-pixbuf en tant que bibliothèque autonome sont limités à la version GNOME 1 .

Avec la sortie de GTK+ 2.22 le 23/09/2010, gdk-pixbuf est redevenue une bibliothèque autonome, après avoir été intégrée à GTK+ depuis gtk+ 2.0. Cette opération a été effectuée en prévision de la transition vers GTK+ 3.

  • https://git.gnome.org/browse/gdk-pixbuf/

La première version autonome était la 2.22 le 21 septembre 2010, son développement a commencé avec la 2.21.3 le 23 juin 2010.

Histoire

GDK a été développé à l'origine sur le système X Window pour l' éditeur de graphiques raster GIMP .

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index