gimp/NEWS

104 lines
4.7 KiB
Plaintext

------------------------------
GNU Image Manipulation Program
Development Branch
------------------------------
This is the unstable branch of GIMP.
Overview of Changes from GIMP 2.10.x to GIMP 2.99.2
===================================================
Core:
- Improved "space invasion".
- New extension format support (.gex a.k.a. GIMP Extension) which is
an archive containing various supported data. So far, it can
package: brushes, MyPaint brushes, dynamics, patterns, gradients,
palettes, tool presets, plug-ins, splash images and themes.
- New extension manager allowing to enable, disable or uninstall
installed extensions, with a dialog available in `Edit > Manage
Extensions`.
- Multi selection of layers now possible. Various tools and features
are now multi-selection aware.
- XCF format bumped to version 14 with awareness of multiple layer
selection.
- All code is year-2038-safe with deprecated time API replaced.
- "Alpha to Selection" various actions warn when the result selection
is empty.
User Interface:
- Whole interface ported to GTK+3.
- Proper HiDPI support, which will follow the system's scale factor
for all widgets. This is a core toolkit support, unlike the basic
better-than-nothing hacks from GIMP 2.10.x.
- GTK+3 CSS-like support. All themes for former versions are therefore
not working anymore.
- GTK+3 themes have the concept of "dark variant", so a same theme may
propose both a light and a dark versions. Preference for dark
variants can now be checked in `Preferences > Themes > Use dark
theme variant if available` checkbox, allowing for instance to use
your system theme in its light variant everywhere except in GIMP.
This option is checked by default as graphics software are often
prefered in dark modes.
- Symbolic icon themes are now recolored automatically according to
the theme colors (no theme and icon theme tweaking anymore to end up
with dark on dark or light on light interfaces), except for color
elements whose SVG style is marked as "!important".
- Image display rendered faster with a render cache that keeps the
result of scaling, color management, display filters and shell mask
(for tools like fuzzy select).
- Shift-click on layer GimpContainerTreeView (typically the Layers
dockable) allows to expand/collapse all item groups but the clicked
one.
Devices:
- Device hotplug supported. In particular, you don't need to have your
tablets and other devices plugged before you start GIMP anymore, and
enabling your devices in the "Configure Input Devices" dialog is not
needed anymore. Tablets will work out-of-the box.
Plug-ins:
- Major rewrite of the API. So GIMP 2.10.x plug-ins and below must be
ported to the new API.
- Various objects are now proper GObject in the plug-in API, and not
just ID integers.
- The API is GObject Introspected, which means plug-ins can be written
in various non-C languages. So far the following languages have been
tested and work well: Python 3, Lua and Javascript (Note: Python 2
is also still working, but considering that this language is
end-of-life since 2020, we don't really care).
- Every introspected binding which we test comes with a "Goat
Exercise", which is a demo plug-in popping a dialog and showing its
own source code. It processes a simple "gegl:invert" operation on a
drawable. All "Goat Exercises" must do the same thing in the same
way, simply in their respective languages, as documentation code for
a language binding.
- Plug-ins must be installed in their own subdirectory in
`$XDG_CONFIG_HOME/GIMP/2.99/plug-ins/`, thus preventing data mess
(with plug-ins coming with data and installing it all in the root
plug-ins/ directory) and DLL hell. The main plug-in executable must
be named the same as the directory (possibly with an added
extension).
E.g.: `plug-ins/my-cool-plug-in/my-cool-plug-in.py`
Documentation:
- `devel-docs/xcf.txt` updated to handle XCF 14.
Build:
- New meson build system. Still deemed "experimental" for the time
being. Packagers are recommended to continue using the autotools
build system in order to avoid specific bugs.
- Continuous integration in Gitlab with:
- an autotools build with GCC on a Debian/testing runner
- a meson build with GCC on a Debian/testing runner
- a meson build with Clang on a Debian/testing runner
- a meson cross-build with Mingw-w64 for Windows 32-bit
- a meson cross-build with Mingw-w64 for Windows 64-bit
- static code analysis with cppcheck