Overview of Changes from GIMP 2.10.8 to GIMP 2.10.10
====================================================

Core:

- Add gimp-scratch allocator, a fast memory allocator (on the order
of magnitude of alloca()), suitable for small (up to a few
megabytes), short-lived (usually, bound to the current stack-
frame) allocations.
Unlike alloca(), gimp-scratch doesn't use the stack, and is
therefore safer, and will also serve bigger requests, by falling-
back to malloc().
- In gimp_drawable_transform_buffer_affine(), avoid modifying the
clipping mode when transforming layer masks, since this function
is used (among other things) to transform layer masks together with
their layer, in which case they should use the same clipping mode
as the layer. This fixes a regression introduced by commit
2ae823ba, causing layer masks to be transformed with a mismatched
clipping mode during layer transforms, leading to discrepencies
between the transformed layer and the transformed mask.
- Moved swap/cache and temporary files out the GIMP user config dir
and added new config file substitutions ${gimp_cache_dir} and
${gimp_temp_dir}.
- Pass the GEGL tile-cache size, swap path, and thread-count to plug-
ins as part of their config, and have libgimp set the plug-in's
GeglConfig accordingly upon initialization.
- Layer groups are now rendered in bigger chunks rather than tile-by-
tile (which used to pretty much eliminate multithreading for
groups), which improves the rendering speed.
- Make saving/exporting files more robust to errors. In particular if
an error occurs during the process (be it a bug, a memory error, or
anything else), GIMP won't overwrite anymore any existing file with
incomplete contents, so that you won't end up with no valid files
at all.
- Fix a regression on support of various graphics tablet.
- Remove the "Edit -> Fade..." feature: it makes GIMP use two buffers
instead of one (east into system resources), it's broken in 2.10,
and we can make the UX better for filters.
- New generic canvas modifier 'Alt + middle click' allowing to pick
layers by clicking on pixels. The available layers will be looped
through (starting from the upper one) while Alt key is hold and the
picked layer name will be temporarily displayed in the status bar.
- When clearing a channel, do nothing if the channel is already
empty; otherwise, align the cleared rectangle to the channel
buffer's tile grid, so that all affected tiles are dropped, rather
than zeroed.
Furthermore, only update the affected region of the channel.
- Brush and pattern saving logics has been moved to core code
(instead of plug-in).
- Clipboard brushes and pattern can now be duplicated.
- Parametric brushes are now 32-bit float to avoid posterization on
large brushes.
Note: raster brushes are still 8-bit and plug-ins only have access
to 8-bit versions of high-precision brushes/patterns. New API will
be required to handle high-precision data.
- On-canvas preview while editing a color in the colormap of an
indexed image.

User interface:

- Enabled HiDPI/Retina support for the GTK2/OSX build, fixes blurry
icons.
- Add a tooltip to the "better compression" checkbox in save dialog
to make it clearer it does not mean that the file size is
necessarily smaller in every cases. In particular some best/worst
case are possible when an algorithm less efficient in general may
end up better on a particular image.
- Add basic support for cursors with a scale factor of 2 for HiDPI
(artwork to be updated).
- Foreground and background color icons, as well as color history
will now display out-of-gamut warning on indexed images for colors
outside of the palette, as well as on grayscale images, for non-
gray colors.
- Pack color picker and hexadecimal entry on same line in Color dock.
- Add an "Open as Image" button to the brushes dialog.

Usability:

- Attempting to transform locked layers or paint on them now results
in blinking around the status bar (where the warning message is
displayed) and around the toolbar where lock toggles are. The same
applies to attempting to move a selection where there is none —
GIMP will blink around the toolbar where the moving target (layer,
selection, path) is chosen.
- GIMP now allows selecting default export file type for new
projects.
The choice is limited to PNG, JPEG, WebP, PSD, ORA, TIFF, BMP.
- GimpSpinScale widget now has an optional feature to constrain the
value to integer when dragging with a pointer (even if the scale
allows for fractional numbers), set with new function
gimp_spin_scale_set_constrain_drag().
This is useful for settings where fractional numbers are
technically possible, yet most common use case are with integers
(such as pixel sizes, angles in degrees, etc.) so you want the
easy interface to be constrained. Fractional numbers are still
settable, for instance by keyboard edit; and arrow incrementation
won't drop fraction parts. This is currently only activated for
brush options in paint tools.

