GDK

GDK (GIMP Drawing Kit) is a library that acts as a wrapper around the low-level functions provided by the underlying windowing and graphics systems.

GDK lies between the display server and the GTK library, handling basic rendering such as drawing primitives, raster graphics (bitmaps), cursors, fonts, as well as window events and drag-and-drop functionality.

Since low-level cross-platform functionality is already provided by GLib, all that is needed to make GTK run on other platforms is to port GDK to the underlying operating system's graphics layer.

The concealed Xlib functionality will rarely be of interest to application programmers; for example, many features used solely by window managers are not exposed in GDK.

The true power of this abstraction is that if you choose to use it rather than say, X, your software will automatically render on the Linux Framebuffer and Windows.

Developers were also considering new directions for the library, including removing deprecated API components and adding an integrated scene graph (canvas) system, similar to the Clutter graphics library, effectively integrating GTK with OpenGL and Vulkan.

[citation needed] With the release of GNOME 3.16 in March 2015, GDK obtained an experimental back-end for the Mir display server protocol.

[citation needed] To start an application and force this instance of it to use a certain windowing system, you specify the variable GDK_BACKEND: GDK_BACKEND=wayland gnome-calculator GDK_BACKEND=wayland CLUTTER_BACKEND=wayland cheese gdk-pixbuf is a toolkit for image loading and pixel buffer manipulation.

GDK contains back-ends to X11 , Wayland , Broadway ( HTTP ), Quartz and GDI and relies on Cairo for the rendering. Its new scene graph (canvas) is work-in-progress, its arrival should herald GTK 4.0.