GDK – Wikipedia

before-content-x4

GDK (GIMP Drawing Kit) ist eine Bibliothek, die als Wrapper für die Funktionen auf niedriger Ebene fungiert, die von den zugrunde liegenden Fenster- und Grafiksystemen bereitgestellt werden. GDK liegt zwischen dem Anzeigeserver und der GTK-Bibliothek und verarbeitet grundlegende Rendervorgänge wie Zeichnungsprimitive, Rastergrafiken (Bitmaps), Cursor, Schriftarten sowie Fensterereignisse und Drag & Drop-Funktionen.

Wie das GTK Scene Graph Kit (GSK) ist GDK Teil von GTK und unter der GNU Lesser General Public License (LGPL) lizenziert.

Softwarearchitektur[edit]

GTK wird auf einer Abstraktionsschicht namens GDK implementiert, wodurch GTK von Problemen auf niedriger Ebene wie dem Sammeln von Eingaben, Drag & Drop und der Konvertierung des Pixelformats befreit wird. GDK ist eine Zwischenschicht, die GTK von den Details des Fenstersystems trennt.

GDK ist ein wichtiger Bestandteil der Portabilität von GTK. Da GLib bereits plattformübergreifende Funktionen auf niedriger Ebene bereitstellt, muss GTK lediglich auf die Grafikebene des zugrunde liegenden Betriebssystems portiert werden, damit GTK auf anderen Plattformen ausgeführt werden kann. Daher ermöglichen die GDK-Ports zur Windows-API und zu Quartz die Ausführung von GTK-Anwendungen unter Windows bzw. MacOS.

Ab GTK + 2.8 unterstützt GDK Kairo, das mit GTK + 3 anstelle der Zeichenfunktionen von GDK verwendet werden sollte.[1]

GDK ist eine Zwischenschicht, die GTK von den Details des Fenstersystems isoliert. GDK ist eine dünne Hülle um Xlib. Das X Window System wird mit einer Low-Level-Bibliothek namens Xlib geliefert. Fast jede Funktion in GDK ist ein sehr dünner Wrapper um eine entsprechende Xlib-Funktion. Ein Teil der Komplexität (und Funktionalität) von Xlib ist jedoch verborgen, um die Programmierung zu vereinfachen und die Portierung von GDK auf andere Fenstersysteme wie Wayland oder Microsoft Windows zu vereinfachen. Die verborgene Xlib-Funktionalität wird für Anwendungsprogrammierer selten von Interesse sein. Beispielsweise sind viele Funktionen, die ausschließlich von Fenstermanagern verwendet werden, in GDK nicht verfügbar.

Mit GDK können Sie Low-Level-Aufgaben ausführen, z. B. “Diese Pixmap auf den Bildschirm übertragen”.

GDK bietet eine Schicht, die viel portabler ist als das X-Protokoll, ohne die Zugänglichkeit auf niedriger Ebene zu beeinträchtigen, die Systeme wie X bieten. Die wahre Stärke dieser Abstraktion besteht darin, dass Ihre Software automatisch auf dem Linux-Framebuffer und Windows gerendert wird, wenn Sie sie anstelle von X verwenden.

Die Unterstützung von OpenGL (oder OpenGL ES) in GDK ermöglicht eine etwas bessere Kontrolle der Grafikpipeline. OpenGL eignet sich gut zum Zusammensetzen von strukturierten Daten, ist jedoch zum Zeichnen völlig ungeeignet.

GdkFrameClock[edit]

GdkFrameClock wurde in GTK 3.8 hinzugefügt[2]

Während GTK-Anwendungen vom Mainloop gesteuert werden (vgl. Glib-Ereignisschleife), was bedeutet, dass die Anwendung die meiste Zeit in dieser Hauptschleife inaktiv ist und nur darauf wartet, dass etwas passiert, und dann die entsprechende Unterroutine aufruft, fügt GdkFrameClock einen zusätzlichen Mechanismus hinzu. das gibt der Anwendung einen “Impuls”. Es teilt der Anwendung mit, wann ein Fenster aktualisiert und neu gezeichnet werden soll.[3] Die Beat-Rate kann mit der Monitor-Aktualisierungsrate synchronisiert werden.

