Выпуск графического тулкита GTK 4.0
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
После четырёх лет разработки увидел свет релиз многоплатформенного тулкита для создания графического интерфейса пользователя - GTK 4.0. GTK 4 развивается в рамках нового процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.
Ветка GTK 4 объявлена стабильной и будет использована в следующем выпуске GNOME 4.0. Одновременно объявлено о прекращении поддержки ветки GTK 2, через несколько дней для которой планируется опубликовать последний релиз. Поддержка ветки GTK 3 в обозримом будущем будет сохранена.
Из наиболее существенных изменений в GTK 4 можно отметить:
- Реализован метод раскладки элементов на основе ограничений (constraint layout), при котором расположение и размер дочерних элементов определяется, отталкиваясь от расстояния до границ и размера других элементов.
- Добавлен модуль отрисовки на базе графического API Vulkan, в котором реализованы шейдеры для многих ресурсоёмких элементов CSS, применяемых в виджетах GTK.
- Интегрирован GSK (GTK Scene Kit) c возможностями отрисовки графических сцен через OpenGL и Vulkan.
- Пересмотрена организация отрисовки - вместо вывода в буфер теперь применяется модель на основе узлов отрисовки (render nodes), при которой вывод компонуется в форме дерева высокоуровневых операций, эффективно обрабатываемых GPU при помощи OpenGL и Vulkan.
- Добавлены объекты для работы с шейдерами: GskGLShader (обвязка над фрагментными шейдерами GLSL), GskGLShaderNode (узел отрисовки для встраивания шейдеров в сцену) и API gtk_snapshot_push_gl_shader для упрощения интеграции узлов с шейдерами в виджеты.
- Появились средства для гибкой обработки изменения фокуса ввода.
- Предложена модернизированная модель доставки событий, которая позволяет обойтись без subwindow при маршрутизации событий ввода. Необходимость реализации новой модели связана с более активным использованием анимационных эффектов, отрисовка которых должна производиться без смены раскладки видимых элементов и, соответственно, без subwindow.
- Переработан API GDK с оглядкой на использование протокола Wayland и связанных с ним концепций. Завязанные на X11 и Wayland возможности перемещены в отдельные бэкенды.
- Проведена большая чистка API, в том числе удалены классы GtkMenu, GtkMenuBar и GtkToolbar, вместо которых предложен GMenu и варианты на основе всплывающих меню (popover).
- В GtkTextView и другие виджеты ввода встроен стек для отката изменений (undo).
- Добавлен новый класс GtkNative для виджетов, имеющих собственную поверхность отображения и способных работать отдельно на первом уровне, без привязки к родительским виджетам.
- Добавлены новые виджеты, включая GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, а также виджет для показа Emoji.
- Для разработки виджетов представлен новый объект GtkLayoutManager с реализацией системы управления раскладкой элементов в зависимости от размера видимой области. GtkLayoutManager пришёл на смену дочерним свойствам в контейнерах GTK, таким как GtkBox и GtkGrid.
- Упрощена обработка событий, которые теперь используются только для ввода. Остальные события заменены на отдельные сигналы, например, вместо событий вывода предложен сигнал "GdkSurface::render", вместо событий настройки - "GdkSurface::size-changed".
- Добавлен новый уровень абстракции GdkPaintable, представляющий объекты, которые можно нарисовать где угодно с любым размером, без необходимости выполнения сортировки layout-слоёв.
- Добавлены новые средства для воспроизведения анимации и мультимедийного контента, в том числе видео в файлах webm и потокового вещания. Предложены две реализации API GtkMediaFile, на базе gstreamer и ffmpeg, а также готовый виджет GtkVideo с элементами управления для просмотра видео.
- Переписан бэкенд Broadway, позволяющий отрисовывать вывод библиотеки GTK в окне web-браузера.
- Переработан API, связанный с выполнением операций Drag-and-Drop, в том числе предложены раздельные объекты GdkDrag и GdkDrop.
- Удалена старая реализация Аccessibility API для людей с ограниченными возможностями, вместо которой предложен новый вариант на базе спецификации ARIA и виджета GtkAccessible.
- Добавлена поддержка редактируемых меток (GtkEditableLabel).
- Предложены новые модели списков для отображения закладок (GtkBookmarkList), строк (GtkStringList) и блоков выбора (GtkBitset).
- В виджете GtkTreeView реализована возможность редактирования ячеек.
- В GtkFilterListModel и GtkSortListModel добавлена поддержка инкрементальной прокрутки и фильтрации. В GDK обеспечено сохранение истории прокрутки, проведена чистка API GdkDevice, прекращено разделение устройств на master и slave.
- Добавлен новый GDK-бэкенд для macOS.
- Для Windows предложен новый GDK-бэкенд отрисовки на базе ANGLE, прослойки для трансляции вызовов OpenGL ES в OpenGL, Direct3D 9/11, Desktop GL и Vulkan.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://blog.gtk.org/2020/12/1...)
- OpenNews: GTK 4 ожидается осенью следующего года
- OpenNews: Разработчики приложений призвали дистрибутивы не менять темы оформления GTK
- OpenNews: Опубликован GTK 3.96, экспериментальный выпуск GTK 4
- OpenNews: В GTK 4 будет переработан бэкенд, отображающий интерфейс через web-браузер
- OpenNews: Выпуск графического тулкита GTK+ 3.24
Похожие новости:
- [Обработка изображений, Разработка под Linux, Софт] GIMP исполнилось 25 лет
- Релиз браузерного движка WebKitGTK 2.30.0 и web-браузера Epiphany 3.38
- [*nix, C] Создаём приложение на gtk
- [GTK+, Python] Автоматический переводчик на Python+GTK3. Альтернатива Яндексу
- Выпуск GTK 3.99.0 ознаменовал готовность функциональности, запланированной для GTK 4
- [Компьютерное железо, Программирование микроконтроллеров, Системное программирование] Разработка логического анализатора на базе Redd – проверяем его работу на практике
- [Программирование, C++, GTK+, C] Рисование графика при помощи cairo в GTK3
- Релиз браузерного движка WebKitGTK 2.28.0 и web-браузера Epiphany 3.36
- [Eclipse, C++, GTK+, Промышленное программирование, Программирование микроконтроллеров] ToolKit на базе Eclipse и GTK+, для «Toradex Colibri T20 (Linux)»
- [Ненормальное программирование, Системное программирование, C, Разработка под Linux] CreateRemoteThread для Linux
Теги для поиска: #_gtk
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:36
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
После четырёх лет разработки увидел свет релиз многоплатформенного тулкита для создания графического интерфейса пользователя - GTK 4.0. GTK 4 развивается в рамках нового процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK. Ветка GTK 4 объявлена стабильной и будет использована в следующем выпуске GNOME 4.0. Одновременно объявлено о прекращении поддержки ветки GTK 2, через несколько дней для которой планируется опубликовать последний релиз. Поддержка ветки GTK 3 в обозримом будущем будет сохранена. Из наиболее существенных изменений в GTK 4 можно отметить:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:36
Часовой пояс: UTC + 5