Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Библиотека программного обеспечения
Software library
GDK (GIMP Drawing Kit) — это библиотека, выступающая в качестве обертки для функций низкого уровня, предоставляемых базовыми оконными и графическими системами. GDK располагается между сервером отображения и библиотекой GTK, обеспечивая базовую отрисовку, такую как рисование примитивов, растровую графику (растровые изображения), курсоры, шрифты, а также обработку событий окна и функциональность перетаскивания. Как и GTK Scene Graph Kit (GSK), GDK является частью GTK и распространяется по лицензии GNU Lesser General Public License (LGPL).
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. Like GTK Scene Graph Kit (GSK), GDK is part of GTK and licensed under the GNU Lesser General Public License (LGPL).
Архитектура программного обеспечения
GTK реализован поверх слоя абстракции под названием GDK, освобождая GTK от задач низкого уровня, таких как сбор входных данных, перетаскивание и преобразование форматов пикселей. GDK — это промежуточный слой, отделяющий GTK от особенностей оконной системы. GDK является важной частью переносимости GTK. Поскольку GLib уже предоставляет низкоуровневую кроссплатформенную функциональность, для запуска GTK на других платформах необходимо лишь портировать GDK на графический уровень базовой операционной системы. Таким образом, порты GDK в Windows API и Quartz обеспечивают работу GTK-приложений в Windows и macOS соответственно. Начиная с GTK+ 2.8, GDK поддерживает Cairo, который следует использовать с GTK+ 3 вместо функций рисования GDK. GDK — это промежуточный слой, изолирующий GTK от деталей оконной системы. GDK представляет собой тонкую обертку вокруг Xlib. Система X Window поставляется с библиотекой низкого уровня под названием Xlib. Практически каждая функция в GDK является очень тонкой оберткой вокруг соответствующей функции Xlib, но часть сложности (и функциональности) Xlib скрыта для упрощения программирования и облегчения портирования GDK в другие оконные системы, такие как Wayland или Microsoft Windows. Скрытая функциональность Xlib редко представляет интерес для разработчиков приложений; например, многие функции, используемые исключительно менеджерами окон, не представлены в GDK. GDK позволяет выполнять задачи низкого уровня, например, "скопировать эту растровую карту на экран". GDK предоставляет уровень, который гораздо более портативен, чем, например, протокол X, не теряя при этом доступности низкого уровня, обеспечиваемой такими системами, как X. Настоящая сила этой абстракции заключается в том, что при выборе ее использования вместо, скажем, X, ваше программное обеспечение автоматически будет отображаться на Linux Framebuffer и Windows. Поддержка OpenGL (или OpenGL ES) в GDK облегчает более тонкий контроль над графическим конвейером; OpenGL хорошо подходит для композитинга текстурированных данных, но совершенно непригоден для рисования.
GTK is implemented on top of an abstraction layer called GDK, freeing GTK from low level concerns like input gathering, Drag and drop and pixel format conversion. GDK is an intermediate layer which separates GTK from the details of the windowing system. GDK is an important part of GTK's portability. 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. Hence, the GDK ports to the Windows API and Quartz are what enable GTK applications to run on Windows and macOS, respectively. Starting with GTK+ 2.8, GDK supports Cairo which should be used with GTK+ 3 instead of GDK's drawing functions. GDK is an intermediate layer which isolates GTK from the details of the windowing system. GDK is a thin wrapper around Xlib. The X Window System comes with a low level library called Xlib. Almost every function in GDK is a very thin wrapper around a corresponding Xlib function; but some of the complexity (and functionality) of Xlib is hidden, to simplify programming and to make GDK easier to port to other windowing systems, such as Wayland or Microsoft Windows. 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. GDK lets you do low level stuff, like e. g. "blit this pixmap to the screen". GDK provides a layer that is much more portable than say the X protocol, without sacrificing any of the low level accessibility that systems such as X provide. 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. Having OpenGL (or OpenGL ES) support in GDK, facilitates a slightly better control of the graphics pipeline; OpenGL is well suited for compositing textured data but totally unsuited for drawing.
GdkFrameClock (Гарантия времени)
GdkFrameClock был добавлен в GTK 3.8.
GdkFrameClock was added in GTK 3.8
Несмотря на то, что приложения GTK по-прежнему работают на основе главного цикла (см. цикл событий Glib), то есть приложение большую часть времени простаивает внутри этого цикла, ожидая наступления какого-либо события и вызывая соответствующую подпрограмму при его возникновении, GdkFrameClock добавляет дополнительный механизм, который посылает приложению "сигнал". Он сообщает приложению, когда следует обновлять и перерисовывать окно. Частота этих сигналов может быть синхронизирована с частотой обновления монитора.
While GTK applications remain mainloop driven (cf. Glib event loop), meaning the application is idle inside this main loop most of the time and just waits for something to happen and then calls the appropriate subroutine when it does, GdkFrameClock adds an additional mechanism, that gives a "pulse" to the application. It tells the application when to update and repaint a window. The beat rate can be synchronized with the monitor refresh rate.
gdk-pixbuf
gdk pixbuf – это набор инструментов для загрузки изображений и манипулирования буфером пикселей. Библиотека предоставляет средства загрузки и сохранения изображений, быстрого масштабирования и компоновки пиксельных буферов, простую загрузку анимации (например, анимированных GIF-файлов) и рендеринг буфера изображений libart в экземпляр GdkDrawable. gdk pixbuf имеет достаточно большой API. Фундаментальной структурой в библиотеке gdk pixbuf является GdkPixbuf – закрытая, непрозрачная структура данных, отражающая многие концепции, поддерживаемые ArtPixBuf. Фактически, большинство полей частных данных GdkPixbuf имеют те же имена и типы данных, что и соответствующие поля в ArtPixBuf. Это сходство восходит к ранним дням, когда gdk pixbuf был оберткой над libart. С тех пор зависимость от libart была устранена, а gdk pixbuf был включен в кодовую базу GTK+ 2.0. Таким образом, существование gdk pixbuf как автономной библиотеки было ограничено выпуском GNOME 1. С выпуском GTK+ 2.22 23 сентября 2010 года gdk pixbuf вновь стал автономной библиотекой, после того как поставлялся в составе GTK+ начиная с gtk+ 2.0. Это было сделано в преддверии перехода на GTK+ 3.
gdk pixbuf is a toolkit for image loading and pixel buffer manipulation. The library provides image loading and saving facilities, fast scaling and compositing of pixbufs, simple animation loading (i. e. animated GIFs), and rendering the libart image buffer to a GdkDrawable instance. gdk pixbuf has a fairly large API. The fundamental structure in the gdk pixbuf library is GdkPixbuf, a private, opaque data structure that mirrors many of the same concepts that ArtPixBuf supports. In fact, most of GdkPixbuf's private data fields have the same names and data types as the corresponding ones in ArtPixBuf. This similarity dates back to the earlier days when gdk pixbuf was a wrapper around libart. Since that time, the libart dependency has been stripped out, and gdk pixbuf was merged into the GTK+ 2.0 code base. As such, gdk pixbuf's days as a standalone library are limited to the GNOME 1 release. With the release of GTK+ 2.22 on 2010 09 23, gdk pixbuf has been turned back into a standalone library, after being shipped as part of GTK+ since gtk+ 2.0. This was done in preparation for the transition to GTK+ 3.
https://git.gnome.org/browse/gdk-pixbuf/
https://git. gnome. org/browse/gdk pixbuf/
Первым автономным релизом был 2.22 21 сентября 2010 года, а его разработка началась с версии 2.21.3 23 июня 2010 года. Последний релиз gdk pixbuf – gdk pixbuf 2.36.11 от 2 октября 2017 года. Разработка версии 3.36 началась с 3.35.1 26 апреля 2016 года.
The first stand alone release was 2.22 on 2010 Sep 21, its development started with 2.21.3 on 2010 06 23. The latest release of gdk pixbuf is gdk pixbuf 2.36.11 from 2017 Oct 02. The development of 3.36 started with 3.35.1 on 2016 04 26.
История
GDK изначально разрабатывался на X Window System для растрового графического редактора GIMP.
GDK was originally developed on the X Window System for the GIMP raster graphics editor.