make ops use gegl-op.h

motion-blur-linear.c mono-mixer mirrors mblur matting-global map-relative
map-absolute manituk06 magick-load load linear-gradient.c levels
lends-distortion introspect
parent 0d7f241f
......@@ -21,23 +21,25 @@
#include <glib/gi18n-lib.h>
#ifdef GEGL_CHANT_PROPERTIES
#ifdef GEGL_PROPERTIES
gegl_chant_object(node, _("Node"), _("GeglNode to introspect"))
gegl_property_object(node, _("Node"),
"description", _("GeglNode to introspect"),
NULL)
#else
#define GEGL_CHANT_TYPE_SOURCE
#define GEGL_CHANT_C_FILE "introspect.c"
#define GEGL_OP_SOURCE
#define GEGL_OP_C_FILE "introspect.c"
#include "gegl-chant.h"
#include "gegl-op.h"
#include "gegl-types-internal.h"
#include "gegl-dot.h" /* XXX: internal header file */
#include <stdio.h>
static void
gegl_introspect_load_cache (GeglChantO *op_introspect)
gegl_introspect_load_cache (GeglProperties *op_introspect)
{
GeglBuffer *new_buffer = NULL;
GeglNode *png_load = NULL;
......@@ -47,7 +49,7 @@ gegl_introspect_load_cache (GeglChantO *op_introspect)
gchar *dot_filename = NULL;
gchar *dot_cmd = NULL;
if (op_introspect->chant_data)
if (op_introspect->user_data)
return;
/* Construct temp filenames */
......@@ -77,7 +79,7 @@ gegl_introspect_load_cache (GeglChantO *op_introspect)
gegl_node_link_many (png_load, buffer_sink, NULL);
gegl_node_process (buffer_sink);
op_introspect->chant_data= new_buffer;
op_introspect->user_data= new_buffer;
/* Cleanup */
g_object_unref (buffer_sink);
......@@ -91,27 +93,27 @@ gegl_introspect_load_cache (GeglChantO *op_introspect)
static void
gegl_introspect_dispose (GObject *object)
{
GeglChantO *o = GEGL_CHANT_PROPERTIES (object);
GeglProperties *o = GEGL_PROPERTIES (object);
if (o->chant_data != NULL)
if (o->user_data != NULL)
{
g_object_unref (o->chant_data);
o->chant_data = NULL;
g_object_unref (o->user_data);
o->user_data = NULL;
}
G_OBJECT_CLASS (gegl_chant_parent_class)->dispose (object);
G_OBJECT_CLASS (gegl_op_parent_class)->dispose (object);
}
static GeglRectangle
gegl_introspect_get_bounding_box (GeglOperation *operation)
{
GeglRectangle result = {0,0,0,0};
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
gint width, height;
gegl_introspect_load_cache (o);
g_object_get (o->chant_data, "width", &width,
g_object_get (o->user_data, "width", &width,
"height", &height, NULL);
result.width = width;
......@@ -127,22 +129,22 @@ gegl_introspect_process (GeglOperation *operation,
const GeglRectangle *result,
gint level)
{
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
gegl_introspect_load_cache (o);
/* gegl_operation_context_take_object() takes the reference we have,
* so we must increase it since we want to keep the object
*/
g_object_ref (o->chant_data);
g_object_ref (o->user_data);
gegl_operation_context_take_object (context, output_pad, G_OBJECT (o->chant_data));
gegl_operation_context_take_object (context, output_pad, G_OBJECT (o->user_data));
return TRUE;
}
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GObjectClass *object_class;
GeglOperationClass *operation_class;
......
......@@ -28,42 +28,49 @@
#include "config.h"
#include <glib/gi18n-lib.h>
#ifdef GEGL_CHANT_PROPERTIES
gegl_chant_double (main, _("Main"),
-100.0, 100.0, 0.0,
_("Amount of second-order distortion"))
gegl_chant_double (edge, _("Edge"),
-100.0, 100.0, 0.0,
_("Amount of fourth-order distortion"))
gegl_chant_double (zoom, _("Zoom"),
-100.0, 100.0, 0.0,
_("Rescale overall image size"))
gegl_chant_double (x_shift, _("X shift"),
-100.0, 100.0, 0.0,
_("Effect centre offset in X"))
gegl_chant_double (y_shift, _("Y shift"),
-100.0, 100.0, 0.0,
_("Effect centre offset in Y"))
gegl_chant_double (brighten, _("Brighten"),
-100.0, 100.0, 0.0,
_("Adjust brightness in corners"))
gegl_chant_color (background, _("Background"),
"white",
_("Background color"))
#ifdef GEGL_PROPERTIES
gegl_property_double (main, _("Main"),
"description", _("Amount of second-order distortion"),
"min", -100.0, "max", 100.0,
NULL)
gegl_property_double (edge, _("Edge"),
"description", _("Amount of fourth-order distortion"),
"min", -100.0, "max", 100.0,
NULL)
gegl_property_double (zoom, _("Zoom"),
"description", _("Rescale overall image size"),
"min", -100.0, "max", 100.0,
NULL)
gegl_property_double (x_shift, _("X shift"),
"description", _("Effect centre offset in X"),
"min", -100.0, "max", 100.0,
NULL)
gegl_property_double (y_shift, _("Y shift"),
"description", _("Effect centre offset in Y"),
"min", -100.0, "max", 100.0,
NULL)
gegl_property_double (brighten, _("Brighten"),
"description", _("Adjust brightness in corners"),
"min", -100.0, "max", 100.0,
NULL)
gegl_property_color (background, _("Background"),
"description", _("Background color"),
"default", "white",
NULL)
#else
#define GEGL_CHANT_TYPE_FILTER
#define GEGL_CHANT_C_FILE "lens-distortion.c"
#define GEGL_OP_FILTER
#define GEGL_OP_C_FILE "lens-distortion.c"
#include "gegl-chant.h"
#include "gegl-op.h"
#include <math.h>
#include <stdio.h>
......@@ -103,7 +110,7 @@ reorder (gdouble *low,
}
static LensValues
lens_setup_calc (GeglChantO *o,
lens_setup_calc (GeglProperties *o,
GeglRectangle boundary)
{
LensValues lens;
......@@ -153,13 +160,13 @@ get_required (GeglRectangle *boundary,
GeglOperation *operation)
{
GeglChantO *o;
GeglProperties *o;
GeglRectangle area;
LensValues lens;
gdouble x1, y1, x2, y2, x3, y3, x4, y4, mag;
gint x, y, width, height;
o = GEGL_CHANT_PROPERTIES (operation);
o = GEGL_PROPERTIES (operation);
lens = lens_setup_calc (o, *boundary);
......@@ -408,7 +415,7 @@ process (GeglOperation *operation,
const GeglRectangle *result,
gint level)
{
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
LensValues lens;
GeglRectangle boundary;
gint i, j;
......@@ -464,7 +471,7 @@ process (GeglOperation *operation,
}
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GeglOperationClass *operation_class;
GeglOperationFilterClass *filter_class;
......
......@@ -21,23 +21,31 @@
#include <glib/gi18n-lib.h>
#ifdef GEGL_CHANT_PROPERTIES
gegl_chant_double_ui (in_low, _("Low input"), -1.0, 4.0, 0.0, 0.0, 1.0, 1.0,
_("Input luminance level to become lowest output"))
gegl_chant_double_ui (in_high, _("High input"), -1.0, 4.0, 1.0, 0.0, 1.0, 1.0,
_("Input luminance level to become white."))
gegl_chant_double_ui (out_low, _("Low output"), -1.0, 4.0, 0.0, 0.0, 1.0, 1.0,
_("Lowest luminance level in output"))
gegl_chant_double_ui (out_high, _("High output"), -1.0, 4.0, 1.0, 0.0, 1.0, 1.0,
_("Highest luminance level in output"))
#ifdef GEGL_PROPERTIES
gegl_property_double (in_low, _("Low input"),
"description", _("Input luminance level to become lowest output"),
"min", -1.0, "max", 4.0, "default", 0.0, "ui-min", 0.0, "ui-max", 1.0,
NULL)
gegl_property_double (in_high, _("High input"),
"description", _("Input luminance level to become white"),
"min", -1.0, "max", 4.0, "default", 1.0, "ui-min", 0.0, "ui-max", 1.0,
NULL)
gegl_property_double (out_low, _("Low output"),
"description", _("Lowest luminance level in output"),
"min", -1.0, "max", 4.0, "default", 0.0, "ui-min", 0.0, "ui-max", 1.0,
NULL)
gegl_property_double (out_high, _("High output"),
"description", _("Highest luminance level in output"),
"min", -1.0, "max", 4.0, "default", 1.0, "ui-min", 0.0, "ui-max", 1.0,
NULL)
#else
#define GEGL_CHANT_TYPE_POINT_FILTER
#define GEGL_CHANT_C_FILE "levels.c"
#define GEGL_OP_POINT_FILTER
#define GEGL_OP_C_FILE "levels.c"
#include "gegl-chant.h"
#include "gegl-op.h"
/* GeglOperationPointFilter gives us a linear buffer to operate on
* in our requested pixel format
......@@ -50,7 +58,7 @@ process (GeglOperation *op,
const GeglRectangle *roi,
gint level)
{
GeglChantO *o = GEGL_CHANT_PROPERTIES (op);
GeglProperties *o = GEGL_PROPERTIES (op);
gfloat *in_pixel;
gfloat *out_pixel;
gfloat in_range;
......@@ -100,11 +108,11 @@ cl_process (GeglOperation *op,
const GeglRectangle *roi,
gint level)
{
/* Retrieve a pointer to GeglChantO structure which contains all the
/* Retrieve a pointer to GeglProperties structure which contains all the
* chanted properties
*/
GeglChantO *o = GEGL_CHANT_PROPERTIES (op);
GeglProperties *o = GEGL_PROPERTIES (op);
gfloat in_range;
gfloat out_range;
......@@ -157,7 +165,7 @@ error:
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GeglOperationClass *operation_class;
GeglOperationPointFilterClass *point_filter_class;
......
......@@ -20,23 +20,48 @@
#include "config.h"
#include <glib/gi18n-lib.h>
#ifdef GEGL_CHANT_PROPERTIES
gegl_chant_double (start_x, _("X1"), G_MININT, G_MAXINT, 25.0, "")
gegl_chant_double (start_y, _("Y1"), G_MININT, G_MAXINT, 25.0, "")
gegl_chant_double (end_x, _("X2"), G_MININT, G_MAXINT, 150.0, "")
gegl_chant_double (end_y, _("Y2"), G_MININT, G_MAXINT, 150.0, "")
gegl_chant_color (start_color, _("Start Color"), "black",
_("The color at (x1, y1)"))
gegl_chant_color (end_color, _("End Color"), "white",
_("The color at (x2, y2)"))
#ifdef GEGL_PROPERTIES
gegl_property_double (start_x, _("X1"),
"default", 25.0,
"unit", "pixel-coordinate",
"axis", "x",
NULL)
gegl_property_double (start_y, _("Y1"),
"default", 25.0,
"unit", "pixel-coordinate",
"axis", "y",
NULL)
gegl_property_double (end_x, _("X2"),
"default", 150.0,
"unit", "pixel-coordinate",
"axis", "x",
NULL)
gegl_property_double (end_y, _("Y2"),
"default", 150.0,
"unit", "pixel-coordinate",
"axis", "y",
NULL)
gegl_property_color (start_color, _("Start Color"),
"description", _("The color at (x1, y1)"),
"default", "black",
"role", "color-primary",
NULL)
gegl_property_color (end_color, _("End Color"),
"description", _("The color at (x2, y2)"),
"default", "white",
"role", "color-secondary",
NULL)
#else
#define GEGL_CHANT_TYPE_POINT_RENDER
#define GEGL_CHANT_C_FILE "linear-gradient.c"
#define GEGL_OP_POINT_RENDER
#define GEGL_OP_C_FILE "linear-gradient.c"
#include "gegl-chant.h"
#include "gegl-op.h"
#include <math.h>
......@@ -59,12 +84,9 @@ process (GeglOperation *operation,
const GeglRectangle *roi,
gint level)
{
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
gfloat *out_pixel = out_buf;
gfloat color1[4];
gfloat color2[4];
gfloat length;
gfloat dx, dy;
gfloat color1[4], color2[4], length, dx, dy;
dx = o->end_x - o->start_x;
dy = o->end_y - o->start_y;
......@@ -108,7 +130,7 @@ process (GeglOperation *operation,
}
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GeglOperationClass *operation_class;
GeglOperationPointRenderClass *point_render_class;
......
......@@ -20,17 +20,19 @@
#include <glib/gi18n-lib.h>
#ifdef GEGL_CHANT_PROPERTIES
#ifdef GEGL_PROPERTIES
gegl_chant_file_path (path, _("File"), "", _("Path of file to load."))
gegl_property_file_path (path, _("File"),
"description", _("Path of file to load."),
NULL)
#else
#define GEGL_CHANT_C_FILE "load.c"
#define GEGL_OP_C_FILE "load.c"
#include "gegl-plugin.h"
struct _GeglChant
struct _GeglOp
{
GeglOperationMeta parent_instance;
gpointer properties;
......@@ -42,9 +44,9 @@ struct _GeglChant
typedef struct
{
GeglOperationMetaClass parent_class;
} GeglChantClass;
} GeglOpClass;
#include "gegl-chant.h"
#include "gegl-op.h"
GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_META)
#include <stdio.h>
......@@ -52,7 +54,7 @@ GEGL_DEFINE_DYNAMIC_OPERATION(GEGL_TYPE_OPERATION_META)
static void
do_setup (GeglOperation *operation, const gchar *new_path)
{
GeglChant *self = GEGL_CHANT (operation);
GeglOp *self = GEGL_OP (operation);
if (!new_path || 0 == strlen (new_path))
{
......@@ -96,8 +98,8 @@ do_setup (GeglOperation *operation, const gchar *new_path)
static void attach (GeglOperation *operation)
{
GeglChant *self = GEGL_CHANT (operation);
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglOp *self = GEGL_OP (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
self->output = gegl_node_get_output_proxy (operation->node, "output");
......@@ -117,7 +119,7 @@ detect (GeglOperation *operation,
gint x,
gint y)
{
GeglChant *self = GEGL_CHANT (operation);
GeglOp *self = GEGL_OP (operation);
GeglNode *output = self->output;
GeglRectangle bounds;
......@@ -143,8 +145,8 @@ my_set_property (GObject *gobject,
GParamSpec *pspec)
{
GeglOperation *operation = GEGL_OPERATION (gobject);
GeglChant *self = GEGL_CHANT (operation);
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglOp *self = GEGL_OP (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
const gchar *new_path = g_value_get_string (value);
......@@ -159,7 +161,7 @@ my_set_property (GObject *gobject,
static void
prepare (GeglOperation *operation)
{
GeglChant *self = GEGL_CHANT (operation);
GeglOp *self = GEGL_OP (operation);
GeglOperation *op;
/* forward the set BablFormat of the image loader on the meta-op itself,
......@@ -171,7 +173,7 @@ prepare (GeglOperation *operation)
}
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GeglOperationClass *operation_class = GEGL_OPERATION_CLASS (klass);
......
......@@ -21,22 +21,25 @@
#include <glib/gi18n-lib.h>
#ifdef GEGL_CHANT_PROPERTIES
#ifdef GEGL_PROPERTIES
gegl_chant_file_path (path, _("File"), "/tmp/gegl-logo.svg", _("Path of file to load."))
gegl_property_file_path (path, _("File"),
"description", _("Path of file to load."),
"default", "/tmp/gegl-logo.svg",
NULL)
#else
#define GEGL_CHANT_TYPE_SOURCE
#define GEGL_CHANT_C_FILE "magick-load.c"
#define GEGL_OP_SOURCE
#define GEGL_OP_C_FILE "magick-load.c"
#include "gegl-chant.h"
#include "gegl-op.h"
#include <stdio.h>
static void
load_cache (GeglChantO *op_magick_load)
load_cache (GeglProperties *op_magick_load)
{
if (!op_magick_load->chant_data)
if (!op_magick_load->user_data)
{
gchar *filename;
gchar *cmd;
......@@ -56,7 +59,7 @@ load_cache (GeglChantO *op_magick_load)
graph = gegl_graph (sink=gegl_node ("gegl:buffer-sink", "buffer", &newbuf, NULL,
gegl_node ("gegl:png-load", "path", filename, NULL)));
gegl_node_process (sink);
op_magick_load->chant_data = (gpointer) newbuf;
op_magick_load->user_data = (gpointer) newbuf;
g_object_unref (graph);
g_free (cmd);
g_free (filename);
......@@ -67,12 +70,12 @@ static GeglRectangle
get_bounding_box (GeglOperation *operation)
{
GeglRectangle result = {0,0,0,0};
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
gint width, height;
load_cache (o);
g_object_get (o->chant_data, "width", &width,
g_object_get (o->user_data, "width", &width,
"height", &height, NULL);
result.width = width;
result.height = height;
......@@ -93,28 +96,28 @@ process (GeglOperation *operation,
const GeglRectangle *result,
gint level)
{
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
if (!o->chant_data)
if (!o->user_data)
return FALSE;
/* overriding the predefined behavior */
g_object_ref (o->chant_data);
gegl_operation_context_take_object (context, "output", G_OBJECT (o->chant_data));
g_object_ref (o->user_data);
gegl_operation_context_take_object (context, "output", G_OBJECT (o->user_data));
return TRUE;
}
static void finalize (GObject *object)
{
GeglOperation *op = (void*) object;
GeglChantO *o = GEGL_CHANT_PROPERTIES (op);
if (o->chant_data)
g_object_unref (o->chant_data);
o->chant_data = NULL;
G_OBJECT_CLASS (gegl_chant_parent_class)->finalize (object);
GeglProperties *o = GEGL_PROPERTIES (op);
if (o->user_data)
g_object_unref (o->user_data);
o->user_data = NULL;
G_OBJECT_CLASS (gegl_op_parent_class)->finalize (object);
}
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GeglOperationClass *operation_class;
GObjectClass *object_class;
......
......@@ -26,25 +26,29 @@
#include <math.h>
#ifdef GEGL_CHANT_PROPERTIES
#ifdef GEGL_PROPERTIES
gegl_chant_double (contrast, _("Contrast"),
0.0, 1.0, 0.1,
_("The amount of contrast compression"))
gegl_chant_double (saturation, _("Saturation"),
0.0, 2.0, 0.8,
_("Global color saturation factor"))
gegl_chant_double (detail, _("Detail"),
1.0, 99.0, 1.0,
_("Level of emphasis on image gradient details"))
gegl_property_double (contrast, _("Contrast"),
"description", _("The amount of contrast compression"),
"default", 0.1, "min", 0.0, "max", 1.0,
NULL)
gegl_property_double (saturation, _("Saturation"),
"description", _("Global color saturation factor"),
"default", 0.8, "min", 0.0, "max", 2.0,
NULL)
gegl_property_double (detail, _("Detail"),
"description", _("Level of emphasis on image gradient details"),
"default", 1.0, "min", 1.0, "max", 99.0,
NULL)
#else
#define GEGL_CHANT_TYPE_FILTER
#define GEGL_CHANT_C_FILE "mantiuk06.c"
#define GEGL_OP_FILTER
#define GEGL_OP_C_FILE "mantiuk06.c"
#include "gegl-chant.h"
#include "gegl-op.h"
#include <stdio.h>
#include <stdlib.h>
......@@ -1581,10 +1585,9 @@ mantiuk06_process (GeglOperation *operation,
const GeglRectangle *result,
gint level)
{
const GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
const GeglProperties *o = GEGL_PROPERTIES (operation);
const gint pix_stride = 4; /* RGBA */
gfloat *lum,
*pix;
gfloat *lum, *pix;
g_return_val_if_fail (operation, FALSE);
g_return_val_if_fail (input, FALSE);
......@@ -1618,7 +1621,7 @@ mantiuk06_process (GeglOperation *operation,
/*
*/
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GeglOperationClass *operation_class;
GeglOperationFilterClass *filter_class;
......
......@@ -17,19 +17,20 @@
*
*/
#ifdef GEGL_CHANT_PROPERTIES
#ifdef GEGL_PROPERTIES
gegl_chant_enum (sampler_type, _("Sampler"), GeglSamplerType, gegl_sampler_type,
GEGL_SAMPLER_CUBIC, _("Sampler used internally"))
gegl_property_enum (sampler_type, _("Resampling method"),
GeglSamplerType, gegl_sampler_type,
"default", GEGL_SAMPLER_CUBIC, NULL)
#else
#define GEGL_CHANT_TYPE_COMPOSER
#define GEGL_CHANT_C_FILE "map-absolute.c"
#define GEGL_OP_COMPOSER
#define GEGL_OP_C_FILE "map-absolute.c"
#include "config.h"
#include <glib/gi18n-lib.h>
#include "gegl-chant.h"
#include "gegl-op.h"
static void
......@@ -60,7 +61,7 @@ process (GeglOperation *operation,
const GeglRectangle *result,
gint level)
{
GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
GeglProperties *o = GEGL_PROPERTIES (operation);
const Babl *format_io, *format_coords;
GeglSampler *sampler;
GeglBufferIterator *it;
......@@ -130,7 +131,7 @@ process (GeglOperation *operation,
}
static void
gegl_chant_class_init (GeglChantClass *klass)
gegl_op_class_init (GeglOpClass *klass)
{
GeglOperationClass *operation_class;
GeglOperationComposerClass *composer_class;
......
......@@ -18,22 +18,26 @@
*/
#ifdef GEGL_CHANT_PROPERTIES
gegl_chant_double (scaling, _("Scaling"), 0.0, 5000.0, 1.0,
_("scaling factor of displacement, indicates how large spatial"
" displacement a relative mapping value of 1.0 corresponds to."))
gegl_chant_enum (sampler_type, _("Sampler"), GeglSamplerType, gegl_sampler_type,
GEGL_SAMPLER_CUBIC, _("Sampler used internally"))
#ifdef GEGL_PROPERTIES
gegl_property_double (scaling, _("Scaling"),
"description", _("scaling factor of displacement, indicates how large spatial"
" displacement a relative mapping value of 1.0 corresponds to."),
"min", 0.0, "max", 5000.0, "default", 1.0,
NULL)
gegl_property_enum (sampler_type, _("Resampling method"),
GeglSamplerType, gegl_sampler_type,
"default", GEGL_SAMPLER_CUBIC,
NULL)
#else
#define GEGL_CHANT_TYPE_COMPOSER
#define GEGL_CHANT_C_FILE "map-relative.c"
#define GEGL_OP_COMPOSER
#define GEGL_OP_C_FILE "map-relative.c"
#include "config.h"
#include <glib/gi18n-lib.h>
#include "gegl-chant.h"
#include "gegl-op.h"
static void
......@@ -64,7 +68,7 @@ process (GeglOperation *operation,
const GeglRectangle *result,
gint level)