NEWS 49 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

Michael Natterer's avatar
Michael Natterer committed
10

11 12
Overview of Changes from GIMP 2.10.0 RC1 to GIMP 2.10.0
=======================================================
Jehan's avatar
Jehan committed
13 14 15 16 17

Core:

  - CLI option --show-playground visible in --help.
  - Sample point dockable now works with more than 4 sample points.
18 19 20 21 22
  - Various warnings removed, multi-threading officially not
    "experimental" anymore…
  - Various fill and fade operations now use the current paint composite
    mode, allowing for instance filling to paint over transparent areas.
  - Default layer and paint modes are now Normal (instead of Legacy).
Michael Natterer's avatar
Michael Natterer committed
23 24 25 26 27 28 29
  - Be smarter about layer modes for new layers.
  - Get rid of the remaining places that were using the NORMAL_LEGACY
    mode by default (painting, some more).
  - Improve painting speed even more by even more evil C++.
  - Flipping drawables is much faster because it's now working
    tile-by-tile.
  - Gradient rendering is now much faster, using a cache.
30 31 32 33 34

Plug-ins:

  - Ripple plugin removed, compat PDB-API "plug-in-ripple" added
    instead.
Jehan's avatar
Jehan committed
35 36 37 38

PDB:

  - New procedure: gimp-item-transform-translate.
Michael Natterer's avatar
Michael Natterer committed
39
  - Make gimp-item-transform-* transform linked items too.
Jehan's avatar
Jehan committed
40 41 42 43 44 45
  - Deprecate gimp-color-balance and gimp-layer-translate.

Assets / Resources:

  - New "Fun" category for brushes (moving the "Pepper" there, which
    also gets improved resolution), and adding Wilber and GEGL brushes.
46
  - "Structure" brush obsoleted.
Jehan's avatar
Jehan committed
47 48 49 50
  - 5 new and more serious brushes.

Translations:

Jehan's avatar
Jehan committed
51 52
  - 6 translations were updated: Catalan, Danish, Finnish, Korean,
    Polish, Swedish.
53

Michael Natterer's avatar
Michael Natterer committed
54

55 56
Overview of Changes from GIMP 2.10.0 RC1 to GIMP 2.10.0 RC2
===========================================================
Michael Natterer's avatar
Michael Natterer committed
57

Jehan's avatar
Jehan committed
58 59
Core:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
60
  - Symmetries are now preserved in XCF files (saved as image parasites).
Jehan's avatar
Jehan committed
61 62 63 64
  - New runtime option --show-debug-menu in order to make the File >
    Debug menu visible.
  - Do not show invisible actions in search dialog.
  - Do not dither image mask and channels for imported images.
Jehan's avatar
Jehan committed
65 66
  - Various optimizations for painting and display (WIP), including
    parallelized painting code.
Jehan's avatar
Jehan committed
67 68 69
  - New "Misc" group to the Dashboard dock, with currently only a
    "Mipmapped" field showing the total size of processed mipmapped
    data.
Jehan's avatar
Jehan committed
70 71
  - Plug-ins debugging on crashes through --stack-trace-mode CLI option
    improved to handle more case.
Michael Natterer's avatar
Michael Natterer committed
72 73 74 75
  - Fix selection -> channel -> selection roundtrips by never doing
    any gamma conversion when converting between an image's selection,
    channels, masks. Also, make all channels linear in all images with
    >8bit.
Jehan's avatar
Jehan committed
76

77 78 79 80 81 82 83 84 85 86 87
Libgimp:

  - New group "drawable_edit" which contains all functions from "edit"
    that are not cut/copy/paste. The new functions have much less
    arguments and take them from the context instead. The respective
    functions in "edit" have been deprecated.
  - New functions in "context" to configure aspects of gradient
    drawing, and to set the built-in gradients (the new gradient
    function in "drawable_edit" doesn't have a parameter for the
    gradient type any longer).

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
88 89
User interface:

90 91 92
  - Lighter and Darker themes removed for now, Light and Dark themes
    rewritten from scratch to get rid of various usability issues and
    glitches. Only Gray theme from previous set kept as-is.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
93 94 95
  - New GimpToolGyroscope on-canvas control, currently used for
    the Panorama Projection filter. The widget provides on-canvas
    interaction for 3D rotation (yaw, pitch, roll).
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
96

Jehan's avatar
Jehan committed
97 98 99 100 101 102 103 104 105 106 107 108
Configurability:

  - In Preferences > Dialog Defaults, new section "Filter Dialogs"
    created to customize various common features of filters, such as
    recent settings and advanced color options.
  - Do not default to last used filter settings, but allow this behavior
    in Preferences > Dialog Defaults, with checkbox "Default to the last
    used settings".

Tools:

  - Color used in the Smudge tool is now added to the color history.
Jehan's avatar
Jehan committed
109
  - "Blend" tool renamed to much more consistent "Gradient" tool.
110 111 112
    Also it can now work in linear RGB matching capabilities CSS/SVG
    specification without gamma-errors in color blending and CIE Lab
    which in addition keeps a perceptual graylevel.
Jehan's avatar
Jehan committed
113 114 115 116 117 118 119 120 121 122 123 124 125

Assets / Resources:

  - Adding 4K UHD in document templates (and fixing 4K DCI).

Building:

  - New --enable-bundled-mypaint-brushes option in configure to decide
    whether to use the configure-time installation path of MyPaint
    brushes, or use a path relative to GIMP installation prefix
    (typically for bundled binaries, such as on Windows or macOS).
  - Detect freetype2 using pkg-config (`freetype-config` is on its way
    out in various distributions apparently).
Jehan's avatar
Jehan committed
126
  - Appdata now installed to $PREFIX/share/metainfo/
Jehan's avatar
Jehan committed
127

Jehan's avatar
Jehan committed
128 129
Translations:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
130
  - 8 translations were updated: Arabic, Catalan, Chinese, French, Italian,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
131
    Polish, Russian, Swedish.
Jehan's avatar
Jehan committed
132

133

Jehan's avatar
Jehan committed
134 135
Overview of Changes from GIMP 2.9.8 to GIMP 2.10.0 RC1
======================================================
Jehan's avatar
Jehan committed
136

Jehan's avatar
Jehan committed
137 138 139
Core:

  - New dashboard dockable: shows the current GEGL cache and swap sizes
Jehan's avatar
Jehan committed
140 141 142 143
    and CPU usage and active time, and their recent history. It has
    options to control the update rate and history duration of the data,
    and an option to warn (by raising/blinking the dialog) when the swap
    size approaches its limit.
Jehan's avatar
Jehan committed
144
  - Make the selection boundary detection the same as 2.8.
