GTK 4.0 уже выпущен и содержит улучшения для OpenGL, Vulkan и др.

После четырех лет разработки в конце концов анонсирован выпуск новой ветки GTK 4.0, который разрабатывается как часть нового процесса разработки, который пытается предоставить разработчикам приложений стабильный и совместимый API на несколько лет, который можно использовать, не опасаясь переделывать приложения каждые шесть месяцев из-за изменений API в следующем GTK. ветка.

Филиал ГТК 4 был объявлен стабильным и будет использоваться в следующем выпуске GNOME 4.0. В то же время было объявлено, что поддержка ветки GTK 2 была прекращена, через несколько дней, на которые планируется выпустить последний выпуск, в то время как поддержка ветки GTK 3 будет продолжена в обозримом будущем.

Основные новые возможности GTK 4.0

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

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

Изменена организация представительства: вместо отправки в буфер, теперь используется модель, основанная на узлах рендеринга, в котором вывод организован в виде дерева операций высокого уровня, эффективно обрабатывается графическим процессором с использованием OpenGL и Vulkan.

Мы также видим, что в GTK 4.0 предлагается модернизированная модель доставки событий, что позволяет обходить подокно при маршрутизации входных событий. Необходимость реализации новой модели связана с более активным использованием эффектов анимации, которые необходимо визуализировать без изменения компоновки видимых элементов и, следовательно, без подокна.

GDK API переформулирован для использования преимуществ протокола Wayland и связанные концепции. Функции, связанные с X11 и Wayland, были перемещены в отдельные серверные части, и была проведена большая очистка API, включая удаление классов GtkMenu, GtkMenuBar и GtkToolbar, вместо которых предлагаются параметры GMenu и popover.

В то время как для разработки виджетов представлен новый объект GtkLayoutManager с реализацией системы управления для расположения элементов на основе размера видимой области, и что GtkLayoutManager заменил дочерние свойства в контейнерах GTK, таких как GtkBox и GtkGrid.

Из других изменений, которые выделяются:

  • Новый класс GtkNative был добавлен для виджетов, которые имеют собственную поверхность отображения и могут работать отдельно на первом уровне, без привязки к основным виджетам.
  • Были добавлены новые виджеты, включая GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, а также виджет для отображения Emoji.
  • Был добавлен новый слой абстракции GdkPaintable, который отображает объекты, которые можно рисовать где угодно и любого размера, без необходимости сортировать слои дизайна.
  • Бэкэнд Broadway переписан, чтобы можно было отображать вывод библиотеки GTK в окне веб-браузера.
  • API, связанный с операциями перетаскивания, был переработан, включая предложенные отдельные объекты GdkDrag и GdkDrop.
  • Предыдущая реализация Accessibility API для людей с ограниченными возможностями была удалена, и была предложена новая версия, основанная на спецификации ARIA и виджете GtkAccessible.
  • Добавлена ​​поддержка редактируемых этикеток.
  • Виджет GtkTreeView реализует возможность редактирования ячеек.
  • Добавлена ​​поддержка инкрементной прокрутки и фильтрации в GtkFilterListModel и GtkSortListModel.
  • Добавлен новый бэкэнд GDK для macOS.
    GtkTextView и другие виджеты ввода имеют встроенный стек отмены.
  • Для Windows предлагается новый бэкэнд рендеринга GDK на основе ANGLE, промежуточный уровень для перевода вызовов из OpenGL ES в OpenGL, Direct3D 9/11, Desktop GL и Vulkan.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.