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

6
7
This is the unstable development branch of GIMP. Here we are working
towards the next stable release, which will be GIMP 2.10.
8

9
10
11
Generally, all bug fixes that are applied on the stable GIMP 2.8
branch are also applied here, but they are usually not mentioned
in NEWS.
12

13
14
15
16
17
Overview of Changes from GIMP 2.9.4 to GIMP 2.9.6
=================================================

Core:

18
  - New clipboard implementation allows copying/pasting layers and
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
19
    layer groups.
20
  - Color tags simplify managing large projects with a lot of layers
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
21
    and layer groups.
22
  - The Mouse Pointer dialog and colors applied to images are
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
23
24
    color-managed now.
  - Gamma and precision selectors for newly created images.
25
  - Never dither when converting to a higher bit depth, or to anything
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
26
    more than 16 bits, don't offer dithering options in these cases
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
27
  - Default to linear when converting to 16-bit float.
28
  - Pre-initialize some babl-based pixel format conversion routines
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
29
    at the start-up to decrease the initial lazy intialization cost
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
30
    for some interactions.
31
32
33

GUI:

34
  - Easily add or remove layer masks by clicking either the layer
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
35
    preview or a new button in the Layers dialog.
36
37
  - Enhance the Layer Attributes dialog to provide the single UI for
    setting layer's name, blending mode, opacity, and offset,
38
    toggling visibility, link status, various locks, color tags.
Jehan's avatar
Jehan committed
39
40
  - 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
41
  - Allow to choose fill color when resizing layers and images.
Michael Natterer's avatar
Michael Natterer committed
42
  - Quick Mask and Channel Attributes dialogs use the new spinscale
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
43
44
45
    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.
46
  - For all paint tools, when switching to the color picker mode,
47
48
    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
49
50
51
    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
52
53
  - 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
54
  - Many new icons.
55
56
57
  - Toolbox buttons do not grab focus anymore, which used to breake
    usage of the Tab key and other canvas-related shortcuts after
    changing tools with a pointing device click.
58
59
60

Configurability:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
61
  - Remember settings of many dialogs across sessions.
62
  - New Interface / Dialog Defaults page in the Preferences dialog to
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
63
    control defaults values of various dialogs.
Michael Natterer's avatar
Michael Natterer committed
64
  - Settings on some individual pages of the Preferences dialog can be
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
65
    reset separately now.
66
  - Vertical scrollbar added to keep the height of the Preferences
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
67
    dialog fitting small displays.
68
  - Allow mouse to optionally configure tablet devices
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
69
70
  - Allow creating shortcuts containing the Cmd key + mouse wheel events.
  - Default to 300ppi and 1920x1080px for new documents.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
71
  - Do not allow Alt+[0-9] shortcuts, they are typically reserved for
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
72
    display switching.
73
74
75

Tools:

76
  - The Move tool now shows relative coordinates when moving guides
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
77
    and sample points.
78
  - Performance of the Fuzzy Select and the Bucket Fill tool has been
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
79
    improved.
80
  - The Warp Transform tool now uses the linear sampler to ensure
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
81
    crisp lines after an erase.
82
  - Select by Color and Color Picker tools work correctly in color
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
83
    spaces other than sRGB now.
84
  - Uncommitted selection by the Intelligent Scissors tool is not
85
    discarded on tool change anymore.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
86
87
  - GIMP now checks, whether the first and the last isegments are
    distinct before closing the curve.
88
89
90

Painting:

91
  - Rulers, scrollbars, and the Navigation dialog follow canvas
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
92
93
94
    rotation now.
  - Canvas rotation is snappier in certain cases now.
  - For bitmap brushes, GIMP now caches hardness and disables dynamic
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
95
    change of hardness to improve painting performance. Bitmap brushes
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
96
    also don't get clipped anymore, when hardness is less than 100.
97
98
99

File Formats

100
  - Add native WebP loader/exporter with support for ICC profiles,
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
101
    animation, metadata.
102
  - The TIFF loader will not generate warnings about private tags
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
103
104
    anymore.
  - Handle linear gamma PNG files correctly.
105
  - Load PSD files with layers which contain additional information
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
106
107
108
109
110
    with a length that is not divisible by 4.

Plug-ins

  - Port smooth-palette to GEGL.
111
112
113

Color Palettes

114
  - Merge Palettes command is available for multiple selected color
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
115
    palettes now.
116
117
118

PDB:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
119
  - Rename *-paste-as-new to *-paste-as-new-image.
120
121
122

Build:

123
  - Depends on LCMS2.7+ now, because earlier LCMS2 releases caused
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
124
    problems with certain GIMP blend modes.
125
  - Depends on libpng 1.6.25+ to avoid warnings about known incorrect
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
126
    sRGB profiles, also avoid various vulnerabilities.
127
128
129

OS-specific changes:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
130
  - Help browser launches on macOS now.
131
132
133

Bugs:

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
134
135
  - Overall 79 bugs have been fixed or partially addressed since
    GIMP 2.9.4.
