by Robin Rowe 2/20/04
CinePaint evolved from a 1998 branch of GIMP 1.0.4 known as HOLLYWOOD or Film Gimp. CinePaint has different design goals than GIMP, in both features and performance.
A year ago I pulled over a bunch of GIMP 1.2 files. This was not a full-scale merge, rather an ongoing strategy of replacing files being worked on anyway with their current GIMP counterparts where it makes sense.
To facilitate reusing GIMP 1.2 code I reorganized our code so that CinePaint source that is bit depth sensitive is kept in a separate directory (app/depth). Any file in the depth directory you can expect to difficult to swap out. Besides depth issues, merging can be obstructed by new calls GIMP has added to the PDB. Other issues we can often PICL around.
When adding or improving a feature in CinePaint that is already implemented in GIMP there are several strategies.
- Use source files from the current GIMP release with our PICL GIMP plug-in compatibility headers (e.g., for GIMP 1.2 core code in our app directory).
- Use source files from an earlier version of GIMP (e.g., GFIG from GIMP 1.0.4 to avoid path functions created later in GIMP). Note that Film Gimp did not include all available GIMP 1.0.4 code.
- Use source files from unstable GIMP CVS (none so far).
- Code a new implementation from scratch (e.g., the tile cache in lib).
We've improved compatibility so that GIMP code can flow pretty freely into CinePaint. Before reusing code from GIMP or any other open source project (e.g., LCMS, gimp-print, Dillo) consider how it meets our project's goals. Our strategy is to keep CinePaint small, not reuse too much from other projects.
gfig -- Thu, 27 Oct 2005 02:18:10 -0700 reply