Jehan's avatar
Jehan committed
145 146 147 148
  - The environment variable GIMP_DEBUG can now be set to "list-all" to
    display available debug domains. Non-recognized flags will also
    trigger the debug flag list output.
  - Improve migration from 2.8 to 2.10 by recursively migrating
Jehan's avatar
Jehan committed
149 150
    configuration files (up to 5 levels, to protect from recursive
    symbolic links).
Jehan's avatar
Jehan committed
151
  - Mark legacy plug-ins and scripts in menus.
Jehan's avatar
Jehan committed
152 153
  - Enable "save-tool-options" and "save-device-status" by default,
    it's the expected behavior these days.
Michael Natterer's avatar
Michael Natterer committed
154 155
  - GIMP doesn't warn any more for unknown darktable XMP metadata. We now
    register the corresponding namespace.
156
  - Adding settings for metadata export handling in "Image Import &
157 158 159
    Export" page of Preferences. By default, the settings are checked,
    but you can uncheck them (in particular since metadata can often
    contain a lot of sensitive information).
Michael Natterer's avatar
Michael Natterer committed
160
  - Splash image now scaled down to maximum 1/2 of the screen area. This
Jehan's avatar
Jehan committed
161 162 163 164 165 166 167
    will allow to ship a big splash image which will be visible on all
    type of screens, whichever low or high resolution. Vector splash
    images are scaled both up or down to have them always at ideal size.
  - Brightness-Contrast, Curves, Levels and Threshold are now available
    in "Repeat last" history.
  - Improve action history to not show newly excluded actions (which
    were already in our history from before the exclusion).
Jehan's avatar
Jehan committed
168 169
  - Use GEGL for transform-tools preview, allowing faster and more
    accurate previews.
Michael Natterer's avatar
Michael Natterer committed
170
  - Re-arrange color models in the Color dock (WIP).
Jehan's avatar
Jehan committed
171 172 173 174 175
  - New debug tool and infrastructure to handle WARNING and CRITICAL
    errors, as well as fatal errors (crashes), raising a pop-up with all
    version information on GIMP and its main dependencies, as well as
    the error message and backtraces, and encouraging people to make bug
    reports.
Jehan's avatar
Jehan committed
176
  - Support layer masks on layer groups.
Jehan's avatar
Jehan committed
177
  - GIMP now attempts to backup unsaved images when it crashes. Then at
Michael Natterer's avatar
Michael Natterer committed
178
    next startup, it will suggest to recover the salvaged images. Image
Jehan's avatar
Jehan committed
179
    recovery is not 100% guaranteed.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
180 181
  - New gimp_spawn_async() function uses vfork() to help avoid hanging
    during a fork process, currently used for plug-ins.
Jehan's avatar
Jehan committed
182
  - Dock color picker is now color-managed on macOS.
183 184 185 186 187 188

Libgimp:

   - New gimp_export_exif(), gimp_export_xmp() and gimp_export_iptc()
     functions returning the creator choice regarding default handling
     for metadata export (as set in the Preferences).
Jehan's avatar
Jehan committed
189
   - GIMP Protocol version incremented.
Jehan's avatar
Jehan committed
190
   - New gimp_get_pdb_status() to return the status of the last PDB
Michael Natterer's avatar
Michael Natterer committed
191
     call. This is needed for plug-ins which depend on other plug-ins'
Jehan's avatar
Jehan committed
192 193 194
     procedures. If for instance, a second-level plug-in is interrupted
     interactively, we don't want to process this as an error but as a
     cancellation.
195 196
   - New gimp_stack_trace_available(), gimp_stack_trace_print() and
     gimp_stack_trace_query() for debugging.
Jehan's avatar
Jehan committed
197 198 199
   - Use gegl:distance-transform in gimp_edit_blend() implementation
     making it much faster for all GRADIENT_SHAPEBURST_* gradient types.
     Legacy gimp:shapeburst operation has been deleted.
Jehan's avatar
Jehan committed
200 201 202
   - New gimp_context_get_distance_metric() and
     gimp_context_set_distance_metric() for distance metric used in
     gimp_edit_blend() (and future usage).
Jehan's avatar
Jehan committed
203

Jehan's avatar
Jehan committed
204 205
GUI and Usability:

Jehan's avatar
Jehan committed
206 207 208 209
  - New icons: "gimp-attach", "gimp-color-space-linear",
    "gimp-color-space-perceptual", "gimp-color-temperature",
    "gimp-dashboard", "gimp-detach", "gimp-tool-desaturate",
    "gimp-tool-exposure", "gimp-tool-shadows-highlights".
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
210 211 212
  - Switching between linear and perceptual (gamma-corrected) spaces
    in the Histogram dialog is easier now: two buttons instead of one
    two-way button where current state was difficult to understand.
Jehan's avatar
Jehan committed
213
  - Shorten color channel labels in the color frame (color picker tool,
Jehan's avatar
Jehan committed
214 215
    sample point editor…) with conventional 1 or 2-letter abbreviations,
    and split coordinates on 2 lines.
Jehan's avatar
Jehan committed
216 217
  - We now switch to "Huge" icons by default when the display pixel
    density is over 250 PPI (used to be 300 PPI).
Jehan's avatar
Jehan committed
218 219 220 221 222
  - Improve action history sorting: items climb up the list faster,
    while top items retain their relative position longer.
  - Extend action search "initialism": Extend initialism-based search
    (e.g.: "gb" for "Gaussian Blur"), by matching arbitrarily-long
    initialisms, and by allowing partial matches (with lesser priority).
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
223 224 225 226 227 228 229
  - Values in the GimpNumberPairEntry widgets can now be cleared by clicking
    an icon.
  - Transform Grid controller is now available for custom UIs of GEGL
    operations (currently used for Recursive Transform op).
  - New GimpHighlightableButton widget is used to draw attention to buttons
    in certain cases. Currently used for anchoring and removing floating
    selections.
Jehan's avatar
Jehan committed
230 231 232 233 234
  - Composite modes were renamed to be more descriptive, as follows:
    Source Over       =>  Union
    Source Atop       =>  Clip to Backdrop
    Destination Atop  =>  Clip to Layer
    Source In         =>  Intersection
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
235 236 237 238 239

Configurability:

  - Wilber logo in the toolbox can now be disabled via Preferences
    (the Toolbox page).
Jehan's avatar
Jehan committed
240

241
Tools:
Michael Natterer's avatar
Michael Natterer committed
242

243 244 245 246 247 248 249 250 251
  - "Link brush size with canvas zoom" paint option becomes "Lock brush
    to view" to make a brush invariant in display space whichever
    scaling, rotation, and reflection.
  - Blend tool now displays the line length (in current shell unit and
    with ideal digit accuracy) and angle in the status bar.
  - Constrain line angles in display space: all tools which have a line
    constraint feature (for instance blend tool, paint tools in line
    mode, etc.) will now do so relatively to the display, allowing you
    to rotate the canvas in order to constrain to any arbitrary angle.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
