Go to file
Ell 27e8f452b3 app: change behavior of REPLACE mode for fully-transparent pixels
When the result of compositing has an alpha value of 0, the
corresponding color value is not mathematically defined.
Currently, all out layer modes opt to preserve the destination's
color value in this case.  However, REPLACE mode is different
enough to warrant a different behavior:

Unlike the other layer modes, when the compositing opacity
approaches 0 or 1, the output color value approaches the
destination or source color values, respectively, regardless of the
output alpha value.  When the opacity doesn't approach 0 or 1, the
output color value generally doesn't approach a limit as the output
alpha value approaches 0, however, when both the destination and
source alpha values are equal, the output color value is always a
simple linear interpolation between the destination and source
color values, according to the opacity.  In other words, this means
that it's reasonable to simply use the above linear interpolation
for the output color value, whenever the output alpha value is 0.

Since filters are commonly combined with the input using REPALCE
mode with full opacity, this has the effect that filters may now
modify the color values of fully-transparent pixels.  This is
generally desirable, IMO, especially for point filters.  Indeed,
painting with REPLACE mode (i.e., with tools that use
gimp_paint_core_replace()) behaved excatly as described above, and
had this property, before we switched gimp_paint_core_replace() to
use the common compositing code; this created a discrepancy between
painting and applying filters, which is now gone.

A side effect of this change is that we can now turn gimp:replace
into a NOP when the opacity is 100% and there's no mask, which
avoids the compositing step when applying filters.  We could
previously only apply this optimization to PASS_THROUGH mode, which
is a subclass of REPLACE mode.

