NEWS 13.5 KB
Newer Older
Sven Neumann's avatar
Sven Neumann committed
1
                   ------------------------------
Sven Neumann's avatar
Sven Neumann committed
2
                   GNU Image Manipulation Program
3
                         2.10 Stable Branch
Sven Neumann's avatar
Sven Neumann committed
4
                   ------------------------------
5

6 7 8
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.
9

10

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Overview of Changes from GIMP 2.10.6 to GIMP 2.10.8
===================================================

Core:

  - Use adaptive chunk size in GimpProjection when rendering the
    projection asynchronously, rather than using a fixed chunk size.
    This provides a better trade-off between throughput and
    responsiveness dynamically, based on how fast the processing is.

Tools:

  - In all selection tools, show error on attempt to
    subtract-from/intersect-with empty selection.
  - Fix text along path not working with vertical text.
  - Fix Text tool's frame position when undoing a move operation.
  - Streamline Text tool's drawing blocking/unblocking logic.
  - When moving a text layer using the text tool (through alt+drag),
    don't change the layer's box mode to "fixed", which is unnecessary,
    since the layer's size isn't affected.

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
32 33 34 35
Plug-ins:

  - Port all plug-ins to the new iterator API in GEGL.
  - Improve automatic detection of HEIC/HEIF files.
36 37
  - Improve RawTherapee discovery by looking up registry key (should
    become useful with RawTherapee 5.5 and more).
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
38 39 40 41 42 43 44 45 46 47 48

Usability:

  - Compatibility information in the Save dialog is now more understandable.
    The minimum GIMP version for the XCF file is always written down when it
    is GIMP 2.8 or over. The list of features warranting the minimum version
    is now listed in an expander container rather than as tooltip, which
    makes it more discoverable. The warning on compression is now displayed
    as its own text under the checkbox and not as additional text to the
    minimum GIMP version label.

49 50 51 52 53 54 55 56 57 58 59 60 61 62
CLI:

  - New self-explanatory --enable-win32-debug-console CLI option

Debugging:

  - New GimpBacktrace API provides an interface for creating and
    traversing multi-threaded backtraces, as well as querying symbol
    information. Backends are available for Linux and Windows.
  - Performance log recording now available in the Dashboard dock.
    The log contains a series of samples of the dashboard variables,
    as well as the full program backtrace, when available. As such,
    it essentially acts as a built-in profiler, which allows us to
    correlate program execution with the information available
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
63
    through the Dashboard.
64 65 66 67 68 69 70 71 72 73 74 75
  - New performance-log-expand.py tool decodes a delta-encoded
    performance log by expanding the deltas, producing a log where
    each sample (and other relevant elements) contain complete
    information. The structure of expanded logs is identical to that
    of delta-encoded logs, the expanded log simply has no deltas.
  - New performance-log-resolve.py tool resolves symbol information
    in backtraces. The logs produced by GIMP only specify the program
    counter at each stack frame, providing an address-map to map
    program-counter addresses to actual symbols separately. This tool
    looks up each program-counter address in the address map,
    incorporating the relevant symbol information directly into the
    backtrace.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
76 77 78 79 80 81 82 83 84 85 86
  - New performance-log-deduce.py tool that statistically deduces the
    correct thread states based on backtrace address frequency, fixing
    local inaccuracies.
  - New performance-log-viewer.py tool that is a viewer for GIMP
    performance logs, with a sample-selection area at the top and an
    information area at the bottom. The sample-selection area visualizes
    the sampled variables and markers using a simultaneous set of plots,
    and displays the currently selected samples. The information area
    shows global information stored in the log, as well as information
    specific to the currently selected samples, including variable listing
    and statistics, full backtrace, and profile/call-graph information.
87 88 89 90 91 92 93

Translations:

  - Updated translations: Finnish, German, Hungarian, Italian, Polish,
    Portuguese (Brazil), Spanish.


Jehan's avatar
Jehan committed
94 95 96 97 98 99
Overview of Changes from GIMP 2.10.4 to GIMP 2.10.6
===================================================

Core:

  - Render drawable previews asynchronously.
Jehan's avatar
Jehan committed
100 101
  - Merge the file view filter and file format lists in GimpFileDialog.
    The presence of 2 lists was very confusing.
Jehan's avatar
Jehan committed
102 103 104 105
  - 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.
Jehan's avatar
Jehan committed
106 107 108 109

Filters:

  - New "Little Planet" (gegl:stereographic-projection) filter.
110
  - New "Long Shadow" (gegl:long-shadow) filter.
Jehan's avatar
Jehan committed
111

Jehan's avatar
Jehan committed
112 113 114 115 116 117 118 119 120 121
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.
Jehan's avatar
Jehan committed
122 123 124 125 126 127
  - 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