252 253 254
  - Levels and Curves can now work on linear light data, the toggles are
    at the top of respective dialogs, right next to linear/log toggles
    for the histogram.
Jehan's avatar
Jehan committed
255 256 257
  - Blend tool now has a distance metric option to determine how
    distances are computed (Euclidean, Manhattan or Chebyshev
    distances).
258

259 260 261 262 263
Filters:

  - New GEGL-based Shadows-Highlights filter now available in the Colors
    menu. The implementation is based on the code from darktable.

264 265 266
Plug-ins:

  - Screenshot with the generic Freedesktop API has been implemented. It
Jehan's avatar
Jehan committed
267 268 269 270 271 272 273
    is meant to replace all desktop environment specific APIs eventually
    but needs to get reasonable features first. Therefore currently
    GNOME/KDE and X11 implementations still have priority.
  - qbist ported to GEGL and float.
  - Colors for the standard output and standard error texts in the
    Python console are now themeable, mapping respectively to normal
    text and insensitive text colors for the "python-fu-console" widget.
Michael Natterer's avatar
Michael Natterer committed
274
    We updated the default colors a bit for our themes. If this is not
Jehan's avatar
Jehan committed
275 276
    good enough (for instance, if one has a specific type of color
    blindness), at least it is now possible to create a custom theme
Jehan's avatar
Jehan committed
277
    adapted to one's needs.
Jehan's avatar
Jehan committed
278
  - PSD export now happens with progress bar update for feedback.
Jehan's avatar
Jehan committed
279 280
  - Win32 Screenshot improved to handle hardware-rendered software and
    multi-monitor displays.
Jehan's avatar
Jehan committed
281 282 283 284 285 286 287 288 289 290

File formats:

  - Fix various vulnerabilities in file plug-ins: GBR (CVE-2017-17784),
    PSP (CVE-2017-17787 and CVE-2017-17789), TGA (CVE-2017-17786) and
    FLI (CVE-2017-17785).
  - Fix WebP export under Windows.
  - No more max dimension limitation for X cursors. We still warn when
    cursor size is over a max limit for X bitmap cursors, but we don't
    clamp anymore on export.
291
  - JPEG, PNG, TIFF and WebP export plug-ins updated to honor creator's
Jehan's avatar
Jehan committed
292
    default choice regarding metadata handling.
Jehan's avatar
Jehan committed
293
  - Fix GIH brushes using different-sized layers.
294
  - RGBE (Radiance HDR) format files can now be imported and exported.
Jehan's avatar
Jehan committed
295 296 297
  - JPEG2000 loading now done via OpenJPEG library and supports any bit
    depth (over 32-bit per channel will be clamped to 32-bit and
    non-multiple of 8-bit will be promoted, for instance 12-bit will end
Jehan's avatar
Jehan committed
298 299 300 301 302
    up as 16-bit per channel in GIMP). JPEG 2000 codestream also
    supported and displays a dialog asking for the color space (whereas
    JPEG 2000 image color space are auto-detected).
    JPEG 2000 images or codestream in YCbCr, xvYCC and CMYK color spaces
    are converted to sRGB images upon loading.
303

Jehan's avatar
Jehan committed
304 305 306 307 308
Building:

  - poppler and poppler-data now hard dependencies. PDF import is
    considered a granted feature nowadays and fallbacking to the
    Postscript plug-in was bad experience.
Jehan's avatar
Jehan committed
309
  - move PDB generation and sources to toplevel/pdb.
Jehan's avatar
Jehan committed
310 311 312
  - New configure option `--enable-windows-installer` to generate the
    necessary files for the installer translations during the build.
  - Improve POTFILES generation for po-*/ directories.
Jehan's avatar
Jehan committed
313 314 315
  - Require glib >= 2.54.2.
  - New dependency to mypaint-brushes-1.0 for stable MyPaint brushes
    available at installation.
316 317
  - AppStream ID renamed from gimp.desktop to org.gimp.GIMP following
    current convention.
Jehan's avatar
Jehan committed
318 319 320 321
  - Require fontconfig >= 2.12.4. Lower versions are particularly a
    problem on Win32, where many cache update failure were reported to
    us, resulting in very slow startup and close-up (and not only the
    first time, but every time).
Jehan's avatar
Jehan committed
322

Jehan's avatar
Jehan committed
323 324 325
Translations:

  - Windows installer now localized with gettext.
Jehan's avatar
Jehan committed
326
  - String freeze has started and GIMP received updates from:
327
    Basque, Brazilian Portuguese, Catalan, Chinese (Taiwan), Danish,
Jehan's avatar
Jehan committed
328
    Esperanto, French, German, Greek, Hungarian, Icelandic, Italian,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
329 330
    Japanese, Latvian, Polish, Russian, Serbian, Slovenian, Spanish,
    Swedish, Turkish.
Jehan's avatar
Jehan committed
331

Michael Natterer's avatar
Michael Natterer committed
332

Jehan's avatar
Jehan committed
333 334 335 336
Overview of Changes from GIMP 2.9.6 to GIMP 2.9.8
=================================================

Core:
337

Jehan's avatar
Jehan committed
338
  - The default brush is now "Hardness 050".
Jehan's avatar
Jehan committed
339 340
  - Verbose version (command line: gimp -v) now displays C compiler
    information.
341
  - Transform tools don't commit identity transformation anymore.
342 343 344 345 346
  - Manual language can now be selected amongst all installed manuals,
    which is particularly interesting when no GIMP manuals are available
    in your GUI language. This will be proposed by default when a manual
    is not installed for the GUI language (alongside the possibility to
    read online) and the choice can be edited in preferences.
347
  - The statusbar now blinks on warnings and errors.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
348 349 350
  - Paste in Place, available for regular clipboard and named buffers,
    allows pasting contents of either the clipboard a named buffer at the
    exact coordinates it was copied from.
351 352 353 354
  - Color Picker should now work on KDE/Wayland.
  - Color Picker now reads values under cursor in local windows making
    it work at least inside GIMP Windows on Wayland platforms with no
    color-picking capabilities (for instance GNOME/Wayland) yet.
355 356 357 358 359 360 361 362 363
  - OpenCL is now disabled by default. Depending on graphics cards and
    drivers, OpenCL acceleration is often slower than multi-threaded
    implementation, and can also sometimes be "glitchy".
  - Now possible to open a locally-installed manual different from the
    GUI localization. The manual language choice can be customized
    through preferences when several manuals are installed. If no manual
    language has been selected already and no manual for current GUI
    localization is available, choice of help language will be proposed
    at first call to the manual.