Note that the discussion above concerns the UNION composite mode,
which is the only mode we currently use REPLACE in.  We modify the
rest of the composite modes to match the new behavior:
CLIP_TO_BACKDROP always preserves the color values of the
destionation, CLIP_TO_LAYER always preserves the color values of
the source, and INTERSECTION always produces fully-zeroed pixels.
2019-02-14 11:04:53 -05:00
.gitlab .gitlab: add "performance" issue template 2018-11-08 03:46:44 -05:00
app app: change behavior of REPLACE mode for fully-transparent pixels 2019-02-14 11:04:53 -05:00
app-tools Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
build build: add "org.freedesktop.FileManager1" bus access to flatpak. 2019-01-08 23:23:50 +01:00
cursors cursors: add -HiDPI variants of all cursors 2018-12-31 22:22:25 +01:00
data app: do not make line art bucket fill a GimpSelectCriterion anymore. 2018-12-12 15:27:48 +01:00
desktop desktop: add rewrite of the Spyrogimp in appdata <release> tag. 2019-01-24 01:35:11 +01:00
devel-docs devel-docs: in performance-logs.md, fix markers-page section number 2019-01-23 16:36:04 -05:00
docs Issue #2224 - Use the "Swap folder" setting for the GEGL cache 2018-11-18 18:10:34 +01:00
etc docs, etc: regenerate system gimprc and its manpage 2018-10-20 11:34:15 +02:00
icons icons: fix icons! 2018-09-17 19:17:32 +02:00
libgimp libgimp: avoid libgimp tile-cache in the plug-in tile backend 2019-02-05 17:25:31 -05:00
libgimpbase libgimpbase: style cleanup of gimpreloc.c 2019-02-05 15:00:44 +01:00
libgimpcolor libgimpcolor: in gimp_adaptive_supersample_area(), use scratch allocator 2019-01-24 04:15:21 -05:00
libgimpconfig app, libgimpconfig: make various usage of g_file_replace() safer. 2018-11-26 15:50:38 +01:00
libgimpmath libgimpmath: fix typo in various places: s/orthognal/orthogonal/. 2018-09-20 18:10:45 +02:00
libgimpmodule app, libgimp*, modules: don't use g_type_class_add_private() ... 2018-09-18 14:39:56 -04:00
libgimpthumb libgimpthumb: another missing link to libgimpbase. 2018-08-12 22:46:44 +02:00
libgimpwidgets libgimpwidgets: in GimpChainButton, emit "toggled" signal when "active" changes 2019-02-08 08:19:18 -05:00
m4macros m4macros: remove binreloc.m4 from EXTRA_DIST 2019-02-12 10:10:27 -05:00
menus app: remove "Edit -> Fade..." 2018-12-27 11:44:25 -05:00
modules libgimpcolor, app, modules, plug-ins: remove GEGL_ITERATOR2 define 2018-12-02 11:15:37 -05:00
pdb app, pdb: use compat formats for brushes/patterns in plug-ins 2019-02-07 09:19:20 -05:00
plug-ins Issue #2961: minor coding style fix. 2019-02-14 12:09:29 +01:00
po Update Spanish translation 2019-02-14 12:18:18 +00:00
po-libgimp Updated Danish translation of gimp-libgimp 2019-01-22 16:26:28 +01:00
po-plug-ins Update Hungarian translation 2019-02-07 23:38:59 +00:00
po-python Update Spanish translation 2019-02-14 12:21:21 +00:00
po-script-fu Update Hungarian translation 2019-02-04 22:55:33 +00:00
po-tags po*: change Report-Msgid-Bugs-To URL to gitlab.gnome.org 2018-07-11 21:56:14 +02:00
po-tips Update Romanian translation 2018-10-08 16:16:22 +00:00
po-windows-installer Update Japanese translation 2019-01-08 10:29:55 +00:00
themes themes: draw a wider border around GimpFgBgColor's active color 2018-10-25 12:02:41 +02:00
tools Undo some (unnecessary) changes. 2019-01-25 19:08:28 +00:00
.dir-locals.el .dir-locals.el: configure emacs to show trailing whitespace 2016-08-24 17:46:57 +02:00
.gitignore Switch to version 2.99/3.0 in a lot of places and depend on GTK+ 3.22 2018-05-20 21:06:26 +02:00
.kateconfig Add .kateconfig with modelines for Kate 2016-08-23 14:53:38 +02:00
AUTHORS AUTHORS: regenerated 2019-01-03 15:05:11 +01:00
COPYING Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
ChangeLog.pre-1-0
ChangeLog.pre-1-2
ChangeLog.pre-2-0
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6 Applied changes based on official version of TinyScheme (CVS commit dated 2009-08-04 14:23:55 -04:00
ChangeLog.pre-git Applied changes based on official version of TinyScheme (CVS commit dated 2009-08-04 14:23:55 -04:00
HACKING Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
INSTALL.in app, libgimpbase: --enable-relocatable-bundle replaces --enable-binreloc 2019-02-05 14:50:31 +01:00
LICENSE Source and trivial typos 2018-05-12 23:44:47 +02:00
MAINTAINERS Update GIMP project meta information. 2014-08-07 21:30:35 +02:00
Makefile.am configure.ac, Makefile.am: skip po-python/ 2018-05-31 00:29:36 -04:00
NEWS NEWS: mention enum docs in libgimpbase 2018-05-20 16:42:12 +02:00
NEWS.pre-2-0 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-2 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-4 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-6 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-8 NEWS.pre-2-8: new file preserving the history that lead to 2.8 2015-11-22 17:30:15 +01:00
NEWS.pre-2-10 Misc. typos 2018-10-19 15:30:27 +00:00
README Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
README.i18n Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
acinclude.m4 app, libgimpbase: --enable-relocatable-bundle replaces --enable-binreloc 2019-02-05 14:50:31 +01:00
authors.dtd authors.dtd: Update 2011-01-28 07:55:55 +01:00
authors.xml authors.xml: my name was in duplicate. 2019-01-03 00:19:40 +01:00
authors.xsl Also put maintainers separately in AUTHORS 2011-01-27 22:04:05 +01:00
authors4gimp-web.xsl Bug 734981 - Update maintainers and authors. 2017-10-23 23:55:22 +02:00
autogen.sh Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
config.h.win32
configure.ac app, plug-ins: start consolidating brush and pattern loading/saving code 2019-02-11 12:51:31 +01:00
gimp-zip.in Drop the timestamp from the zip file names. Add the .pc files to the 2007-11-13 09:54:59 +00:00
gimp.doap Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
gimp.pc.in configure, gimp.pc: do no hardcode the major.minor version of GEGL. 2018-04-28 01:30:19 +02:00
gimpthumb.pc.in use GCheckSum instead of the MD5 routine from libgimpmath. 2008-03-28 16:47:38 +00:00
gimpui.pc.in Require gtk+-3.0 in gimpui-3.0.pc 2018-05-25 21:55:45 +02:00

README

                   ------------------------------
                   GNU Image Manipulation Program
                      2.99 Development Branch
                   ------------------------------

This is an unstable development release, an intermediate state on the
way to the next stable release: GIMP 3. GIMP 2.99 may or may not do what
you expect. Save your work early and often. If you want a stable
version, please use GIMP 2.10 instead.

If you think you found a bug in this version, please make sure that it
hasn't been reported earlier and that it is not just new stuff that is
still being worked on and obviously not quite finished yet.

If you want to hack on GIMP, please read the file HACKING. For
detailed installation instructions, see the file INSTALL.


1. Web Resources
================

GIMP's home page is at:

	https://www.gimp.org/

Please be sure to visit this site for information, documentation,
tutorials, news, etc.  All things GIMP-ish are available from there.

The automated plug-in registry is located at:

	https://registry.gimp.org/

There you can get the latest versions of plug-ins, using a convenient
forms-based interface.

The latest version of GIMP can be found at:

	https://www.gimp.org/downloads/


2. Mailing Lists
================

We have several mailing lists dedicated to GIMP user and development
discussion.  There is more info at

	https://www.gimp.org/mail_lists.html

Links to several archives of the mailing lists are included in that page.

Gimp-user-list is a mailing list dedicated to user problems, hints and
tips, discussion of cool effects, etc.  Gimp-developer-list is oriented
to GIMP core and plug-in developers.  Gimp-gui-list is for discussing
about GIMP interface to improve user experience. Most people will only
want to be subscribed to gimp-user-list. If you want to help develop
GIMP, the gimp-developer mailing list is a good starting point; if you
want to help with GUI design, the gimp-gui list is where you want to
subscribe.


3. IRC
======

And finally, for the real junkies, there is an IRC channel devoted to
GIMP. On GIMPNet (a private free software oriented network) there is
#gimp.  Many of the developers hang out there.  Some of the GIMPNet
servers are:

	irc.gimp.org:6667
	irc.us.gimp.org:6667
	irc.eu.gimp.org:6667


4. Customizing
==============

The look of GIMP's interface can be customized like any other GTK+ app
by editing files in `${XDG_CONFIG_HOME}/gtk-3.0/` (settings.ini and
gtk.css in particular) or by using "themes" (ready-made customizations).
Additionally, GIMP reads `${XDG_CONFIG_HOME}/GIMP/2.99/gimp.css` so you
can have settings that only apply to GIMP.

Included is a set of keybindings similar to those in Adobe Photoshop.
You can find them in the ps-menurc file.  To use them, copy this file
to `${XDG_CONFIG_HOME}/GIMP/2.99/menurc`. You can also manually change
the keybindings to any of your choice by editing:
`${XDG_CONFIG_HOME}/GIMP/2.99/menurc`.


Have fun,

  Spencer Kimball
  Peter Mattis
  Federico Mena
  Manish Singh
  Sven Neumann
  Michael Natterer
  Dave Neary
  Martin Nordholts