add a projection node and implement GimpDrawable::get_node(). Reconfigure

2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.[ch]: add a projection node and
	implement GimpDrawable::get_node(). Reconfigure the node in
	visibility_changed(), set_color(), set_opacity() and
	set_show_masked().

	* app/core/gimpimage.c (gimp_image_get_graph): enable code that
	projects the channels stack on top of the layer stack.

	* app/core/gimpprojection-construct.c: remove the call to
	gimp_projection_construct_channels() from the GEGL code path. Also
	don't touch proj->construct_flag.


svn path=/trunk/; revision=27230
This commit is contained in:
Michael Natterer
2008-10-11 10:29:19 +00:00
committed by Michael Natterer
parent e28e864ac6
commit 0e88239524
5 changed files with 238 additions and 35 deletions

View File

@ -143,8 +143,6 @@ gimp_projection_construct (GimpProjection *proj,
}
#endif
proj->construct_flag = FALSE;
/* First, determine if the projection image needs to be
* initialized--this is the case when there are no visible
* layers that cover the entire canvas--either because layers
@ -156,11 +154,16 @@ gimp_projection_construct (GimpProjection *proj,
* the list of channels
*/
if (FALSE)
gimp_projection_construct_gegl (proj, x, y, w, h);
{
gimp_projection_construct_gegl (proj, x, y, w, h);
}
else
gimp_projection_construct_layers (proj, x, y, w, h);
{
proj->construct_flag = FALSE;
gimp_projection_construct_channels (proj, x, y, w, h);
gimp_projection_construct_layers (proj, x, y, w, h);
gimp_projection_construct_channels (proj, x, y, w, h);
}
}
@ -189,8 +192,6 @@ gimp_projection_construct_gegl (GimpProjection *proj,
while (gegl_processor_work (processor, NULL));
g_object_unref (processor);
proj->construct_flag = TRUE;
}
static void