Почему GEGL никуда не денется

Как самые внимательные уже заметили, в Git появилась новая ветка разработки pippin/goat-invasion, в которой происходит нечто интересное. Разъяснения неизбежны.

Незадолго до выпуска версии 2.7.5 к Митчу в гости приехал Оэвинд, и они устроили небольшой хакфест. Суть изменений в новой ветке заключается в следующем.

При работе с изображениями GIMP делит каждое изображение на тайлы — элементы, которые вместе составляют целую картинку как мозаику и грузятся в память. Для работы с тайлами в GIMP есть механизм под названием TileManager, который является частью старого кода GIMP. Вместо TileManager программа теперь использует GeglBuffer.

Если раньше при включении GEGL для инструментов цветокоррекции данные лишний раз гонялись между TileManager и GeglBuffer, то теперь GEGL используется напрямую. Кстати, старый код многих инструментов цветокоррекции торжественно выпилен, и вместо него тоже используется GEGL. К числу таких инструментов относится инвертирование цветов, яркость/контраст и ещё несколько.

Пока что обработка ведётся с точностью 8 разрядов на цветовой канал. На текущий момент невозможно сказать, будет ли высокая разрядность доступна в следующей версии. Учитывая, что ветке всего 48 часов, согласитесь, делать какие-то заявления на эту тему преждевременно.

Новая ветка собирается и работает, но в связи с начатыми изменениями кое-что разломано. К примеру, не работает отмена действий, а при попытке скопировать обработанный слой получается копия оригинала. Всё это будет исправлено.

Почему ветка называется goat-invasion? Эта старая шутка разработчиков. У GEGL есть альтернативная расшифровка: Genetically Engineered Goat, Large. Т.е. результат нашествия (invasion) предсказуемо выглядит так:

Wilbgoat

Митч также уведомил студентов GSoC2011, что им необходимо синхронизировать их ветки с Git master, если они хотят, чтобы их работа попала в версию 2.10. Мишель Мюре, сделавший инструмент Warp Transform, уже приступил к обновлению, а заодно внёс разные улучшения как в инструмент, так и в соответствующую часть кода GEGL. Барак Иткин старается не оставать и работает над своим инструментом для бесшовной вставки.

Как вы уже поняли, после выпуска 2.8 мы собираемся превратить начатую ветку в основу версии 2.10. По текущим прикидкам версия 2.10:

  • будет использовать GEGL напрямую;
  • будет включать проекты GSoC2011.

Работа над портом программы на GTK+3 понемногу продолжается.

Кстати, мы снова подали завку на участие в Google Summer of Code и пока ждём, примут ли нас в программу в этом году. Часть идей проектов перетекла из прошлогоднего списка, а за объединённый инструмент трансформации уже готов взяться Микаэль Магнуссон, который написал изрядную часть кода ещё в прошлом году.

Add a comment