Jump to content

ГДК

(Перенаправлено из набора для рисования GIMP )
ГДК
Оригинальный автор(ы) авторы GIMP
Разработчик(и) Проект GNOME
Репозиторий
Написано в С
Операционная система Linux , macOS , Microsoft Windows
Платформа X11 , Вейланд , Кварц и GDI
Тип Библиотека программного обеспечения
Лицензия Меньшая стандартная общественная лицензия GNU (LGPL)
Веб-сайт разработчик .гном .org /gdk3 /стабильный /

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

GdkРамкаЧасы

[ редактировать ]

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

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

Набор графов сцены GTK

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

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

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

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

Первым самостоятельным выпуском была версия 2.22, выпущенная 21 сентября 2010 г., ее разработка началась с версии 2.21.3 от 23 июня 2010 г.

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

См. также

[ редактировать ]
  1. ^ Переход с GTK+ 2.x на GTK+ 3 — используйте cairo для рисования.
  2. ^ «GdkFrameClock» .
  3. ^ Ларссон, Александр (04 ноября 2013 г.). «Современная модель рисования Gtk» .
  4. ^ Блог Альберто Руиса
  5. ^ Предложение Хэвока Пеннингтона по графу сцены
  6. ^ «Набор графов сцен GTK+» . 29 июля 2014 г.
  7. ^ «Графен» . 2 мая 2014 г.
  8. ^ «добавить экспериментальный бэкэнд для mir» .
  9. ^ GIMP - Краткая (и древняя) история GIMP
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: de09790514e6ddeb194c5949756d7e8c__1717385940
URL1:https://arc.ask3.ru/arc/aa/de/8c/de09790514e6ddeb194c5949756d7e8c.html
Заголовок, (Title) документа по адресу, URL1:
GDK - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)