Commit Graph

115 Commits

Author SHA1 Message Date
Massimo Valentini b9ba90589a Bug 678085 - Cage tool freezes GIMP
Use a proper "progress" signal instead of a property "notify" one
to update the on-canvas progress widget.

This way the graph is not invalidated while processing it
2016-02-02 12:21:15 +01:00
Michael Henning a0a6d6139e app: Use gimp:blend in gimp_drawable_blend 2016-02-01 21:20:19 +01:00
Michael Henning 1efdae9654 operations: Use input for the shapeburst distance map in Blend. 2016-02-01 21:18:51 +01:00
Michael Henning 7a92ad7a07 operations: Make GimpOperationBlend a filter. 2016-02-01 21:18:51 +01:00
Ell c63bee3440 app: Add "gimp:flood" GEGL operation
This operation assigns to each pixel the minimum of the
maxima of all paths from it to the outside, as if the
input image represents a height map, and the operation
floods it with water.
2016-01-25 22:58:24 +01:00
Michael Natterer cd47aac435 app: remove GimpThresholdConfig
The new more general GimpImageMapTool code handles this case
completely automatically now.
2016-01-22 22:37:23 +01:00
Michael Natterer 1ef06fdbb2 app: add gimp_gegl_config_register()
which registers config classes for operations that don't want their
config objects to be auto-generated. Register all color tools' config
objects. Change gimp_gegl_config_sync_node() to correctly handle ops
that have an object property of the right config object type.
2016-01-22 21:28:33 +01:00
Michael Natterer 38691ee03d app: register the newly changed ops' properties normally
not using GIMP_CONFIG_INSTALL_PROP_FOO() because they don't allow to
set the param spec's nick and blurb separately.
2016-01-16 22:50:15 +01:00
Michael Natterer 149d3f441f app: turn the desaturate tool into a normal GEGL filter 2016-01-16 22:38:12 +01:00
Michael Natterer 7b009c6900 app: turn the posterize tool into an ordinary GEGL filter
which means replacing the whole thing by a few lines.
2016-01-16 21:41:00 +01:00
Michael Natterer 68a9835d56 Bug 756822 - Colors/Desaturate/Luminosity should operate on linear RGB
Add GIMP_DESATURATE_LUMINANCE to enum GimpDesaturateMode and rename
GIMP_DESATURATE_LUMINOSITY to GIMP_DESATURATE_LUMA.

Keep GIMP_DESATURATE_LUMINOSITY as deprecated compat value and add it
to the script-fo and pygimp compat constants.

Change GimpOperationDesaturate to process GIMP_DESATURATE_LUMINANCE
with linear "RGBA float".
2015-10-22 19:50:56 +02:00
Øyvind Kolås 8ca9bfc291 app: burn-mode, invert before blending 2015-10-15 13:52:20 +02:00
Øyvind Kolås 23f118632c app: clamp blended results for some compositing ops
Quite probably we shouldn't even clamp at the end, not doing that would speed
up compositing. See bug 744265.
2015-10-15 00:25:01 +02:00
Elle Stone e089095631 Bug 744265 - layer mode 'addition' makes wrong gray values
Move CLAMP code in addition blend mode (CLAMP the result, not an
intermediate value).
2015-10-13 22:47:31 +02:00
Michael Natterer 997314d4e9 Bug 754518 - gimp-drawable-curves-spline does not take the advertised...
...number of points

gimp_curves_config_new_spline(): set the GimpCurve's n_points, not
n_samples. The bug title describes exactly what was happening.
2015-09-07 21:43:18 +02:00
Michael Natterer 4479cedf13 app: rename mask enum values GIMP_COMPONENT_RED,GREEN,BLUE etc.
to GIMP_COMPONENT_MASK_RED,GREEN,BLUE etc.
2015-09-07 00:35:02 +02:00
Michael Natterer 46eef4d09d app: remove references to plug_in_icc_profile_apply_rgb() from Makefiles 2015-08-27 13:52:26 +02:00
Michael Natterer 97e55692eb app: the blend tool was rendering all gradients off-by-0.5
When calculating the color of a pixel, we want to calculate the color
at its center, not at its top-left corner. Found by Raymond Jennings.
2015-08-26 23:23:16 +02:00
Nils Philippsen 9171de3b80 tests: link against -lm
(see commit 4c7338c097)
2015-07-16 14:27:04 +02:00
Thomas Manni a7b84ded8e Bug 325564 - Use CIE LCH instead of HSL for layer mode Color
Add Hue, Chroma, Color and Lightness layer modes in LCH color space.
2015-06-02 01:37:26 +02:00
Michael Natterer bc4cf9918f Bug 673501 - Issue with Overlay
GIMP's OVERLAY mode was identical to SOFTLIGHT. This commit fixes the
issue and introduces a NEW_OVERLAY mode and enum value.

- change gimp:overlay-mode to be a real (svg-ish) overlay mode
- when compositing, map OVERLAY to gimp:softlight-mode
- when compisiting, map NEW_OVERLAY to gimp:overlay-mode
- bump the XCF version when NEW_OVERLAY is used
- map OVERLAY to SOFTLIGHT when loading and saving XCF
- map OVERLAY to softlight in all PDB setters
- map OVERLAY to softlight when deserializing a GimpContext
- change all paint mode menus to show an entry for NEW_OVERLAY
  instead of OVERLAY
- change PSP, PSD and OpenRaster to use NEW_OVERLAY

