# A GIMP Image Compositing Subsystem

<quote> Update. The latest version of this code will be available in the cvs version of The GIMP "real soon now." Instead of tracking this software separately, you can simply wait for it to show up in CVS. </quote>

On Februrary 26, 2003 I volunteered to help with the GIMP MMX implemetation that had been languishing and had recently started to cause problems when building the current GIMP code.

This is release 0.0 of an extensible and customisable image compositing interface for the GIMP. I'd like to hear feedback.

What you get is this:

- A general mechanism for incorporating compositing functions based upon the compositing function and the pixel formats of the inputs and the outputs of the function.
- Generic implementations of the supported compositing functions as a foundation for further/future improvements. You can see this code in gimp-composite-generic.c which is a direct "port" of the existing GIMP code which does the same.
- The general mechanism allows any compositing function implementation to be replaced by a different implementation that is, for example, customised for the target CPU, or pixel formats, hardware acceleration, and so forth. You can see this sort of code in gimp-composite-mmx.c which contains implementations of several compositing functions optimised with MMX assembly code.

## Caveat

While I've been using this code, and working out the various problems as they occur, this code is still immature and you may experience problems. If you do, please tell me.

## Installation

To use this you :

- Untar the gimp-composite.tgz tarball,

      % tar xzf gimp-composite.tgz

- Edit `gimp-composite/Makefile` to set the values of three variables to correspond to your local environment. For example, my values are:

      GLIBINCLUDE=/home/helvetix/garnome/include/glib-2.0
      GLIBLIB=/home/helvetix/garnome/lib/glib-2.0/
      GIMP=/home/helvetix/Gnome/gimp

  Note that the `GIMP` variable points to a clean cvs checkout of the gimp-1.3 source code, not the path name of the gimp executable.
- In the gimp-composite/ directory, execute "make install"

      % cd gimp-composite ; make install

- In the gimp-1.3 source directory, execute "autogen.sh && make"

      % cd gimp ; ./autogen.sh && make

- You can install the resultant gimp, or you can run it in place.

Enjoy! Comments, feedback, complaints to me: HELVETIX Mysterious.ORG