Jump to content

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

ГСК
Оригинальный автор(ы) Эммануэле Басси и др.
Разработчик(и) Проект GNOME
Первоначальный выпуск 24 марта 2017 г .; 7 лет назад ( 24.03.2017 )
Написано в С
Операционная система Часть ГТК
Тип Библиотека программного обеспечения
Лицензия LGPL
Веб-сайт документы .gtk .org /gsk4
Упрощенная программная архитектура GTK .
Таксономия CSS .

GTK Scene Graph Kit ( GSK ) — это API рендеринга и графа сцены для GTK, представленный в версии 3.90. GSK находится между элементами графического управления (виджетами) и рендерингом.

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

Обоснование

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

ГСК входит в состав ГТК. GSK предназначен для использования самим GTK и приложениями на базе GTK, которые хотят заменить Clutter для своего пользовательского интерфейса. Приложения, которые использовали Clutter вместо использования только GTK, - это, например, GNOME Shell , GNOME Videos , GNOME Boxes и Cheese .

Любое приложение, которое использует графические элементы управления GTK (виджеты), в отличие от тех приложений, которые получают окно GTK и затем рисуют себя в нем, получают выгоду от GSK.

Производительность

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

Рисование графических элементов управления (виджетов) без графа сцены приводит к рендерингу вещей, которые не отображаются на экране, вещей, которые не нужно визуализировать; следовательно, это приводит к предотвратимым потерям производительности и срока службы батареи. График сцены используется для определения скрытой поверхности .

Простота

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

Способ рисования виджетов в GTK (без использования Clutter) заключался в том, что функция рисования (часть GDK , отсюда и название (GIMP «Drawing» Kit)) рисовала все. Невозможно было узнать, что только что было нарисовано. Чтобы узнать, где в данный момент находился указатель мыши, необходимо было вычислить текущую позицию. С помощью GSK должно быть довольно легко писать сложные графические элементы управления (виджеты) и при этом легко отслеживать местонахождение указателя мыши.

Для GTK было решено перейти на модель на основе каскадной таблицы стилей (CSS) для определения стилей (т. е . оформления тем или оформления ) и отображения элементов графического управления (виджетов). В CSS тени, границы, отступы и свойства стиля имеют четко определенную семантику . Некоторые из этих семантик трудно реализовать с помощью старой модели рисования GTK.

GSK использует графен, [1] внешняя библиотека, в которой хранится коллекция типов геометрии — точек, размеров, прямоугольников, векторов, квадратов, кватернионов, матриц. графен был портирован в систему сборки Meson .

Конвейер рендеринга GSK

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

GSK использует двухуровневый подход: [2]

  1. Нижний уровень представляет собой простое дерево операций рендеринга; его можно преобразовать в соответствующие команды рендеринга с минимальными изменениями состояния, поэтому он преобразуется в конвейер рендеринга. Дерево операций рендеринга представлено экземплярами GskRenderNode; экземпляр GskRenderer берет узлы рендеринга и отправляет их (после возможного изменения порядка и преобразования в более подходящее представление) базовой графической системе.
  2. более высокий уровень: сложный набор логических уровней; он добавляет удобный API высокого уровня для разработчиков приложений.

API рендеринга

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

Начиная с GTK 3.90, который является номером разрабатываемой версии того, что впоследствии станет GTK 4, GSK поддерживает рендеринг с использованием следующих серверных частей:

беспорядок

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

Clutter был выпущен для публики 22 июня 2006 г. Библиотека интеграции «clutter-gtk» доступна с 29 ноября 2006 г. [3]

На 2-м саммите Desktop Summit в августе 2011 года в Берлине много говорилось о «GTK+ 4.0 и Clutter 2.0». [4]

Идея внедрить граф сцены в GTK.

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

В 2008 году такие разработчики, как Havoc Pennington, рассматривали возможность добавления в GTK холста сцены, поскольку люди за пределами GTK использовали такие вещи, как Clutter , Pigment, HippoCanvas или GooCanvas . [5] Элементы графического управления (виджеты) было предложено сделать одним видом объектов в более гибком графе сцены.

До GSK рисование выполнялось с помощью GDK — обработка базового рендеринга , такого как рисование примитивов, растровой графики (растровые изображения), курсоров , шрифтов , а также оконных событий и функций перетаскивания . [6]

