![](https://habrastorage.org/getpro/habr/post_images/5f1/830/774/5f1830774b5742af3150c08ce5ea9859.jpg)
Разработчики графического редактора GIMP 3.0 представили версию 2.99.2, которая считается предварительной версией новой стабильной ветки GIMP 3.0. Среди основных нововведений — переход на GTK3, добавление штатной поддержки Wayland и HiDPI, переработка и оптимизация кода, добавление API для разработки новых плагинов. Появилась также возможность выделения нескольких слоев и добавлено кэширование отрисовки.
О подробностях нового выпуска — под катом.
Список главных изменений
- Одно из ключевых нововведений — переход на библиотеку GTK3 вместо GTK2. Кроме того, заметно изменен интерфейс (субъективно — в лучшую сторону), появились новые виджеты. Теперь приложение отрисовывает заголовок и рамки окон на стороне клиентов — раньше эта операция выполнялась оконным менеджером. Переход на GTK3 дал возможность перейти на полноценную поддержку экранов с высокой плотностью пикселей, решив проблему адаптации к дисплеям с разным разрешением.
- Разработчики добавили широкий спектр устройств ввода, включая графические планшеты. Теперь работать можно с горячим переключением устройств. В предыдущей версии GIMP планшет нужно было обязательно подключать до запуска программы, активируя в настройках. Теперь планшет можно подключить до запуска программы, устройство активируется автоматически. Еще один положительный момент — упрощение доступа к расширенным настройкам устройств ввода.
- Добавлена поддержка нового формата тем оформления на основе CSS, который использует механизмы тем GTK3. К сожалению, это же означает несовместимость старых тем с новой версией. Зато появилась поддержка символьных наборов пиктограмм — они подстраиваются под цвета переднего плана и фона.
- Добавлена поддержка протокола Wayland, с которым, правда, в GIMP 3.0 пока не все гладко — разработчикам нужно решить проблемы с утечкой памяти и аномалиями в GUI. К релизу обещают все исправить.
- Как и говорилось выше, добавлена поддержка выделения сразу нескольких слоев при помощи штатных комбинаций клавиш. Так, Shift+клик используется для выделения диапазона слоев, а Ctrl+клик — для добавления или исключения отдельных слоев. Все выделенные слои можно перемещать, группировать, удалять, совмещать и копировать при необходимости. Кроме того, содержимое слоев также можно изменять.
![](https://habrastorage.org/getpro/habr/post_images/758/2a9/f11/7582a9f1139926b93b2c711c09a188b6.png)
- Для разработки новых плагинов добавлен API — он несовместим со старыми плагинами. Но портировать их можно без проблем — по словам разработчиков, этот процесс занимает от 5 до 30 минут. Документация о нюансах портирования будет поставляться вместе с финальной версией GIMP 3.0. Интересно, что GimpImage, GimpItem, GimpDrawable, GimpLayer, GimpVectors, GimpChannel и GimpPDB теперь стали объектами и поддерживают наследование методов.
- Еще одно нововведение — файловый менеджер API Gfile, базирующийся на Glib/GIO. Он унифицирует работу с файлами в разных ОС, убирает проблемы, связанные с кодировкой символов в названиях файлов и различиях в разделении каталогов.
- Плагины для GIMP можно создавать на разных языках программирования. Кроме C/C++, это еще и Python 3, JavaScript, Lua и Vala. Появился менеджер расширений, так что теперь разработчики смогут размещать в специальном репозитории расширения к GIMP, включая плагины, наборы кистей, текстур и градиентов. Все устанавливается в один клик.
![](https://habrastorage.org/getpro/habr/post_images/669/00b/d6e/66900bd6e666f7f538319b97fb7498b5.png)
- Добавлены элементы проекта «Space invasion». Цель — модернизировать код преобразования цветов в babl, GEGL и GIMP, с переходом на использование внутреннего представления цветового профиля.
- Оптимизированы правила импортирования. Так, в секции «Color Profile Policy» появился пункт «Convert to Preferred Profile», так что при выборе этого пункта импортируемое изображение приводится в соответствие с выбранным профилем.
- Компактное представление слайдеров включено по умолчанию. Слайдеры используются для установки параметров различных фильтров и инструментов.
![](https://habrastorage.org/getpro/habr/post_images/834/c7e/5b4/834c7e5b4c1e36a576754345e6c26292.png)
![](https://habrastorage.org/webt/1h/dq/mj/1hdqmj1bvguax5hnugdz0ci_jbw.jpeg)