                   ------------------------------
                   GNU Image Manipulation Program
                         2.10 Stable Branch
                   ------------------------------

This is the stable branch of GIMP. Unlike earlier stable branches,
we do allow some new features here, if they are not too invasive.
Otherwise, this branch is only for bug-fixes.


Overview of Changes from GIMP 2.10.4 to GIMP 2.10.6
===================================================

Core:

  - Render drawable previews asynchronously.
  - Merge the file view filter and file format lists in GimpFileDialog.
    The presence of 2 lists was very confusing.
  - DLL search priority is now updated before running a plug-in on
    Windows, depending on the executable bitness. This gets rid of one
    of the last remnant of DLL hell in GIMP, which was when running
    32-bit plug-ins from a 64-bit build of GIMP.

Filters:

  - New "Little Planet" (gegl:stereographic-projection) filter.
  - New "Long Shadow" (gegl:long-shadow) filter.

Tools:

  - Halt the Measure tool after straightening.
  - Add an "orientation" option to the measure tool, corresponding to
    the "orientation" property of GimpToolCompass (i.e., it controls the
    orientation against which the angle is measured, when not in 3-
    point mode.)  The orientation is "auto" by default, so that the
    angle is always <= 45 deg.  Note that the "orientation" option
    affects the tool's "straighten" function, so that the layer is
    rotated toward the current orientation.
  - Text layers can now represent vertical texts, with 4 variants:
    left-to-right and right-to-left lines, and forcing all characters to
    be upright or following Unicode's vertical orientation property.
    See also:
    * https://www.unicode.org/reports/tr50/
    * http://www.unicode.org/Public/UCD/latest/ucd/VerticalOrientation.txt

User Interface:

  - The Dashboard dockable dialog now has an "async" field to the
    dashboard's "misc" group, showing the number of async operations
    currently in the "running" state.
  - New Preferences option to enable/disable layer-group previews, since
    these can get quite time-expensive.

Translations:

  - New language: Marathi
  - 12 translations were updated: Brazilian Portuguese, Dutch, French,
    German, Greek, Italian, Latvian, Polish, Romanian, Slovenian,
    Spanish, Swedish.

Build:

  - Add --with-win32-32bit-dll-folder configuration option to override
    the folder where 32-bit versions of DLL will be installed (default:
    32/bin/).
  - Install all plug-ins in their own directories. Unlike on master,
    this is not mandatory to do so, but it would protect our core
    plug-ins against any DLL installed directly under plug-ins/ by
    third-party plug-ins (cf. Windows DLL hell).

Overview of Changes from GIMP 2.10.2 to GIMP 2.10.4
===================================================

Core:

  - Remove gimp_display_shell_draw_background() and all clipping hacks
    for drawing the canvas background. This optimizes away one entire
    step of drawing of image size, for each expose.
  - Font loading does not block startup anymore. Only consequence is
    that the Text tool may not be usable immediately if fonts are not
    fully loaded yet (and will output an appropriate error if you do
    so). All non-text related activities can be performed right away.
  - Change of the URL from bugzilla to gitlab where appropriate.
  - New tool option manager to better keep track of user context and
    paint options in a consistent manner.