Jehan's avatar
Jehan committed
128

Jehan's avatar
Jehan committed
129 130 131 132 133 134 135 136 137 138 139
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
Jehan's avatar
Jehan committed
140 141 142
  - 12 translations were updated: Brazilian Portuguese, Dutch, French,
    German, Greek, Italian, Latvian, Polish, Romanian, Slovenian,
    Spanish, Swedish.
Jehan's avatar
Jehan committed
143

Jehan's avatar
Jehan committed
144 145 146 147 148
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/).
Jehan's avatar
Jehan committed
149 150 151 152
  - 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).
Jehan's avatar
Jehan committed
153

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
154 155 156 157 158 159 160 161
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.
Jehan's avatar
Jehan committed
162 163 164 165 166
  - 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.
Jehan's avatar
Jehan committed
167 168
  - New tool option manager to better keep track of user context and
    paint options in a consistent manner.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
169

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
170 171 172 173
User Interface:

  - The Dashboard dockable dialog now has a 'Memory' group that shows
    memory-usage information: the currently used memory size, the
174 175 176 177 178 179 180
    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
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
181
    read-from/written-to the tile swap, respetively. Additionally, the
182 183 184 185 186 187
    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.
Jehan's avatar
Jehan committed
188 189
  - Some icons fixed: larger spacing between broken chains and
    gimp-tool-ellipse-select made symmetrical.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
190

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
191 192
Usability:

193 194 195 196
  - 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.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
197

Jehan's avatar
Jehan committed
198 199
Tools:

200 201 202 203 204 205
  - 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.
Jehan's avatar
Jehan committed
206

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
207 208
Build:

209 210
  - Installer: set compatibility options to run Python plugins in
    HiDPI-aware mode.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
211
  - Put back compatibility DLLs for really old plugins.
Jehan's avatar
Jehan committed
212 213
  - Install binary tool `gimp-test-clipboard` on the system to allow
    people to help us debug clipboard bugs.
214 215 216 217
  - --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.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
218
  
Jehan's avatar
Jehan committed
219 220 221 222
Plug-ins:

  - gimptool-2.0 binary now accepts source files with non-standard
    extensions if it can try to guess appropriate language from the
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
223 224
    compiler being used. It will also properly quote arguments for
    shell usage.
Jehan's avatar
Jehan committed
225 226 227 228
  - 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.
Jehan's avatar
Jehan committed
229

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
230 231 232
File Formats:

  - The PSD loader now provides an option to load "merged",
233 234 235
    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
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
236
    that GIMP doesn't currently support, and therefore can't render
237 238 239 240 241 242 243 244 245
    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.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
246

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
247 248
Translations:

249 250 251
  - Updated translations: Catalan, Czech, Danish, Dutch, Finnish,
    Greek, Hungarian, Italian, Latvian, Polish, Romanian, Russian,
    Spanish, Swedish, Ukrainian.
Jehan's avatar
Jehan committed
252

Michael Natterer's avatar
Michael Natterer committed
253

254 255
Overview of Changes from GIMP 2.10.0 to GIMP 2.10.2
===================================================
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
256

257 258 259 260
Core:

  - Discard fonts which fail to load and popup an info dialog to allow
    people debug their fonts.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
261 262 263 264
  - 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.
Jehan's avatar
Jehan committed
265 266
  - Tool options are now properly saved and reloaded per-device at
    startup.
267

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
268 269
Plug-ins:

270 271
  - New plug-in for importing and exporting HEIF images.
  - Enable visibility of rasterized vector layer from PSD.
Jehan's avatar
Jehan committed
272 273 274
  - 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%.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
275

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
276 277 278 279 280 281 282 283 284 285 286 287 288
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.
289 290 291
  - Improve mouse wheel zooming behavior to keep the same point
    centered under the pointer even if the image is completely visible
    in the canvas.
292 293
  - Add "View -> Center Image in Window" (Shift+J) as a quick way to
    center the image at any zoom level.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
294

295 296
Translations:

297
  - Updated translations: Catalan, Danish, Dutch, French, German, Greek,
Jehan's avatar
Jehan committed
298 299
    Hungarian, Icelandic, Italian, Latvian, Polish, Russian, Spanish,
    Swedish, Ukrainian.
Jehan's avatar
Jehan committed
300
  - New translation of Windows installer: Chinese (Taiwan)
Jehan's avatar
Jehan committed
301

302 303 304 305 306
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.
Jehan's avatar
Jehan committed
307
  - Add a flatpak manifest for the gtk3-port branch.
308
  - Remove the possibility to disable script-fu.
Jehan's avatar
Jehan committed
309 310 311 312 313 314 315 316
  - 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.
317 318
  - Add documentation skeletons for all enums in libgimpbase/, there is
    much room for improvement.