Jehan's avatar
Jehan committed
364

Jehan's avatar
Jehan committed
365 366 367 368
Configurability:

  - Keybindings now possible for previous/next/top/bottom channel.

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
369 370 371 372 373 374 375
Usability:

  - The spinscale widget now highlights vertical parts of the slider
    section differently to hint that position of cursor above the widget
    matters. When changing values in the lower step section, the pointer
    will be wrapped around the screen so that you could continue adjusting
    the value without interruptions.
Jehan's avatar
Jehan committed
376
  - Canvas rotation and flip information is now visible in the status
377 378 379
    bar (as angle value and flip icon). Clicking on these canvas status
    will respectively raise the "Select Rotation Angle" dialog or unflip
    the canvas.
380 381 382
  - Use abbreviated versions for long layer mode names. In particular,
    replace the "(legacy)" suffixes with "(l)" in the abbreviated
    versions, still showing the unabbreviated names in the full list.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
383

384 385 386 387 388 389 390 391 392
Tools:

  - Blend tool now features on-canvas gradient editing: adding, shifting,
    removing color stops, shifting midpoints and converting them to color
    stops, assignging colors to color stops, changing blending type
    for midpoints. Additional options: 'Instant mode' (active before you
    start blending) to support the old workflow where you can't edit color
    stops before applying the gradient fill, and 'Modify active gradient'
    which allows changing user-writable gradients directly rather than
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
393 394 395 396
    creating copies of them. Moreover, custom gradient is now saved
    and restored across sessions.
  - All transform tools: it makes no difference now whether a modifier is
    pressed before of after mouse button press/release.
397 398 399 400 401 402 403
  - Free Select tool selection can now be committed with double click as
    well (only through Enter key before). This allows smoother workflows
    on some setups, and in particular when no keyboard is available
    (e.g. tablet-like computers).
  - Layer group children now inherit the color tags of the parent by
    default, unless specific color tags are assigned. Inherited color
    tags show in a less saturated color than assigned ones.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
404 405 406 407

Painting:

  - When copying a generated brush, GIMP now copies its 'Spacing' property.
408
  - Rename "Wheel" dynamics labels as "Wheel/Rotation". It turns out
409 410 411
    that Wacom Art Pen and Airbrush pen use the same axis for barrel rotation
    and wheel scrolling respectively. Therefore they already work in GIMP.
    "Unhide" the feature with more obvious labels.
412

413 414 415 416
Color management:

  - Use babl to convert between profiles if possible.

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
417 418 419 420 421 422 423 424
Display filters:

  - New 'Clip Warning' display filter to show underexposed and overexposed
    values. Target values below 0 and above 1.0, hence it only works on
    16/32 bit per channel float images (such as EXR and TIFF).
  - Display filters now operate in unbounded sRGB rather than in monitor
    color space.

Jehan's avatar
Jehan committed
425
Plug-ins:
426 427

  - Fix finding raw loaders on Windows/macOS.
428 429
  - Screenshot for KDE/Wayland has been implemented (full-screen and
    window screenshots only; rectangular area screenshots need
430
    implementation on the KDE side).
431 432 433
  - Screenshot can now add a delay between window pick/rectangular
    area selection and the actual shot, but only in platforms supporting
    the feature.
434 435 436 437 438 439 440 441

File formats:

  - PSD:
    - Fix mask position when opening/exporting.
    - Fix active layer selection during loading.
    - Fix potential group-layer naming conflict during loading.
    - Fix missing some attributes loading empty layers.
442
    - Fix reading files with deeply nested layer groups.
443
    - Load and save layer group expanded state.
444 445 446 447
    - Improve layer opacity loading/saving.
  - PDF: password-protected files can now be imported.
  - HGT: Digital Elevation Model data from NASA/NIMA can now be loaded,
    both SRTM-1 (1 arc-second) and SRTM-3 (3 arc-seconds).
448

449 450 451
Filters:

  - Update GEGL-based filter Wavelet Decompose:
452 453 454
    - Add an option to keep the decomposition in a layer group.
    - Add an option to add layer mask to each scales layers.
    - Do not use 'New from visible' because it produces unexpected
455 456
      results; replaced by succession of layer copy and merge down.

Jehan's avatar
Jehan committed
457 458
PDB:

459 460
  - Add file-pdf-load2 API to load password-protected and/or multi-page
    PDF files.
Jehan's avatar
Jehan committed
461
  - Add file-hgt-load to load HGT files, with an argument to select between
Jehan's avatar
Jehan committed
462
    SRTM-1 and SRTM-3 types.
Jehan's avatar
Jehan committed
463

464 465
Translations:

466
  - Updated: Catalan, Croatian, Galician, German, Greek, Hungarian,
467
    Icelandic, Indonesian, Italian, Polish, Russian, Spanish.
468 469 470 471 472

Building:

  - Require LittleCMS >= 2.8.
  - Initial docker-based build environment for GIMP now available.
Jehan's avatar
Jehan committed
473
  - Warn against use of GCC 7.2 which has a bug breaking GIMP.
474
  - An official flatpak stable package is now available on flathub.
475 476 477

Contributors:

478 479 480
Mario Blättermann, Hanno Boeck, Joao S O Bueno, Marco Ciampa,
Fran Dieguez, Piotr Drąg, Tobias Ellinghaus, Ell, Sveinn í Felli,
gogo, Luis Angel Gonzo, Anders Jonsson, Christian Kirbach,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
481 482
Øyvind Kolås, Thomas Manni, Jordi Mas, Balázs Meskó, Lionel N,
Michael Natterer, Jehan Pagès, Juan Palacios, Alexandre Prokoudine,
483
Christopher Rogers, Michael Schumacher, shark0r, Dimitris Spingos,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
484
Tobias Stoeckmann, Andika Triwidada, Massimo Valentini.
Jehan's avatar
Jehan committed
485

Michael Natterer's avatar
Michael Natterer committed
486

487 488 489 490 491
Overview of Changes from GIMP 2.9.4 to GIMP 2.9.6
=================================================

Core:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
492 493 494
  - Make it possible to use multithreading in GEGL and raise max amount
    of threads to 64. Given how unstable this feature is, any value
    above 1 should be currently treated as a step inside an industrial
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
495
    microwave oven with the on/off switch on the outside.
496
  - New clipboard implementation allows copying/pasting layers and
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
497
    layer groups.
498
  - Color tags simplify managing large projects with a lot of layers
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
499
    and layer groups.
Jehan's avatar
Jehan committed
500 501
  - The Mouse Pointer dialog and colors applied to images are now
    color-managed.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
502
  - Gamma and precision selectors for newly created images.
503
  - Never dither when converting to a higher bit depth, or to anything