User Interface:

  - The Dashboard dockable dialog now has a 'Memory' group that shows
    memory-usage information: the currently used memory size, the
    available physical memory size, and the total physical memory
    size.  It can also show the tile-cache size, for comparison
    against the other memory stats. Note that the upper-bound of the
    meter is the physical memory size, so the memory usage may be over
    100% when GIMP uses the swap.
  - The Dashboard dockable dialog now has "read" and "written" fields in
    the dashboard swap group, which report the total amount of data
    read-from/written-to the tile swap, respetively. Additionally, the
    swap busy indicator (used as the meter's LED) has been improved,
    so that it's active whenever data has been read-from/written-to
    the swap during the last sampling interval, rather than at the
    point of sampling.
  - Fonts can now be tagged. The user interface is the same as for
    brushes, patterns etc.
  - Some icons fixed: larger spacing between broken chains and
    gimp-tool-ellipse-select made symmetrical.

Usability:

  - When a plug-in cannot be applied to an image because of mismatch
    in image types (e.g. layer has no alpha or image is greyscale),
    GIMP now displays a message listing supported image types for this
    plug-in.

Tools:

  - The Measurement tool now has an "Auto straighten" option allowing
    to rotate the active drawable (layer, channel…) so that the
    measurement line is used as horizon. As other transform tools, the
    feature will work on linked drawables as well.
  - The Smudge tool now paints correctly on images with a color
    profile other than the GIMP's built-in one.

Build:

  - Installer: set compatibility options to run Python plugins in
    HiDPI-aware mode.
  - Put back compatibility DLLs for really old plugins.
  - Install binary tool `gimp-test-clipboard` on the system to allow
    people to help us debug clipboard bugs.
  - --enable-bundled-mypaint-brushes renamed
    --enable-relocatable-bundle and also make WMF fonts looked up on
    the runtime prefix of GIMP (instead of the build-time path) when
    this build option was set.
  
Plug-ins:

  - gimptool-2.0 binary now accepts source files with non-standard
    extensions if it can try to guess appropriate language from the
    compiler being used. It will also properly quote arguments for
    shell usage.
  - Run explicitly Python 2 as Python plug-in interpreter to prevent
    breakage on systems where Python 3 is the default.
  - raw_input()'s argument in Python console is now optional, and
    input() support has been added.

File Formats:

  - The PSD loader now provides an option to load "merged",
    pre-composited version of the images that becomes available when a
    PSD file was saved with "Maximize Compatibility" option enabled in
    Photoshop. This is useful when loading PSD files that use features
    that GIMP doesn't currently support, and therefore can't render
    correctly, such as adjustment layers. When loading the merged
    image version, we avoid loading certain additional data from the
    file, such as channels, paths, and guides, while still loading
    metadata. This option is currently exposed as an additional file
    type ("Photoshop image (merged)"), which has to be explicitly
    selected from the file-type list when opening the image.
  - Embedding GIMP's built-in sRGB color profile to exported files is
    now optional. The default choice can be set in the Preferences
    dialog.

Translations:

  - Updated translations: Catalan, Czech, Danish, Dutch, Finnish,
    Greek, Hungarian, Italian, Latvian, Polish, Romanian, Russian,
    Spanish, Swedish, Ukrainian.


Overview of Changes from GIMP 2.10.0 to GIMP 2.10.2
===================================================

Core:

  - Discard fonts which fail to load and popup an info dialog to allow
    people debug their fonts.
  - New API to suppress updates in UI until plug-ins are done
    introducing changes.
  - New API to calculate histograms in separate threads, with possible further
    extension to handle similar cases elsewhere in GIMP.
  - Tool options are now properly saved and reloaded per-device at
    startup.

Plug-ins:

  - New plug-in for importing and exporting HEIF images.
  - Enable visibility of rasterized vector layer from PSD.
  - Single-window screenshots in Windows fixed to correctly snap a
    window even when it is partly off-screen or covered by another
    window or when display scaling is not set to 100%.

Filters:

  - New Spherize filter to wrap an image around a spherical cap
  - New Recursive Transform filter to create Droste effect.

Usability:

  - Warn users, when alpha-only painting has no effect. E.g. when target
    drawable doesn't have an alpha channel, or the alpha channel is locked.
  - Make the splash texts dynamic, so they are larger on larger splashes.
  - Mention pressing Enter to complete Foreground selection in the status bar.
  - Make sure that clicking outside any selection prevents Rectangle Select
    and Ellipse Select tools from creating empty selections.
  - Improve mouse wheel zooming behavior to keep the same point
    centered under the pointer even if the image is completely visible
    in the canvas.
  - Add "View -> Center Image in Window" (Shift+J) as a quick way to
    center the image at any zoom level.

Translations:

  - Updated translations: Catalan, Danish, Dutch, French, German, Greek,
    Hungarian, Icelandic, Italian, Latvian, Polish, Russian, Spanish,
    Swedish, Ukrainian.
  - New translation of Windows installer: Chinese (Taiwan)

Build:

  - Add a --with-bug-report-url configure option allowing packagers to
    set the address of their own bug tracker. This address will be the
    one opened by the debug dialog for reporting bugs.
  - Add a flatpak manifest for the gtk3-port branch.
  - Remove the possibility to disable script-fu.
  - Add a --with-icc-directory configure option to customize the color
    profile directory. By default, it is set to the common path
    /usr/share/color/icc.

Documentation:

  - Updating the description of the XCF format "devel-docs/xcf.txt", for
    third-party readers wishing to support GIMP 2.10 XCF files.
  - Add documentation skeletons for all enums in libgimpbase/, there is
    much room for improvement.
