GDK
# GDK

GDK (de l'anglais « GIMP Drawing Kit ») est une bibliothèque intégrée au widget toolkit GTK+ et s'interfaçant avec le système graphique afin de gérer le rendu de primitives graphiques (rectangles, arcs, droites), d'images matricielles (bitmaps), de curseurs, de fontes de caractères. Elle traite également les événements provenant notamment du clavier ou de la souris.

GDK est multiplateforme et elle est publiée sous licence GNU LGPL 2.1. Elle a été initialement conçue pour l'éditeur d'image matricielle GIMP.

## Architecture

La bibliothèque GDK se place en surcouche du système graphique ce qui permet d'isoler GTK+ des interfaces liées au système graphique. Elle joue ainsi un rôle important pour assurer la fonctionnalité multiplateforme de GTK+, en complément de la bibliothèque GLib aussi utilisée par GTK+ pour la portabilité.

GDK peut donc s'interfacer avec les systèmes graphiques GDI, Quartz, X11, Wayland, Mir.

Dans des environnements embarqués, GDK peut aussi s'interfacer avec les systèmes graphiques DirectFB, ou directement avec le Framebuffer Linux.

A noter également que GDK peut s'interfacer avec Broadway pour un affichage dans un Navigateur web.

GDK a d'abord été implémentée avec le support X11.

Les supports pour GDI et pour le Framebuffer Linux ont été introduits dans GTK+ 2.0. N'ayant pas été maintenu après GTK+ 2.4, le support pour le Framebuffer Linux a finalement été retiré après GTK+ 2.10.

Les supports DirectFB et Quartz ont été introduits dans GTK+ 2.10. N'ayant pas été maintenu après GTK+ 2.12, le support DirectFB a finalement été retiré à partir de GTK+ 3.0.

Les supports Wayland et Broadway ont été introduits dans GTK+ 3.2, tandis que le support Mir a été introduit à partir de GTK+ 3.16.

Pour l'instant, il n'y a pas de support KMS/DRM implémenté dans GDK.

Depuis GTK+ 2.8, GDK s'appuie sur la bibliothèque Cairo qui est alors utilisée dans l'implémentation de widgets GTK+. À partir de GTK+ 3.0, les fonctions de dessin de GDK sont devenues obsolètes, Cairo pouvant être utilisé.