GTK Scene Graph Kit[edit]

In seiner Geschichte enthielt und verband GDK einige verschiedene Leinwände.

Die Entwickler erwogen auch neue Richtungen für die Bibliothek, einschließlich des Entfernens veralteter API-Komponenten und des Hinzufügens eines integrierten Szenendiagrammsystems (Canvas), ähnlich der Clutter-Grafikbibliothek, wodurch GTK effektiv in OpenGL und Vulkan integriert wird.[4][5]

Das GTK + Scene Graph Kit (GSK) wurde im März 2017 als Teil von GTK + 3.90 veröffentlicht. Es ist die Szenendiagramm- und Rendering-API für GTK. GSK wurde nicht weiter in GDK (das ebenfalls Teil von GTK ist) integriert, sondern in einem eigenen Verzeichnis gespeichert.

Fenstersysteme[edit]

GDK enthält Back-Ends für einige Fenstersysteme, nämlich für die Protokolle X11 und Wayland, für Quartz und GDI und sogar für die HTTP-Engine (Hypertext Transfer Protocol) Broadway.

Mit der Veröffentlichung von GNOME 3.16 im März 2015 erhielt GDK ein experimentelles Backend für das Mir Display Server-Protokoll.[8] Das Mir Display Server-Protokoll ist ein Produkt von Canonical für die Ubuntu-Distribution von Linux, das mit dem Wayland Display Server-Protokoll konkurrieren soll. Bisher ist es nur in Ubuntu implementiert.

Derzeit gibt es kein Back-End für KMS.

Um eine Anwendung zu starten und diese Instanz zu zwingen, ein bestimmtes Fenstersystem zu verwenden, geben Sie die Variable an GDK_BACKEND::
GDK_BACKEND=wayland gnome-calculator
GDK_BACKEND=wayland CLUTTER_BACKEND=wayland cheese

gdk-pixbuf[edit]

gdk-pixbuf ist ein Toolkit zum Laden von Bildern und zur Manipulation des Pixelpuffers. Die Bibliothek bietet Funktionen zum Laden und Speichern von Bildern, schnelles Skalieren und Zusammensetzen von Pixbufs, einfaches Laden von Animationen (dh animierte GIFs) und Rendern des libart-Bildpuffers in einer GdkDrawable-Instanz.

gdk-pixbuf hat eine ziemlich große API.

Die grundlegende Struktur in der gdk-pixbuf-Bibliothek ist GdkPixbuf, eine private, undurchsichtige Datenstruktur, die viele der von ArtPixBuf unterstützten Konzepte widerspiegelt. Tatsächlich haben die meisten privaten Datenfelder von GdkPixbuf dieselben Namen und Datentypen wie die entsprechenden in ArtPixBuf. Diese Ähnlichkeit geht auf die früheren Tage zurück, als gdk-pixbuf ein Wrapper um libart war. Seit dieser Zeit wurde die libart-Abhängigkeit entfernt und gdk-pixbuf wurde in die GTK + 2.0-Codebasis zusammengeführt. Daher beschränken sich die Tage von gdk-pixbuf als eigenständige Bibliothek auf die Version GNOME 1.x.

Mit der Veröffentlichung von GTK + 2.22 am 23.09.2010 wurde gdk-pixbuf wieder in eine eigenständige Bibliothek umgewandelt, nachdem es seit gtk + 2.0 als Teil von GTK + ausgeliefert wurde. Dies geschah in Vorbereitung auf den Übergang zu GTK + 3.

Die erste eigenständige Version war 2.22 am 21.09.2010 begann seine Entwicklung mit 2.21.3 am 23.06.2010.

Die neueste Version von gdk-pixbuf ist gdk-pixbuf 2.36.11 von 2017-Okt-02. Die Entwicklung von 3.36 begann mit 3.35.1 am 26.04.2016.

Geschichte[edit]

GDK wurde ursprünglich auf dem X Window System für den GIMP-Raster-Grafikeditor entwickelt.[9]

Siehe auch[edit]

Verweise[edit]

Externe Links[edit]


after-content-x4