Автор (ы) | Мануэль Басси и др. |
---|---|
Разработчик (и) | Проект GNOME |
Первоначальный выпуск | 24 марта 2017 г.; 3 года назад (2017-03-24) |
Написано в | C |
Операционной системе | Часть GTK |
Тип | Программная библиотека |
Лицензия | LGPL |
Веб-сайт | разработчик.gnome.org / gsk4 / unstable / |
График сцены GTK Комплект (GSK ) - это API визуализации и графа сцены для GTK, представленный в версии 3.90. GSK находится между графическими элементами управления (виджетами) и рендерингом.
Как и GDK, GSK является частью GTK и лицензируется в соответствии с Стандартной общественной лицензией ограниченного применения GNU (LGPL).
GSK является частью ГТК. GSK предназначен для использования как самим GTK, так и приложениями на основе GTK, которые хотят заменить Clutter в своем пользовательском интерфейсе. Приложения, которые использовали Clutter вместо использования только GTK, например GNOME Shell, GNOME Videos, GNOME Boxes и Cheese.
Любое приложение, в котором используются графические элементы управления (виджеты) GTK, а не тем приложениям, которые получают окно GTK, а затем рисуют себя в нем, получают выгоду от GSK.
Рисование графических элементов управления (виджетов) без графа сцены приводит к визуализации вещей, которые не отображаются на экране, вещей, которые не нужно визуализировать; следовательно, это приводит к уменьшению производительности и снижению срока службы батареи. Граф сцены используется для определения скрытой поверхности.
Способ рисования виджетов в GTK (без использования Clutter) заключался в том, что функция рисования (часть GDK отсюда и название (GIMP "Drawing" Kit)) рисовал все. Не было возможности узнать, что только что нарисовано. Чтобы узнать, где в данный момент находится указатель мыши, необходимо вычислить текущую позицию. С GSK должно быть довольно легко писать сложные графические элементы управления (виджеты) и при этом легко отслеживать местонахождение указателя мыши.
Для GTK было решено перейти к модели на основе Cascading Style Sheet (CSS) для определения стилей графических элементов управления (виджетов) (т.е. тематические / со скином ) и обработаны. В CSS свойства теней, границ, отступов и стиля имеют четко определенную семантику . Некоторые из этих семантик трудно реализовать с помощью старой модели рисования GTK.
GSK использует графен, внешнюю библиотеку, в которой хранится коллекция геометрических типов - точек, размеров, прямоугольников, векторов, четырехугольников, кватернионов, матриц. графен был перенесен в систему сборки Meson.
GSK использует двухуровневый подход:
Начиная с GTK 3.90, который является номером версии разработки того, что станет GTK 4, GSK поддерживает рендеринг с использованием следующих внутренних компонентов:
Clutter был опубликован 22 июня 2006 г. Библиотека интеграции "clutter-gtk" была доступен с 29 ноября 2006 г.
На 2-м Саммите Desktop в августе 2011 года в Берлине было довольно много разговоров о «GTK + 4.0 и Clutter 2.0».
В 2008 году такие разработчики, как Havoc Pennington, рассматривали возможность добавления холста сцены в GTK, поскольку люди, не входящие в GTK, использовали такие вещи, как Clutter, Pigment, HippoCanvas или GooCanvas. Было предложено сделать графические элементы управления (виджеты) одним из видов объектов в более гибком графе сцены.
До 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», и Джо Дрю и Бас Схоутен потрудились с некоторыми пояснениями.
На фестивале 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.