Linux gdk что это

ГДК — GDK

Эта статья о библиотеке графической системы. Комплекты для разработки видеоигр см. В разделе Комплект для разработки игр . Чтобы узнать о языке, см. Язык Гаданг .

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

Как и GTK Scene Graph Kit (GSK), GDK является частью GTK и находится под лицензией GNU Lesser General Public License (LGPL).

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

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

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

Читайте также:  Telnet udp порт linux

GdkFrameClock

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

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

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

В своей истории GDK содержал и связывался с парой разных холстов .

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

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

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

GDK содержит серверные части для пары оконных систем , а именно для протоколов X11 и Wayland , для Quartz и GDI и даже для механизма Broadway протокола передачи гипертекста (HTTP).

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

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

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

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 июня 2010 года .

Читайте также:  Linux mint root терминал

Последним выпуском gdk-pixbuf является gdk-pixbuf 2.36.11 от 2 октября 2017 г. Разработка 3.36 началась с версии 3.35.1 26 апреля 2016 года .

История

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

Источник

GDK — GDK

Эта статья о библиотеке графической системы. О наборах для разработки видеоигр см. Комплект для разработки игр. Для языка см. Язык гаданг.

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

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

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] Частоту ударов можно синхронизировать с частотой обновления монитора.

Читайте также:  My Test File

Комплект графа сцены 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.

Источник

Оцените статью
Adblock
detector