Hi!
I'm brand new to this list (again), so sorry if this was asked
five minutes ago...
I have just patched gimp-1.1.28 so that it now can do
what is registered as wish list item #7100
#7100: [Wishlist] layer mask initialization
in the bug database. (meaning, you can create a new
layer mask and initialize it with a (desaturated) copy
of the layer's content)
Whom do I send this patch to, and did I use the prefered
patch format?
I've searched for this in the developer FAQ, but my
question isn't answered there.
I have added the patch to this mail (it's relatively small).
It can be applied to a vanilla 1.1.28 with
cd gimp-1.1.28
patch -p1 -i ../gimp_patch_wishlist_item_#7100.diff
What happens now? ;)
Greetings,
Andy
--
Andreas Jaekel, CableCats - Foest, Jaekel, Tegethoff GbR
http://www.cablecats.de Tel.: 030 - 916 11 77 3
diff -r -u gimp-1.1.28/app/apptypes.h gimp-1.1.28-a/app/apptypes.h
--- gimp-1.1.28/app/apptypes.h Sat Nov 27 15:00:25 1999
+++ gimp-1.1.28-a/app/apptypes.hThu Oct 26 13:37:02 2000
@@ -114,7 +114,8 @@
{
ADD_WHITE_MASK,
ADD_BLACK_MASK,
- ADD_ALPHA_MASK
+ ADD_ALPHA_MASK,
+ ADD_CONTENT_MASK
} AddMaskType;
/* gradient paint modes */
diff -r -u gimp-1.1.28/app/layer.c gimp-1.1.28-a/app/layer.c
--- gimp-1.1.28/app/layer.c Sat Aug 19 18:08:56 2000
+++ gimp-1.1.28-a/app/layer.c Thu Oct 26 13:37:08 2000
@@ -533,10 +533,23 @@
{
pixel_region_init (layerPR, GIMP_DRAWABLE (layer)-tiles,
0, 0,
-GIMP_DRAWABLE (layer)-width, GIMP_DRAWABLE
(layer)-height,
+GIMP_DRAWABLE (layer)-width,
+GIMP_DRAWABLE (layer)-height,
FALSE);
extract_alpha_region (layerPR, NULL, maskPR);
}
+ break;
+case ADD_CONTENT_MASK:
+ pixel_region_init (layerPR, GIMP_DRAWABLE (layer)-tiles,
+0, 0,
+GIMP_DRAWABLE (layer)-width,
+GIMP_DRAWABLE (layer)-height,
+FALSE);
+ extract_from_region_to_mask (layerPR, maskPR,
+ GIMP_DRAWABLE (layer)-gimage-cmap,
+ GIMP_DRAWABLE(layer)-type,
+ layer_has_alpha (layer));
+
break;
}
diff -r -u gimp-1.1.28/app/layer_cmds.c gimp-1.1.28-a/app/layer_cmds.c
--- gimp-1.1.28/app/layer_cmds.cThu Jun 22 05:23:18 2000
+++ gimp-1.1.28-a/app/layer_cmds.c Thu Oct 26 13:37:19 2000
@@ -295,7 +295,7 @@
success = FALSE;
mask_type = args[1].value.pdb_int;
- if (mask_type ADD_WHITE_MASK || mask_type ADD_ALPHA_MASK)
+ if (mask_type ADD_WHITE_MASK || mask_type ADD_CONTENT_MASK)
success = FALSE;
if (success)
@@ -319,7 +319,7 @@
{
PDB_INT32,
"mask_type",
-"The type of mask: { WHITE_MASK (0), BLACK_MASK (1), ALPHA_MASK (2) }"
+"The type of mask: { WHITE_MASK (0), BLACK_MASK (1), ALPHA_MASK (2),
+LAYER_TO_MASK (3) }"
}
};
@@ -336,7 +336,7 @@
{
"gimp_layer_create_mask",
"Create a layer mask for the specified specified layer.",
- "This procedure creates a layer mask for the specified layer. Layer masks serve as
an additional alpha channel for a layer. Three different types of masks are allowed
initially: completely white masks (which will leave the layer fully visible),
completely black masks (which will give the layer complete transparency, and the
layer's already existing alpha channel (which will leave the layer fully visible, but
which may be more useful than a white mask). The layer mask still needs to be added to
the layer. This can be done with a call to 'gimage_add_layer_mask'.",
+ "This procedure creates a layer mask for the specified layer. Layer masks serve as
+an additional alpha channel for a layer. Four different types of masks are allowed
+initially: completely white masks (which will leave the layer fully visible),
+completely black masks (which will give the layer complete transparency, the layer's
+already existing alpha channel (which will leave the layer fully visible, but which
+may be more useful than a white mask) and a mask containing the layer's data
+(desturated if necessary). The layer mask still needs to be added to the layer. This
+can be done with a call to 'gimage_add_layer_mask'.",
"Spencer Kimball Peter Mattis",
"Spencer Kimball Peter Mattis",
"1995-1996",
diff -r -u gimp-1.1.28/app/layers_dialog.c gimp-1.1.28-a/app/layers_dialog.c
--- gimp-1.1.28/app/layers_dialog.c Wed Aug 30 09:20:43 2000
+++ gimp-1.1.28-a/app/layers_dialog.c Thu Oct 26 13:37:37 2000
@@ -3779,6 +3779,8 @@
(gpointer) ADD_BLACK_MASK, NULL,
_("Layer's Alpha Channel"),