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