GDK
Meer info
- Bedenker
- Peter Mattis, Spencer Kimball en Josh MacDonald
- Type
- Venstersysteemlaag in GTK
- Licentie
- LGPL
- Broncode
- gitlab.gnome.org/GNOME/gtk
De laag van GTK die met het venstersysteem praat, zodat de widgets erboven niet hoeven te weten of ze op X11, Wayland, Windows, macOS of in een webbrowser draaien.
De GIMP Drawing Kit was er vanaf het begin, toen Peter Mattis, Spencer Kimball en Josh MacDonald midden jaren negentig GTK schreven voor GIMP. Het idee was Xlib op één plek te houden: GDK opent het scherm, maakt en verplaatst vensters, leest gebeurtenissen, regelt cursors, selecties en slepen-en-neerzetten, en tekende in GTK 1 en 2 met een eigen graphics context die die van X nabootste. De widgets zien alleen GdkWindow en GdkEvent. Toen Tor Lillqvist in 1998 GIMP naar Windows wilde brengen, herschreef hij dan ook GDK en niet GTK. Hetzelfde patroon herhaalde zich voor Quartz op macOS, DirectFB, Broadway (dat naar HTML5 in een browser rendert) en vanaf 2011 Wayland.
Het tekenen ging in 2005 over naar Cairo en verdween in GTK 4 helemaal uit GDK: GdkWindow werd GdkSurface en de pixels komen van GSK op de GPU. Het laden van afbeeldingen was al vertrokken als gdk-pixbuf, na een tussenstop bij Imlib. Wat overblijft is een laag die bijna geen programmeur rechtstreeks aanroept maar waar iedereen van afhangt. Gedraagt een GTK-programma zich op X11 anders dan op Wayland, dan zit het verschil meestal in GDK.