136
137
138

Translations:

139
140
  - Updated: Catalan, Czech, Danish, Finnish, French, German, Greek,
    Hungarian, Icelandic, Italian, Occitan, Polish, Portuguese, Russian,
141
    Scottish Gaelic, Serbian, Slovenian, Spanish, Swedish.
142

Michael Natterer's avatar
Michael Natterer committed
143

144
145
146
147
148
Overview of Changes from GIMP 2.9.2 to GIMP 2.9.4
=================================================

Core:

149
  Color Management:
150
151
  - add new GimpColorTransform object to create abstraction from LittleCMS
  - now color-managed:
152
153
154
    - layer/image/color palette/gradient/pattern previews
    - Color Picker tool
    - color buttons of GimpColorHistory
155
    - GimpFgBgEditor, as used e.g. in the toolbox
156
157
158
    - color selectors
    - DND widget
    - painting tools
159
160
161
162
    - 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
163
  - color management for grayscale images, including setting preferred
164
165
    ICC profile
  - add fast switching between color managed display and soft-proofing
Jehan's avatar
Jehan committed
166
  - add a per-image "is color managed" switch and show the image's
167
168
    "is color managed" state in the window title string
  - add basic support for creating images with color profiles
Jehan's avatar
Jehan committed
169
170
  - add "Optimize" options for display and soft-proofing to optionally
    speed-up rendering at the cost of color fidelity
171
172
173
174
175
  - 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
176
  - enable color management when the image is converted from/to grayscale
177
  - pass the right color profile around in gimp_selection_float()
Jehan's avatar
Jehan committed
178
  - hardcode the CMYK selector's conversion parameters, as well as NTSC
179
180
181
    parameters in babl/GEGL/GIMP
  - have all previews track the monitor they are on

182
  Core:
183
184
185
  - add "Select -> Flood" select action
  - add "Select -> Remove Holes" action
  - add "Border style" combo to the "Select -> Border..." dialog
186
  - do not request xcf compat mode when compat_toggle not sensitive
Jehan's avatar
Jehan committed
187
188
  - initialize fontconfig in the background to be able to show a pulsing
    progress bar when rebuilding the list of fonts (typically, the first
189
190
    time GIMP runs)
  - fix the Behind blending mode
191
  - make Burn mode output match Gimp 2.8 (partial revert of bug 744265)
192
193
194
195
  - improve file magic matching
  - add a custom guide concept
  - improve updating the statusbar messages and icons

Jehan's avatar
Jehan committed
196

197
198
199
GUI:

  Menus:
200
201
202
  - move the image-duplicate action next to image-new
  - add Image -> Color Management -> Color Management Enabled
  - change "Select _Custom Color..." to "_Custom Color..."
203
  - change "Export" to "Export..." in the File menu
204

205
206
  Dialogs:
  - include recently used colors in the Dockable Colors dialog
207
  - add RGB-based Luminance channel to the Histogram dialog
208
  - fix remembering the order of dockable dialogs
209

210
  Preferences:
211
212
213
214
215
216
  - 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

217
  Themes:
218
219
220
  - rename theme "Default" into "System"
  - add new GUI themes: Lighter, Light, Gray, Dark, Darker

221
  Icons:
222
223
224
225
226
  - 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

227
  Widgets:
228
229
  - add new GimpBufferSourceBox widget and use it in GimpOperationTool

230
231
  View/Display:
  - fix various bugs related to rotated canvas
Jehan's avatar
Jehan committed
232
  - make GIMP not ignore 'Maximized' hints on startup in Windows
233
234
235
236
237
238
239
  - 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

240
241

Tools:
Jehan's avatar
Jehan committed
242

243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
  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:
276
  - fix text input methods to work in-place (not in an overlayed box)
277
  - add background colors setting, only exposed for advanced input methods
Jehan's avatar
Jehan committed
278

279
280
  Blend:
  - use gegl:distance-transform in the blend tool, it has a progress now
281
  - make shapeburst work with the new interactive gradient code
282
283

  All Painting Tools:
Jehan's avatar
Jehan committed
284
285
  - add mirror symmetry
  - remove artifacts from painting tools in Burn blending mode
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
  - 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]


306
Plug-ins/GEGL Filters:
307

308
  Preview:
309
310
311
312
  - 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

313
314
  Filters:
  - update the "Recently used" menu with GEGL filters
315
316
317
318
  - 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
319
  - port Tile and Pagecurl plug-ins to GEGL
Jehan's avatar
Jehan committed
320
  - refactor the screenshot plug-in into backend and front-ends, one
321
322
323
324
    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

325
  File Plug-Ins:
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
  - add darktable plug-in top pre-process varios raw images
  - 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

345
  PyGimp:
346
347
348
349
350
351
352
353
  - 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

354
  Script-Fu:
355
356
357
358
  - make regex matching return character indexes
  - fix the hanging of Script-fu on machines with 64-bit longs
  - update tinyscheme code from upstream

