gimp/app
Martin Nordholts cdb3f70184 Implement a bunch of layer modes. Use the exact SVG 1.2 formula for layer
* app/gegl/gimpoperationpointlayermode.c: Implement a bunch of
layer modes. Use the exact SVG 1.2 formula for layer modes that
have a counterpart in SVG 1.2. Don't clamp the result to [0..1]
for Dodge and Burn though as we don't need to. Maybe we *should*
clamp from a compositing point of view, I'm not sure. Also
reformat the code a bit for readability.

Keep in mind that we now treat the opacity of all layers the same
indepentant of the layer mode. That is why most of the new
implementations doesn't work the same as the legacy ones when
transparency is involved, only when the layers are completely
opaque. Another important property for all layer modes implemented
below is that compositing onto complete transparency gives the
same result as if the layer would have been in Normal blending
mode.

The status of the new layer mode implementations compared to the
legacy implementations is as follows:

Completely works the same:
 o Behind

Works the same for 100% opaque layers:
 o Multiply
 o Screen
 o Difference
 o Darken
 o Lighten
 o Dodge
 o Burn
 o Hard Light
 o Subtract
 o Divide

Works different but similar:
 o Overlay

Work in progress:
 o Soft Light

svn path=/trunk/; revision=27409
2008-10-25 22:44:19 +00:00
..
actions More merging from SOC 2006's vector layer branch: 2008-10-25 11:59:03 +00:00
base Rename the convenient channel offset defines from FOO_PIX to FOO as this 2008-10-19 13:47:09 +00:00
composite removed trailing whitespace 2008-09-04 08:37:32 +00:00
config removed check for Carbon and added a test for the target OS being Darwin 2008-10-22 22:04:30 +00:00
core Completed the rename with gimp:layer-mode -> gimp:point-layer-mode and 2008-10-25 21:02:46 +00:00
dialogs More merging from SOC 2006's vector layer branch: 2008-10-25 11:59:03 +00:00
display Bug 557870 – "Qmask" message popping up here and there 2008-10-25 15:29:35 +00:00
file added signal Gimp::image-opened to announce that an image has been loaded 2008-10-17 12:03:08 +00:00
gegl Implement a bunch of layer modes. Use the exact SVG 1.2 formula for layer 2008-10-25 22:44:19 +00:00
gui added signal Gimp::image-opened to announce that an image has been loaded 2008-10-17 12:03:08 +00:00
menus Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a 2008-10-09 20:24:04 +00:00
paint More merging from SOC 2006's vector layer branch: 2008-10-25 11:59:03 +00:00
paint-funcs use the inverse of the scale factor so that we can multiply instead of 2008-10-23 22:07:59 +00:00
pdb More merging from SOC 2006's vector layer branch: 2008-10-25 11:59:03 +00:00
plug-in set proc_frame->procedure to NULL *after* calling gimp_plug_in_cleanup(). 2008-10-23 17:13:19 +00:00
text Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a 2008-10-09 20:24:04 +00:00
tools More merging from SOC 2006's vector layer branch: 2008-10-25 11:59:03 +00:00
vectors More merging from SOC 2006's vector layer branch: 2008-10-25 11:59:03 +00:00
widgets add non-serializable properties pattern-view-type and pattern-view-size 2008-10-24 22:34:24 +00:00
xcf add new functions gimp_image_get_layer_by_index(), _channel_by_index() and 2008-10-10 11:45:00 +00:00
about.h updated copyright. 2008-01-24 17:07:51 +00:00
app.c Drop duplicated #include <gegl.h>. 2008-07-11 16:47:35 +00:00
app.h Allow other applications to open images in GIMP as if they were new images 2007-04-17 15:54:01 +00:00
batch.c app/app.c app/batch.c app/core/gimp.c use G_STRLOC instead of hardcoding 2008-02-19 13:38:24 +00:00
batch.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
errors.c added errors_exit() and unset the Gimp reference. Errors may occur after 2007-06-13 09:27:32 +00:00
errors.h added errors_exit() and unset the Gimp reference. Errors may occur after 2007-06-13 09:27:32 +00:00
fileicon.ico fileicon.ico new icons for the Windows build created by Jernej 2006-05-02 06:37:08 +00:00
gimp-intl.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
gimp-log.c Applied 'gimp-decimate.diff' as announced on the mailing-list: 2008-09-07 21:13:09 +00:00
gimp-log.h Applied 'gimp-decimate.diff' as announced on the mailing-list: 2008-09-07 21:13:09 +00:00
gimp.rc
gimpcore.def updated include <string.h> for memcmp() include <string.h> for strcmp() 2008-10-03 19:27:54 +00:00
main.c removed prototype for gimp_sigfatal_handler() 2008-10-13 19:49:51 +00:00
Makefile.am Applied patch from Alexia Death as attached to bug #471344: 2008-10-18 18:46:15 +00:00
makefile.msc updated include <string.h> for memcmp() include <string.h> for strcmp() 2008-10-03 19:27:54 +00:00
sanity.c configure.in require GEGL >= 0.0.21. 2008-10-14 22:44:42 +00:00
sanity.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
signals.c comments. 2008-10-14 07:29:59 +00:00
signals.h app/Makefile.am new files with code split out of main.c. 2008-10-13 19:32:33 +00:00
unique.c app/widgets/Makefile.am app/widgets/gimpdbusservice.[ch] removed here ... 2008-07-13 19:49:32 +00:00
unique.h moved some common code back to main.c 2008-07-11 09:16:23 +00:00
units.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
units.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
version.c tweaked verbose version output. 2008-04-07 19:33:24 +00:00
version.h New files. Rename gimp_show_version() to gimp_version_show() and move 2008-02-26 14:02:44 +00:00
wilber.ico fileicon.ico new icons for the Windows build created by Jernej 2006-05-02 06:37:08 +00:00