Jehan's avatar
Jehan committed
504
    more than 16 bits; don't offer dithering options in these cases.
505
  - Default to linear TRC when converting to 16-bit float.
506
  - Pre-initialize some babl-based pixel format conversion routines
Jehan's avatar
Jehan committed
507 508
    at start-up to decrease the initial lazy intialization cost for
    some interactions.
509 510
  - Remove max size limitation of 4GB for XCF files.
  - Support clipboard images in the clipboard brush and pattern.
511
  - libgimp calls are now thread-safe.
512 513 514 515 516

Layers and compositing:

  - Layer modes' code is now refactored to separate gamma-corrected
    variations from the linear light ones, legacy modes have been
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
517 518
    preserved to support older XCF files. UI to switch between the two
    is experimental and should be treated as a temporary design.
519 520 521 522 523
  - Blending and compositing of layers are configurable separately for
    more flexibility now, compositing can be linear TRC, perceptual TRC
    or CIE LAB.
  - Layer blending color space and compositing color space are
    configurable now.
524 525 526
  - Layers created from the GUI and from plug-ins now default to
    normal mode (not normal-legacy), unless all the existing layers
    in the image are also in legacy mode.
527
  - New layer modes: linear burn, vivid light, linear light, pin light,
528 529
    hard mix, exclusion, merge, split, luminance (rgb), pass-through
    (for layer groups only).
530 531 532 533 534
  - Make erase mode an ordinary layer/paint mode.
  - Better performance of HSV-based layer modes.
  - Rename "Color (HSV)" mode to "Color (HSL)" to indicate the actual
    color space being used.

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
535 536 537 538 539
On-canvas interaction changes:

  - Refactor on-canvas interaction code out of some of the tools and
    make it reusable.
  - Update tools accordingly.
540 541
  - Make on-canvas interaction accessible to GEGL-based filters and
    use it in the Spiral and Supernova filters as a test case.
542

543
GUI and usability:
544

545
  - Easily add or remove layer masks by clicking either the layer
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
546
    preview or a new button in the Layers dialog.
547 548
  - Enhance the Layer Attributes dialog to provide the single UI for
    setting layer's name, blending mode, opacity, and offset,
549
    toggling visibility, link status, various locks, color tags.
Jehan's avatar
Jehan committed
550 551
  - Add a Save As button to the “Quit GIMP” dialog and raise images
    on click for easy checks.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
552
  - Allow to choose fill color when resizing layers and images.
Michael Natterer's avatar
Michael Natterer committed
553
  - Quick Mask and Channel Attributes dialogs use the new spinscale
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
554 555 556
    widget for the  mask opacity slider.
  - Enable grid views of dynamics and tool presets.
  - Allow to zoom with middle mouse button + control + drag up/down.
557
  - For all paint tools, when switching to the color picker mode,
558 559
    don't rely on the exact modifier being pressed or released. Instead,
    check if only the right modifier is pressed after *each* modifier
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
560 561 562
    change, and switch to color picking if it is.
  - On startup, GIMP checks for duplicate accelerators in menus, and
    removes duplicates.
Jehan's avatar
Jehan committed
563 564
  - Standard (Freedesktop) and GTK+ icons can now be set by the icon
    theme for a fully consistent style.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
565
  - Many new icons.
Jehan's avatar
Jehan committed
566
  - Toolbox buttons do not grab focus anymore, which used to break
567 568
    usage of the Tab key and other canvas-related shortcuts after
    changing tools with a pointing device click.
569 570 571
  - Delete Layer/Channel/Path are consistently the last option in
    respective dialogs now.
  - Extend the text along the tangent of the last path stroke, when
Jehan's avatar
Jehan committed
572 573
    the length of the path is shorter than the width of the text to be
    warped.
574 575 576
  - Allow to toggle the histogram dialog between gamma and linear.
  - New 'Colors -> Linear Invert' command to provide radiometrically
    correct color inversion.
577 578
  - Quit dialog now exits when all the images in the list have been
    saved.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
579
  - The built-in error dialog now displays errors outputted by GEGL.
580 581
  - Shift-clicking the visibility icon of a layer in a layer group now
    toggles its exclusive visibility within this layer group.
582 583 584

Color selection and management:

585
  - Add the profile import policy to Preferences -> Import.
586 587 588 589 590
  - Color management for GEGL-based filters is expensive, so it's off
    by default for now, and options are hidden by default too.
  - Add LCH color selector, with support for gamut checking.
  - Default to magenta for out-of-gamut color.
  - Make all script-fu color buttons color-managed.
591 592 593

Configurability:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
594
  - Remember settings of many dialogs across sessions.
595
  - New Interface / Dialog Defaults page in the Preferences dialog to
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
596
    control defaults values of various dialogs.
Michael Natterer's avatar
Michael Natterer committed
597
  - Settings on some individual pages of the Preferences dialog can be
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
598
    reset separately now.
599
  - Vertical scrollbar added to keep the height of the Preferences
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
600
    dialog fitting small displays.
601
  - Allow mouse to optionally configure tablet devices
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
602 603
  - Allow creating shortcuts containing the Cmd key + mouse wheel events.
  - Default to 300ppi and 1920x1080px for new documents.
604
  - Default to 62px font size.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
605
  - Do not allow Alt+[0-9] shortcuts, they are typically reserved for
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
606
    display switching.
607 608
  - Icons size is now a configurable option, not a theme feature.
    The icon size is also auto-guessed from monitor resolution now.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
609 610
  - It is now possible to have keybindings for previous/next/top/bottom
    vectors.
611 612 613

Tools:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
614
  - Complete the Handle Transform tool and make it available by default.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
615
  - Add Hue-Chroma operation/tool that operates in CIE LCH color space.
616 617
  - Replace Color Balance, Colorize and Hue-Saturation with GEGL-based
    filters with a custom user interface to ease future transition to
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
618 619
    non-destructive editing planned for v3.2. Remove the "Image -> 
    Tools -> Color Tools" submenu.
620
  - The Move tool now shows relative coordinates when moving guides
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
621
    and sample points.
622 623 624
  - The Measure tool has better digit precision now (before that, at
    4000 PPI, up to 7 pixels would show up as 0 mm, then at 0.1 mm from
    the 8th pixel etc.).
625 626 627 628
  - All paint tools now display the angle (relatively to the horizontal
    line, centered on previously drawn position) alongside distance in
    status bar when straight line constraining (holding shift when
    painting).
629
  - Performance of the Fuzzy Select and the Bucket Fill tool has been
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
630
    improved.
631 632 633 634 635 636
  - The Fuzzy Select and the Bucket Fill tool now can select colors by
    CIE L, C, and H.
  - Unclutter transform tools: default to "no grid", hide the original
    layer during the interactive transform (except for the Flip tool).
  - Make the Warp Transform tool faster, add more options, use
    the linear sampler to ensure crisp lines after an erase.
