GDK - GDK

GDK
Упрощенная программная архитектура GTK
Упрощенная программная архитектура GTK
Оригинальный автор (ы)Авторы GIMP
Разработчики)Проект GNOME
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаLinux, macOS, Майкрософт Виндоус
ПлатформаX11, Wayland, другие[который? ]
ТипБиблиотека программного обеспечения
ЛицензияСтандартная общественная лицензия ограниченного применения GNU (LGPL)
Интернет сайтразработчик.гном.org/ gdk3/стабильный/

GDK (GIMP Drawing Kit) - это библиотека что действует как обертка вокруг низкоуровневых функций, предоставляемых базовыми оконными и графическими системами. GDK находится между сервер отображения и GTK библиотека, обработка базовых рендеринг например, рисование примитивов, растровая графика (растровые изображения), курсоры, шрифты, а также оконные события и перетаскивание функциональность.

Нравиться Комплект графа сцены GTK (GSK), GDK является частью GTK и лицензируется на условиях Стандартная общественная лицензия ограниченного применения GNU (LGPL).

Архитектура программного обеспечения

GDK содержит серверные части для X11, Wayland, Бродвей (HTTP ), Кварцевый и GDI и полагается на Каир для рендеринга. Это новое граф сцены (холст) находится в стадии разработки, его появление должно предвещать появление GTK 4.0.

GTK реализован поверх уровня абстракции под названием GDK, освобождая GTK от низкоуровневых проблем, таких как сбор входных данных, Перетащите и отпустите и преобразование формата пикселей. GDK - это промежуточный уровень, который отделяет GTK от деталей оконной системы.

GDK - важная часть переносимости GTK. Поскольку низкоуровневые кроссплатформенные функции уже предоставляются GLib, все, что нужно для работы GTK на других платформах, - это портировать GDK на базовый Операционная система графический слой. Следовательно, GDK портирует на Windows API и Кварцевый позволяют приложениям GTK работать на Windows и macOS, соответственно.

Начиная с GTK + 2.8, GDK поддерживает Каир которые следует использовать с GTK + 3 вместо функций рисования GDK.[1]

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 хорошо подходит для компоновки текстурированных данных, но совершенно не подходит для рисования.

GdkFrameClock

GdkFrameClock был добавлен в GTK 3.8[2]

В то время как приложения GTK остаются управляемыми главным циклом (см. Цикл событий Glib ), что означает, что приложение большую часть времени простаивает в этом основном цикле и просто ждет, чтобы что-то произошло, а затем вызывает соответствующую подпрограмму, когда это происходит, GdkFrameClock добавляет дополнительный механизм, который дает «импульс» приложению. Он сообщает приложению, когда обновлять и перерисовывать окно.[3] Частоту ударов можно синхронизировать с частотой обновления монитора.

Комплект графа сцены GTK

В своей истории GDK содержал и был связан с несколькими разными Холсты.

Разработчики также рассматривали новые направления для библиотеки, включая удаление устаревших API компоненты и добавление интегрированного граф сцены (холст) система, аналогичная Беспорядок графическая библиотека, эффективно интегрирующая GTK с OpenGL и Вулкан.[4][5]

GTK + Scene Graph Kit (GSK) был выпущен как часть GTK + 3.90 в марте 2017 года. Это граф сцены и API рендеринга для GTK. GSK не интегрирован с GDK (который также является частью GTK), но хранится в собственном каталоге.

Оконные системы

GDK содержит бэкэнды для пары оконные системы, а именно X11 и Wayland протоколы, чтобы Кварцевый и GDI, и даже Протокол передачи гипертекста (HTTP) движок Broadway.

С выпуском GNOME 3.16 в марте 2015 года GDK получил экспериментальную серверную часть для Мир отображать протокол сервера.[8] Протокол сервера отображения Мир является продуктом Канонический для них Ubuntu дистрибутив Linux, который они намерены составить конкуренцию протоколу сервера отображения Wayland; пока это реализовано только в Ubuntu.

В настоящее время не существует серверной части для KMS.

Чтобы запустить приложение и заставить этот экземпляр использовать определенную оконную систему, вы указываете переменную GDK_BACKEND:
GDK_BACKEND = путевой гном-калькулятор
GDK_BACKEND = Wayland CLUTTER_BACKEND = Wayland сыр

gdk-pixbuf

gdk-pixbuf - это набор инструментов для загрузки изображений и управления пиксельным буфером. Библиотека предоставляет средства загрузки и сохранения изображений, быстрое масштабирование и компоновку 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.x.

С выпуском GTK + 2.22 от 23 сентября 2010 года gdk-pixbuf был снова превращен в отдельную библиотеку после того, как он был доставлен как часть GTK +, начиная с gtk + 2.0. Это было сделано при подготовке к переходу на GTK + 3.

Первый автономный выпуск был 2.22 21 сентября 2010 г. его разработка началась с 2.21.3 на 23.06.2010.

Последний выпуск gdk-pixbuf: gdk-pixbuf 2.36.11 с 2017-окт-02. Разработка 3.36 началась с 3.35.1 on 2016-04-26.

История

GDK изначально разрабатывался на X Window System для GIMP редактор растровой графики.[9]

Смотрите также

Рекомендации

  1. ^ Переход с GTK + 2.x на GTK + 3 - Используйте cairo для рисования
  2. ^ "GdkFrameClock".
  3. ^ Ларссон, Александр (4 ноября 2013 г.). «Современная чертежная модель Gtk».
  4. ^ Блог Альберто Руиса
  5. ^ Предложение графа сцены Havoc Pennington
  6. ^ "Набор графических изображений GTK +". 2014-07-29.
  7. ^ «Графен». 2014-05-02.
  8. ^ "добавить экспериментальный бэкэнд для мира".
  9. ^ GIMP - Краткая (и древняя) история GIMP

внешняя ссылка