Commit f346a818 authored by Kevin Cozens's avatar Kevin Cozens Committed by Kevin Cozens

Use g_object_get to determine pixel size instead of using a hard-coded

2008-01-08  Kevin Cozens  <kcozens@cvs.gnome.org>

	* operations/render/FractalExplorer.c (process): Use g_object_get to
	determine pixel size instead of using a hard-coded value.

	The files listed below were updated due to changes in the API, and to
	make them compile. There is no guarantee they actually work. There are
	probably some reference counting issues that also need to be fixed.

	* gegl/gegl-chant.h: Added missing process() prototype for
	GEGL_CHANT_COMPOSER

	* operations/workshop/box-max.c:
	* operations/workshop/box-min.c:
	* operations/workshop/box-percentile.c:
	* operations/workshop/c2g.c:
	* operations/workshop/demosaic-simple.c:
	* operations/workshop/disc-percentile.c:
	* operations/workshop/ff-save.c:
	* operations/workshop/gluas.c:
	* operations/workshop/gtk-display.c:
	* operations/workshop/hstack.c:
	* operations/workshop/kuwahara-max.c:
	* operations/workshop/kuwahara-min.c:
	* operations/workshop/kuwahara.c:
	* operations/workshop/line-profile.c:
	* operations/workshop/mandelbrot.c:
	* operations/workshop/max-envelope.c:
	* operations/workshop/mblur.c:
	* operations/workshop/min-envelope.c:
	* operations/workshop/rawbayer-load.c:
	* operations/workshop/snn-percentile.c:
	* operations/workshop/stress.c: Updated to new API.

	* operations/workshop/box-max.c:
	* operations/workshop/box-min.c:
	* operations/workshop/box-percentile.c:
	* operations/workshop/c2g.c:
	* operations/workshop/demosaic-simple.c:
	* operations/workshop/disc-percentile.c:
	* operations/workshop/kuwahara.c:
	* operations/workshop/kuwahara-max.c:
	* operations/workshop/kuwahara-min.c:
	* operations/workshop/snn-percentile.c: s/"inputt"/"input"/