359

360
PDB:
361

362
363
364
365
366
367
368
369
370
  - 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
371
372
373
  - Clear DISPLAY before building
  - Disable webkitgtk

374
375

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

377
378
379
  Windows:
  - Add support for generating crash backtraces using Dr. MingW

380

381
382
Overview of Changes from GIMP 2.8.0 to GIMP 2.9.2
=================================================
Michael Natterer's avatar
Michael Natterer committed
383

384
385
386

Core:

387
388
389
390
391
392
  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
393
394
395
396
397
398
399
400
401
402
403
404
  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
405
406
407
408
  - 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
409
  - Move batch processing to gimp-batch.[ch]
410
411
  - Run batch commands in an already running GIMP instance
  - Ported almost everything from filenames/FILE/fd to GFile/GIO
412
413
414
415
  - Be smarter about migrating old user config files
  - Move many object struct members to private structs

  file:
416
  - Support GIO-ported file load/save procs, handle remote files generically
417

418
419
420
421
422
  - 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
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451

  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:
452
453
454
455
456
457
458
  - 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
459
  - Add lots of actions invoking GEGL ops that replace removed plug-ins
460
  - Preview all GEGL ops live on the canvas, using drawable filters
461
  - Mostly switch from using stock-ids to icon-names
Michael Natterer's avatar
Michael Natterer committed
462
  - Turn all stock icons into named icons and add an icon theme
Michael Natterer's avatar
Michael Natterer committed
463
  - Allow selecting colors from an image's colormap
464
  - Add "Show in file manager" to everything that has a filename
Michael Natterer's avatar
Michael Natterer committed
465
  - Add an action search dialog to find actions by keyword and execute them
Michael Natterer's avatar
Michael Natterer committed
466
  - Split the save dialog into subclasses for load, save and export
467
  - Implement various color management dialogs that were in the lcms plug-in
Michael Natterer's avatar
Michael Natterer committed
468
  - Make sure windows appear on the correct monitor
469
470
  - Simplify and reduce the actions that modify paint tool behavior
  - Add canvas rotation and flipping
Michael Natterer's avatar
Michael Natterer committed
471
  - Allow zooming to the selection
472
473
474
475
476
477
478
479
480
481
482
483
484
485
  - Make the image tab position configurable in single window mode
  - Add separate snapping settings for fullscreen mode
  - Remove bitmaps cursors and only support RGBA cursors
  - Color manage drawable and image thumbnails
  - Add more format string options for the image title
  - Use the external gtkosxapplication package instead of included code
  - Add a generic GimpPopup class and use it instead of duplicating code
  - Make the generated GUI of GEGL ops much better
  - Allow to implement custom GUI for gegl ops, and do that in some cases
  - Add GimpDial, GimpPolar and GimpCircle to be used for angle and hue picking


Tools:

Michael Natterer's avatar
Michael Natterer committed
486
  - Add an "experimental playground" for unfinished tools
487
488
489
490
491
492
493
494
  - (experimental) Add a tool that paints with MyPaint brushes
  - (experimental) Add an n-point deformation tool
  - (experimental) Add a transform tool with a variable # of handles
  - (experimental) Add a seamless clone tool
  - Add a unified transform tool that allows rotating, scaling, perspective
  - Add a warp tool as replacement for the IWarp plug-in
  - Allow tool dialogs to be embedded on the canvas genrically
  - Add much more options to painting, like the ability to lock
Michael Natterer's avatar
Michael Natterer committed
495
    tool options to brush defaults, and to zoom the brush with the canvas
496
497
  - Make the blend tool work interactively in realtime
  - Add undo/redo to many tools (using the normal shortcuts)
498
499
500
501


Libgimp:

502
503
504
505
506
507
508
509
510
511
  - Deprecate the entire old pixel manipulation API
  - Add API to get a drawable's buffer, the rest can be done with GEGL
  - Add high bit depth support when using the new buffer API
  - Make many enum value names sane and deprecate the old names
  - Many core enums moved here instead of proxying them via PDB generation
  - Add API to stroke vector outlines, with all core properties
  - Add more context API that affects other procedures
  - Deprecate API with weird names, and add new API with less arguments
  - Add metadata and color management API, utility functions and widgets
  - Split GimpPickButton into per-platform backends and fix it on OS X
512
513
514
515


Plug-ins:

516
  - Remove lots of plug-ins that are now implemented as GEGL ops
517
  - Remove the lcms plug-in, this is now done in the core/libgimp
518
519
520
521
  - Remove the metadata plug-ins, this is now done in the core/libgimp
  - Remove the file-uri plug-in, this is now done in the core using GIO
  - Port many file plug-ins to GIO
  - Port many plug-ins that are not strictly filters to GEGL
522
523
524
525


Source and build system:

526
  - Don't use INCLUDES in Makefile.am, use AM_CPPFLAGS instead
527

528

529
530
General:

531
532
  - Lots and lots of bug fixes
  - Translation updates