Commit Graph

24 Commits

Author SHA1 Message Date
6938d11716 Issue #1997 - Colors not properly converted to image's color space
Add a Babl space parameter to gimp_gegl_color_new() and all utility
functions using it. Pass NULL if the GimpRGB actually is sRGB, pass
the image's layer space if the color was already converted using
gimp_pickable_srgb_to_image_color() or similar.
2018-08-09 20:04:44 +02:00
5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Ell
0c305bdb0f app: use the layer's composite space when flattening it
Add a composite_space parameter to gimp_gegl_create_flatten_node()
and gimp_gegl_apply_flatten(), which controld the color space --
linear or perceptual RGB -- used for the operation (instead of
hardcoding it to linear).

When removing a layer's alpha channel, use the layer's composite
space for the flattening.  When flattening an image, use the bottom
layer's composite space.  Keep using linear space when creating a
channel or a mask from a drawable with alpha.
2017-10-21 11:44:27 -04:00
8634b5cbc3 app: make layer blend color space and compositing color space configurable
...they say it's going to get worse before it gets better...
2017-02-12 23:49:26 +01:00
2a96d598c3 app: add internal and PDB API and UI to control a layer's composite mode
Largely based on a patch by Ell, with the enum type renamed and
various small changes. Adds another axis of configurability to the
existing layer mode madness, and is WIP too.
2017-02-02 00:38:25 +01:00
1262370544 app: remove "gboolean linear" parameters
from gimp_applicator_new() and gimp_gegl_mode_node_set_mode().
Compositing doesn't depend on the layer format any longer, only on the
layer mode. Painting with "use applicator" unchecked is still broken
in some cases and needs more fixing.
2017-01-18 00:15:55 +01:00
a24e232522 app: move functions on enum GimpLayerMode to new files gimp-layer-modes.[ch] 2017-01-15 15:25:03 +01:00
6bf9e47ba8 app, libgimp: add linear variants of most layer modes
and reorder gimp_gegl_mode_node_set_mode() and friends.
2017-01-14 22:56:54 +01:00
377f4687b1 app: add gimp_gegl_mode_is_linear 2017-01-11 22:13:14 +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
41c92af49b app: add gimp_gegl_node_set_color() and use it in GimpChannel 2013-10-19 17:31:56 +02:00
a93eaa9122 app: set paint_mode and opacity separately on mode nodes
so we don't constantly change the operation only because the opacity
varies during painting.
2013-04-22 22:53:07 +02:00
e3557ac3a5 app: remove gimp_gegl_create_apply_[buffer_]node() 2013-04-17 16:21:15 +02:00
670fa2d670 app: add gimp_gegl_create_apply_node()
which is simply a more general version of
gimp_gegl_create_apply_buffer_node()
2013-04-12 14:34:20 +02:00
9b6703371e app: remove premultiplied blending code from the few ops that had it
Change GimpOperationPointLayerMode's "premultiplied" to "linear" and
set format to "RGBA float" if it's TRUE. Everything defaults to FALSE
so nothing changes.
2012-12-13 22:58:38 +01:00
83a728f492 app: rename gimp_gegl_node_set_layer_mode() to gimp_gegl_mode_node_set()
and have it set mode and opacity at the same time, so we don't reset
opacity each time we set the mode.
2012-05-18 23:50:35 +02:00
d81ea1315e app: implement active, affected components in GEGL
Add GimpOperationMaskComponents, enum GimpComponentMask, and image and
drawable infrastructure to get the right mask, and plug the mask
operation into gimp_gegl_create_apply_buffer_node().
2012-05-02 17:51:17 +02:00
2957795372 app: add gimp_gegl_node_set_matrix() and use it instead of manual fiddling 2012-05-02 17:50:46 +02:00
de0321a82e app: add gimp_gegl_node_set_layer_mode()
and remove all other code that does layer_mode -> node.
2012-05-02 17:46:13 +02:00
fb74b9e822 app: chnage gimp_gegl_create_apply_opacity_node()'s mask offset
to be the offset *of* the mask, not the offset *into* the mask, also
reorder parameters.
2012-05-02 17:46:12 +02:00
5ad9b6fdd9 app: add gimp_gegl_create_apply_buffer_node()
which creates a graph that applies paint, and factor out
gimp_gegl_add_buffer_source() which adds a buffer source with optional
offset to a graph.
2012-05-02 17:46:12 +02:00
1b44953352 app: port bucket fill to GEGL
Add mask offset parameters to gimp_gegl_create_apply_opacity_node()
so it's possible to use a part of the mask only, bucket fill
uses that to avoid uneccessary work where the mask is empty.

Should use the same in gimp_drawable_stroke_scan_convert().
2012-05-02 17:46:01 +02:00
57985cd26d app: create a meta-op to apply mask and opacity
and use it to apply the layer mask.
2012-05-02 17:45:53 +02:00
0ae0dfb52e app: add a flatten meta-op and use it for layers and channels 2012-05-02 17:45:52 +02:00