Commit Graph

452 Commits

Author SHA1 Message Date
fd070eeb25 app: start moving layer modes into their own build directories
New directories:

operations/layer-modes/
operations/layer-modes-legacy/
2017-01-09 21:58:18 +01:00
076621dd75 app: split dodge op in legacy and new 2017-01-09 20:10:17 +01:00
c2583faa5a app: add new multiply op 2017-01-09 20:10:04 +01:00
178794f6f1 libgimpbase: rename enum GimpHueRange's values
and add compat cruft for the old names.
2017-01-09 02:45:16 +01:00
152adbb1bd Rename GIMP_LAYER_MODE_FOO_BROKEN to GIMP_LAYER_MODE_FOO_LEGACY
"Broken" sounds like it needs fixing, but it's legacy compat stuff
that will have to stay for all eternity.
2017-01-09 01:27:20 +01:00
66060e3307 app, libgimp*, plug-ins: replace enum GimpLayerModeEffects by GimpLayerMode
with proper value names. Mark most values as _BROKEN because they use
weird alpha compositing that has to die. Move GimpLayerModeEffects to
libgimpbase, deprecate it, and set it as compat enum for GimpLayerMode.
Add the GimpLayerModeEffects values as compat constants to script-fu
and pygimp.
2017-01-08 23:00:19 +01:00
03185f8070 app: normalize some layer mode alpha/opacity handling
Make overlay, Lch color, Lch hue, Lch saturation and Lch lightness mode handle
alpha more like how normal does it. This is a change that we ideally might want
applied to other layer modes as well to get rid of MIN() calls.
2017-01-06 04:53:40 +01:00
3fa016fb4b app: clean out tab indentations. 2016-12-21 04:05:32 +01:00
b27cdfa99a Bug 644032 - Color banding in Hue-Saturation with overlap
When calculating an overlap between two ranges, interpolate the hue
adjustment from config->hue[primary_range] and
config->hue[secondary_range] BEFORE mapping it to the input value.
This fixes odd edge cases where only one of the ranges crosses the
red/magenta wraparound, or if adjustments to different channels yield
more than 180 degree difference from each other.
2016-11-13 10:56:15 +01:00
bcdd2e8d1a app: cleanup in GimpOperationProfileTransform 2016-11-06 21:08:10 +01:00
3cef404e20 app, pdb, libgimp: allow to choose the channel when thresholding
so the threshold can now be based on the GimpHistogramChannel enum.
Add a channel menu to the threshold dialog and a channel argument to
the PDB procedure (which is new in 2.10).

If I hadn't forgotten what the "RGB" channel is supposed to do I would
have implemented the RGB mode in GimpOperationThreshold correctly.
Right now I'm just guessing. Anyone?
2016-11-01 22:45:37 +01:00
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
d0263efd80 app: minor cleanup in gimpoperationblend.c 2016-08-29 17:38:06 +02:00
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
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
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
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
e6d4053567 app: don't forget to ref GimpOperationProfileTransform's profiles 2016-05-26 22:26:07 +02:00
0bfa402c1a Argh, this was meant to be squashed into the previous commit... 2016-05-26 22:18:50 +02:00
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
cb578e3df7 app: add GimpOperationProfileTransform
which converts between two color profiles.
2016-05-23 14:00:35 +02:00
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
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
85cb525c7e Bug 766128: Use gegl_operation_progress
instead of reimplementing it in two operations
2016-05-11 19:09:56 +02:00
f4cb2dd881 Bug 109161 - Improve Histogram with Luminance Channel
Add a luminance channel to GimpHistogram
2016-04-18 19:35:06 +01:00
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
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
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
2b7088f6e9 Make Burn mode output match Gimp 2.8 ( partial revert of bug 744265 ) 2016-03-07 16:26:58 -08:00
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
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
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
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
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
a0a6d6139e app: Use gimp:blend in gimp_drawable_blend 2016-02-01 21:20:19 +01:00
1efdae9654 operations: Use input for the shapeburst distance map in Blend. 2016-02-01 21:18:51 +01:00
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
cd47aac435 app: remove GimpThresholdConfig
The new more general GimpImageMapTool code handles this case
completely automatically now.
2016-01-22 22:37:23 +01:00
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
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
149d3f441f app: turn the desaturate tool into a normal GEGL filter 2016-01-16 22:38:12 +01:00
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
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
8ca9bfc291 app: burn-mode, invert before blending 2015-10-15 13:52:20 +02:00
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