svn path=/trunk/; revision=1833
parent 463e974f
2008-01-08 Kevin Cozens <kcozens@cvs.gnome.org>
* operations/render/FractalExplorer.c (process): Use g_object_get to
determine pixel size instead of using a hard-coded value.
The files listed below were updated due to changes in the API, and to
make them compile. There is no guarantee they actually work. There are
probably some reference counting issues that also need to be fixed.
* gegl/gegl-chant.h: Added missing process() prototype for
GEGL_CHANT_COMPOSER
* operations/workshop/box-max.c:
* operations/workshop/box-min.c:
* operations/workshop/box-percentile.c:
* operations/workshop/c2g.c:
* operations/workshop/demosaic-simple.c:
* operations/workshop/disc-percentile.c:
* operations/workshop/ff-save.c:
* operations/workshop/gluas.c:
* operations/workshop/gtk-display.c:
* operations/workshop/hstack.c:
* operations/workshop/kuwahara-max.c:
* operations/workshop/kuwahara-min.c:
* operations/workshop/kuwahara.c:
* operations/workshop/line-profile.c:
* operations/workshop/mandelbrot.c:
* operations/workshop/max-envelope.c:
* operations/workshop/mblur.c:
* operations/workshop/min-envelope.c:
* operations/workshop/rawbayer-load.c:
* operations/workshop/snn-percentile.c:
* operations/workshop/stress.c: Updated to new API.
* operations/workshop/box-max.c:
* operations/workshop/box-min.c:
* operations/workshop/box-percentile.c:
* operations/workshop/c2g.c:
* operations/workshop/demosaic-simple.c:
* operations/workshop/disc-percentile.c:
* operations/workshop/kuwahara.c:
* operations/workshop/kuwahara-max.c:
* operations/workshop/kuwahara-min.c:
* operations/workshop/snn-percentile.c: s/"inputt"/"input"/
2008-01-08 Manish Singh <yosh@gimp.org>
* operations/io/display.c: removed context_id arg from process
......
......@@ -413,9 +413,17 @@ static gboolean process (GeglOperation *operation,
void *out_buf,
glong samples);
#else
#ifdef GEGL_CHANT_COMPOSER
static gboolean process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *in_buf,
GeglBuffer *aux_buf,
GeglBuffer *out_buf,
const GeglRectangle *result);
#else
#ifdef GEGL_CHANT_POINT_COMPOSER
static gboolean process (GeglOperation *operation,
void *in_buf,
void *in_buf,
void *aux_buf,
void *out_buf,
glong samples);
......@@ -454,6 +462,7 @@ static gboolean process (GeglOperation *operation,
#endif
#endif
#endif
#endif
static void
gegl_chant_init (GeglChantOperation *self)
......
......@@ -393,12 +393,15 @@ process (GeglOperation *operation,
{
GeglChantOperation *self = GEGL_CHANT_OPERATION (operation);
{
clrmap colormap;
guchar *buf;
clrmap colormap;
guchar *buf;
gint pxsize;
make_color_map (self, colormap);
buf = g_new (guchar, result->width * result->height * 4);
g_object_get (output, "px-size", &pxsize, NULL);
buf = g_new (guchar, result->width * result->height * pxsize);
{
guchar *dst=buf;
gint y;
......
......@@ -16,7 +16,7 @@
* Copyright 2006 Øyvind Kolås <pippin@gimp.org>
*/
#if GEGL_CHANT_PROPERTIES
gegl_chant_double (radius, 0.0, 200.0, 4.0,
"Radius of square pixel region, (width and height will be radius*2+1.")
......@@ -28,6 +28,8 @@ gegl_chant_double (radius, 0.0, 200.0, 4.0,
#define GEGL_CHANT_CATEGORIES "misc"
#define GEGL_CHANT_AREA_FILTER
#define GEGL_CHANT_PREPARE
#include "gegl-chant.h"
static void hor_max (GeglBuffer *src,
......@@ -40,44 +42,44 @@ static void ver_max (GeglBuffer *src,
#include <stdio.h>
static void prepare (GeglOperation *operation)
{
gegl_operation_set_format (operation, "output", babl_format ("RGBA float"));
}
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglOperationFilter *filter;
GeglChantOperation *self;
GeglBuffer *input;
GeglBuffer *output;
filter = GEGL_OPERATION_FILTER (operation);
self = GEGL_CHANT_OPERATION (operation);
input = gegl_node_context_get_source (context, "input");
{
GeglBuffer *temp_in;
GeglBuffer *temp;
GeglRectangle compute = gegl_operation_compute_input_request (operation, "inputt", result);
GeglBuffer *temp_in;
GeglBuffer *temp;
GeglRectangle compute = gegl_operation_compute_input_request (operation, "input", result);
temp_in = gegl_buffer_create_sub_buffer (input, &compute);
temp = gegl_buffer_new (&compute, babl_format ("RGBA float"));
output = gegl_buffer_new (&compute, babl_format ("RGBA float"));
hor_max (temp_in, temp, self->radius);
hor_max (temp_in, temp, self->radius);
ver_max (temp, output, self->radius);
g_object_unref (temp);
g_object_unref (temp_in);
{
GeglBuffer *cropped = gegl_buffer_create_sub_buffer (output, result);
gegl_node_context_set_object (context, "output", G_OBJECT (cropped));
g_object_unref (output);
}
}
return TRUE;
}
......@@ -165,7 +167,7 @@ ver_max (GeglBuffer *src,
src_buf = g_malloc0 (gegl_buffer_get_pixel_count (src) * 4 * 4);
dst_buf = g_malloc0 (gegl_buffer_get_pixel_count (dst) * 4 * 4);
gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
offset=0;
......
......@@ -16,7 +16,7 @@
* Copyright 2006 Øyvind Kolås <pippin@gimp.org>
*/
#if GEGL_CHANT_PROPERTIES
gegl_chant_double (radius, 0.0, 200.0, 4.0,
"Radius of square pixel region, (width and height will be radius*2+1.")
......@@ -28,6 +28,7 @@ gegl_chant_double (radius, 0.0, 200.0, 4.0,
#define GEGL_CHANT_CATEGORIES "misc"
#define GEGL_CHANT_AREA_FILTER
#define GEGL_CHANT_PREPARE
#include "gegl-chant.h"
......@@ -41,45 +42,43 @@ static void ver_min (GeglBuffer *src,
#include <stdio.h>
static void prepare (GeglOperation *operation)
{
gegl_operation_set_format (operation, "output", babl_format ("RGBA float"));
}
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglOperationFilter *filter;
GeglChantOperation *self;
GeglBuffer *input;
GeglBuffer *output;
filter = GEGL_OPERATION_FILTER (operation);
self = GEGL_CHANT_OPERATION (operation);
input = gegl_node_context_get_source (context, "input");
{
GeglBuffer *temp_in;
GeglBuffer *temp;
GeglRectangle compute = gegl_operation_compute_input_request (operation, "inputt", result);
GeglRectangle compute = gegl_operation_compute_input_request (operation, "input", result);
temp_in = gegl_buffer_create_sub_buffer (input, &compute);
temp = gegl_buffer_new (&compute, babl_format ("RGBA float"));
output = gegl_buffer_new (&compute, babl_format ("RGBA float"));
hor_min (temp_in, temp, self->radius);
ver_min (temp, output, self->radius);
g_object_unref (temp);
g_object_unref (temp_in);
{
GeglBuffer *cropped = gegl_buffer_create_sub_buffer (output, result);
gegl_node_context_set_object (context, "output", G_OBJECT (cropped));
g_object_unref (output);
}
}
return TRUE;
}
......@@ -168,7 +167,7 @@ ver_min (GeglBuffer *src,
src_buf = g_malloc0 (gegl_buffer_get_pixel_count (src) * 4 * 4);
dst_buf = g_malloc0 (gegl_buffer_get_pixel_count (dst) * 4 * 4);
gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
offset=0;
......
......@@ -17,7 +17,7 @@
* 2007 Øyvind Kolås <oeyvindk@hig.no>
*/
#if GEGL_CHANT_PROPERTIES
#if GEGL_CHANT_PROPERTIES
#define MAX_SAMPLES 20000 /* adapted to max level of radius */
gegl_chant_double (radius, 0.0, 70.0, 4.0,
......@@ -32,6 +32,7 @@ gegl_chant_double (percentile, 0.0, 100.0, 50, "The percentile to compute, defau
#define GEGL_CHANT_CATEGORIES "misc"
#define GEGL_CHANT_AREA_FILTER
#define GEGL_CHANT_PREPARE
#include "gegl-chant.h"
......@@ -42,23 +43,27 @@ static void median (GeglBuffer *src,
#include <stdio.h>
static void prepare (GeglOperation *operation)
{
gegl_operation_set_format (operation, "output", babl_format ("RGBA float"));
}
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglOperationFilter *filter;
GeglChantOperation *self;
GeglBuffer *input;
GeglBuffer *output;
filter = GEGL_OPERATION_FILTER (operation);
self = GEGL_CHANT_OPERATION (operation);
input = gegl_node_context_get_source (context, "input");
{
GeglBuffer *temp_in;
GeglRectangle compute = gegl_operation_compute_input_request (operation, "inputt", result);
GeglRectangle compute = gegl_operation_compute_input_request (operation, "input", result);
if (self->radius < 1.0)
{
......@@ -66,9 +71,7 @@ process (GeglOperation *operation,
}
else
{
temp_in = gegl_buffer_create_sub_buffer (input, &compute);
output = gegl_buffer_new (&compute, babl_format ("RGBA float"));
median (temp_in, output, self->radius, self->percentile / 100.0);
g_object_unref (temp_in);
......@@ -77,9 +80,9 @@ process (GeglOperation *operation,
{
GeglBuffer *cropped = gegl_buffer_create_sub_buffer (output, result);
gegl_node_context_set_object (context, "output", G_OBJECT (cropped));
g_object_unref (output);
}
}
return TRUE;
}
......@@ -183,7 +186,7 @@ median (GeglBuffer *src,
{
gint u,v;
gfloat *median_pix;
list_clear (&list);
for (v=y-radius;v<=y+radius;v++)
......
......@@ -17,7 +17,7 @@
* Ivar Farup <ivarf@hig.no>
*/
#if GEGL_CHANT_PROPERTIES
#if GEGL_CHANT_PROPERTIES
gegl_chant_int (radius, 2, 5000.0, 384, "neighbourhood taken into account")
gegl_chant_int (samples, 0, 1000, 3, "number of samples to do")
......@@ -34,6 +34,7 @@ gegl_chant_double (gamma, 0.0, 10.0, 1.6, "post correction gamma.")
#define GEGL_CHANT_CATEGORIES "enhance"
#define GEGL_CHANT_AREA_FILTER
#define GEGL_CHANT_PREPARE
#include "gegl-chant.h"
#include <math.h>
......@@ -51,40 +52,40 @@ static void c2g (GeglBuffer *src,
#include <stdlib.h>
static void prepare (GeglOperation *operation)
{
gegl_operation_set_format (operation, "output", babl_format ("RGBA float"));
}
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglOperationFilter *filter;
GeglChantOperation *self;
GeglBuffer *input;
GeglBuffer *output;
filter = GEGL_OPERATION_FILTER (operation);
self = GEGL_CHANT_OPERATION (operation);
input = gegl_node_context_get_source (context, "input");
{
GeglBuffer *temp_in;
GeglRectangle compute = gegl_operation_compute_input_request (operation, "inputt", result);
GeglRectangle compute = gegl_operation_compute_input_request (operation, "input", result);
temp_in = gegl_buffer_create_sub_buffer (input, &compute);
output = gegl_buffer_new (&compute, babl_format ("RGBA float"));
c2g (temp_in, output, self->radius, self->samples, self->iterations, self->same_spray, self->rgamma, self->strength, self->gamma);
g_object_unref (temp_in);
{
GeglBuffer *cropped = gegl_buffer_create_sub_buffer (output, result);
gegl_node_context_set_object (context, "output", G_OBJECT (cropped));
g_object_unref (output);
}
}
return TRUE;
}
......@@ -132,11 +133,11 @@ static void c2g (GeglBuffer *src,
we just wonder whether we are more black than white */
gfloat gray;
gint c;
gray = pixel[0]*0.212671 + pixel[1] * 0.715160 + pixel[2] * 0.072169;
{
gfloat nominator = 0;
gfloat denominator = 0;
gfloat denominator = 0;
for (c=0; c<3; c++)
{
gfloat delta = max_envelope[c]-min_envelope[c];
......@@ -172,7 +173,7 @@ static void c2g (GeglBuffer *src,
g_free (src_buf);
g_free (dst_buf);
}
static void tickle (GeglOperation *operation)
{
GeglOperationAreaFilter *area = GEGL_OPERATION_AREA_FILTER (operation);
......
......@@ -18,7 +18,7 @@
#if GEGL_CHANT_PROPERTIES
gegl_chant_int (pattern, 0, 3, 0, "Bayer pattern used, 0 seems to work for some nikon files, 2 for some Fuji files.")
#else
#define GEGL_CHANT_NAME demosaic_simple
......@@ -36,40 +36,36 @@ demosaic (GeglChantOperation *op,
GeglBuffer *dst);
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglOperationFilter *filter;
GeglChantOperation *self;
GeglBuffer *input;
GeglBuffer *output;
filter = GEGL_OPERATION_FILTER (operation);
self = GEGL_CHANT_OPERATION (operation);
input = gegl_node_context_get_source (context, "input");
{
GeglBuffer *temp_in;
GeglRectangle compute = gegl_operation_compute_input_request (operation, "inputt", result);
GeglRectangle compute = gegl_operation_compute_input_request (operation, "input", result);
temp_in = gegl_buffer_create_sub_buffer (input, &compute);
output = gegl_buffer_new (&compute, babl_format ("RGBA float"));
demosaic (self, temp_in, output);
g_object_unref (temp_in);
{
GeglBuffer *cropped = gegl_buffer_create_sub_buffer (output, result);
gegl_node_context_set_object (context, "output", G_OBJECT (cropped));
g_object_unref (output);
}
}
return TRUE;
}
......@@ -87,7 +83,7 @@ demosaic (GeglChantOperation *op,
src_buf = g_malloc0 (gegl_buffer_get_pixel_count (src) * 4);
dst_buf = g_malloc0 (gegl_buffer_get_pixel_count (dst) * 4 * 3);
gegl_buffer_get (src, 1.0, NULL, babl_format ("Y float"), src_buf, GEGL_AUTO_ROWSTRIDE);
offset=0;
......@@ -132,7 +128,7 @@ demosaic (GeglChantOperation *op,
}
}
}
dst_buf [offset*3+0] = red;
dst_buf [offset*3+1] = green;
dst_buf [offset*3+2] = blue;
......
......@@ -17,7 +17,7 @@
* 2007 Øyvind Kolås <oeyvindk@hig.no>
*/
#if GEGL_CHANT_PROPERTIES
#define MAX_SAMPLES 20000 /* adapted to max level of radius */
gegl_chant_double (radius, 0.0, 70.0, 4.0,
......@@ -32,6 +32,8 @@ gegl_chant_double (percentile, 0.0, 100.0, 50, "The percentile to compute, defau
#define GEGL_CHANT_CATEGORIES "misc"
#define GEGL_CHANT_AREA_FILTER
#define GEGL_CHANT_PREPARE
#include "gegl-chant.h"
#include <math.h>
......@@ -42,24 +44,27 @@ static void median (GeglBuffer *src,
#include <stdio.h>
static void prepare (GeglOperation *operation)
{
gegl_operation_set_format (operation, "output", babl_format ("RGBA float"));
}
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglOperationFilter *filter;
GeglChantOperation *self;
GeglBuffer *input;
GeglBuffer *output;
filter = GEGL_OPERATION_FILTER (operation);
self = GEGL_CHANT_OPERATION (operation);
input = gegl_node_context_get_source (context, "input");
{
GeglBuffer *temp_in;
GeglRectangle compute = gegl_operation_compute_input_request (operation, "inputt", result);
GeglRectangle compute = gegl_operation_compute_input_request (operation, "input", result);
if (self->radius < 1.0)
{
......@@ -68,7 +73,6 @@ process (GeglOperation *operation,
else
{
temp_in = gegl_buffer_create_sub_buffer (input, &compute);
output = gegl_buffer_new (&compute, babl_format ("RGBA float"));
median (temp_in, output, self->radius, self->percentile / 100.0);
g_object_unref (temp_in);
......@@ -77,9 +81,9 @@ process (GeglOperation *operation,
{
GeglBuffer *cropped = gegl_buffer_create_sub_buffer (output, result);
gegl_node_context_set_object (context, "output", G_OBJECT (cropped));
g_object_unref (output);
}
}
return TRUE;
}
......@@ -183,14 +187,14 @@ median (GeglBuffer *src,
{
gint u,v;
gfloat *median_pix;
list_clear (&list);
for (v=y-radius;v<=y+radius;v++)
for (u=x-radius;u<=x+radius;u++)
{
gint ru, rv;
ru = (x-u)*(x-u);
rv = (y-v)*(y-v);
......
......@@ -27,7 +27,7 @@ gegl_chant_double (fps, 0.0, 100.0, 25, "frames per second")
#define GEGL_CHANT_NAME ff_save
#define GEGL_CHANT_DESCRIPTION "FFmpeg video output sink"
#define GEGL_CHANT_SELF "ff-save.c"
#define GEGL_CHANT_CATEGORIES "output"
#define GEGL_CHANT_CATEGORIES "output:video"
#define GEGL_CHANT_INIT
#define GEGL_CHANT_CLASS_INIT
......@@ -201,14 +201,13 @@ finalize (GObject *object)
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
const GeglRectangle *result)
{
GeglChantOperation *self = GEGL_CHANT_OPERATION (operation);
Priv *p = (Priv*)self->priv;
GeglBuffer *input;
static gint inited = 0;
input = gegl_node_context_get_source (context, "input");
g_assert (input);
p->width = result->width;
......@@ -221,7 +220,6 @@ process (GeglOperation *operation,
inited = 1;
}
write_video_frame (self, p->oc, p->video_st);
if (p->audio_st)
write_audio_frame (self, p->oc, p->audio_st);
......
......@@ -85,18 +85,16 @@ drawable_lua_process (GeglChantOperation *self,
gdouble user_value);
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *aux,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglChantOperation *self;
GeglBuffer *input;
GeglBuffer *output;
self = GEGL_CHANT_OPERATION (operation);
input = gegl_node_context_get_source (context, "input");
output = gegl_node_context_get_target (context, "output");
if (self->file && g_file_test (self->file, G_FILE_TEST_IS_REGULAR))
{
......
......@@ -36,7 +36,7 @@ gegl_chant_string (window_title, "",
typedef struct
{
GtkWidget *window;
GtkWidget *window;
GtkWidget *drawing_area;
gint width;
gint height;
......@@ -97,16 +97,14 @@ static Priv *init_priv (GeglOperation *operation)
}
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *source,
const GeglRectangle *result)
{
GeglChantOperation *self = GEGL_CHANT_OPERATION (operation);
GeglBuffer *source;
GeglBuffer *input;
Priv *priv = init_priv (operation);
input = gegl_node_context_get_source (context, "input");
Priv *priv = init_priv (operation);
g_assert (input);
......@@ -136,7 +134,7 @@ process (GeglOperation *operation,
}
else
{
gtk_window_set_title (GTK_WINDOW (priv->window),
gtk_window_set_title (GTK_WINDOW (priv->window),
gegl_node_get_debug_name (gegl_node_get_producer(operation->node, "input", NULL))
);
}
......
......@@ -16,7 +16,7 @@
* Copyright 2007 Øyvind Kolås <oeyvindk@hig.no>
*/
#if GEGL_CHANT_PROPERTIES
#if GEGL_CHANT_PROPERTIES
#else
......@@ -27,34 +27,36 @@
#define GEGL_CHANT_COMPOSER
#define GEGL_CHANT_CLASS_INIT
#define GEGL_CHANT_PREPARE
#include "gegl-chant.h"
#include <math.h>
static void prepare (GeglOperation *operation)
{
gegl_operation_set_format (operation, "output", babl_format ("RGBA float"));
}
static gboolean
process (GeglOperation *operation,
GeglNodeContext *context,
process (GeglOperation *operation,
GeglNodeContext *context,
GeglBuffer *input,
GeglBuffer *aux,
GeglBuffer *output,
const GeglRectangle *result)
{
GeglOperationComposer *composer;
GeglBuffer *input;
GeglBuffer *aux;
GeglBuffer *output;
GeglBuffer *temp_in;
GeglBuffer *temp_aux;
composer = GEGL_OPERATION_COMPOSER (operation);
input = gegl_node_context_get_source (context, "input");
aux = gegl_node_context_get_source (context, "aux");
/* FIXME: just pass the originals buffers if the result rectangle does not
* include both input buffers
*/
temp_in = gegl_buffer_create_sub_buffer (input, result);
temp_aux = gegl_buffer_create_sub_buffer (aux, result);
output = gegl_buffer_new (result, babl_format ("RGBA float"));
temp_in = gegl_buffer_create_sub_buffer (input, result);
temp_aux = gegl_buffer_create_sub_buffer (aux, result);
{