Jehan's avatar
Jehan committed
637 638
  - Select by Color and Color Picker tools work now correctly in color
    spaces other than sRGB.
639 640
  - Free Select tool now waits for Enter being pressed to confirm
    selection, which enables you to tweak positions of polygonal selection.
Jehan's avatar
Jehan committed
641
  - Color Picker doesn't snap to anything when picking colors anymore,
642 643 644
    always draws the outline of the averaged region (not only while the
    mouse is being pressed), and supports arbitrary range of values
    regardless of the actual image color precision.
645 646
  - Color Picker now displays pick position (also visible in the
    Sample Points dialog now), as well as values in CIE LAB and CIE LCH.
647
  - Uncommitted selection by the Intelligent Scissors tool is not
648
    discarded on tool change anymore.
649 650
  - For Intelligent Scissors, GIMP now checks whether the first and the
    last isegments are distinct before closing the curve.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
651 652 653 654
  - Flip tool: add Clipping option to the flip tool. Add support for
    reflecting across guides: when clicking on a guide while using the
    Flip tool, reflect the active item across the guide, rather than
    around its center.
655 656 657

Painting:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
658 659 660 661
  - The Smudge tool now has a Flow control that allows mixing in both
    constant and gradient color while smudging. There's another new
    option to never decrease alpha of existing pixels while smudging
    in the tools options now as well.
662
  - Rulers, scrollbars, and the Navigation dialog follow canvas
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
663
    rotation now.
Jehan's avatar
Jehan committed
664
  - Canvas rotation is now snappier in certain cases.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
665
  - For bitmap brushes, GIMP now caches hardness and disables dynamic
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
666
    change of hardness to improve painting performance. Bitmap brushes
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
667
    also don't get clipped anymore, when hardness is less than 100.
668 669 670
  - Allow painting on transparent layers with modes other than normal.
  - Add a specialized convolution algorithm for the hardness blur
    to make it faster.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
671 672 673 674 675 676
  - Make the Force option insensitive for the Pencil tool.
  - Add new "Pressure Size" dynamics.

File Formats:

  - Make the default raw (DSLR) image importer configurable.
677 678
  - Add RawTherapee plug-in to pre-process various raw (DSLR) images,
    RawTherapee v5.2 is the minimum requirement.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
679 680 681 682
  - Add new file-raw-placeholder plug-in that registers itself for
    loading all raw formats from file-raw/file-formats.h, but does
    nothing except returning an error message pointing to darktable
    and RawTherapee.
683
  - Add native WebP loader/exporter with support for ICC profiles,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
684
    animation, metadata.
685
  - The TIFF loader will not generate warnings about private tags
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
686
    anymore.
687
  - Handle linear gamma PNG files correctly, provide a combo box for
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
688
    specifying PNG bit depth / variant at exporting time.
689
  - Add support for linear burn, linear light, vivid light, pin light,
690
    and hard mix layer modes in PSD (importing and exporting).
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
691 692
  - Load PSD files with layers which contain additional information
    with a length that is not divisible by 4.
693 694 695 696 697 698 699
  - Add support to import/export layer color tags from/to PSD files.
  - Optionally convert all imported (not XCF) images to 32-bit linear
    floating point, and optionally add a little noise in order to
    distribute the colors minimally.
  - Optionally add alpha channel to layers of imported images
    (configurable in Preferences > Import).
  - Support writing PNM files with 16-bit image precision.
Jehan's avatar
Jehan committed
700 701 702 703 704
  - Improve support for PCX files:
    * saving 1bpp and 4bpp images (according to palette size).
    * loading 2bpp, 2 planes/1bpp, 3 planes/1bpp and 4bpp images.
    * non-Black&White monochrome PCX files (any 2 colors according to
      the palette).
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
705 706
  - Add support for exporting multi-page PDF from image layers, with
    optional reversed order.
Jehan's avatar
Jehan committed
707
  - Add RLE support for RGB565 in file-csource.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
708 709 710 711 712 713 714 715

Metadata:

  - Add new metadata viewer that uses Exiv2 to display Exif, XMP, IPTC,
    and DICOM metadata (the latter is displayed on the XMP tab).
  - Add metadata editor that supports adding/editing writing XMP, IPTC,
    DICOM, and GPS/Exif metadata, as well as loading/exporting metadata
    from/to XMP files.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
716

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
717
Printing:
718 719 720 721

  - Print resolution can now be reset to defaults, new values for the
    same image is actually used now without reloading the image.

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
722
Plug-ins:
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
723

724 725
  - The Screenshot plug-in now assigns either monitors profile or
    converts to sRGB.
726 727 728
  - The Screenshot plug-in can now take screenshots of a single window
    and include the mouse pointer in the same time (if the desktop/OS
    allows it).
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
729
  - Port smooth-palette to GEGL.
Jehan's avatar
Jehan committed
730 731 732
  - Enhance the raw (not the digital negative) files plugin:
    introduce exporting settings and remember them across sessions,
    make the plugin invokable non-interactively, and more.
733 734 735 736 737
  - Plug-ins can now be installed into first level directories of a
    plug-ins/ folder. This is in particular to avoid the "DLL hell"
    with shared libraries installed by a plug-in, interfering with other
    unrelated plug-ins. The entry point file has to be named the same as
    the directory (minus extension).
738 739 740 741

Filters:

  - Add GEGL-based filters: Neon (Edge detection), Wavelet Decompose,
742
    Image Gradient, Symmetric Nearest Neighbor, Extract Component,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
743
    RGB Clip, Simple Linear Iterative Clustering, Waterpixels, Spiral.
744
  - Add rotate/flip buttons to the Convolution Matrix filter's GUI
745
    to rotate/flip the matrix.
746
  - For GEGL-based filters, use a new metadata language to dynamically
747 748
    control UI attributes based on context (e.g. auto-disable
    unapplicable options).
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
749 750 751
  - Allow filter actions to have hardcoded default operation settings
    by encoding them directly in the string attached to all filter
    actions.
752

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
753
Color Palettes:
754

755
  - Merge Palettes command is available for multiple selected color
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
756
    palettes now.
757

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
758
Assets / Resources:
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
759

760
  - Some basic presets are available for the Crop tool now: 2x3,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
761 762 763 764
    3x4, 16:10, 16x9, and square.
  - Documents templates have been updated and now feature popular,
    contemporary document presets for both print and digital media.

765 766
PDB:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
767
  - Rename *-paste-as-new to *-paste-as-new-image.
768 769
  - Add PDB API for layer blend space, compositing space, and
    compositing mode.
770 771 772

Build:

