В GTK 4 будет переработан бэкенд, отображающий интерфейс через web-браузер

29 марта 2019 года

Александр Ларсон (Alexander Larsson), разработчик Flatpak и активный участник проекта GNOME, рассказал о грядущих изменениях в развиваемом им GDK-бэкенде Broadway для отрисовки вывода библиотеки GTK в окне web-браузера (например, данный бэкенд применяется в LibreOffice Online для совместной удалённой работы с офисным пакетом через Web).

В GTK 4 существенно изменились методы отрисовки и вместо вывода в буфер теперь применяется модель на основе узлов отрисовки (render nodes), при которой вывод компонуется в форме дерева высокоуровневых операций, эффективно обрабатываемых GPU при помощи OpenGL и Vulkan. Broadway не вписывается в подобную модель так как манипулирует готовыми битмапами в формате PNG - содержимое передаётся клиенту в виде копий слоев и блоков, описывающих изменения между изображениями.

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

В качестве эксперимента подготовлен прототип (Архивная копия от 7 мая 2021 на Wayback Machine), преобразующий узлы отрисовки в DOM-узлы со стилями CSS для вывода интерфейса в браузере. Каждое новое состояние экрана обрабатывается как изменение DOM-дерева относительно прошлого состояния, что позволяет сократить размер передаваемых удалённому клиенту данных. 3D-преобразования и графические эффекты можно (Архивная копия от 7 мая 2021 на Wayback Machine) реализовать через CSS-свойство

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «В GTK 4 будет переработан бэкенд, отображающий интерфейс через web-браузер», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.