GDK
Więcej informacji
- Twórca
- Peter Mattis, Spencer Kimball i Josh MacDonald
- Typ
- Warstwa systemu okienkowego w GTK
- Licencja
- LGPL
- Kod źródłowy
- gitlab.gnome.org/GNOME/gtk
Warstwa GTK rozmawiająca z systemem okienkowym, dzięki której widżety nad nią nie muszą wiedzieć, czy działają na X11, Waylandzie, Windowsie, macOS-ie, czy w przeglądarce.
GIMP Drawing Kit istniał od początku, gdy Peter Mattis, Spencer Kimball i Josh MacDonald pisali w połowie lat 90. GTK na potrzeby GIMP-a. Chodziło o to, by Xlib występowała w jednym miejscu: GDK otwiera wyświetlacz, tworzy i przesuwa okna, czyta zdarzenia, obsługuje kursory, selekcje i przeciąganie, a w GTK 1 i 2 rysowało własnym kontekstem graficznym wzorowanym na X. Widżety widzą tylko GdkWindow i GdkEvent. Gdy więc Tor Lillqvist chciał w 1998 roku GIMP-a na Windowsie, przepisał GDK, a nie GTK; ten sam wzorzec powtórzył się dla Quartza na macOS-ie, DirectFB, Broadwaya, który renderuje do HTML5 w przeglądarce, a od 2011 roku dla Waylanda.
Rysowanie przeszło na Cairo w 2005 roku, a w GTK 4 w ogóle opuściło GDK: GdkWindow przemianowano na GdkSurface, a piksele tworzy GSK na GPU. Wczytywanie obrazów odeszło wcześniej jako gdk-pixbuf, po epizodzie z Imlib. Zostaje warstwa, którą prawie żaden programista nie woła bezpośrednio, ale od której wszyscy zależą. Kiedy program GTK zachowuje się inaczej na X11 i Waylandzie, różnica zwykle tkwi właśnie w GDK.