Commit Graph

141 Commits

Author SHA1 Message Date
Michael Natterer 6bc8b4ee74 app: don't copy alpha in gimp_operation_profile_transform_process()
GimpColorTransform abstracts that lcms problem away.
2016-09-10 01:09:11 +02:00
Michael Natterer d0263efd80 app: minor cleanup in gimpoperationblend.c 2016-08-29 17:38:06 +02:00
Massimo Valentini f7569cad82 Bug 767345: Color Erase Blend Mode Do not working in Paint tools correctly (exception Bucket fill Tool) 2016-07-05 18:15:10 +02:00
Ell 763062890b app: fix wrong initialization in gimp_operation_{grow,shrink}_process()
s/radius_x/radius_y/ in the max buffer initialization.  Lead to
occasional wrong results when radius_y > radius_x.
2016-06-24 01:14:51 +00:00
Ell 3232f38697 app: align gimp_operation_shrink_process() with 2.8
radius_x/radius_y got swapped in a few spots, which lead to
segfaults and such when they weren't equal.
2016-06-24 01:14:51 +00:00
Massimo Valentini 7858eb3df2 Bug 766683: Burn Mode on Paint tools are producing artefacts
This operation produces NAN (0 / 0) and division
by zero when a layer component is zero.

Inline CLAMP to make sure it swallows also NAN.
A NAN is mapped to 1 for backward compatibility.
[the 2variate function comp (in[b], layer[b]) is
discontinuous at layer[b] = 0]
2016-06-06 18:53:22 +02:00
Michael Natterer b4f34375b7 Bug 767062 - Lags when zooming or dragging zoomed image (cmsFLAGS_NOOPTIMIZE)
Use cmsFLAGS_NOOPTIMIZE only for actual image buffer or single color
transforms, but not for previews or the image display. Makes things a
lot more responsive again.
2016-06-05 16:50:02 +02:00
Jehan 8a37c928eb app, plug-ins, libgimp*: clean out all remaining trailing spaces/tabs.
Rather than just discovering them by chance, a simple grep and some
search and replace are much more efficient! :-)
Cleaning only done on C and automake files.
2016-06-02 02:04:26 +02:00
Michael Natterer e6d4053567 app: don't forget to ref GimpOperationProfileTransform's profiles 2016-05-26 22:26:07 +02:00
Michael Natterer 0bfa402c1a Argh, this was meant to be squashed into the previous commit... 2016-05-26 22:18:50 +02:00
Michael Natterer cc92887908 libgimpcolor: add new object GimpColorTransform
which encapsulates a cmsHTRANSFORM and does all the pixel format
conversion magic. It has API to create transforms and proofing
transforms, and to convert pixels arrays and GeglBuffers.

Before, each place which has a transform had to keep around the
transform and its input and output Babl formats, and had to implement
lots of stuff itself. Now all that lives in GimpColorTransform,
removing lots of logic from many places, and pretty much removing lcms
from the public API entirely.

This removes including <lcms2.h>, LCMS_LIBS and LCMS_CFLAGS from
almost all directories and potentially allows to replace lcms by
something else.
2016-05-26 22:15:54 +02:00
Michael Natterer cb578e3df7 app: add GimpOperationProfileTransform
which converts between two color profiles.
2016-05-23 14:00:35 +02:00
Massimo Valentini 3a43478fda Bug 766116: Behind mode is not working correctly
use same var names as gimp-2-8 to make
it easier to spot unwanted differences
2016-05-17 19:56:39 +02:00
Massimo Valentini 2dd4d3a2fa Bug 766369: Split view shows transparency filtering...
... layers with alpha channel

add an operation that selectively outputs aux
or source if out/inside the rectangle (x,y,width,height),
independently of the alpha channel and use it
in filters split preview.

mostly copied from gimp:mask-components
2016-05-16 18:08:48 +02:00
Massimo Valentini 85cb525c7e Bug 766128: Use gegl_operation_progress
instead of reimplementing it in two operations
2016-05-11 19:09:56 +02:00
Thomas Manni f4cb2dd881 Bug 109161 - Improve Histogram with Luminance Channel
Add a luminance channel to GimpHistogram
2016-04-18 19:35:06 +01:00
Michael Natterer 5730278eeb Bug 759796 - Blend tool regression
We must not dither the alpha channel if it is fully opaque or fully
transparent. 2.8 did the same but the dithering of these values was
apparently consumed be putting the result into 8 bit values.
2016-04-17 01:06:08 +01:00
Sven Claussner 9272da1a21 Flood op: improve descriptions
Add more user friendly description to the PDB op.
Partially keep the technical description for the PDB op and add a
reference to the developer wiki.
Use the new "reference" key for the GEGL op.
2016-04-08 08:52:12 +00:00
Elle Stone 96d8397114 Bug 763996 - Where appropriate, change "gamma correction" to "gamma adjustment"
Gamma correction refers to correcting how an image is displayed on
various devices. Gamma adjustment is a more general phrase that also
applies to adjusting gamma as a step in image enhancement in a
color-managed workflow.
2016-03-28 14:57:24 +02:00
Ell 5084bcae87 app: Add a test case for the "gimp:flood" operation 2016-03-19 20:29:37 +01:00
Ell a11dd0e29a Bug 761795 - Performance improvement for the flood operation
Improve the performance of the "gimp:flood" operation and add plenty
of comments.
2016-03-19 20:29:37 +01:00
Daniel Sabo 2b7088f6e9 Make Burn mode output match Gimp 2.8 ( partial revert of bug 744265 ) 2016-03-07 16:26:58 -08:00
Daniel Sabo 39a417d476 app: Improve math of unaccelerated OperationNormalMode
Hopefully no one is stuck on a CPU old enough to need this, but if
they are the ratio based math is noticeably faster.
2016-03-07 16:26:58 -08:00
Michael Natterer e5b6806fe2 app: port tons of files to the new GIMP_CONFIG_PROP_FOO() macros
and remove lots of labels from calls to gimp_prop_foo_new(). Also
had to manually remove some unwanted labels that are now added
automatically, fixes bug #761880.
2016-02-11 23:46:24 +01:00
Michael Natterer 18316c41a5 app: use the new GIMP_CONFIG_PROP_FOO()
instead of manual g_object_class_install_property().
2016-02-10 01:38:08 +01:00
Massimo Valentini b5546ac0ac Bug 678085 - Cage tool freezes GIMP
progress signal accepts 1 parameter not 0
it worked in linux, but not in win64
2016-02-07 18:50:11 +01:00
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