773
  - Depend on LCMS2.7+ now, because earlier LCMS2 releases caused
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
774
    problems with certain GIMP blend modes.
775
  - Depend on libpng 1.6.25+ to avoid warnings about known incorrect
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
776
    sRGB profiles, also avoid various vulnerabilities.
777
  - Depend on glib-networking now for HTTPS support.
778
  - Depend on librsvg 2.40.6 which fixes rendering bugs.
779
  - Add a flatpak-builder manifest.
780 781 782

OS-specific changes:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
783
  - Help browser launches on macOS now.
784 785 786

Bugs:

787
  - Overall 204 bugs have been fixed or partially addressed since
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
788
    GIMP 2.9.4.
789 790 791

Translations:

792 793 794 795
  - Updated: Catalan, Chinese (Taiwan), Croatian, Czech, Danish,
    Finnish, French, German, Greek, Hungarian, Icelandic, Italian,
    Kazakh, Occitan, Polish, Portuguese, Russian, Scottish Gaelic,
    Serbian, Slovak, Slovenian, Spanish, Swedish.
796

Michael Natterer's avatar
Michael Natterer committed
797

798 799 800 801 802
Overview of Changes from GIMP 2.9.2 to GIMP 2.9.4
=================================================

Core:

803
  Color Management:
804 805
  - add new GimpColorTransform object to create abstraction from LittleCMS
  - now color-managed:
806 807 808
    - layer/image/color palette/gradient/pattern previews
    - Color Picker tool
    - color buttons of GimpColorHistory
809
    - GimpFgBgEditor, as used e.g. in the toolbox
810 811 812
    - color selectors
    - DND widget
    - painting tools
813 814 815 816
    - copying layers/paste buffer between images
    - Colors applied to images
    - GimpColorPanel and its color dialog (color widgets in dialogs)
    - color areas created from menu actions
Jehan's avatar
Jehan committed
817
  - color management for grayscale images, including setting preferred
818 819
    ICC profile
  - add fast switching between color managed display and soft-proofing
Jehan's avatar
Jehan committed
820
  - add a per-image "is color managed" switch and show the image's
821 822
    "is color managed" state in the window title string
  - add basic support for creating images with color profiles
Jehan's avatar
Jehan committed
823 824
  - add "Optimize" options for display and soft-proofing to optionally
    speed-up rendering at the cost of color fidelity
825 826 827 828 829
  - add Image -> Color Management -> Save Color Profile to File...
  - improve the naming of generated ICC profiles
  - add a shortcut to the profile chooser dialog on OS X too
  - don't let display color management settings affect file import
  - enable color management when a profile is assigned to the image
830
  - enable color management when the image is converted from/to grayscale
831
  - pass the right color profile around in gimp_selection_float()
Jehan's avatar
Jehan committed
832
  - hardcode the CMYK selector's conversion parameters, as well as NTSC
833 834 835
    parameters in babl/GEGL/GIMP
  - have all previews track the monitor they are on

836
  Core:
837 838 839
  - add "Select -> Flood" select action
  - add "Select -> Remove Holes" action
  - add "Border style" combo to the "Select -> Border..." dialog
840
  - do not request xcf compat mode when compat_toggle not sensitive
Jehan's avatar
Jehan committed
841 842
  - initialize fontconfig in the background to be able to show a pulsing
    progress bar when rebuilding the list of fonts (typically, the first
843 844
    time GIMP runs)
  - fix the Behind blending mode
845
  - make Burn mode output match Gimp 2.8 (partial revert of bug 744265)
846 847 848 849
  - improve file magic matching
  - add a custom guide concept
  - improve updating the statusbar messages and icons

Jehan's avatar
Jehan committed
850

851 852 853
GUI:

  Menus:
854 855 856
  - move the image-duplicate action next to image-new
  - add Image -> Color Management -> Color Management Enabled
  - change "Select _Custom Color..." to "_Custom Color..."
857
  - change "Export" to "Export..." in the File menu
858

859 860
  Dialogs:
  - include recently used colors in the Dockable Colors dialog
861
  - add RGB-based Luminance channel to the Histogram dialog
862
  - fix remembering the order of dockable dialogs
863

864
  Preferences:
865 866 867 868 869 870
  - reorder the prefs categories tree and rename some pages
  - move "Snap Distance" to the prefs dialog's "Snapping" page
  - add configuration for undo preview size
  - clean-up Preferences -> Color Management
  - add "Shortcut [some modifier] + Mousewheel" for changing pen size

871
  Themes:
872 873 874
  - rename theme "Default" into "System"
  - add new GUI themes: Lighter, Light, Gray, Dark, Darker

875
  Icons:
876 877 878 879 880
  - add icon theme selection and make the icon theme path configurable in prefs
  - preserve 2.8 pixel-perfect icon theme under the name "Legacy"
  - add new symbolic icon theme for GIMP
  - add a scalable icon theme and a configure option --enable-vector-icons

881
  Widgets:
882 883
  - add new GimpBufferSourceBox widget and use it in GimpOperationTool

884 885
  View/Display:
  - fix various bugs related to rotated canvas
Jehan's avatar
Jehan committed
886
  - make GIMP not ignore 'Maximized' hints on startup in Windows
887 888 889 890 891 892 893
  - enable a pulsing progress bar in the splash
  - make new images jump around much less
  - fix image position when entering/leaving fullscreen mode
  - make layer boundary re-drawn correctly on scrolling
  - make images not appear completely black when images dockable is visible
  - have all previews track the monitor they are on

894 895

Tools:
Jehan's avatar
Jehan committed
896

897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929
  Fuzzy Select:
  - add "Diagonal neighbors" option

  Foreground Select:
  - fix ghost brush outline

  Bucket Fill:
  - add "Diagonal neighbors" option

  Posterize:
  - turn the posterize tool into an ordinary GEGL filter
  - remove posterize from Tools -> Colors

  Desaturate:
  - turn the Desaturate tool into a normal GEGL filter
  - move "Desaturate" to Colors -> Desaturate

  Align:
  - add vertical offset to distribution options

  Paths:
  - improve performance

  Flip:
  - rename options to "Transform" and "Direction"

  Cage Transform:
  - fix a few performance issue

  Unified Transform:
  - make the tool not fail when currently selected layer is hidden

  Text:
930
  - fix text input methods to work in-place (not in an overlayed box)
931
  - add background colors setting, only exposed for advanced input methods
Jehan's avatar
Jehan committed
932

933 934
  Blend:
  - use gegl:distance-transform in the blend tool, it has a progress now
935
  - make shapeburst work with the new interactive gradient code
936 937

  All Painting Tools:
Jehan's avatar
Jehan committed
938 939
  - add mirror symmetry
  - remove artifacts from painting tools in Burn blending mode
