app/core/gimpprojection.[ch] add code that keeps the gegl processor around

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

	* app/core/gimpprojection.[ch]
	* app/core/gimpprojection-construct.c: add code that keeps the
	gegl processor around across calls, but destroy it anyway until
	gegl_processor_set_rectangle() is fixed.


svn path=/trunk/; revision=27607
This commit is contained in:
Michael Natterer 2008-11-10 22:15:40 +00:00 committed by Michael Natterer
parent bb85dbbf24
commit 19e7f9e316
4 changed files with 24 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2008-11-10 Michael Natterer <mitch@gimp.org>
* app/core/gimpprojection.[ch]
* app/core/gimpprojection-construct.c: add code that keeps the
gegl processor around across calls, but destroy it anyway until
gegl_processor_set_rectangle() is fixed.
2008-11-10 Martin Nordholts <martinn@svn.gnome.org>
Bug 559716 Changing crop size in Crop Tool Options can make UI

View File

@ -144,7 +144,6 @@ gimp_projection_construct_gegl (GimpProjection *proj,
gint h)
{
GeglNode *sink;
GeglProcessor *processor;
GeglRectangle rect;
sink = gimp_projection_get_sink_node (proj);
@ -154,11 +153,18 @@ gimp_projection_construct_gegl (GimpProjection *proj,
rect.width = w;
rect.height = h;
processor = gegl_node_new_processor (sink, &rect);
if (! proj->processor)
proj->processor = gegl_node_new_processor (sink, &rect);
else
gegl_processor_set_rectangle (proj->processor, &rect);
while (gegl_processor_work (processor, NULL));
while (gegl_processor_work (proj->processor, NULL));
g_object_unref (processor);
#ifdef __GNUC__
#warning FIXME: keep the processor around once gegl_processor_set_rectangle() works
#endif
g_object_unref (proj->processor);
proj->processor = NULL;
}
static void

View File

@ -203,6 +203,12 @@ gimp_projection_finalize (GObject *object)
proj->sink_node = NULL;
}
if (proj->processor)
{
g_object_unref (proj->processor);
proj->processor = NULL;
}
G_OBJECT_CLASS (parent_class)->finalize (object);
}

View File

@ -58,6 +58,7 @@ struct _GimpProjection
TilePyramid *pyramid;
GeglNode *graph;
GeglNode *sink_node;
GeglProcessor *processor;
GSList *update_areas;
GimpProjectionIdleRender idle_render;