GDK
Altre info
- Creatore
- Peter Mattis, Spencer Kimball e Josh MacDonald
- Tipo
- Strato di interfaccia con il sistema a finestre in GTK
- Licenza
- LGPL
- Codice sorgente
- gitlab.gnome.org/GNOME/gtk
Lo strato di GTK che dialoga con il sistema a finestre, così che i widget sopra non debbano sapere se stanno su X11, Wayland, Windows, macOS o dentro un browser.
Il GIMP Drawing Kit esisteva fin dall'inizio, quando a metà degli anni Novanta Peter Mattis, Spencer Kimball e Josh MacDonald scrissero GTK per GIMP. L'idea era di confinare Xlib in un solo punto: GDK apre il display, crea e sposta le finestre, legge gli eventi, gestisce cursori, selezioni e drag-and-drop, e in GTK 1 e 2 disegnava con un proprio contesto grafico che rispecchiava quello di X. I widget vedono soltanto GdkWindow e GdkEvent. Così, quando nel 1998 Tor Lillqvist volle GIMP su Windows, a essere reimplementato fu GDK, non GTK, e lo schema si ripeté per Quartz su macOS, per DirectFB, per Broadway, che produce HTML5 in un browser, e dal 2011 per Wayland.
Il disegno passò a Cairo nel 2005 e in GTK 4 lasciò del tutto GDK: GdkWindow è diventato GdkSurface e i pixel li produce GSK sulla GPU. Il caricamento delle immagini era già uscito come gdk-pixbuf, dopo una parentesi con Imlib. Resta uno strato che quasi nessun programmatore chiama direttamente ma da cui tutti dipendono. Quando un programma GTK si comporta in modo diverso su X11 e su Wayland, la differenza di solito sta in GDK.