940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959
  - add shortcut actions for changing spacing, hardness, and force

  MyPaint:
  - dramatically improve performance of the tool and enable it by default
  - add Colorize mode
  - add a toggle to change between erase & paint mode
  - add a brush selector to the MyPaint brush options
  - add a dockable dialog to choose a brush, with tagging
  - read tags from MyPaint brushes
  - improve blend math
  - allow plug-ins to register procedures in the <MyPaintBrushes> menu

  Smudge:
  - fix the clipping of out-of-gamut channel values
  - fix the handling of layers with alpha channels

  Ink:
  - the range of angle is now [-PI..PI]


960
Plug-ins/GEGL Filters:
961

962
  Preview:
963 964 965 966
  - add a "split preview" feature to GEGL ops
  - allow to switch the split preview between horizontal and vertical
  - allow to swap the before/after position

967 968
  Filters:
  - update the "Recently used" menu with GEGL filters
969 970 971 972
  - replace Selective Gaussian Blur with the GEGL version
  - add gegl:saturation as Colors -> Saturation
  - add gegl:high-pass as Filters > Enhance > High Pass
  - add new gegl:gegl filter that executes a custom processing chain
973
  - port Tile and Pagecurl plug-ins to GEGL
Jehan's avatar
Jehan committed
974
  - refactor the screenshot plug-in into backend and front-ends, one
975 976 977 978
    per X.org, Wayland, Windows, OS X
  - add Monochrome option to the GEGL version of Channel Mixer
  - bring dialog titles and help IDs to GEGL filter dialogs

979
  File Plug-Ins:
980
  - add darktable plug-in to pre-process various raw images
981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998
  - port file-gif-save and file-tiff to GIO
  - TIFF support:
    - make libtiff a hard dependency
    - merge the file-tiff-load and file-tiff-save plug-ins
    - fix various tiff exporting bugs
  - EXR support:
    - read comment, Exif, and XMP data from EXR files
    - use GIMP's internal profile when loading EXR
  - PSD support:
    - fix the loading of files with adjustment or fill layers
    - fix the reading of layer group structure
  - fix the raw image loader
  - fix the layer groups support in OpenRaster
  - code cleanup in file-bmp
  - fix the exporting of KISS - CELL (*.cel) images
  - resurrect the email plugin
  - use GIO to figure if a file is hidden

999
  PyGimp:
1000 1001 1002 1003 1004 1005 1006 1007
  - update pyconsole code
  - add binding for GimpImageType
  - add GimpColorConfig object
  - add type definition for GimpColorManaged
  - make GimpParasite type known to the code generator
  - require Pycairo in configure, link gimpui against pycairo
  - fix the application of paintbrush size in Python scripts

1008
  Script-Fu:
1009 1010 1011 1012
  - make regex matching return character indexes
  - fix the hanging of Script-fu on machines with 64-bit longs
  - update tinyscheme code from upstream

1013

1014
PDB:
1015

1016 1017 1018 1019 1020 1021 1022 1023 1024
  - Bug 759104 - Allow coordinates of sample points to be accessed from scripts


Build:

  build/win:
  - Start building libmypaint.
  - Add pcre and upgrade glib2 to 2.48.1
  - Upgrade exiv2 to 0.25
1025 1026 1027
  - Clear DISPLAY before building
  - Disable webkitgtk

1028 1029

OS-specific changes:
Jehan's avatar
Jehan committed
1030

1031 1032 1033
  Windows:
  - Add support for generating crash backtraces using Dr. MingW

1034

1035 1036
Overview of Changes from GIMP 2.8.0 to GIMP 2.9.2
=================================================
Michael Natterer's avatar
Michael Natterer committed
1037

1038 1039 1040

Core:

1041 1042 1043 1044 1045 1046
  The core got completely ported to GEGL, listing all changes involved
  would be too much, therefore we summarize the changes in app/ per
  source subdirectory:

  base
  composite
1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058
  paint-funcs:
  - Remove these directories, they contained the old pixel
    manipulation functions

  config:
  - Remove GimpBaseConfig, add GimpGeglConfig
  - Add config options for new features

  core:
  - Add some things that used to live in base/, like the temp-buf,
    boundary and histogram code
  - Port all functions to GEGL and higher bit depths
1059 1060 1061 1062
  - Keep the image around as GEGL graph, all other compositing is gone
  - Add non-destructive drawable filters, but use them only for previews
  - Implement the floating selection as drawable filter
  - Implement GimpImageMap using drawable filters
1063
  - Move batch processing to gimp-batch.[ch]
1064 1065
  - Run batch commands in an already running GIMP instance
  - Ported almost everything from filenames/FILE/fd to GFile/GIO
1066 1067 1068 1069
  - Be smarter about migrating old user config files
  - Move many object struct members to private structs

  file:
1070
  - Support GIO-ported file load/save procs, handle remote files generically
1071

1072 1073 1074 1075 1076
  - Add content locking to items to prevent them from being edited
  - Add position locking to items to prevent them from being translated
  - Implement all color management in the core
  - Add an automatic palette of recently used colors
  - Implement metadata handling in the core
1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105

  gegl:
  - Now contains utility functions and abstractions to work with
    GEGL more easily
  - Move all operations to the new operations/ directory

  operations:
  - New directory containing all GIMP-internal GEGL operations
    and their config objects (if any)
  - Add a correct version of the overlay layer mode
  - Add LCH layer modes

  paint:
  - Port all paint cores to Gegl
  - Add MyPaint brush paint core

  pdb:
  - Add compat procedures that work like the removed plug-ins
  - Use the new GimpValueArray, GValueArray got deprecated

  plug-in:
  - Allow plug-ins to access image data at full bit depth
  - Add a compat mode so unported plug-ins always get 8-bit data

  text:
  - Port text rendering to GEGL
  - Use HarfBuzz to inspect fonts for creating an example string

  xcf:
1106 1107 1108 1109 1110 1111 1112
  - Add zlib compression to XCF loading/saving


GUI:

  - Add GUI to handle the new high bit depths and conversion between them
  - Add new action group "filters" which can run arbitrary GEGL ops
Michael Natterer's avatar
Michael Natterer committed
1113
  - Add lots of actions invoking GEGL ops that replace removed plug-ins
1114
  - Preview all GEGL ops live on the canvas, using drawable filters
1115
  - Mostly switch from using stock-ids to icon-names
Michael Natterer's avatar
Michael Natterer committed
1116
  - Turn all stock icons into named icons and add an icon theme
Michael Natterer's avatar
Michael Natterer committed
1117
  - Allow selecting colors from an image's colormap
1118
  - Add "Show in file manager" to everything that has a filename
Michael Natterer's avatar
Michael Natterer committed
1119
  - Add an action search dialog to find actions by keyword and execute them