GDK
Mais informações
- Criado por
- Peter Mattis, Spencer Kimball e Josh MacDonald
- Tipo
- Camada do sistema de janelas no GTK
- Licença
- LGPL
- Código-fonte
- gitlab.gnome.org/GNOME/gtk
A camada do GTK que conversa com o sistema de janelas, para que os widgets acima dela não precisem saber se estão no X11, no Wayland, no Windows, no macOS ou dentro de um navegador.
O GIMP Drawing Kit existia desde o início, quando Peter Mattis, Spencer Kimball e Josh MacDonald escreveram o GTK para o GIMP, em meados dos anos 1990. A ideia era manter a Xlib em um só lugar: o GDK abre o display, cria e move janelas, lê eventos, cuida de cursores, seleções e arrastar e soltar e, no GTK 1 e 2, desenhava com um contexto gráfico próprio que espelhava o do X. Os widgets enxergam apenas GdkWindow e GdkEvent. Assim, quando Tor Lillqvist quis o GIMP no Windows, em 1998, foi o GDK que ele reimplementou, não o GTK, e o mesmo padrão se repetiu para o Quartz no macOS, o DirectFB, o Broadway, que renderiza em HTML5 num navegador, e, a partir de 2011, o Wayland.
O desenho passou para o Cairo em 2005 e, no GTK 4, saiu do GDK por completo: GdkWindow virou GdkSurface e os pixels são produzidos pelo GSK na GPU. O carregamento de imagens já havia saído antes, como gdk-pixbuf, depois de uma temporada com o Imlib. O que sobra é uma camada que quase nenhum programador chama diretamente, mas da qual todo mundo depende. Quando um programa GTK se comporta de forma diferente no X11 e no Wayland, é no GDK que a diferença costuma morar.