Commit Graph

96 Commits

Author SHA1 Message Date
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
Michael Natterer 16819917f5 app: add a boolean "normalize" property to gimp:shapeburst
and do the normalization in the op, instead of exporting the
max_iterations via a property and doing the normalization outside.
2014-05-01 20:40:55 +02:00
Michael Natterer 830dbf6d5b app: remove some disabled code from gimp:shapeburst 2014-05-01 20:33:57 +02:00
Michael Natterer 540d3bb6ae app: port gimp:shapeburst's input from u8 to float 2014-05-01 20:32:26 +02:00
Elle Stone 3915ac01b4 Bug 728607 - Patch to make divide blend mode work at 32-bit floating point
Properly port divide mode to 32-bit float.
2014-04-30 00:16:11 +02:00
Michael Natterer 22c222291d libgimpbase,*: clean up enum values in gimpbaseenums.h
GIMP_ADD_foo_MASK -> GIMP_ADD_MASK_foo
GIMP_foo_MODE -> GIMP_BLEND_foo
GIMP_foo_CLONE -> GIMP_CLONE_foo
GIMP_foo -> GIMP_DODGE_BURN_TYPE_foo
GIMP_foo -> GIMP_TRANSFER_foo

Add compat values for the old names and compat code to script-fu
and pygimp.
2014-04-29 20:58:30 +02:00
Michael Natterer fcecafa479 Bug 723213 - colors/levels/auto is broken for high bitdepth images
Port gimp_levels_config_stretch_channel() to histograms with
variable number of bins. Still behaves differently for different
bit depths tho.
2014-01-30 00:19:37 +01:00
Michael Natterer 84c132addc Bug 721553 - License text contains obsolete FSF postal address
These files were forgotten when changing license from GPL2 to GPL3.
2014-01-05 14:25:46 +01:00
Michael Natterer 697572ccc0 app,libgimp*: fix includes to follow our include policy
- don't include <gdk-pixbuf/gdk-pixbuf.h> in headers in app/
- instead, include it in many .c files instead of <glib-object.h>,
  finally acknowledging the fact that app/ depends on gdk-pixbuf almost
  globally
- fix up includes as if libgimpbase depended in GIO, which it soon will
2013-10-15 01:58:39 +02:00
Jehan ed1b7f4697 app: minor typo spotted on gimp:grow operation. s/diection/direction/ 2013-09-16 00:43:44 +12:00
Michael Natterer 05646749f5 app: port the mask border operation from u8 to float 2013-08-24 19:48:01 +02:00
Michael Natterer 7ac385caec app: port the mask shrink and grow operations from u8 to float 2013-08-24 19:08:48 +02:00
Massimo Valentini fe02ef78ca Revert "app: enable caching on layer mode ops"
This reverts commit 35b5b624e9.

it caused rendering artifacts.
2013-08-10 17:44:39 +02:00
Massimo Valentini 35b5b624e9 app: enable caching on layer mode ops 2013-08-10 16:25:50 +02:00
Michael Natterer b58e18944a app: don't set a name or any keys on GimpOperationPointLayerMode
it's an abstract base class and cannot be used on its own anyway.
2013-07-31 01:11:28 +02:00
Daniel Sabo fda356bd10 app: Fix phantom dependency of libappoperation.a 2013-06-29 09:54:49 -07:00
Michael Natterer 009b5a967a app: whitespace cleanup in operations/Makefile.am 2013-06-27 09:13:18 +02:00
Daniel Sabo cccc3550af SSE2 & SSE4.1 versions of GimpOperationNormalMode
* Add configure checks for SSE intrinsic code.
* Use SSE helper libraries in app/operations to compile
  code with different CFLAGS.
2013-06-25 20:42:15 -07:00
Daniel Sabo b10b1ba931 app: Change the opacity param of _pixels to gfloat
All the internal math is float, and avoiding the conversion
from double is much faster when using SSE math.
2013-06-19 16:19:34 -07:00
Michael Natterer 4725529dcb app: remove forgotten members from struct GimpOperationReplaceMode 2013-06-19 22:12:12 +02:00