gimp/app/paint
Jehan 75e6f1062e app: fix "Luma Lighten/Darken only" layer modes.
This is a continuation of #5888 as I realized that most layer modes were
fixed with my commit b3fc24268a (and follow-up f40dc40cbc) but at least
2 were still crashing GIMP: "Luma Lighten/Darken only" modes.

There were 2 bugs here:

* The first bug was that when gimp_operation_layer_mode_real_process()
  ran, gimp_operation_layer_mode_prepare() had not been run yet.
  prepare() is called before the process() of GeglOperation, but it
  would seem the process() of GimpOperationLayerMode on the other end
  happens before GeglOperation's prepare() is run. I am absolutely
  unsure if this is expected or not and have a hard time figuring out
  all the details of the C/C++ cohabitation.
  As a solution, I am moving out the fish caching (the needed part
  inside gimp_operation_layer_mode_real_process()) in its own function
  so that I can easily call it separately before inspecting the fishes.

* The second issue was that some blend functions needed more than a
  GeglOperation alone. E.g. blend_function() for luma lighten
  gimp_operation_layer_mode_blend_luma_lighten_only() would call
  gegl_operation_get_source_space() which requires the node to exist.
  Similarly for the Luma darken only mode. So I keep both the node and
  operation around, and when finalizing, I free the node (which in turn
  frees the operation).

Ell > if you are reading our commits, I would really appreciate your
review (or fixes) of my code here! :)
2020-11-10 17:25:34 +01:00
..
.gitignore enums: add intermediate generated enum files to .gitignore 2017-08-24 15:35:27 -04:00
Makefile.am app: move brush-core loops to a separate file 2018-04-05 17:41:29 -04:00
gimp-paint.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-paint.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpairbrush.c Cleanup GObject signal marshallers 2020-04-01 21:20:01 +00:00
gimpairbrush.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpairbrushoptions.c app: increase the maximal airbrush stamp FPS 2020-02-13 18:47:03 +02:00
gimpairbrushoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpbrushcore-kernels.h app: small fix in gimpbrushcore-kernels.h 2019-02-06 16:51:01 -05:00
gimpbrushcore-loops.cc app, meson.build: fix a bunch of warnings in C++ files 2019-09-12 20:04:50 +03:00
gimpbrushcore-loops.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpbrushcore.c Cleanup GObject signal marshallers 2020-04-01 21:20:01 +00:00
gimpbrushcore.h app: use gimp_symmetry_get_transform() in paint code 2019-05-26 14:45:39 -04:00
gimpclone.c app: fix symmetry transform in Clone/Heal tools when brush is cropped 2019-05-29 05:26:43 -04:00
gimpclone.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpcloneoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpcloneoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpconvolve.c app: use gimp_symmetry_get_transform() in paint code 2019-05-26 14:45:39 -04:00
gimpconvolve.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpconvolveoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpconvolveoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpdodgeburn.c app: use gimp_symmetry_get_transform() in paint code 2019-05-26 14:45:39 -04:00
gimpdodgeburn.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpdodgeburnoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpdodgeburnoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimperaser.c Issue #3723 - Symmetry Painting with random colour isn't symmetrical 2019-08-02 22:28:59 +03:00
gimperaser.h app: derive GimpEraser from GimpPaintbrush 2019-05-26 14:47:44 -04:00
gimperaseroptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimperaseroptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpheal.c Issue #4094 - Corrects some tools descriptions 2020-03-10 21:39:06 +03:00
gimpheal.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpink-blob.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpink-blob.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpink.c app: use gimp_symmetry_get_matrix() in GimpInk 2019-05-29 05:26:41 -04:00
gimpink.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpinkoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpinkoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpinkundo.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpinkundo.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpmybrushcore.c app, libgimp*, modules: don't use g_type_class_add_private() ... 2018-09-18 14:39:56 -04:00
gimpmybrushcore.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpmybrushoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpmybrushoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpmybrushsurface.c libgimpcolor, app, modules, plug-ins: remove GEGL_ITERATOR2 define 2018-12-02 11:15:37 -05:00
gimpmybrushsurface.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppaintbrush.c Issue #3723 - Symmetry Painting with random colour isn't symmetrical 2019-08-02 22:28:59 +03:00
gimppaintbrush.h Issue #3723 - Symmetry Painting with random colour isn't symmetrical 2019-08-02 22:28:59 +03:00
gimppaintcore-loops.cc app: fix "Luma Lighten/Darken only" layer modes. 2020-11-10 17:25:34 +01:00
gimppaintcore-loops.h app: use MASK_COMPONENTS algorithm in gimp_paint_core_{paste,replace}() 2019-02-16 09:56:30 -05:00
gimppaintcore-stroke.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppaintcore-stroke.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppaintcore.c app: add gimp_paint_core_{set_show_all,get_image_pickable}() 2019-09-06 20:10:30 +03:00
gimppaintcore.h app: add gimp_paint_core_{set_show_all,get_image_pickable}() 2019-09-06 20:10:30 +03:00
gimppaintcoreundo.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimppaintcoreundo.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppaintoptions.c CID 225808 Arguments in wrong order 2019-10-20 15:27:37 +02:00
gimppaintoptions.h Issue #1833 - (gimp-context-get-gradient-repeat-mode) always warns... 2018-07-12 11:39:42 +02:00
gimppencil.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppencil.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimppenciloptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimppenciloptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpperspectiveclone.c app: add "show all" support to the Perspective Clone tool 2019-09-06 20:10:31 +03:00
gimpperspectiveclone.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpperspectivecloneoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpperspectivecloneoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpsmudge.c FIxed typos in app/ 2019-10-10 19:39:09 +00:00
gimpsmudge.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpsmudgeoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpsmudgeoptions.h Issue #1942 - Smudge Tool with Sample Merged Option 2019-01-20 17:48:04 +01:00
gimpsourcecore.c app: fix use of Clone tool with "sample merged" across images 2019-10-02 17:14:36 +03:00
gimpsourcecore.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpsourceoptions.c libgimbase: merge gimpparam.h into gimpparamspecs.h 2019-07-31 10:16:21 +02:00
gimpsourceoptions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
meson.build Don't compile gimpmarshal source file many times 2020-09-13 18:13:29 +03:00
paint-enums.c enums: generate enum files in source dir 2017-05-06 17:26:16 -04:00
paint-enums.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
paint-types.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00