Tools:

- In scale tool, scale around center even when using numeric input.
- New algorithm in the Bucket Fill tool when selecting the affected
area "Fill by line art detection", based off the G'Mic algorithm
for "smart colorization":
https://hal.archives-ouvertes.fr/hal-01891876 In a few words, it identifies painted pixels (either based on
grayscale or opacity values) and tries to close line arts to allow
filling even with not perfectly closed zones; the second step of
the algorithm will flood the colors under line art pixels to
prevent "holes" in the filling.
It is possible to control a max size (in pixels) for the flooding,
as well as max length of closing segments and splines.
- The Bucket Fill tool got new interaction allowing to hold the click
and move the mouse to fill based on several seed zones (for "Fill
by line art detection" as well as "Fill similar colors"). You can
now cancel the fill in progress with right click as in other tools.
- The Bucket Fill tool now allows color picking with ctrl-click, same
as every painting tool. It will pick either the foreground or
background color depending on the selected Fill Type. The ctrl-alt
modifier combination is also possible to pick the non-Fill Type
color.
- In the Bucket Fill tool, the Alt modifier will now switch to
"FG color fill" when "Pattern fill" was set (instead of doing
nothing).
- In the Unified Transform tool, default to preserving aspect ratio
when scaling up or down.
- In the Healing tool, "Sample merged" now also work for the target
pixels, allowing to draw in empty layers.
- Selection by color is now parallelized, hence improving speed of
the Select by Color tool (and any other processing which may share
this piece of code now or in the future).
- Add "Constrain handles" and "Around center" options to the
perspective-transform tool's GUI, which are similar to the
corresponding options of the unified-transform tool.
- Improve color picking on indexed image to always select an indexed
color corresponding to the picked pixel in the colormap.

Plug-ins:

- file-pdf-save GUI now clearly indicates the order the layers will
be used to make multi-page PDFs.
- Add DDS loading/exporting plug-in originally developed by Shawn
Kirst and Arne Reuter.
- Rename the Guillotine plug-in to Slice Using Guides.
- Add a new option saving a color profile when exporting PNG, JPEG,
TIFF. Always save it when exporting to PSD.
- Remove the "Advanced" expanders from the PNG and TIFF export
dialogs.
- Full rewrite of the Spyrogimp plug-in with much more options and
better interaction.
- Indexed TIFF with alpha channel now supported.

> On 07 Apr 2019, at 21:21, Michael Natterer <[hidden email]> wrote:
>
> Hi,
>
> We just released GIMP 2.10.10, the fifth bugfix release in
> the stable 2.10 series.
>
> As announced before, stable GIMP 2.10.x is open for new
> features that are not too invasive or change the API,
> and we got some good new stuff for you this time, too.
>
> For a complete list of changes since 2.10.8 please see the
> "Changes" section below.
>
> There is also a release announcement on www.gimp.org:
>
> https://www.gimp.org/news/2019/04/07/gimp-2-10-10-released/>
> Happy GIMPing,
> --Mitch
>
>
> Download
> ========
>
> GIMP 2.10.10 is available from:
>
> https://download.gimp.org/pub/gimp/v2.10/>
> and from the mirrors listed at:
>
> https://www.gimp.org/downloads/devel/#mirrors>
> The sha256 and sha512 checksums of the tarball are:
>
> 12d1f243265c7aee1f2c6e97883a5c90ddc0b19b4346cf822e24adbb6c998c77 gimp-
> 2.10.10.tar.bz2
>
> 87caab9643a018e741e5e51c61220b7b282a66ed5bb723750cdf4139950f98c9ab246f4
> d6450420531d0e878c4561150efc4063cda896f08b25669bac4d1d172 gimp-
> 2.10.10.tar.bz2
>
>
> Overview of Changes from GIMP 2.10.8 to GIMP 2.10.10
> ====================================================
>
> Core:
>
> - Add gimp-scratch allocator, a fast memory allocator (on the order
> of magnitude of alloca()), suitable for small (up to a few
> megabytes), short-lived (usually, bound to the current stack-
> frame) allocations.
> Unlike alloca(), gimp-scratch doesn't use the stack, and is
> therefore safer, and will also serve bigger requests, by falling-
> back to malloc().
> - In gimp_drawable_transform_buffer_affine(), avoid modifying the
> clipping mode when transforming layer masks, since this function
> is used (among other things) to transform layer masks together with
> their layer, in which case they should use the same clipping mode
> as the layer. This fixes a regression introduced by commit
> 2ae823ba, causing layer masks to be transformed with a mismatched
> clipping mode during layer transforms, leading to discrepencies
> between the transformed layer and the transformed mask.
> - Moved swap/cache and temporary files out the GIMP user config dir
> and added new config file substitutions ${gimp_cache_dir} and
> ${gimp_temp_dir}.
> - Pass the GEGL tile-cache size, swap path, and thread-count to plug-
> ins as part of their config, and have libgimp set the plug-in's
> GeglConfig accordingly upon initialization.
> - Layer groups are now rendered in bigger chunks rather than tile-by-
> tile (which used to pretty much eliminate multithreading for
> groups), which improves the rendering speed.
> - Make saving/exporting files more robust to errors. In particular if
> an error occurs during the process (be it a bug, a memory error, or
> anything else), GIMP won't overwrite anymore any existing file with
> incomplete contents, so that you won't end up with no valid files
> at all.
> - Fix a regression on support of various graphics tablet.
> - Remove the "Edit -> Fade..." feature: it makes GIMP use two buffers
> instead of one (east into system resources), it's broken in 2.10,
> and we can make the UX better for filters.
> - New generic canvas modifier 'Alt + middle click' allowing to pick
> layers by clicking on pixels. The available layers will be looped
> through (starting from the upper one) while Alt key is hold and the
> picked layer name will be temporarily displayed in the status bar.
> - When clearing a channel, do nothing if the channel is already
> empty; otherwise, align the cleared rectangle to the channel
> buffer's tile grid, so that all affected tiles are dropped, rather
> than zeroed.
> Furthermore, only update the affected region of the channel.
> - Brush and pattern saving logics has been moved to core code
> (instead of plug-in).
> - Clipboard brushes and pattern can now be duplicated.
> - Parametric brushes are now 32-bit float to avoid posterization on
> large brushes.
> Note: raster brushes are still 8-bit and plug-ins only have access
> to 8-bit versions of high-precision brushes/patterns. New API will
> be required to handle high-precision data.
> - On-canvas preview while editing a color in the colormap of an
> indexed image.
>
> User interface:
>
> - Enabled HiDPI/Retina support for the GTK2/OSX build, fixes blurry
> icons.
> - Add a tooltip to the "better compression" checkbox in save dialog
> to make it clearer it does not mean that the file size is
> necessarily smaller in every cases. In particular some best/worst
> case are possible when an algorithm less efficient in general may
> end up better on a particular image.
> - Add basic support for cursors with a scale factor of 2 for HiDPI
> (artwork to be updated).
> - Foreground and background color icons, as well as color history
> will now display out-of-gamut warning on indexed images for colors
> outside of the palette, as well as on grayscale images, for non-
> gray colors.
> - Pack color picker and hexadecimal entry on same line in Color dock.
> - Add an "Open as Image" button to the brushes dialog.
>
> Usability:
>
> - Attempting to transform locked layers or paint on them now results
> in blinking around the status bar (where the warning message is
> displayed) and around the toolbar where lock toggles are. The same
> applies to attempting to move a selection where there is none —
> GIMP will blink around the toolbar where the moving target (layer,
> selection, path) is chosen.
> - GIMP now allows selecting default export file type for new
> projects.
> The choice is limited to PNG, JPEG, WebP, PSD, ORA, TIFF, BMP.
> - GimpSpinScale widget now has an optional feature to constrain the
> value to integer when dragging with a pointer (even if the scale
> allows for fractional numbers), set with new function
> gimp_spin_scale_set_constrain_drag().
> This is useful for settings where fractional numbers are
> technically possible, yet most common use case are with integers
> (such as pixel sizes, angles in degrees, etc.) so you want the
> easy interface to be constrained. Fractional numbers are still
> settable, for instance by keyboard edit; and arrow incrementation
> won't drop fraction parts. This is currently only activated for
> brush options in paint tools.
>
> Tools:
>
> - In scale tool, scale around center even when using numeric input.
> - New algorithm in the Bucket Fill tool when selecting the affected
> area "Fill by line art detection", based off the G'Mic algorithm
> for "smart colorization":
> https://hal.archives-ouvertes.fr/hal-01891876> In a few words, it identifies painted pixels (either based on
> grayscale or opacity values) and tries to close line arts to allow
> filling even with not perfectly closed zones; the second step of
> the algorithm will flood the colors under line art pixels to
> prevent "holes" in the filling.
> It is possible to control a max size (in pixels) for the flooding,
> as well as max length of closing segments and splines.
> - The Bucket Fill tool got new interaction allowing to hold the click
> and move the mouse to fill based on several seed zones (for "Fill
> by line art detection" as well as "Fill similar colors"). You can
> now cancel the fill in progress with right click as in other tools.
> - The Bucket Fill tool now allows color picking with ctrl-click, same
> as every painting tool. It will pick either the foreground or
> background color depending on the selected Fill Type. The ctrl-alt
> modifier combination is also possible to pick the non-Fill Type
> color.
> - In the Bucket Fill tool, the Alt modifier will now switch to
> "FG color fill" when "Pattern fill" was set (instead of doing
> nothing).
> - In the Unified Transform tool, default to preserving aspect ratio
> when scaling up or down.
> - In the Healing tool, "Sample merged" now also work for the target
> pixels, allowing to draw in empty layers.
> - Selection by color is now parallelized, hence improving speed of
> the Select by Color tool (and any other processing which may share
> this piece of code now or in the future).
> - Add "Constrain handles" and "Around center" options to the
> perspective-transform tool's GUI, which are similar to the
> corresponding options of the unified-transform tool.
> - Improve color picking on indexed image to always select an indexed
> color corresponding to the picked pixel in the colormap.
>
> Plug-ins:
>
> - file-pdf-save GUI now clearly indicates the order the layers will
> be used to make multi-page PDFs.
> - Add DDS loading/exporting plug-in originally developed by Shawn
> Kirst and Arne Reuter.
> - Rename the Guillotine plug-in to Slice Using Guides.
> - Add a new option saving a color profile when exporting PNG, JPEG,
> TIFF. Always save it when exporting to PSD.
> - Remove the "Advanced" expanders from the PNG and TIFF export
> dialogs.
> - Full rewrite of the Spyrogimp plug-in with much more options and
> better interaction.
> - Indexed TIFF with alpha channel now supported.
>
> Filters:
>
> - Add on-canvas GUI (simple lines) for circular, linear, and zoom
> motion blur.
>
> Help:
>
> - Link to the bugtracker directly from the Help menu, also link to
> the wiki and the roadmap. Remove the link to currently disabled
> registry.gimp.org.
>
> Installers:
>
> - Windows: proper fix for libthai to stop GIMP from crashing in the
> Thai locale.
>
> Translations:
>
> - Czech, Danish, French, Italian, Japanese, Marathi, Polish, Russian,
> Spanish, Swedish, Ukrainian.
>
> Build:
>
> - Bumping GTK+ dependency to the micro update GTK+ 2.24.32 to handle
> several bugs on Windows (broken shortcuts on non-latin layouts and
> broken vector icons).
>
>
> Contributors:
> =============
>
> Alex Samorukov, Alexandre Prokoudine, Elad Shahar, Ell, Félix
> Piédallu, Harald H, Jehan, Jernej Simončič, Kevin Stoffler, Massimo
> Valentini, Michael Natterer, ONO Yoshio, Oleksii Samorukov, Richard
> McLean, Salamandar, Skal, Veerasamy Sevagen, gaaned92, lillolollo,
> oschlueter, sabri ünal, Øyvind Kolås.
>
>
> Translators:
> ============
>
> Adam Ostruszka, Alan Mortensen, Alexandre Franke, Alexandre
> Prokoudine, Anders Jonsson, Asier Sarasua Garmendia, Balázs Meskó,
> Balázs Úr, Bruce Cowan, Christian Kirbach, Claude Paroz, Daniel
> Korostil, Daniel Mustieles, Dimitris Spingos, Elad Shahar, Ell,
> Jehan, Marco Ciampa, Martin Srebotnjak, Michael Natterer, Nathan
> Follens, Piotr Drąg, Rodrigo Lledó, Ryuta Fujii, Rūdolfs Mazurs,
> Sabri Ünal, Sangdo Jun, Snehalata B Shirude, Sveinn í Felli, Tim
> Sabsch.
>
>
> _______________________________________________
> gimp-developer-list mailing list
> List address: [hidden email]> List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list> List archives: https://mail.gnome.org/archives/gimp-developer-list