В июне 2006 года была выпущена Clutter , библиотека «интерактивного холста» на основе OpenGL. У Clutter есть собственный граф сцены, и разработчики GNOME предпочитали использовать граф сцены Clutter с GTK, чему способствовала библиотека clutter-gtk. [7] Clutter можно встроить в каждое приложение GNOME с помощью библиотеки clutter-gtk. Библиотека clutter-gtk предоставляет виджет GtkClutterEmbed GTK, который можно использовать для отображения ClutterStage.

Некоторые думали, как объединить Clutter и GTK лучше, чем библиотека clutter-gtk.

В 2011 году Firefox представил «Azure», и Джо Дрю и Бас Схоутен озаботились некоторыми объяснениями. [8] [9] [10]

  • На GUADEC2013 в Брно Эммануэле поделился своей идеей по реализации графа сцены и структуры анимации внутри платформы GNOME (после шестилетней работы над Clutter). [11]
  • GTK Scene Graph Kit (GSK) — это предстоящий граф сцен для GTK, который находится в процессе написания Эммануэле Басси. [12]
  • 30 июля 2014 года Эмануэль заявил, что, по его мнению, не должно быть отдельного Clutter 2.0. [13]

На Developer Experience Hackfest 2014 года была представлена ​​презентация нового графа сцен для GTK, который планируется объединить с GTK+ 3.16. [14] Затем планировалось, что GSK будет готов и полностью интегрирован в GTK+ версии 3.20, которая выйдет в марте 2016 года. Это было отложено до версии 3.22. [15] а затем окончательно слился с версией 3.90.

Наличие поддержки OpenGL (или OpenGL ES ) в GDK облегчает немного лучший контроль над графическим конвейером ; OpenGL хорошо подходит для компоновки текстурированных данных, но совершенно непригоден для рисования. [ нужна ссылка ]

Самая последняя информация о статусе GSK получена с GUADEC 2016. [16]

Другие проекты

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

См. также

[ редактировать ]
  1. ^ Басси, Эммануэле (2 мая 2014 г.). «Графен» .
  2. ^ Басси, Эммануэле (18 октября 2016 г.). «Первоначальная реализация конвейера рендеринга GSK» .
  3. ^ Басси, Эммануэле (29 ноября 2006 г.). «добавить беспорядок-gtk» .
  4. ^ Басси, Эммануэле (31 августа 2011 г.). «GTK+ 4.0 и Clutter 2.0: радуга и единороги» .
  5. ^ Пеннингтон, Хэвок (7 марта 2008 г.). «Предложение Хэвока Пеннингтона по графу сцены» .
  6. ^ Басси, Эммануэле (29 июля 2014 г.). «Набор графов сцен GTK+» .
  7. ^ «clutter-gtk на git.gnome» .
  8. ^ «Представляем проект Azure» . 26 апреля 2011 г. Архивировано из оригинала 8 сентября 2016 г. Проверено 17 марта 2017 г.
  9. ^ «Сравнение производительности: Azure и Cairo» . 06.06.2011.
  10. ^ «Освобождение Лазури» . 16 августа 2011 г.
  11. ^ Басси, Эммануэле (12 августа 2013 г.). «Будущее в прошлом GTK-сцена-граф» .
  12. ^ Басси, Эммануэле (29 июля 2014 г.). «Набор графов сцен GTK+» .
  13. ^ Басси, Эммануэле (30 июля 2014 г.). «Проблема остановки – будущее в прошлом» .
  14. ^ «Hackfest 2014 Developer Experience: граф сцены для GTK+ 3.16» .
  15. ^ «GNOME Wiki: план развития GTK+» .
  16. ^ Басси, Эммануэле (16 августа 2016 г.). «GTK: мы уже в будущем?» . Ютуб .
  17. ^ «Евас» .
  18. ^ «Граф быстрой сцены Qt» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0efc67f27b61e5162cfdf2299d2604d8__1721066640
URL1:https://arc.ask3.ru/arc/aa/0e/d8/0efc67f27b61e5162cfdf2299d2604d8.html
Заголовок, (Title) документа по адресу, URL1:
GTK Scene Graph Kit - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)