Commit graph

214 commits

Author SHA1 Message Date
Ell
0c35baecca app: in gimp_composite_blend(), more alloca avoiding 2017-01-21 09:06:08 -05:00
Øyvind Kolås
c993adf91e app: remove a trampoline in layer/paint mode dispatch
Fully removes one trampoline level and passing fewer args through the remaining
trampoline.
2017-01-21 14:10:03 +01:00
Ell
fb3b99553c app: in gimp_composite_blend(), avoid another alloca when doing in-place output 2017-01-21 07:18:47 -05:00
Ell
4d985d11df app: in gimp_composite_blend(), avoid an alloca when doing in-place output 2017-01-21 06:36:03 -05:00
Ell
5da89f0daf app: in gimp_composite_blend(), avoid overwriting input in some cases (again)
Revert commit f6436eee96, which was wrong,
and redo it the right way.
2017-01-19 16:16:44 -05:00
Øyvind Kolås
386e18e510 app: rename GimpLayerBlendTRC to GimpLayerColorSpace
It is used both for blending and compositing, the repeated use of the word
BLEND in code made the logic involving both blending and compositing hard to
read.
2017-01-19 19:17:24 +00:00
Ell
f6436eee96 app: in gimp_composite_blend(), avoid overwriting input in some cases
Note that in some cases the alloca may be unnecessary, but this keeps
the code clean, and we have to be able to *potentially* do the alloca
anyway, so what the hell.
2017-01-19 13:51:48 -05:00
Michael Natterer
a5ee5f28f9 app: cast ops using (gpointer) everywhere instead of 3 different ways 2017-01-19 19:04:49 +01:00
Michael Natterer
268e35a996 app: remove prepare() impls from erase and anti-erase
the calling code makes sure the ops have the right linear formats.
2017-01-19 18:49:22 +01:00
Michael Natterer
349cff8c16 app: remove "gboolean linear" from gimp_get_layer_mode_function()
and get rid of the two process_pixels() functions in the LCH modes,
they always take linear now.
2017-01-19 18:43:31 +01:00
Ell
417d9553b5 app: in gimpblendcomposite.h, small fix in compfun_dst_atop() 2017-01-19 12:03:39 -05:00
Ell
7df1bb4c0e app: in gimp_blend_composite(), fix dst_atop and avoid some conversions
Also s/comp_alpha/layer_alpha/ for consistency.
2017-01-19 11:55:21 -05:00
Michael Natterer
d656fbab86 app: coding style cleanup in all layer modes, fiddle with includes a bit 2017-01-19 17:48:45 +01:00
Øyvind Kolås
80c947f04f app: add missing breaks in switches of gimpblendcomposite 2017-01-19 14:25:04 +00:00
Michael Natterer
4683b986f3 app: use the GimpBlendFunc typedef in gimpblendcomposite.h 2017-01-19 14:46:29 +01:00
Øyvind Kolås
f645665324 app: unconditionally set alpha in hardlight/softlight/overlay 2017-01-19 14:44:39 +01:00
Michael Natterer
bfdea93a9c app: indentation and formatting cleanup in gimpblendcomposite.h
Also remove all includes, they should already be there when this
header gets included.
2017-01-19 14:31:40 +01:00
Øyvind Kolås
72cbda11ae app: composite_blend, fix src_over 2017-01-19 04:57:14 +01:00
Øyvind Kolås
41fff6990e app: make layer modes more configurable
Implement a common utility function gimp_blend_composite that uses utility
functions for implementing layer modes, with separate (possibly SIMD) optimized
loops for blending and compositing, with configured linear TRC, perceptual
gamma TRC or even using CIE Lab as the space.
2017-01-19 01:04:15 +01:00
Michael Natterer
6e72d3eddf app: add blend-trc and composite-mode properties to GimpOperationPointLayerMode
and set them to unused default values.
2017-01-17 15:09:17 +01:00
Michael Natterer
69c4644e15 app: rename GimpLayerModeFunction to GimpLayerModeFunc
like all other function typedefs and add GimpBlendFunc typedef which
will be needed soon. Also rename get_layer_mode_function() to
gimp_get_layer_mode_function().
2017-01-16 22:44:01 +01:00
Øyvind Kolås
e1b7eb7245 app: divide blend mode, limit high values to 5.0
Possibly counteracting inaccuracies in used babl conversions, but with this the
result match legacy as expected.
2017-01-16 02:36:11 +01:00
Øyvind Kolås
60847cce73 app: remove odd ratio scaling, replace with range check for nan 2017-01-15 01:33:40 +01:00
Øyvind Kolås
315ccc7f82 app: remove clamping in multiply mode 2017-01-15 01:33:40 +01:00
Michael Natterer
50669fe6d4 app, libgimp: rename BEHIND enum values to be consistent with others
Also update gimplayermodefunctions.c which I forgot before.
2017-01-15 00:01:09 +01:00
Øyvind Kolås
f01374798e app: remove clamps from addition, subtract and grain blend modes 2017-01-14 21:06:06 +01:00
Øyvind Kolås
39adf3627d app: use hypotf in lhc chroma blend mode 2017-01-14 21:03:29 +01:00
Øyvind Kolås
f8c65367f0 app: cache fishes in lch blend modes 2017-01-13 19:21:01 +00:00
Øyvind Kolås
975a0a6943 app: reuse more code 2017-01-13 19:21:01 +00:00
Øyvind Kolås
be8c2015a0 app: move factored out compositing to common header 2017-01-13 19:21:01 +00:00
Øyvind Kolås
acd20fb55b app: use cached fishes in lch chroma mode 2017-01-13 19:21:00 +00:00
Øyvind Kolås
7959141eb4 app: make compositing of hsv value blend mode consistent 2017-01-13 14:26:36 +01:00
Øyvind Kolås
75173b97d9 app: make compositing of grain extract blend mode consistent 2017-01-13 14:26:05 +01:00
Øyvind Kolås
954030fab6 app: make compositing of dodge blend mode consistent with rest 2017-01-13 14:25:46 +01:00
Øyvind Kolås
13eab78ecc app: improve and simplify alpha handling of LCH blending modes 2017-01-13 14:15:35 +01:00
Øyvind Kolås
feb2bb4083 app: lch color modes remove unneeded includes 2017-01-13 13:53:08 +01:00
Øyvind Kolås
0b1f684e8f app: remove unneded variable named tmp 2017-01-13 13:38:12 +01:00
Øyvind Kolås
24b04c0b40 app: use single precision hypotf and constants for performance 2017-01-13 13:17:25 +01:00
Øyvind Kolås
dc5b86f0eb app: add TRC variants to get_layer_mode_function() 2017-01-12 15:18:44 +01:00
Michael Natterer
77f9659c98 app: move gimplayermodefunctions.[ch] to layer-modes/ 2017-01-11 14:58:43 +01:00
Michael Natterer
b959e0b69b app: move GimpOperationPointLayerMode to layer-modes/ 2017-01-11 14:44:10 +01:00
Ell
e17f640fba app: eliminate unnecessary condition in GimpOperationReplaceMode
8-bit relic.
2017-01-11 08:21:02 -05:00
Michael Natterer
ad134263d2 app: clean up Makefile.am in layer-modes/ and layer-modes-legacy/ 2017-01-11 13:00:27 +01:00
Michael Natterer
8b5553cef6 app: move the remaining 3 layer modes to layer-modes/
Not exactly sure if all are correct, but the file moving is almost
done now.
2017-01-11 12:55:13 +01:00
Øyvind Kolås
f45fc97eba app: add missing op .h files 2017-01-11 04:54:36 +01:00
Øyvind Kolås
ec1f7a94e3 app: split legacy out of grain extract and merge 2017-01-11 04:40:26 +01:00
Øyvind Kolås
8f3842434c app: split legacy out of soft and hard light 2017-01-11 04:10:06 +01:00
Øyvind Kolås
784a8ee224 app: split legacy out of burn and divide 2017-01-11 03:17:53 +01:00
Michael Natterer
0891028232 app: forgot to s/gimp:normal-mode/gimp:normal/g 2017-01-11 00:28:57 +01:00
Michael Natterer
9142bb1805 app: move erase and anti-erase to layer-modes/ 2017-01-11 00:23:31 +01:00
Øyvind Kolås
56ba42a97c app: correct names of screen and difference layer ops 2017-01-10 21:48:03 +01:00
Øyvind Kolås
71030f49e9 app: duplicate hsv layer modes, and fix alpha handling 2017-01-10 21:48:03 +01:00
Øyvind Kolås
c3e5e30450 app: split legacy lighten only and darken only ops 2017-01-10 11:18:52 +01:00
Michael Natterer
99189d7a28 app: move dissolve to layer-modes/ 2017-01-10 09:06:16 +01:00
Øyvind Kolås
153796df9b app: fix names of addition and subtract ops 2017-01-10 02:29:34 +01:00
Øyvind Kolås
dfcb5c11de app: add new files for subtract/addition ops 2017-01-10 01:42:34 +01:00
Øyvind Kolås
5a7fd54d34 app: split addition and subract in legacy and new 2017-01-10 01:40:14 +01:00
Michael Natterer
60e1d8e35f app: move the LCH layer modes to layer-modes/ 2017-01-10 01:04:49 +01:00
Øyvind Kolås
92047ea949 app: layer op fission cleanup 2017-01-10 00:00:31 +01:00
Michael Natterer
b001626b31 app: move overlay to operations/layer-modes/ and call it GimpOperationOverlay 2017-01-09 23:54:51 +01:00
Øyvind Kolås
b6be1b768e app: duplicate difference mode, new and legacy 2017-01-09 23:49:08 +01:00
Øyvind Kolås
9d5893f402 app: add the ops for screen blend ops 2017-01-09 23:25:59 +01:00
Øyvind Kolås
3a50cdcd4f app: split screen op in legacy and new 2017-01-09 23:19:29 +01:00
Michael Natterer
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