These changes should (redundantly) make sure that no OVERLAY enum
value is used in the core any longer because it gets mapped to
SOFTLIGHT at all entry points, with the downside of introducing a
setter/getter asymmetry when OVERLAY was set in a PDB api.
2015-04-29 13:32:58 -04:00
Michael Natterer 81fa953ccb Bug 746649 - Duplicate auto-saved presets for color tools
Implement GimpConfigInterface::equal() for the brightness-contrast,
colorize, and threshold config objects, to prevent the parent class'
timestamp being compared by the generic default implementation.
2015-04-09 01:14:41 +02:00
Thomas Manni 678b61a3ac Bug 742623: Equalize operation fills buffer with nan values in floating point precision
Use histogram bins count to process equalization instead of "256" hard-coded value.
2015-02-10 12:08:04 +01:00
Michael Natterer e629f4c14b app: add GimpOperationScalarMultiply
which multiplies each float in a gegl_format_n(float, n) input
by a factor.
2014-11-07 00:42:58 +01:00
Thomas Manni dbfbc221a5 Bug 736232 - Strange result using transparent layer, blending modes...
...and layer opacity

Use a temporary variable to store intermediate result instead of
writting 2 times to the output buffer, because input and output
buffer might be the same.
2014-10-03 00:17:49 +02:00
Michael Natterer fe3c0e4020 Bug 732787 - Posterize doesn't work as expected with alpha channel
GimpOperationPosterize: also posterize the alpha channel. Seems like a
no-brainer to me, and is actually useful (see bug). The old behavior
is still available by simply disabling the alpha channel in the
channels dialog.
2014-09-25 23:12:35 +02:00
Michael Natterer 1db5c06f54 Bug 735902 - Drawing a gradient should never produce negative RGB channel values
Use MAX(value, 0.0) on the result of dithering.
2014-09-08 22:49:51 +02:00
Michael Natterer 14978bfe5d Simplify calls to g_output_stream_write_all()
It returns TRUE only if all bytes were written, so there is no need to
get and check the bytes_written return value.
2014-09-07 20:30:14 +02:00
Simon Budig 9a245989c0 fix bogus checks against unsigned variables.
Spotted by Andrey Karpov using static code analysis:
   http://www.viva64.com/en/b/0273/
2014-08-16 00:37:13 +02:00
Michael Henning dbd1f0500e app: Switch to the GeglAccessMode enum in GimpOperationBlend
See b5530e9e3d
2014-07-22 14:09:20 -04:00
Michael Henning 8fef1918a9 app: Support gradients with fg/bg segments in the blend tool preview. 2014-07-22 13:13:47 -04:00
Michael Henning 5839b5e4af app: Add a gegl op to render gradients 2014-07-22 13:13:47 -04:00
Michael Natterer 3f52828896 app: change GimpImageFile and GimpDocumentList to speak GFile 2014-07-07 23:58:11 +02:00
Michael Natterer 29427fa4f1 app: port GimpImageMapTool settings import/export to streams
Simplifies and centralizes error checking and reporting.
2014-07-04 18:31:00 +02:00
Michael Natterer b4cdecb4c3 app: port the curves and levels cruft format loaders to GIO 2014-07-04 13:18:01 +02:00
Michael Natterer 249041d927 Bug 732698 - Select > Shrink/Grow/Border not working in GIMP master
Always pass level = 0 to gegl_buffer_set(). This actually makes a
difference since GEGL's level processing got some fixes.
2014-07-03 20:47:02 +02:00
Michael Natterer a572638656 app: fix copy/paste GError bug in some calls to g_file_replace() 2014-07-03 13:01:01 +02:00
Michael Natterer 4e6a6079f4 app: port levels cruft format saving to GIO 2014-07-02 23:45:16 +02:00
Michael Natterer 87ecc83885 app: port curves cruft format saving to GIO 2014-07-02 23:40:26 +02:00
Michael Natterer b5530e9e3d Use the new GeglAccessMode enum instead of the old values 2014-07-02 02:00:35 +02:00
Michael Natterer 784e74e1d8 app: remove bogus (but harmless) assignment from GimpOperationColorize 2014-06-30 17:28:04 +02:00
Michael Natterer 847606d177 app: add back gimp_curves_config_new_spline,explicit()
but as versions using gdouble instead of guint8. Use the new functions
from the just renamed _cruft() variants.
2014-06-17 22:23:41 +02:00
Michael Natterer f5e4f01c52 app: make gimp_curves_config_new_spline,explicit() handle variable #points
Also, append _cruft to the function name because they take guint8*
arrays, will add proper ones next.
2014-06-17 21:10:33 +02:00
Thomas Manni 0206effba0 Bug 731697 - Colorize operation does not restitute alpha channel correctly
Copy the src alpha value in GimpOperationColorize.
2014-06-15 23:39:09 +02:00
Simon Budig a7c82d2964 app: rework gimp:shapeburst towards more floats, try to improve readability. 2014-06-14 02:56:33 +02:00
Michael Natterer 8aa0019c2e app: clean up inclusion of gegl-plugin.h, mostly removals 2014-06-10 03:13:09 +02:00
Michael Natterer 8be52f6aa7 app, libgimp*: pass translated blurbs to GIMP_CONFIG_INSTALL_PROP_FOO()
instead of passing N_()-strings; and remove gettext() calls on these
strings when using them. Reduces complexitx, and fixes double- and
untranslated strings. Also enables to treat properties of GIMP and
GEGL objects the same way, which was totally broken before.
2014-05-14 23:34:01 +02:00
Michael Natterer 23037b5230 app: convert all stock IDs kept around by the core by icon names
Particularly GimpViewable's stock_id. Make sure old config files
containing stock IDs are still properly parsed.
2014-05-07 01:01:56 +02:00
Michael Natterer d9cf36d07d app: remove gimp:cast-format and use gegl:cast-format 2014-05-05 19:30:21 +02:00
Michael Natterer 8f648471e6 app: add new operation gimp:cast-format
which casts between two arbitrary formats of the same bpp.
2014-05-04 20:42:58 +02:00