Commit Graph

39003 Commits

Author SHA1 Message Date
Juan Palacios f3d684b0fc plug-ins: in file-psd, fix missing some attributes loading empty layers 2017-08-27 15:16:19 -04:00
Piotr Drąg 546b46a7d2 Update Polish translation 2017-08-27 17:14:46 +02:00
gogo a2981cffe7 Update Croatian translation 2017-08-25 18:39:40 +00:00
gogo d5a46f19bc Update Croatian translation 2017-08-25 16:04:59 +00:00
gogo c0084c9a25 Update Croatian translation 2017-08-25 11:28:04 +00:00
Ell 58fdaae3ad enums: add intermediate generated enum files to .gitignore 2017-08-24 15:35:27 -04:00
Michael Natterer 468dc22898 configure.ac: post-release version bump to 2.9.7 2017-08-24 21:24:07 +02:00
Michael Natterer 5afea2f6d3 Release 2.9.6 2017-08-24 20:39:20 +02:00
gogo 9d2f93f62d Update Croatian translation 2017-08-24 18:30:37 +00:00
Michael Natterer 1c740f0d21 app: update .gitignore in app/gegl/ 2017-08-24 20:14:56 +02:00
Alexandre Prokoudine 97829ba3d4 NEWS: Croatian translation got an update, whee! 2017-08-24 21:03:31 +03:00
Michael Natterer 895edd6d76 data: add .gitignore to tool-presets/Crop and fix tabs in its Makefile.am 2017-08-24 19:25:30 +02:00
gogo 50128d533f Update Croatian translation 2017-08-24 17:08:10 +00:00
Jehan ad4564e527 plug-ins: do not use stock IDs.
They are to be deprecated in future GTK+ and we don't use them anymore
anywhere else in our code.
See also commit 7da7bab0.
2017-08-23 21:47:14 +02:00
Alexandre Prokoudine 71fb5e9acc Far more bugs have been fixed or addressed between 2.9.4 and 2.9.6 2017-08-23 22:04:58 +03:00
Sveinn í Felli e1624573c0 Update Icelandic translation 2017-08-23 09:14:00 +00:00
Sveinn í Felli 88dfce2c52 Update Icelandic translation 2017-08-23 09:01:22 +00:00
Michael Natterer 2df281a219 devel-docs/release-howto.txt: mention to use "cp" not "mv" on the server 2017-08-22 20:07:02 +02:00
Michael Natterer e34ce3b269 NEWS: mention that we now almost always create layer in NORMAL mode 2017-08-22 19:32:09 +02:00
Michael Natterer d230ca24c6 docs, etc: regenerate default gimprc and its manpage 2017-08-21 20:34:29 +02:00
Michael Natterer e16c8a2352 Move the new "default_new_layer_mode" APIs to the image...
...in both the core and libgimp.

Images now know what the default mode for new layers is:

- NORMAL for empty images
- NORMAL for images with any non-legacy layer
- NORMAL_LEGAVY for images with only legacy layers

This changes behavior when layers are created from the UI, but *also*
when created by plug-ins (yes there is a compat issue here):

- Most (all?) single-layer file importers now create NORMAL layers
- Screenshot, Webpage etc also create NORMAL layers

Scripts that create images from scratch (logos etc) should not be
affected because they usually have NORMAL_LEGACY hardcoded.

3rd party plug-ins and scripts will also behave old-style unless they
get ported to gimp_image_get_default_new_layer_mode().
2017-08-21 20:18:00 +02:00
Ell 497fb9b0c3 plug-ins: in metedata-editor.c, don't use initial declarations
... in for loops
2017-08-21 11:41:33 -04:00
Michael Natterer 4f245c8272 plug-ins: s/snprintf/g_snprintf/ in fits-io.c 2017-08-21 12:31:28 +02:00
Sveinn í Felli 4b5f0c10ac Update Icelandic translation 2017-08-21 09:50:37 +00:00
Piotr Drąg 885b7abab0 Update Polish translation 2017-08-20 23:56:21 +02:00
Ell e40ebde536 plug-ins: in file-psd, add support for exporting layer groups
Preserve layer-group structure when exporting to PSD, instead of
flattening the groups.

Fix active-layer index saving (the index was reversed.)
2017-08-20 17:16:28 -04:00
Ell 33255a439b plug-ins: in file-psd, improve PS <-> GIMP layer-mode mapping
Streamline the layer-mode mapping code, to reduce duplication.

Add mappings for the following modes:  Subtract, Divide, Luma/
luminance darken only (Darker Color), Luma/luminance lighten only
(Lighter Color), and Luminance (Luminosity).
2017-08-20 17:15:32 -04:00
Ell f13c177ea7 app: fix babl format names in luminance mode
More refactoring fallout :P
2017-08-20 17:15:32 -04:00
Michael Natterer 838449254a plug-ins: use gimp_get_default_new_layer_mode() for most new layers
instead of hardcoding NORMAL_LEGACY.
2017-08-20 17:12:46 +02:00
Michael Natterer 59fae30b53 pdb: add new procedure gimp-get-default-new-layer-mode
Which returns GimpCoreConfig::default-new-layer-mode and will be
used to make plug-ins create layers/images in the configured way.
2017-08-20 16:12:53 +02:00
Michael Natterer 033e33fbf6 libgimp: use NORMAL mode for a transparent temporary layer in gimpexport.c 2017-08-20 15:06:26 +02:00
Michael Natterer 1cbb2f3309 app: add a comment to test-xcf.c about why we use LEGACY layer modes 2017-08-20 15:02:46 +02:00
Michael Natterer 7ce77c47cc app: stop hardcoding NORMAL_LEGACY for new layers/images
Use GimpCoreConfig::default-new-layer-mode instead.
2017-08-20 15:02:46 +02:00
Michael Natterer a256cf3338 app: add GimpCoreConfig::default-new-layer-mode
which for now has no UI and still defaults to NORMAL_LEGACY.
2017-08-20 14:09:35 +02:00
Michael Natterer b89d10a830 app: fix compositing of non-LEGACY layers in "show mask" mode
gimp_layer_update_mode_node(): when showing the mask, set mode to
NORMAL, and make sure that the composite space is PERCEPTUAL for
LEGACY layers, and LINEAR (or whatever is chosen in layer attibutes)
otherwise.
2017-08-20 14:09:35 +02:00
Michael Natterer 730573375d app: use GIMP_LAYER_MODE_NORMAL for most tests in app/tests/ 2017-08-20 14:09:35 +02:00
Ell 77f51dd737 app: specify blend function for GIMP_LAYER_MODE_COLOR_ERASE_LEGACY
This is what happens when you edit code with sed :P
2017-08-19 15:37:49 -04:00
Michael Natterer 0cfe550639 app, pdb: change a lot of GIMP_LAYER_MODE_NORMAL_LEGACY to just NORMAL
this commit changes just those which make no difference to
functionality: property and object member defaults that get overridden
anyway, return values of g_return_val_if_fail(), some other stuff.
2017-08-19 20:33:47 +02:00
Michael Natterer 58a68f5e98 app: add a missing case to a switch in GimpToolRectangle
The case's code was there but unreachable. This fix probably makes no
difference, but it was broken.
2017-08-19 20:05:00 +02:00
Øyvind Kolås bac042db39 app/gegl: temp hotfix to disable threading in gegl:copy-buffer 2017-08-19 17:12:15 +02:00
Michael Natterer 94c6bb4603 Bug 783755 - Smudge should blend the smudged colors using linear RGB
Looked a bit deeper into heal: while I didn't try to understand what
it's actually doing, this is strange: there is a comment that says
that healing should done in perceptual space, and the code uses
R'G'B'A float (at least it completely did before the last commit).

On the other hand, the code adds and subtracts temporary buffers,
which screams "gamma artifacts" unless done in linear space.

This commit changes everything to use linear float buffers,
and removes the comment. It "looks" right to me now, please test.
2017-08-18 23:54:26 +02:00
Sveinn í Felli 17596fb145 Update Icelandic translation 2017-08-18 08:38:09 +00:00
Ell 64ade97702 app: move libappgegl's SSE2 bits to a separate library
Split libappgegl into libappgegl-generic and libappgegl-sse2, and
move the SSE2 code (part of the newly added smudge code) to the
latter, so that the rest of the code can be compiled without SSE2
compiler flags.  This allows building GIMP with SSE acceleration
enabled, while running the resulting binary on a target with no
SSE accelration.
2017-08-17 13:04:27 -04:00
Ell 71bbd88e00 app: layer mode code shuffling
Commit 3635cf04ab moved the special
handling of bottom-layer compositing to GimpOperationLayerMode.
This required giving the op more control over the process()
function of its subclasses.  As a temporary workaround, the commit
bypassed the subclasses entirely, using "gimp:layer-mode" for all
modes.  This is the reckoning :)

Add a process() virtual function to GimpOperationLayerMode, which
its subclasses should override instead of
GeglOperationPointComposer3's process() functions.  Reinstate the
subclasses (by returning the correct op in
gimp_layer_mode_get_oepration()), and have them override this
function.

Improve the way gimp_operation_layer_mode_process() dispatches to
the actual process function, to slightly lower its overhead and
fix some thread-safety issues.

Remove the "function" field of the layer-mode info array, and have
gimp_layer_mode_get_function() return the
GimpOperationLayerMode::process() function of the corresponding
op's class (caching the result, to keep it cheap.)  This reduces
redundancy, allows us to make the ops' process() functions private,
and simplifies SSE dispatching (only used by NORMAL mode,
currently.)

Move the blend and composite functions of the non-specialized
layer modes to gimpoperationlayermode-{blend,composite}.[hc],
respectively, to improve code organization.

Move the SSE2 composite functions to a separate file, so that they
can be built as part of libapplayermodes_sse2, allowing
libapplayermodes to be built without SSE2 compiler flags.  This
allows building GIMP with SSE acceleration enabled, while running
the resulting binary on a target with no SSE accelration.

Add a "blend_function" field to the layer-mode info array, and use
it to specify the blend function for the non-specialized modes.
This replaces the separate switch() statement that we used
previously.

Remove the "affected_region" field of the layer-mode info array.
We don't need it anymore, since we can go back to using
GimpOperationLayerMode's virtual get_affected_region() function.

Last but not least, a bunch of code cleanups and consistency
adjustments.
2017-08-17 11:19:37 -04:00
Marco Ciampa 0181e9e4ac Updated Italian translation 2017-08-17 02:20:14 +02:00
Jehan 065ddbd523 NEWS: move thread-safe libgimp to Core.
Following prokoudine advice. :-)
2017-08-16 13:04:58 +02:00
Jehan 0709f1ed00 NEWS: libgimp calls now thread-safe. 2017-08-16 12:41:18 +02:00
Jehan 6ff1ffa688 libgimpbase: add gp_(un)?lock() calls to the def file. 2017-08-16 12:22:11 +02:00
Jehan 15f7344038 libgimp, libgimpbase: allow multi-threaded plugins by locking...
...protocol calls.
Some calls are waiting for answers, for instance plugin procedures, and
tiles which expects data and acknoledgement.
This would result in error messages such as:
"expected tile ack and received: 5" (5 is GP_PROC_RUN)
Typically because a thread would run a procedure while another would
receive tiles.
2017-08-16 12:09:56 +02:00
Øyvind Kolås 4410ab0db0 bump required GEGL version to 0.3.20 2017-08-15 23:11:12 +02:00