GTK Scene Graph Kit

редактировать
GSK
Автор (ы) Мануэль Басси и др.
Разработчик (и) Проект GNOME
Первоначальный выпуск24 марта 2017 г.; 3 года назад (2017-03-24)
Написано вC
Операционной системе Часть GTK
Тип Программная библиотека
Лицензия LGPL
Веб-сайтразработчик.gnome.org / gsk4 / unstable /
Упрощенная программная архитектура таксономии GTK. CSS.

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

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

Содержание
  • 1 Обоснование
    • 1.1 Производительность
    • 1.2 Простота
    • 1.3 CSS
  • 2 Конвейер рендеринга GSK
    • 2.1 API рендеринга
  • 3 История
    • 3.1 Беспорядок
    • 3.2 Идея ввести граф сцены в GTK
    • 3.3 GSK
    • 3.4 Другие проекты
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Обоснование

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

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

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

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

Простота

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

CSS

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

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

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

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

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

API рендеринга

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

История

Clutter

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

На 2-м Саммите Desktop в августе 2011 года в Берлине было довольно много разговоров о «GTK + 4.0 и Clutter 2.0».

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

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

GSK

До GSK рисование выполнялось GDK - обработка базового рендеринга, такого как примитивы рисования, растровая графика (растровые изображения), курсоры, шрифты, а также события окна и drag-and-drop функциональность.

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

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

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

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

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

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

Последняя информация о статусе GSK взята из GUADEC 2016.

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

См. также
  • Free и портал программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-21 09:30:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте