gegl r2471 - in trunk: . gegl gegl/graph gegl/operation gegl/process operations/common operations/core operations/workshop



Author: ok
Date: Sun Jun 15 15:02:29 2008
New Revision: 2471
URL: http://svn.gnome.org/viewvc/gegl?rev=2471&view=rev

Log:
renamed GeglNodeContext GeglOperation context and replaced the node
field with an operation field.
* gegl/gegl-plugin.h:
* gegl/gegl-types.h:
* gegl/graph/Makefile.am:
* gegl/graph/gegl-node-context.c:
* gegl/graph/gegl-node-context.h:
* gegl/graph/gegl-node.c: 
* gegl/graph/gegl-node.h:
* gegl/graph/gegl-operation-context.c:
* gegl/graph/gegl-operation-context.h:
* gegl/operation/gegl-operation-composer.c:
* gegl/operation/gegl-operation-filter.c:
* gegl/operation/gegl-operation-point-composer.c:
* gegl/operation/gegl-operation-sink.c:
* gegl/operation/gegl-operation-source.c:
* gegl/operation/gegl-operation.c:
* gegl/operation/gegl-operation.h:
* gegl/operation/gegl-operations.c:
* gegl/process/gegl-cr-visitor.c:
* gegl/process/gegl-debug-rect-visitor.c:
* gegl/process/gegl-eval-mgr.c:
* gegl/process/gegl-eval-visitor.c:
* gegl/process/gegl-processor.c:
* operations/common/introspect.c:
* operations/common/load-buffer.c:
* operations/common/magick-load.c:
* operations/common/open-buffer.c:
* operations/common/raw-load.c:
* operations/common/remap.c:
* operations/core/clone.c:
* operations/core/crop.c:
* operations/core/nop.c:
* operations/core/shift.c:
* operations/workshop/rawbayer-load.c:


Added:
   trunk/gegl/graph/gegl-operation-context.c
      - copied, changed from r2469, /trunk/gegl/graph/gegl-node-context.c
   trunk/gegl/graph/gegl-operation-context.h
      - copied, changed from r2469, /trunk/gegl/graph/gegl-node-context.h
Removed:
   trunk/gegl/graph/gegl-node-context.c
   trunk/gegl/graph/gegl-node-context.h
Modified:
   trunk/ChangeLog
   trunk/gegl/gegl-plugin.h
   trunk/gegl/gegl-types.h
   trunk/gegl/graph/Makefile.am
   trunk/gegl/graph/gegl-node.c
   trunk/gegl/graph/gegl-node.h
   trunk/gegl/operation/gegl-operation-composer.c
   trunk/gegl/operation/gegl-operation-filter.c
   trunk/gegl/operation/gegl-operation-point-composer.c
   trunk/gegl/operation/gegl-operation-sink.c
   trunk/gegl/operation/gegl-operation-source.c
   trunk/gegl/operation/gegl-operation.c
   trunk/gegl/operation/gegl-operation.h
   trunk/gegl/operation/gegl-operations.c
   trunk/gegl/process/gegl-cr-visitor.c
   trunk/gegl/process/gegl-debug-rect-visitor.c
   trunk/gegl/process/gegl-eval-mgr.c
   trunk/gegl/process/gegl-eval-visitor.c
   trunk/gegl/process/gegl-processor.c
   trunk/operations/common/introspect.c
   trunk/operations/common/load-buffer.c
   trunk/operations/common/magick-load.c
   trunk/operations/common/open-buffer.c
   trunk/operations/common/raw-load.c
   trunk/operations/common/remap.c
   trunk/operations/core/clone.c
   trunk/operations/core/crop.c
   trunk/operations/core/nop.c
   trunk/operations/core/shift.c
   trunk/operations/workshop/rawbayer-load.c

Modified: trunk/gegl/gegl-plugin.h
==============================================================================
--- trunk/gegl/gegl-plugin.h	(original)
+++ trunk/gegl/gegl-plugin.h	Sun Jun 15 15:02:29 2008
@@ -30,7 +30,7 @@
 
 /* Extra types needed when coding operations */
 typedef struct _GeglOperation        GeglOperation;
-typedef struct _GeglNodeContext      GeglNodeContext;
+typedef struct _GeglOperationContext GeglOperationContext;
 typedef struct _GeglPad              GeglPad;
 typedef struct _GeglConnection       GeglConnection;
 
@@ -64,79 +64,24 @@
   guint32  abi_version;
 };
 
-GType
-gegl_module_register_type (GTypeModule     *module,
-                           GType            parent_type,
-                           const gchar     *type_name,
-                           const GTypeInfo *type_info,
-                           GTypeFlags       flags);
-
-
-
-GeglBuffer     *gegl_node_context_get_source (GeglNodeContext *self,
-                                              const gchar     *padname);
-GeglBuffer     *gegl_node_context_get_target (GeglNodeContext *self,
-                                              const gchar     *padname);
-void            gegl_node_context_set_object (GeglNodeContext *context,
-                                              const gchar     *padname,
-                                              GObject         *data);
-
-void          gegl_extension_handler_register (const gchar *extension,
-                                                const gchar *handler);
-const gchar * gegl_extension_handler_get      (const gchar *extension);
-
-
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#define HAS_G4FLOAT 1
-#include <math.h>
-
-typedef float g4float __attribute__ ((vector_size (4*sizeof(float))));
-
-#define g4float_a(a)      ((float *)(&a))
-#define g4floatR(a)       g4float_a(a)[0]
-#define g4floatG(a)       g4float_a(a)[1]
-#define g4floatB(a)       g4float_a(a)[2]
-#define g4floatA(a)       g4float_a(a)[3]
-#define g4float(a,b,c,d)  ((g4float){a,b,c,d})
-#define g4float_all(val)  g4float(val,val,val,val)
-#define g4float_zero      g4float_all(0.0)
-#define g4float_one       g4float_all(1.0)
-#define g4float_half      g4float_all(0.5)
-#define g4float_half      g4float_all(0.5)
-#define g4float_mul(a,val)  g4float_all(val)*(a)
-
-#ifdef USE_SSE
-
-#define g4float_sqrt(v)     __builtin_ia32_sqrtps((v))
-#define g4float_max(a,b)    __builtin_ia32_maxps((a,b))
-#define g4float_min(a,b)    __builtin_ia32_minps((a,b))
-#define g4float_rcp(a,b)    __builtin_ia32_rcpps((v))
-
-#else
-
-#define g4float_sqrt(v)     g4float(sqrt(g4floatR(v)),\
-                                    sqrt(g4floatG(v)),\
-                                    sqrt(g4floatB(v)),\
-                                    sqrt(g4floatA(v)))
-#define g4float_rcp(v)      g4float(1.0/(g4floatR(v)),\
-                                    1.0/(g4floatG(v)),\
-                                    1.0/(g4floatB(v)),\
-                                    1.0/(g4floatA(v)))
-#define g4float_max(a,b)   g4float(\
-                               gfloat4R(a)>gfloat4R(b)?gfloat4R(a):gfloat4R(b),\
-                               gfloat4G(a)>gfloat4G(b)?gfloat4G(a):gfloat4G(b),\
-                               gfloat4B(a)>gfloat4B(b)?gfloat4B(a):gfloat4B(b),\
-                               gfloat4A(a)>gfloat4A(b)?gfloat4A(a):gfloat4A(b))
-#define g4float_min(a,b)   g4float(\
-                               gfloat4R(a)<gfloat4R(b)?gfloat4R(a):gfloat4R(b),\
-                               gfloat4G(a)<gfloat4G(b)?gfloat4G(a):gfloat4G(b),\
-                               gfloat4B(a)<gfloat4B(b)?gfloat4B(a):gfloat4B(b),\
-                               gfloat4A(a)<gfloat4A(b)?gfloat4A(a):gfloat4A(b))
-#endif
+GType gegl_module_register_type (GTypeModule     *module,
+                                 GType            parent_type,
+                                 const gchar     *type_name,
+                                 const GTypeInfo *type_info,
+                                 GTypeFlags       flags);
+
+GeglBuffer     *gegl_operation_context_get_source (GeglOperationContext *self,
+                                                   const gchar          *padname);
+GeglBuffer     *gegl_operation_context_get_target (GeglOperationContext *self,
+                                                   const gchar          *padname);
+void            gegl_operation_context_set_object (GeglOperationContext *context,
+                                                   const gchar          *padname,
+                                                   GObject              *data);
+
+void            gegl_extension_handler_register    (const gchar         *extension,
+                                                    const gchar         *handler);
+const gchar   * gegl_extension_handler_get         (const gchar         *extension);
 
-#endif
-
-#if 1
 
 #include <glib-object.h>
 #include <babl/babl.h>
@@ -151,428 +96,6 @@
 #include <operation/gegl-operation-source.h>
 #include <operation/gegl-operation-sink.h>
 #include <operation/gegl-operation-meta.h>
-
-
-#else
-
-/***** ***/
-
-
-#include <glib-object.h>
-#include <babl/babl.h>
-
-
-/***
- * GeglOperation:
- *
- * All the image processing code in GEGL is implemented as
- * GeglOperations, GEGL oeprations are implemented as GObject with a
- * convenience API called chanting that abstracts away the boiler
- * plater needed to generate introspectable named properties of
- * different types.
- *
- * Most types of operations like: filters, composers, sources, sinks,
- * point operations, compositing operations, and spatial operations
- * with fixed neighbourhoods. These base classes builds on top of the
- * GeglOperationsClass:
- *
- * See <a href='gegl-operation.h.html'>gegl-operation.h</a> for details.
- */
-
-#define GEGL_TYPE_OPERATION            (gegl_operation_get_type ())
-#define GEGL_OPERATION(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION, GeglOperation))
-#define GEGL_OPERATION_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION, GeglOperationClass))
-#define GEGL_IS_OPERATION(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION))
-#define GEGL_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION))
-#define GEGL_OPERATION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION, GeglOperationClass))
-
-typedef struct _GeglOperationClass GeglOperationClass;
-
-struct _GeglOperation
-{
-  GObject parent_instance;
-
-  /*< private >*/
-  GeglNode *node;  /* the node that this operation object is communicated
-                      with through */
-};
-
-struct _GeglOperationClass
-{
-  GObjectClass    parent_class;
-
-  const gchar    *name;        /* name(string) used to create/indetify
-                                    this type of operation in GEGL*/
-  const gchar    *description; /* textual description of the operation */
-  const gchar    *categories;  /* a colon seperated list of categories */
-
-  gboolean        no_cache;    /* do not create a cache for this operation */
-
-  /* attach this operation with a GeglNode, override this if you are creating a
-   * GeglGraph, it is already defined for Filters/Sources/Composers.
-   */
-  void          (*attach)                    (GeglOperation *operation);
-
-  /* prepare() is called on each operation providing data to a node that
-   * is requested to provide a rendered result. When prepare is called all
-   * properties are known. This is the time to set desired pixel formats
-   * for input and output pads.
-   */
-  void          (*prepare)                   (GeglOperation *operation);
-
-  /* Returns the bounding rectangle for the data that is defined by this op.
-   * (is already implemented in GeglOperationPointFilter and
-   * GeglOperationPointComposer, GeglOperationAreaFilter base classes.
-   */
-  GeglRectangle (*get_bounding_box)          (GeglOperation *operation);
-
-  /* Computes the region in output (same affected rect assumed for all outputs)
-   * when a given region has changed on an input. Used to aggregate dirt in the
-   * graph. A default implementation of this, if not provided should probably
-   * be to report that the entire defined region is dirtied.
-   */
-  GeglRectangle (*get_invalidated_by_change) (GeglOperation       *operation,
-                                              const gchar         *input_pad,
-                                              const GeglRectangle *input_region);
-
-  /* Computes the rectangle needed to be correctly computed in a buffer
-   * on the named input_pad, for a given region of interest.
-   */
-  GeglRectangle (*get_required_for_output)   (GeglOperation       *operation,
-                                              const gchar         *input_pad,
-                                              const GeglRectangle *roi);
-
-  /* Adjust result rect, adapts the rectangle used for computing results.
-   * (useful for global operations like contrast stretching, as well as
-   * file loaders to force caching of the full raster).
-   */
-  GeglRectangle (*get_cached_region)         (GeglOperation       *operation,
-                                              const GeglRectangle *roi);
-
-  /* Perform processing for the @output_pad, pad The result_rect provides the
-   * region to process. For sink operations @output_pad can be ignored but the
-   * result_rect is then then indicating the data available for consumption.
-   */
-  gboolean      (*process)                   (GeglOperation       *operation,
-                                              GeglNodeContext     *context,
-                                              const gchar         *output_pad,
-                                              const GeglRectangle *result_rect);
-
-  /* XXX: What is GeglNode doing in this part of the API?
-   * Returns the node providing data for a specific location within the
-   * operations output. Does this recurse?, perhaps it should only point out
-   * which pad the data is coming from?
-   */
-  GeglNode*     (*detect)                    (GeglOperation       *operation,
-                                              gint                 x,
-                                              gint                 y);
-};
-
-
-
-
-GType           gegl_operation_get_type        (void) G_GNUC_CONST;
-
-GeglRectangle   gegl_operation_get_invalidated_by_change
-                                                 (GeglOperation *operation,
-                                                  const gchar   *input_pad,
-                                                  const GeglRectangle *input_region);
-GeglRectangle   gegl_operation_get_bounding_box  (GeglOperation *operation);
-
-/* retrieves the bounding box of an input pad */
-GeglRectangle * gegl_operation_source_get_bounding_box
-                                                 (GeglOperation *operation,
-                                                  const gchar   *pad_name);
-
-
-GeglRectangle   gegl_operation_get_cached_region (GeglOperation *operation,
-                                                  const GeglRectangle *roi);
-
-GeglRectangle   gegl_operation_get_required_for_output
-                                                 (GeglOperation *operation,
-                                                  const gchar   *input_pad,
-                                                  const GeglRectangle *roi);
-
-GeglNode       *gegl_operation_detect            (GeglOperation *operation,
-                                                  gint           x,
-                                                  gint           y);
-
-
-/* virtual method invokers that change behavior based on the roi being computed,
- * needs a context_id being based that is used for storing context data.
- */
-
-void            gegl_operation_attach            (GeglOperation       *operation,
-                                                  GeglNode            *node);
-void            gegl_operation_prepare           (GeglOperation       *operation);
-gboolean        gegl_operation_process           (GeglOperation       *operation,
-                                                 GeglNodeContext     *context,
-                                                  const gchar         *output_pad,
-                                                  const GeglRectangle *result_rect);
-
-/* create a pad for a specified property for this operation, this method is
- * to be called from the attach method of operations, most operations do not
- * have to care about this since a super class like filter, sink, source or
- * composer already does so.
- */
-void       gegl_operation_create_pad             (GeglOperation *operation,
-                                                  GParamSpec    *param_spec);
-
-/* specify the bablformat for a pad on this operation (XXX: document when
- * this is legal, at the moment, only used internally in some ops,. but might
- * turn into a global mechanism) */
-void       gegl_operation_set_format             (GeglOperation *operation,
-                                                  const gchar   *pad_name,
-                                                  const Babl    *format);
-
-
-const Babl * gegl_operation_get_format           (GeglOperation *operation,
-                                                  const gchar   *pad_name);
-
-
-
-/* retrieves the node providing data to a named input pad */
-GeglNode      * gegl_operation_get_source_node   (GeglOperation *operation,
-                                                  const gchar   *pad_name);
-
-
-#define GEGL_TYPE_OPERATION_SOURCE            (gegl_operation_source_get_type ())
-#define GEGL_OPERATION_SOURCE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_SOURCE, GeglOperationSource))
-#define GEGL_OPERATION_SOURCE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_SOURCE, GeglOperationSourceClass))
-#define GEGL_IS_OPERATION_SOURCE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_SOURCE, GeglOperationSource))
-#define GEGL_IS_OPERATION_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_SOURCE, GeglOperationSourceClass))
-#define GEGL_OPERATION_SOURCE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_SOURCE, GeglOperationSourceClass))
-
-typedef struct _GeglOperationSource  GeglOperationSource;
-struct _GeglOperationSource
-{
-  GeglOperation parent_instance;
-};
-
-typedef struct _GeglOperationSourceClass GeglOperationSourceClass;
-struct _GeglOperationSourceClass
-{
-  GeglOperationClass parent_class;
-
-  gboolean (* process) (GeglOperation       *self,
-                        GeglBuffer          *output,
-                        const GeglRectangle *result);
-};
-
-GType gegl_operation_source_get_type (void) G_GNUC_CONST;
-
-
-
-#define GEGL_TYPE_OPERATION_SINK            (gegl_operation_sink_get_type ())
-#define GEGL_OPERATION_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_SINK, GeglOperationSink))
-#define GEGL_OPERATION_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_SINK, GeglOperationSinkClass))
-#define GEGL_IS_OPERATION_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_SINK))
-#define GEGL_IS_OPERATION_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_SINK))
-#define GEGL_OPERATION_SINK_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_SINK, GeglOperationSinkClass))
-
-typedef struct _GeglOperationSink  GeglOperationSink;
-struct _GeglOperationSink
-{
-  GeglOperation parent_instance;
-};
-
-typedef struct _GeglOperationSinkClass GeglOperationSinkClass;
-struct _GeglOperationSinkClass
-{
-  GeglOperationClass parent_class;
-
-  gboolean           needs_full;
-
-  gboolean (* process) (GeglOperation       *self,
-                        GeglBuffer          *input,
-                        const GeglRectangle *result);
-};
-
-GType    gegl_operation_sink_get_type   (void) G_GNUC_CONST;
-
-gboolean gegl_operation_sink_needs_full (GeglOperation *operation);
-
-
-
-#define GEGL_TYPE_OPERATION_FILTER            (gegl_operation_filter_get_type ())
-#define GEGL_OPERATION_FILTER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_FILTER, GeglOperationFilter))
-#define GEGL_OPERATION_FILTER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_FILTER, GeglOperationFilterClass))
-#define GEGL_IS_OPERATION_FILTER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_FILTER))
-#define GEGL_IS_OPERATION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_FILTER))
-#define GEGL_OPERATION_FILTER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_FILTER, GeglOperationFilterClass))
-
-typedef struct _GeglOperationFilter  GeglOperationFilter;
-struct _GeglOperationFilter
-{
-  GeglOperation parent_instance;
-};
-
-typedef struct _GeglOperationFilterClass GeglOperationFilterClass;
-struct _GeglOperationFilterClass
-{
-  GeglOperationClass parent_class;
-
-  gboolean (* process) (GeglOperation       *self,
-                        GeglBuffer          *input,
-                        GeglBuffer          *output,
-                        const GeglRectangle *result);
-};
-
-GType gegl_operation_filter_get_type (void) G_GNUC_CONST;
-
-
-#define GEGL_TYPE_OPERATION_COMPOSER            (gegl_operation_composer_get_type ())
-#define GEGL_OPERATION_COMPOSER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_COMPOSER, GeglOperationComposer))
-#define GEGL_OPERATION_COMPOSER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_COMPOSER, GeglOperationComposerClass))
-#define GEGL_IS_OPERATION_COMPOSER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_COMPOSER))
-#define GEGL_IS_OPERATION_COMPOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_COMPOSER))
-#define GEGL_OPERATION_COMPOSER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_COMPOSER, GeglOperationComposerClass))
-
-typedef struct _GeglOperationComposer  GeglOperationComposer;
-struct _GeglOperationComposer
-{
-  GeglOperation parent_instance;
-};
-
-typedef struct _GeglOperationComposerClass GeglOperationComposerClass;
-struct _GeglOperationComposerClass
-{
-  GeglOperationClass parent_class;
-
-  gboolean (* process) (GeglOperation       *self,
-                        GeglBuffer          *input,
-                        GeglBuffer          *aux,
-                        GeglBuffer          *output,
-                        const GeglRectangle *result);
-};
-
-GType gegl_operation_composer_get_type (void) G_GNUC_CONST;
-
-
-
-
-#define GEGL_TYPE_OPERATION_POINT_COMPOSER            (gegl_operation_point_composer_get_type ())
-#define GEGL_OPERATION_POINT_COMPOSER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_POINT_COMPOSER, GeglOperationPointComposer))
-#define GEGL_OPERATION_POINT_COMPOSER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_POINT_COMPOSER, GeglOperationPointComposerClass))
-#define GEGL_IS_OPERATION_POINT_COMPOSER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_POINT_COMPOSER))
-#define GEGL_IS_OPERATION_POINT_COMPOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_POINT_COMPOSER))
-#define GEGL_OPERATION_POINT_COMPOSER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_POINT_COMPOSER, GeglOperationPointComposerClass))
-
-typedef struct _GeglOperationPointComposer  GeglOperationPointComposer;
-struct _GeglOperationPointComposer
-{
-  GeglOperationComposer parent_instance;
-
-  /*< private >*/
-};
-
-typedef struct _GeglOperationPointComposerClass GeglOperationPointComposerClass;
-struct _GeglOperationPointComposerClass
-{
-  GeglOperationComposerClass parent_class;
-
-  gboolean (* process) (GeglOperation *self,      /* for parameters      */
-                        void          *in,
-                        void          *aux,
-                        void          *out,
-                        glong          samples);  /* number of samples   */
-
-};
-
-GType gegl_operation_point_composer_get_type (void) G_GNUC_CONST;
-
-
-
-
-#define GEGL_TYPE_OPERATION_POINT_FILTER            (gegl_operation_point_filter_get_type ())
-#define GEGL_OPERATION_POINT_FILTER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_POINT_FILTER, GeglOperationPointFilter))
-#define GEGL_OPERATION_POINT_FILTER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_POINT_FILTER, GeglOperationPointFilterClass))
-#define GEGL_IS_OPERATION_POINT_FILTER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_POINT_FILTER))
-#define GEGL_IS_OPERATION_POINT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_POINT_FILTER))
-#define GEGL_OPERATION_POINT_FILTER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_POINT_FILTER, GeglOperationPointFilterClass))
-
-typedef struct _GeglOperationPointFilter  GeglOperationPointFilter;
-struct _GeglOperationPointFilter
-{
-  GeglOperationFilter parent_instance;
-};
-
-typedef struct _GeglOperationPointFilterClass GeglOperationPointFilterClass;
-struct _GeglOperationPointFilterClass
-{
-  GeglOperationFilterClass parent_class;
-
-  gboolean (* process) (GeglOperation *self,      /* for parameters      */
-                        void          *in_buf,    /* input buffer */
-                        void          *out_buf,   /* output buffer */
-                        glong          samples);  /* number of samples   */
-};
-
-GType gegl_operation_point_filter_get_type (void) G_GNUC_CONST;
-
-
-
-#define GEGL_TYPE_OPERATION_AREA_FILTER            (gegl_operation_area_filter_get_type ())
-#define GEGL_OPERATION_AREA_FILTER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_AREA_FILTER, GeglOperationAreaFilter))
-#define GEGL_OPERATION_AREA_FILTER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_AREA_FILTER, GeglOperationAreaFilterClass))
-#define GEGL_IS_OPERATION_AREA_FILTER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_AREA_FILTER))
-#define GEGL_IS_OPERATION_AREA_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_AREA_FILTER))
-#define GEGL_OPERATION_AREA_FILTER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_AREA_FILTER, GeglOperationAreaFilterClass))
-
-typedef struct _GeglOperationAreaFilter  GeglOperationAreaFilter;
-struct _GeglOperationAreaFilter
-{
-  GeglOperationFilter parent_instance;
-
-  gint                left;
-  gint                right;
-  gint                top;
-  gint                bottom;
-};
-
-typedef struct _GeglOperationAreaFilterClass GeglOperationAreaFilterClass;
-struct _GeglOperationAreaFilterClass
-{
-  GeglOperationFilterClass parent_class;
-};
-
-GType gegl_operation_area_filter_get_type (void) G_GNUC_CONST;
-
-
-#define GEGL_TYPE_OPERATION_META            (gegl_operation_meta_get_type ())
-#define GEGL_OPERATION_META(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_META, GeglOperationMeta))
-#define GEGL_OPERATION_META_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_META, GeglOperationMetaClass))
-#define GEGL_IS_OPERATION_META(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_META))
-#define GEGL_IS_OPERATION_META_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_META))
-#define GEGL_OPERATION_META_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_META, GeglOperationMetaClass))
-
-typedef struct _GeglOperationMeta  GeglOperationMeta;
-struct _GeglOperationMeta
-{
-  GeglOperation parent_instance;
-  GSList       *redirects;
-};
-
-typedef struct _GeglOperationMetaClass GeglOperationMetaClass;
-struct _GeglOperationMetaClass
-{
-  GeglOperationClass parent_class;
-};
-
-
-GType gegl_operation_meta_get_type         (void) G_GNUC_CONST;
-
-void  gegl_operation_meta_redirect         (GeglOperation     *operation,
-                                            const gchar       *name,
-                                            GeglNode          *internal,
-                                            const gchar       *internal_name);
-
-void  gegl_operation_meta_property_changed (GeglOperationMeta *self,
-                                            GParamSpec        *arg1,
-                                            gpointer           user_data);
-
-
-
-#endif
+#include <gegl-simd.h>
 
 #endif  /* __GEGL_PLUGIN_H__ */

Modified: trunk/gegl/gegl-types.h
==============================================================================
--- trunk/gegl/gegl-types.h	(original)
+++ trunk/gegl/gegl-types.h	Sun Jun 15 15:02:29 2008
@@ -56,7 +56,7 @@
 #ifndef __GEGL_PLUGIN_H__
 typedef struct _GeglPad              GeglPad;
 typedef struct _GeglOperation        GeglOperation;
-typedef struct _GeglNodeContext      GeglNodeContext;
+typedef struct _GeglOperationContext GeglOperationContext;
 typedef struct _GeglConnection       GeglConnection;
 #endif
 typedef struct _GeglPrepareVisitor   GeglPrepareVisitor;

Modified: trunk/gegl/graph/Makefile.am
==============================================================================
--- trunk/gegl/graph/Makefile.am	(original)
+++ trunk/gegl/graph/Makefile.am	Sun Jun 15 15:02:29 2008
@@ -3,7 +3,7 @@
 GRAPH_sources = \
 	gegl-connection.c	\
 	gegl-node.c		\
-	gegl-node-context.c	\
+	gegl-operation-context.c	\
 	gegl-pad.c		\
 	gegl-visitor.c		\
 	gegl-visitable.c
@@ -12,7 +12,7 @@
 GRAPH_headers = \
 	gegl-connection.h	\
 	gegl-node.h		\
-	gegl-node-context.h	\
+	gegl-operation-context.h	\
 	gegl-pad.h		\
 	gegl-visitor.h		\
 	gegl-visitable.h

Modified: trunk/gegl/graph/gegl-node.c
==============================================================================
--- trunk/gegl/graph/gegl-node.c	(original)
+++ trunk/gegl/graph/gegl-node.c	Sun Jun 15 15:02:29 2008
@@ -306,6 +306,9 @@
                          * the preceding argument is NULL, gcc might warn about
                          * use of uninitialized variable.
                          */
+#if defined(__GNUC__)
+          null = NULL;
+#endif
           gegl_node_set_op_class (node, g_value_get_string (value), NULL, null);
         }
         break;
@@ -1399,7 +1402,7 @@
                          gint      width,
                          gint      height)
 {
-  GeglNodeContext *context;
+  GeglOperationContext *context;
 
   g_return_if_fail (GEGL_IS_NODE (node));
   g_return_if_fail (context_id != NULL);
@@ -1536,7 +1539,7 @@
 gegl_node_process (GeglNode *self)
 {
   GeglNode        *input;
-  GeglNodeContext *context;
+  GeglOperationContext *context;
   GeglBuffer      *buffer;
   GeglRectangle    defined;
 
@@ -1555,11 +1558,11 @@
     GValue value = { 0, };
     g_value_init (&value, GEGL_TYPE_BUFFER);
     g_value_set_object (&value, buffer);
-    gegl_node_context_set_property (context, "input", &value);
+    gegl_operation_context_set_property (context, "input", &value);
     g_value_unset (&value);
   }
 
-  gegl_node_context_set_result_rect (context, defined.x, defined.y, defined.width, defined.h);
+  gegl_operation_context_set_result_rect (context, defined.x, defined.y, defined.width, defined.h);
   gegl_operation_process (self->operation, &defined, "foo");
   gegl_node_remove_context (self, &defined);
   g_object_unref (buffer);
@@ -1570,7 +1573,7 @@
 lookup_context (gconstpointer a,
                 gconstpointer context_id)
 {
-  GeglNodeContext *context = (void *) a;
+  GeglOperationContext *context = (void *) a;
 
   if (context->context_id == context_id)
     return 0;
@@ -1579,12 +1582,12 @@
 
 void babl_backtrack (void);
 
-GeglNodeContext *
+GeglOperationContext *
 gegl_node_get_context (GeglNode *self,
                        gpointer  context_id)
 {
   GSList          *found;
-  GeglNodeContext *context = NULL;
+  GeglOperationContext *context = NULL;
 
   g_return_val_if_fail (GEGL_IS_NODE (self), NULL);
   g_return_val_if_fail (context_id != NULL, NULL);
@@ -1604,7 +1607,7 @@
 gegl_node_remove_context (GeglNode *self,
                           gpointer  context_id)
 {
-  GeglNodeContext *context;
+  GeglOperationContext *context;
 
   g_return_if_fail (GEGL_IS_NODE (self));
   g_return_if_fail (context_id != NULL);
@@ -1620,11 +1623,11 @@
   g_object_unref (context);
 }
 
-GeglNodeContext *
+GeglOperationContext *
 gegl_node_add_context (GeglNode *self,
                        gpointer  context_id)
 {
-  GeglNodeContext *context = NULL;
+  GeglOperationContext *context = NULL;
   GSList          *found;
 
   g_return_val_if_fail (GEGL_IS_NODE (self), NULL);
@@ -1642,8 +1645,8 @@
       return context;
     }
 
-  context             = g_object_new (GEGL_TYPE_NODE_CONTEXT, NULL);
-  context->node       = self;
+  context             = g_object_new (GEGL_TYPE_OPERATION_CONTEXT, NULL);
+  context->operation  = self->operation;
   context->context_id = context_id;
   self->context       = g_slist_prepend (self->context, context);
   return context;

Modified: trunk/gegl/graph/gegl-node.h
==============================================================================
--- trunk/gegl/graph/gegl-node.h	(original)
+++ trunk/gegl/graph/gegl-node.h	Sun Jun 15 15:02:29 2008
@@ -20,7 +20,7 @@
 #ifndef __GEGL_NODE_H__
 #define __GEGL_NODE_H__
 
-#include "gegl-node-context.h"
+#include "gegl-operation-context.h"
 #include <gegl/buffer/gegl-buffer.h>
 #include <gegl/buffer/gegl-cache.h>
 
@@ -54,7 +54,7 @@
   gboolean        is_root;
   gboolean        enabled;
 
-  GSList         *context;   /*< list of GeglNodeContext's corresponding to
+  GSList         *context;   /*< list of GeglOperationContext's corresponding to
                                  evaluation contexts */
   gboolean        is_graph;
 
@@ -133,11 +133,11 @@
 
 GType         gegl_node_get_type            (void) G_GNUC_CONST;
 
-GeglNodeContext *gegl_node_get_context      (GeglNode      *self,
+GeglOperationContext *gegl_node_get_context      (GeglNode      *self,
                                              gpointer       context_id);
 void             gegl_node_remove_context   (GeglNode      *self,
                                              gpointer       context_id);
-GeglNodeContext *gegl_node_add_context      (GeglNode      *self,
+GeglOperationContext *gegl_node_add_context      (GeglNode      *self,
                                              gpointer       context_id);
 
 void          gegl_node_add_pad             (GeglNode      *self,

Copied: trunk/gegl/graph/gegl-operation-context.c (from r2469, /trunk/gegl/graph/gegl-node-context.c)
==============================================================================
--- /trunk/gegl/graph/gegl-node-context.c	(original)
+++ trunk/gegl/graph/gegl-operation-context.c	Sun Jun 15 15:02:29 2008
@@ -14,7 +14,7 @@
  * License along with GEGL; if not, see <http://www.gnu.org/licenses/>.
  *
  * Copyright 2003 Calvin Williamson
- *           2006 Ãyvind KolÃs
+ *           2006-2008 Ãyvind KolÃs
  */
 
 #include "config.h"
@@ -27,25 +27,25 @@
 
 #include "gegl-types.h"
 
-#include "gegl-node-context.h"
+#include "gegl-operation-context.h"
 #include "gegl-node.h"
 #include "gegl-pad.h"
 #include "gegl-config.h"
 
 #include "operation/gegl-operation.h"
 
-static void     gegl_node_context_class_init   (GeglNodeContextClass  *klass);
-static void     gegl_node_context_init         (GeglNodeContext *self);
+static void     gegl_operation_context_class_init   (GeglOperationContextClass  *klass);
+static void     gegl_operation_context_init         (GeglOperationContext *self);
 static void     finalize                       (GObject         *gobject);
-static GValue * gegl_node_context_get_value    (GeglNodeContext *self,
+static GValue * gegl_operation_context_get_value    (GeglOperationContext *self,
                                                 const gchar     *property_name);
-static GValue * gegl_node_context_add_value    (GeglNodeContext *self,
+static GValue * gegl_operation_context_add_value    (GeglOperationContext *self,
                                                 const gchar     *property_name);
 
-G_DEFINE_TYPE (GeglNodeContext, gegl_node_context, G_TYPE_OBJECT);
+G_DEFINE_TYPE (GeglOperationContext, gegl_operation_context, G_TYPE_OBJECT);
 
 static void
-gegl_node_context_class_init (GeglNodeContextClass *klass)
+gegl_operation_context_class_init (GeglOperationContextClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
@@ -53,95 +53,95 @@
 }
 
 static void
-gegl_node_context_init (GeglNodeContext *self)
+gegl_operation_context_init (GeglOperationContext *self)
 {
   self->refs = 0;
   self->cached = FALSE;
 }
 
 void
-gegl_node_context_set_need_rect (GeglNodeContext *node,
-                                 gint             x,
-                                 gint             y,
-                                 gint             width,
-                                 gint             height)
-{
-  g_assert (node);
-  node->need_rect.x      = x;
-  node->need_rect.y      = y;
-  node->need_rect.width  = width;
-  node->need_rect.height = height;
+gegl_operation_context_set_need_rect (GeglOperationContext *self,
+                                      gint                  x,
+                                      gint                  y,
+                                      gint                  width,
+                                      gint                  height)
+{
+  g_assert (self);
+  self->need_rect.x      = x;
+  self->need_rect.y      = y;
+  self->need_rect.width  = width;
+  self->need_rect.height = height;
 }
 
 GeglRectangle *
-gegl_node_context_get_result_rect (GeglNodeContext *node)
+gegl_operation_context_get_result_rect (GeglOperationContext *self)
 {
-  return &node->result_rect;
+  return &self->result_rect;
 }
 
 void
-gegl_node_context_set_result_rect (GeglNodeContext *node,
-                                   gint             x,
-                                   gint             y,
-                                   gint             width,
-                                   gint             height)
-{
-  g_assert (node);
-  node->result_rect.x      = x;
-  node->result_rect.y      = y;
-  node->result_rect.width  = width;
-  node->result_rect.height = height;
+gegl_operation_context_set_result_rect (GeglOperationContext *self,
+                                        gint                  x,
+                                        gint                  y,
+                                        gint                  width,
+                                        gint                  height)
+{
+  g_assert (self);
+  self->result_rect.x      = x;
+  self->result_rect.y      = y;
+  self->result_rect.width  = width;
+  self->result_rect.height = height;
 }
 
 GeglRectangle *
-gegl_node_context_get_need_rect (GeglNodeContext *node)
+gegl_operation_context_get_need_rect (GeglOperationContext *self)
 {
-  return &node->need_rect;
+  return &self->need_rect;
 }
 
 void
-gegl_node_context_set_property (GeglNodeContext *context,
-                                const gchar     *property_name,
-                                const GValue    *value)
+gegl_operation_context_set_property (GeglOperationContext *context,
+                                     const gchar          *property_name,
+                                     const GValue         *value)
 {
   GParamSpec *pspec;
   GValue     *storage;
 
-  pspec = gegl_node_find_property (context->node, property_name);
+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (context->operation)), property_name);
 
   if (!pspec)
     {
       g_warning ("%s: node %s has no pad|property named '%s'",
                  G_STRFUNC,
-                 gegl_node_get_debug_name (context->node),
+                 GEGL_OPERATION_GET_CLASS (context->operation)->name,
                  property_name);
     }
 
-  storage = gegl_node_context_add_value (context, property_name);
+  storage = gegl_operation_context_add_value (context, property_name);
   /* storage needs to have the correct type */
   g_value_init (storage, G_PARAM_SPEC_VALUE_TYPE (pspec));
   g_value_copy (value, storage);
 }
 
 void
-gegl_node_context_get_property (GeglNodeContext *context,
-                                const gchar     *property_name,
-                                GValue          *value)
+gegl_operation_context_get_property (GeglOperationContext *context,
+                                     const gchar          *property_name,
+                                     GValue               *value)
 {
   GParamSpec *pspec;
   GValue     *storage;
 
-  pspec = gegl_node_find_property (context->node, property_name);
+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (context->operation)), property_name);
 
   if (!pspec)
     {
       g_warning ("%s: node %s has no pad|property named '%s'",
                  G_STRFUNC,
-                 gegl_node_get_debug_name (context->node),
+                 GEGL_OPERATION_GET_CLASS (context->operation)->name,
                  property_name);
     }
 
-  storage = gegl_node_context_get_value (context, property_name);
+  storage = gegl_operation_context_get_value (context, property_name);
   if (storage != NULL)
     {
       g_value_copy (storage, value);
@@ -154,8 +154,8 @@
   GValue value;
 } Property;
 
-static Property *property_new (GeglNode    *node,
-                               const gchar *property_name)
+static Property *
+property_new (const gchar *property_name)
 {
   Property *property = g_slice_new0 (Property);
 
@@ -163,7 +163,8 @@
   return property;
 }
 
-static void property_destroy (Property *property)
+static void
+property_destroy (Property *property)
 {
   g_free (property->name);
   g_value_unset (&property->value); /* does an unref */
@@ -180,8 +181,8 @@
 }
 
 static GValue *
-gegl_node_context_get_value (GeglNodeContext *self,
-                             const gchar     *property_name)
+gegl_operation_context_get_value (GeglOperationContext *self,
+                                  const gchar          *property_name)
 {
   Property *property = NULL;
 
@@ -199,8 +200,8 @@
 }
 
 void
-gegl_node_context_remove_property (GeglNodeContext *self,
-                                   const gchar     *property_name)
+gegl_operation_context_remove_property (GeglOperationContext *self,
+                                        const gchar     *property_name)
 {
   Property *property = NULL;
 
@@ -211,8 +212,8 @@
 
   if (!property)
     {
-      g_warning ("didn't find context %p for %s", property_name,
-                 gegl_node_get_debug_name (self->node));
+      g_warning ("didn't find property %s for %s", property_name,
+                 GEGL_OPERATION_GET_CLASS (self->operation)->name);
       return;
     }
   self->property = g_slist_remove (self->property, property);
@@ -220,8 +221,8 @@
 }
 
 static GValue *
-gegl_node_context_add_value (GeglNodeContext *self,
-                             const gchar     *property_name)
+gegl_operation_context_add_value (GeglOperationContext *self,
+                                  const gchar          *property_name)
 {
   Property *property = NULL;
   GSList   *found;
@@ -236,7 +237,7 @@
       return &property->value;
     }
 
-  property = property_new (self->node, property_name);
+  property = property_new (property_name);
 
   self->property = g_slist_prepend (self->property, property);
 
@@ -246,7 +247,7 @@
 static void
 finalize (GObject *gobject)
 {
-  GeglNodeContext *self = GEGL_NODE_CONTEXT (gobject);
+  GeglOperationContext *self = GEGL_OPERATION_CONTEXT (gobject);
 
   while (self->property)
     {
@@ -255,15 +256,14 @@
       property_destroy (property);
     }
 
-  G_OBJECT_CLASS (gegl_node_context_parent_class)->finalize (gobject);
+  G_OBJECT_CLASS (gegl_operation_context_parent_class)->finalize (gobject);
 }
 
 void
-gegl_node_context_set_object (GeglNodeContext *context,
-                              const gchar     *padname,
-                              GObject         *data)
+gegl_operation_context_set_object (GeglOperationContext *context,
+                                   const gchar          *padname,
+                                   GObject              *data)
 {
-  GeglNode      *node;
   GeglOperation *operation;
   GParamSpec    *pspec;
   GValue         value = {0,};
@@ -272,35 +272,32 @@
    *        output object/value set?
    */
 
-  node = context->node;
-  operation = node->operation;
-  pspec = gegl_node_find_property (node, padname);
+  operation = context->operation;
+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (context->operation)), padname);
   if (pspec)
   {
     g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
     g_value_set_object (&value, data);
-    gegl_node_context_set_property (context, padname, &value);
+    gegl_operation_context_set_property (context, padname, &value);
   }
   g_value_unset (&value);
   g_object_unref (data); /* are we stealing the initial reference? */
 }
 
 GObject *
-gegl_node_context_get_object (GeglNodeContext *context,
-                              const gchar     *padname)
+gegl_operation_context_get_object (GeglOperationContext *context,
+                                   const gchar          *padname)
 {
-  GeglNode      *node;
   GeglOperation *operation;
   GObject       *ret;
   GParamSpec    *pspec;
   GValue         value = { 0, };
 
-  node = context->node;
-  operation = node->operation;
+  operation = context->operation;
 
-  pspec = gegl_node_find_property (node, padname);
+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (context->operation)), padname);
   g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
-  gegl_node_context_get_property (context, padname, &value);
+  gegl_operation_context_get_property (context, padname, &value);
   /* FIXME: handle other things than gobjects as well? */
   ret = g_value_get_object (&value);
 
@@ -315,23 +312,39 @@
 }
 
 GeglBuffer *
-gegl_node_context_get_target (GeglNodeContext *context,
-                              const gchar     *padname)
+gegl_operation_context_get_source (GeglOperationContext *context,
+                                   const gchar          *padname)
+{
+  GeglOperation  *operation;
+  GeglBuffer     *real_input;
+  GeglBuffer     *input;
+  GeglRectangle   input_request;
+ 
+  operation = context->operation;
+  input_request = gegl_operation_get_required_for_output (operation, padname, &context->need_rect);
+
+  real_input = GEGL_BUFFER (gegl_operation_context_get_object (context, padname));
+  if (!real_input)
+    return NULL;
+  input = gegl_buffer_create_sub_buffer (real_input, &input_request);
+  return input;
+}
+
+GeglBuffer *
+gegl_operation_context_get_target (GeglOperationContext *context,
+                                   const gchar          *padname)
 {
   GeglBuffer          *output;
-  GeglPad             *pad;
   const GeglRectangle *result;
   const Babl          *format;
   GeglNode            *node;
   GeglOperation       *operation;
 
-  g_return_val_if_fail (GEGL_IS_NODE_CONTEXT (context), NULL);
-
-  node = context->node;
-  operation = node->operation;
+  g_return_val_if_fail (GEGL_IS_OPERATION_CONTEXT (context), NULL);
 
-  pad = gegl_node_get_pad (node, padname);
-  format = gegl_pad_get_format (pad);
+  operation = context->operation;
+  node = operation->node; /* <ick */
+  format = gegl_operation_get_format (operation, padname);
 
   if (format == NULL)
     {
@@ -356,29 +369,9 @@
       output = gegl_buffer_new (result, format);
     }
 
-  gegl_node_context_set_object (context, padname, G_OBJECT (output));
+
+  gegl_operation_context_set_object (context, padname, G_OBJECT (output));
   return output;
 }
 
 
-GeglBuffer *
-gegl_node_context_get_source (GeglNodeContext *context,
-                              const gchar     *padname)
-{
-  GeglNode            *node;
-  GeglOperation       *operation;
-  GeglBuffer      *real_input;
-  GeglBuffer      *input;
-  GeglRectangle    input_request;
- 
-  node = context->node;
-  operation = node->operation;
-  input_request  = gegl_operation_get_required_for_output (
-                                   operation, padname, &context->need_rect);
-
-  real_input = GEGL_BUFFER (gegl_node_context_get_object (context, padname));
-  if (!real_input)
-    return NULL;
-  input = gegl_buffer_create_sub_buffer (real_input, &input_request);
-  return input;
-}

Copied: trunk/gegl/graph/gegl-operation-context.h (from r2469, /trunk/gegl/graph/gegl-node-context.h)
==============================================================================
--- /trunk/gegl/graph/gegl-node-context.h	(original)
+++ trunk/gegl/graph/gegl-operation-context.h	Sun Jun 15 15:02:29 2008
@@ -14,37 +14,37 @@
  * License along with GEGL; if not, see <http://www.gnu.org/licenses/>.
  *
  * Copyright 2003 Calvin Williamson
- *           2006 Ãyvind KolÃs
+ *           2006-2008 Ãyvind KolÃs
  */
 
-#ifndef __GEGL_NODE_CONTEXT_H__
-#define __GEGL_NODE_CONTEXT_H__
+#ifndef __GEGL_OPERATION_CONTEXT_H__
+#define __GEGL_OPERATION_CONTEXT_H__
 
 #include <gegl/buffer/gegl-buffer.h>
 
 G_BEGIN_DECLS
 
-#define GEGL_TYPE_NODE_CONTEXT            (gegl_node_context_get_type ())
-#define GEGL_NODE_CONTEXT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_NODE_CONTEXT, GeglNodeContext))
-#define GEGL_NODE_CONTEXT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_NODE_CONTEXT, GeglNodeContextClass))
-#define GEGL_IS_NODE_CONTEXT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_NODE_CONTEXT))
-#define GEGL_IS_NODE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_NODE_CONTEXT))
-#define GEGL_NODE_CONTEXT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_NODE_CONTEXT, GeglNodeContextClass))
+#define GEGL_TYPE_OPERATION_CONTEXT            (gegl_operation_context_get_type ())
+#define GEGL_OPERATION_CONTEXT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_OPERATION_CONTEXT, GeglOperationContext))
+#define GEGL_OPERATION_CONTEXT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  GEGL_TYPE_OPERATION_CONTEXT, GeglOperationContextClass))
+#define GEGL_IS_OPERATION_CONTEXT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_OPERATION_CONTEXT))
+#define GEGL_IS_OPERATION_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_OPERATION_CONTEXT))
+#define GEGL_OPERATION_CONTEXT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_OPERATION_CONTEXT, GeglOperationContextClass))
 
-typedef struct _GeglNodeContextClass GeglNodeContextClass;
+typedef struct _GeglOperationContextClass GeglOperationContextClass;
 
-struct _GeglNodeContext
+struct _GeglOperationContext
 {
   GObject        parent_instance;
-  GeglNode      *node;
+  GeglOperation *operation;
   gpointer       context_id;
 
-  GeglRectangle  need_rect;   /* the rectangle needed from this node */
-  GeglRectangle  result_rect; /* the result computation rectangle for this node,
+  GeglRectangle  need_rect;   /* the rectangle needed from the operation */
+  GeglRectangle  result_rect; /* the result computation rectangle for the operation ,
                                  (will differ if the needed rect extends beyond
                                  the defined rectangle, some operations might
-                                 event force/suggest expansion of the result
-                                 rect.. (contrast stretch?))
+                                 force/suggest expansion of the result
+                                 rect, like contrast stretching.
                                */
   gboolean       cached;       /* true if the cache can be used directly, and
                                   recomputation of inputs is unneccesary) */
@@ -53,58 +53,52 @@
                                   before evaluation begins, each time data is
                                   fetched from the op the reference count is
                                   dropped, when it drops to zero, the op is
-                                  asked to clean it's pads
+                                  asked to clean it's pads, FIXME: should be
+                                  incorporated into the refcount of
+                                  GeglOperationContext?
                                 */
   GSList        *property;      /* used internally for data being exchanged */
 };
 
-struct _GeglNodeContextClass
+struct _GeglOperationContextClass
 {
   GObjectClass   parent_class;
 };
 
-GType           gegl_node_context_get_type         (void) G_GNUC_CONST;
+GType           gegl_operation_context_get_type        (void) G_GNUC_CONST;
 
-GeglBuffer     *gegl_node_context_get_target       (GeglNodeContext *self,
-                                                    const gchar     *padname);
-GeglBuffer     *gegl_node_context_get_source       (GeglNodeContext *self,
-                                                    const gchar     *padname);
-GObject        *gegl_node_context_get_object       (GeglNodeContext *context,
-                                                    const gchar     *padname);
-void            gegl_node_context_set_object       (GeglNodeContext *context,
-                                                    const gchar     *padname,
-                                                    GObject         *data);
-
-
-void            gegl_node_context_set_property     (GeglNodeContext *node,
-                                                    const gchar     *name,
-                                                    const GValue    *value);
-void            gegl_node_context_get_property     (GeglNodeContext *node,
-                                                    const gchar     *name,
-                                                    GValue          *value);
+GeglBuffer     *gegl_operation_context_get_target      (GeglOperationContext *self,
+                                                        const gchar          *padname);
+GeglBuffer     *gegl_operation_context_get_source      (GeglOperationContext *self,
+                                                        const gchar          *padname);
+GObject        *gegl_operation_context_get_object      (GeglOperationContext *context,
+                                                        const gchar          *padname);
+void            gegl_operation_context_set_object      (GeglOperationContext *context,
+                                                        const gchar          *padname,
+                                                        GObject              *data);
+void            gegl_operation_context_set_property    (GeglOperationContext *self,
+                                                        const gchar          *name,
+                                                        const GValue         *value);
+void            gegl_operation_context_get_property    (GeglOperationContext *self,
+                                                        const gchar          *name,
+                                                        GValue               *value);
 
 /* the rest of these functions are for internal use only */
 
-void            gegl_node_context_remove_property  (GeglNodeContext *self,
-                                                    const gchar     *name);
-
-
-
-
-
-
-GeglRectangle * gegl_node_context_get_need_rect    (GeglNodeContext *node);
-void            gegl_node_context_set_need_rect    (GeglNodeContext *node,
-                                                    gint             x,
-                                                    gint             y,
-                                                    gint             width,
-                                                    gint             height);
-GeglRectangle * gegl_node_context_get_result_rect  (GeglNodeContext *node);
-void            gegl_node_context_set_result_rect  (GeglNodeContext *node,
-                                                    gint             x,
-                                                    gint             y,
-                                                    gint             width,
-                                                    gint             height);
+void            gegl_operation_context_remove_property (GeglOperationContext *self,
+                                                        const gchar          *name);
+GeglRectangle * gegl_operation_context_get_need_rect   (GeglOperationContext *self);
+void            gegl_operation_context_set_need_rect   (GeglOperationContext *self,
+                                                        gint                  x,
+                                                        gint                  y,
+                                                        gint                  width,
+                                                        gint                  height);
+GeglRectangle * gegl_operation_context_get_result_rect (GeglOperationContext *node);
+void            gegl_operation_context_set_result_rect (GeglOperationContext *node,
+                                                        gint                  x,
+                                                        gint                  y,
+                                                        gint                  width,
+                                                        gint                  height);
 
 
 G_END_DECLS

Modified: trunk/gegl/operation/gegl-operation-composer.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-composer.c	(original)
+++ trunk/gegl/operation/gegl-operation-composer.c	Sun Jun 15 15:02:29 2008
@@ -48,7 +48,7 @@
                               const GValue        *value,
                               GParamSpec          *pspec);
 static gboolean gegl_operation_composer_process (GeglOperation       *operation,
-                              GeglNodeContext     *context,
+                              GeglOperationContext     *context,
                               const gchar         *output_prop,
                               const GeglRectangle *result);
 static void     attach       (GeglOperation       *operation);
@@ -145,7 +145,7 @@
 
 static gboolean
 gegl_operation_composer_process (GeglOperation       *operation,
-                        GeglNodeContext     *context,
+                        GeglOperationContext     *context,
                         const gchar         *output_prop,
                         const GeglRectangle *result)
 {
@@ -161,9 +161,9 @@
       return FALSE;
     }
 
-  input = gegl_node_context_get_source (context, "input");
-  aux   = gegl_node_context_get_source (context, "aux");
-  output = gegl_node_context_get_target (context, "output");
+  input = gegl_operation_context_get_source (context, "input");
+  aux   = gegl_operation_context_get_source (context, "aux");
+  output = gegl_operation_context_get_target (context, "output");
 
   /* A composer with a NULL aux, can still be valid, the
    * subclass has to handle it.

Modified: trunk/gegl/operation/gegl-operation-filter.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-filter.c	(original)
+++ trunk/gegl/operation/gegl-operation-filter.c	Sun Jun 15 15:02:29 2008
@@ -50,7 +50,7 @@
 
 static gboolean gegl_operation_filter_process 
                                       (GeglOperation       *operation,
-                                       GeglNodeContext     *context,
+                                       GeglOperationContext     *context,
                                        const gchar         *output_prop,
                                        const GeglRectangle *result);
 
@@ -181,7 +181,7 @@
 
 static gboolean
 gegl_operation_filter_process (GeglOperation   *operation,
-                               GeglNodeContext *context,
+                               GeglOperationContext *context,
                                const gchar     *output_prop,
                                const GeglRectangle *result)
 {
@@ -202,8 +202,8 @@
       return FALSE;
     }
 
-  input  = gegl_node_context_get_source (context, "input");
-  output = gegl_node_context_get_target (context, "output");
+  input  = gegl_operation_context_get_source (context, "input");
+  output = gegl_operation_context_get_target (context, "output");
   if (input != NULL)
     { /* FIXME: perhaps input should really be passed instead of context */
       success = klass->process (operation, input, output, result);

Modified: trunk/gegl/operation/gegl-operation-point-composer.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-point-composer.c	(original)
+++ trunk/gegl/operation/gegl-operation-point-composer.c	Sun Jun 15 15:02:29 2008
@@ -37,7 +37,7 @@
 
 static gboolean
 gegl_operation_composer_process2 (GeglOperation       *operation,
-                        GeglNodeContext     *context,
+                        GeglOperationContext     *context,
                         const gchar         *output_prop,
                         const GeglRectangle *result);
 
@@ -75,7 +75,7 @@
  */
 static gboolean
 gegl_operation_composer_process2 (GeglOperation       *operation,
-                                  GeglNodeContext     *context,
+                                  GeglOperationContext     *context,
                                   const gchar         *output_prop,
                                   const GeglRectangle *result)
 {
@@ -91,14 +91,14 @@
       return FALSE;
     }
 
-  input = gegl_node_context_get_source (context, "input");
-  aux   = gegl_node_context_get_source (context, "aux");
+  input = gegl_operation_context_get_source (context, "input");
+  aux   = gegl_operation_context_get_source (context, "aux");
 
   /* we could be even faster by not alway writing to this buffer, that
    * would potentially break other assumptions we want to make from the
    * GEGL core so we avoid doing that
    */
-  output = gegl_node_context_get_target (context, "output");
+  output = gegl_operation_context_get_target (context, "output");
 
 
   if (input != NULL ||

Modified: trunk/gegl/operation/gegl-operation-sink.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-sink.c	(original)
+++ trunk/gegl/operation/gegl-operation-sink.c	Sun Jun 15 15:02:29 2008
@@ -45,7 +45,7 @@
 
 static gboolean      gegl_operation_sink_process 
                                             (GeglOperation       *operation,
-                                             GeglNodeContext     *context,
+                                             GeglOperationContext     *context,
                                              const gchar         *output_prop,
                                              const GeglRectangle *result);
 static void          attach                 (GeglOperation       *operation);
@@ -117,7 +117,7 @@
 
 static gboolean
 gegl_operation_sink_process (GeglOperation *operation,
-                             GeglNodeContext *context,
+                             GeglOperationContext *context,
                              const gchar   *output_prop,
                              const GeglRectangle *result)
 {
@@ -131,7 +131,7 @@
 
   g_assert (klass->process);
 
-  input = gegl_node_context_get_source (context, "input");
+  input = gegl_operation_context_get_source (context, "input");
   if (input)
     {
       success = klass->process (operation, input, result);

Modified: trunk/gegl/operation/gegl-operation-source.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-source.c	(original)
+++ trunk/gegl/operation/gegl-operation-source.c	Sun Jun 15 15:02:29 2008
@@ -43,7 +43,7 @@
                               GParamSpec   *pspec);
 static gboolean gegl_operation_source_process 
                              (GeglOperation *operation,
-                              GeglNodeContext *context,
+                              GeglOperationContext *context,
                               const gchar   *output_prop,
                               const GeglRectangle *result);
 static void     attach       (GeglOperation *operation);
@@ -119,7 +119,7 @@
 
 static gboolean
 gegl_operation_source_process (GeglOperation       *operation,
-                               GeglNodeContext     *context,
+                               GeglOperationContext     *context,
                                const gchar         *output_prop,
                                const GeglRectangle *result)
 {
@@ -134,7 +134,7 @@
     }
 
   g_assert (klass->process);
-  output = gegl_node_context_get_target (context, "output");
+  output = gegl_operation_context_get_target (context, "output");
   success = klass->process (operation, output, result);
 
   return success;

Modified: trunk/gegl/operation/gegl-operation.c
==============================================================================
--- trunk/gegl/operation/gegl-operation.c	(original)
+++ trunk/gegl/operation/gegl-operation.c	Sun Jun 15 15:02:29 2008
@@ -102,7 +102,7 @@
 
 gboolean
 gegl_operation_process (GeglOperation       *operation,
-                        GeglNodeContext     *context,
+                        GeglOperationContext     *context,
                         const gchar         *output_pad,
                         const GeglRectangle *result)
 {
@@ -116,7 +116,7 @@
       (result->width == 0 || result->height == 0))
     {
       GeglBuffer *output = gegl_buffer_new (NULL, NULL);
-      gegl_node_context_set_object (context, "output", G_OBJECT (output));
+      gegl_operation_context_set_object (context, "output", G_OBJECT (output));
       return TRUE;
     }
 

Modified: trunk/gegl/operation/gegl-operation.h
==============================================================================
--- trunk/gegl/operation/gegl-operation.h	(original)
+++ trunk/gegl/operation/gegl-operation.h	Sun Jun 15 15:02:29 2008
@@ -126,7 +126,7 @@
    * result_rect is then then indicating the data available for consumption.
    */
   gboolean      (*process)                   (GeglOperation       *operation,
-                                              GeglNodeContext     *context,
+                                              GeglOperationContext     *context,
                                               const gchar         *output_pad,
                                               const GeglRectangle *roi);
 
@@ -178,7 +178,7 @@
                                               GeglNode      *node);
 void            gegl_operation_prepare       (GeglOperation *operation);
 gboolean        gegl_operation_process       (GeglOperation *operation,
-                                              GeglNodeContext *context,
+                                              GeglOperationContext *context,
                                               const gchar   *output_pad,
                                               const GeglRectangle *roi);
 

Modified: trunk/gegl/operation/gegl-operations.c
==============================================================================
--- trunk/gegl/operation/gegl-operations.c	(original)
+++ trunk/gegl/operation/gegl-operations.c	Sun Jun 15 15:02:29 2008
@@ -30,7 +30,7 @@
 #include "gegl-operations.h"
 #include "graph/gegl-node.h"
 #include "graph/gegl-pad.h"
-#include "graph/gegl-node-context.h"
+#include "graph/gegl-operation-context.h"
 #include "buffer/gegl-region.h"
 
 static void
@@ -152,7 +152,7 @@
   }
 
   {
-    GeglNodeContext *child_context = gegl_node_get_context (child, context_id);
+    GeglOperationContext *child_context = gegl_node_get_context (child, context_id);
     gegl_rectangle_bounding_box (&child_need, &child_context->need_rect, region);
     gegl_rectangle_intersect (&child_need, &child->have_rect, &child_need);
 
@@ -184,7 +184,7 @@
                                     gpointer       context_id)
 {
   GSList          *input_pads;
-  GeglNodeContext *context;
+  GeglOperationContext *context;
   GeglRectangle    request;
 
   context = gegl_node_get_context (operation->node, context_id);

Modified: trunk/gegl/process/gegl-cr-visitor.c
==============================================================================
--- trunk/gegl/process/gegl-cr-visitor.c	(original)
+++ trunk/gegl/process/gegl-cr-visitor.c	Sun Jun 15 15:02:29 2008
@@ -26,7 +26,7 @@
 #include "gegl-cr-visitor.h"
 #include "operation/gegl-operation.h"
 #include "graph/gegl-node.h"
-#include "graph/gegl-node-context.h"
+#include "graph/gegl-operation-context.h"
 #include "graph/gegl-pad.h"
 #include "graph/gegl-visitable.h"
 #include "gegl-utils.h"
@@ -57,7 +57,7 @@
 visit_node (GeglVisitor *self,
             GeglNode    *node)
 {
-  GeglNodeContext *context = gegl_node_get_context (node, self->context_id);
+  GeglOperationContext *context = gegl_node_get_context (node, self->context_id);
 
   GEGL_VISITOR_CLASS (gegl_cr_visitor_parent_class)->visit_node (self, node);
 

Modified: trunk/gegl/process/gegl-debug-rect-visitor.c
==============================================================================
--- trunk/gegl/process/gegl-debug-rect-visitor.c	(original)
+++ trunk/gegl/process/gegl-debug-rect-visitor.c	Sun Jun 15 15:02:29 2008
@@ -28,7 +28,7 @@
 #include "gegl-debug-rect-visitor.h"
 #include "operation/gegl-operation.h"
 #include "graph/gegl-node.h"
-#include "graph/gegl-node-context.h"
+#include "graph/gegl-operation-context.h"
 #include "graph/gegl-pad.h"
 #include "graph/gegl-visitable.h"
 
@@ -58,7 +58,7 @@
 visit_node (GeglVisitor *self,
             GeglNode    *node)
 {
-  GeglNodeContext *context = gegl_node_get_context (node, self->context_id);
+  GeglOperationContext *context = gegl_node_get_context (node, self->context_id);
 
   GEGL_VISITOR_CLASS (gegl_debug_rect_visitor_parent_class)->visit_node (self, node);
 

Modified: trunk/gegl/process/gegl-eval-mgr.c
==============================================================================
--- trunk/gegl/process/gegl-eval-mgr.c	(original)
+++ trunk/gegl/process/gegl-eval-mgr.c	Sun Jun 15 15:02:29 2008
@@ -172,7 +172,7 @@
     /* extract return buffer before running finish visitor */
     GValue value = { 0, };
     g_value_init (&value, G_TYPE_OBJECT);
-    gegl_node_context_get_property (gegl_node_get_context (root, context_id),
+    gegl_operation_context_get_property (gegl_node_get_context (root, context_id),
                                     "output", &value);
     buffer = g_value_get_object (&value);
     g_object_ref (buffer);/* salvage buffer from finalization */

Modified: trunk/gegl/process/gegl-eval-visitor.c
==============================================================================
--- trunk/gegl/process/gegl-eval-visitor.c	(original)
+++ trunk/gegl/process/gegl-eval-visitor.c	Sun Jun 15 15:02:29 2008
@@ -25,7 +25,7 @@
 
 #include "gegl-eval-visitor.h"
 #include "graph/gegl-node.h"
-#include "graph/gegl-node-context.h"
+#include "graph/gegl-operation-context.h"
 #include "graph/gegl-pad.h"
 #include "graph/gegl-visitable.h"
 #include "gegl-instrument.h"
@@ -64,7 +64,7 @@
 {
   GeglNode        *node       = gegl_pad_get_node (pad);
   gpointer         context_id = self->context_id;
-  GeglNodeContext *context    = gegl_node_get_context (node, context_id);
+  GeglOperationContext *context    = gegl_node_get_context (node, context_id);
   GeglOperation   *operation  = node->operation;
 
   GEGL_VISITOR_CLASS (gegl_eval_visitor_parent_class)->visit_pad (self, pad);
@@ -77,7 +77,7 @@
            * that has not been invalidated, (the validity of the cache
            * is determined by other visitors)
            */
-          gegl_node_context_get_target (context, pad->name);
+          gegl_operation_context_get_target (context, pad->name);
           /* XXX: why is the _get_target call needed anyways? */
         }
       else
@@ -115,11 +115,11 @@
           GValue           value          = { 0 };
           GParamSpec      *prop_spec      = gegl_pad_get_param_spec (pad);
           GeglNode        *source_node    = gegl_pad_get_node (source_pad);
-          GeglNodeContext *source_context = gegl_node_get_context (source_node, context_id);
+          GeglOperationContext *source_context = gegl_node_get_context (source_node, context_id);
 
           g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (prop_spec));
 
-          gegl_node_context_get_property (source_context,
+          gegl_operation_context_get_property (source_context,
                                           gegl_pad_get_name (source_pad),
                                           &value);
 
@@ -130,7 +130,7 @@
                        gegl_pad_get_name (source_pad),
                        g_value_get_object (&value));
 
-          gegl_node_context_set_property (context,
+          gegl_operation_context_set_property (context,
                                           gegl_pad_get_name (pad),
                                           &value);
           /* reference counting for this source dropped to zero, freeing up */
@@ -138,7 +138,7 @@
                      gegl_pad_get_node (source_pad), context_id)->refs == 0 &&
               g_value_get_object (&value))
             {
-              gegl_node_context_remove_property (
+              gegl_operation_context_remove_property (
                  gegl_node_get_context (
                     gegl_pad_get_node (source_pad), context_id),
                     gegl_pad_get_name (source_pad));

Modified: trunk/gegl/process/gegl-processor.c
==============================================================================
--- trunk/gegl/process/gegl-processor.c	(original)
+++ trunk/gegl/process/gegl-processor.c	Sun Jun 15 15:02:29 2008
@@ -65,7 +65,7 @@
   GeglNode        *node;
   GeglRectangle    rectangle;
   GeglNode        *input;
-  GeglNodeContext *context;
+  GeglOperationContext *context;
 
   GeglRegion      *valid_region;     /* used when doing unbuffered rendering */
   GeglRegion      *queued_region;
@@ -180,16 +180,16 @@
         GValue value = { 0, };
         g_value_init (&value, GEGL_TYPE_BUFFER);
         g_value_set_object (&value, cache);
-        gegl_node_context_set_property (processor->context, "input", &value);
+        gegl_operation_context_set_property (processor->context, "input", &value);
         g_value_unset (&value);
       }
 
-      gegl_node_context_set_result_rect (processor->context,
+      gegl_operation_context_set_result_rect (processor->context,
                                          processor->rectangle.x,
                                          processor->rectangle.y,
                                          processor->rectangle.width,
                                          processor->rectangle.height);
-      gegl_node_context_set_need_rect   (processor->context,
+      gegl_operation_context_set_need_rect   (processor->context,
                                          processor->rectangle.x,
                                          processor->rectangle.y,
                                          processor->rectangle.width,

Modified: trunk/operations/common/introspect.c
==============================================================================
--- trunk/operations/common/introspect.c	(original)
+++ trunk/operations/common/introspect.c	Sun Jun 15 15:02:29 2008
@@ -48,7 +48,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_pad,
          const GeglRectangle *result)
 {
@@ -60,7 +60,7 @@
         {
           g_object_ref (o->buf); /* add an extra reference, since gegl_operation_set_data
                                       is stealing one */
-          gegl_node_context_set_object (context, "output", G_OBJECT (o->buf));
+          gegl_operation_context_set_object (context, "output", G_OBJECT (o->buf));
         }
       return TRUE;
     }
@@ -96,7 +96,7 @@
   if (context)
     {
       g_object_ref (o->buf);
-      gegl_node_context_set_object (context, "output", G_OBJECT (o->buf));
+      gegl_operation_context_set_object (context, "output", G_OBJECT (o->buf));
     }
   }
 

Modified: trunk/operations/common/load-buffer.c
==============================================================================
--- trunk/operations/common/load-buffer.c	(original)
+++ trunk/operations/common/load-buffer.c	Sun Jun 15 15:02:29 2008
@@ -43,7 +43,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_pad,
          const GeglRectangle *result)
 {
@@ -56,8 +56,8 @@
 				     * stealing one.
 				     */
 
-      /* override core behaviour, by resetting the buffer in the node_context */
-      gegl_node_context_set_object (context, "output",
+      /* override core behaviour, by resetting the buffer in the operation_context */
+      gegl_operation_context_set_object (context, "output",
 				    G_OBJECT (o->buffer));
     }
   return TRUE;

Modified: trunk/operations/common/magick-load.c
==============================================================================
--- trunk/operations/common/magick-load.c	(original)
+++ trunk/operations/common/magick-load.c	Sun Jun 15 15:02:29 2008
@@ -106,7 +106,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_pad,
          const GeglRectangle *result)
 {
@@ -116,7 +116,7 @@
     return FALSE;
 
   /* overriding the predefined behavior */
-  gegl_node_context_set_object (context, "output", G_OBJECT (o->chant_data));
+  gegl_operation_context_set_object (context, "output", G_OBJECT (o->chant_data));
   o->chant_data = NULL;
 
   return  TRUE;

Modified: trunk/operations/common/open-buffer.c
==============================================================================
--- trunk/operations/common/open-buffer.c	(original)
+++ trunk/operations/common/open-buffer.c	Sun Jun 15 15:02:29 2008
@@ -69,7 +69,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_pad,
          const GeglRectangle *result)
 {
@@ -82,8 +82,8 @@
 		              * stealing one.
 		              */
 
-      /* override core behaviour, by resetting the buffer in the node_context */
-      gegl_node_context_set_object (context, "output", G_OBJECT (buffer));
+      /* override core behaviour, by resetting the buffer in the operation_context */
+      gegl_operation_context_set_object (context, "output", G_OBJECT (buffer));
       return TRUE;
     }
   return FALSE;

Modified: trunk/operations/common/raw-load.c
==============================================================================
--- trunk/operations/common/raw-load.c	(original)
+++ trunk/operations/common/raw-load.c	Sun Jun 15 15:02:29 2008
@@ -118,7 +118,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_pad,
          const GeglRectangle *result)
 {
@@ -129,7 +129,7 @@
   g_assert (g_str_equal (output_pad, "output"));
 
   output = GEGL_BUFFER (o->chant_data);
-  gegl_node_context_set_object (context, "output", G_OBJECT (output));
+  gegl_operation_context_set_object (context, "output", G_OBJECT (output));
 
   o->chant_data = NULL;
   return TRUE;

Modified: trunk/operations/common/remap.c
==============================================================================
--- trunk/operations/common/remap.c	(original)
+++ trunk/operations/common/remap.c	Sun Jun 15 15:02:29 2008
@@ -108,7 +108,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_prop,
          const GeglRectangle *result)
 {
@@ -122,9 +122,9 @@
   gint        pixels = result->width * result->height;
   gint        i;
 
-  input = gegl_node_context_get_source (context, "input");
-  low = gegl_node_context_get_source (context, "low");
-  high = gegl_node_context_get_source (context, "high");
+  input = gegl_operation_context_get_source (context, "input");
+  low = gegl_operation_context_get_source (context, "low");
+  high = gegl_operation_context_get_source (context, "high");
 
   buf = g_new (gfloat, pixels * 4);
   min = g_new (gfloat, pixels * 3);
@@ -134,7 +134,7 @@
   gegl_buffer_get (low,   1.0, result, babl_format ("RGB float"), min, GEGL_AUTO_ROWSTRIDE);
   gegl_buffer_get (high,  1.0, result, babl_format ("RGB float"), max, GEGL_AUTO_ROWSTRIDE);
 
-  output = gegl_node_context_get_target (context, "output");
+  output = gegl_operation_context_get_target (context, "output");
 
   for (i = 0; i < pixels; i++)
     {

Modified: trunk/operations/core/clone.c
==============================================================================
--- trunk/operations/core/clone.c	(original)
+++ trunk/operations/core/clone.c	Sun Jun 15 15:02:29 2008
@@ -66,7 +66,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_prop,
          const GeglRectangle *result)
 {
@@ -78,13 +78,13 @@
       return FALSE;
     }
 
-  input  = gegl_node_context_get_source (context, "input");
+  input  = gegl_operation_context_get_source (context, "input");
   if (!input)
     {
       g_warning ("clone received NULL input");
       return FALSE;
     }
-  gegl_node_context_set_object (context, "output", G_OBJECT (input));
+  gegl_operation_context_set_object (context, "output", G_OBJECT (input));
   return TRUE;
 }
 

Modified: trunk/operations/core/crop.c
==============================================================================
--- trunk/operations/core/crop.c	(original)
+++ trunk/operations/core/crop.c	Sun Jun 15 15:02:29 2008
@@ -95,7 +95,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_prop,
          const GeglRectangle *result)
 {
@@ -110,14 +110,14 @@
       return FALSE;
     }
 
-  input  = gegl_node_context_get_source (context, "input");
+  input  = gegl_operation_context_get_source (context, "input");
 
   if (input != NULL)
     {
       GeglBuffer *output;
 
       output = gegl_buffer_create_sub_buffer (input, &extent);
-      gegl_node_context_set_object (context, "output", G_OBJECT (output));
+      gegl_operation_context_set_object (context, "output", G_OBJECT (output));
       g_object_unref (input);
       success = TRUE;
     }

Modified: trunk/operations/core/nop.c
==============================================================================
--- trunk/operations/core/nop.c	(original)
+++ trunk/operations/core/nop.c	Sun Jun 15 15:02:29 2008
@@ -29,7 +29,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_prop,
          const GeglRectangle *result)
 {
@@ -41,14 +41,14 @@
       return FALSE;
     }
 
-  input  = gegl_node_context_get_source (context, "input");
+  input  = gegl_operation_context_get_source (context, "input");
   if (!input)
     {
       g_warning ("nop received NULL input");
       return FALSE;
     }
 
-  gegl_node_context_set_object (context, "output", G_OBJECT (input));
+  gegl_operation_context_set_object (context, "output", G_OBJECT (input));
   return TRUE;
 }
 

Modified: trunk/operations/core/shift.c
==============================================================================
--- trunk/operations/core/shift.c	(original)
+++ trunk/operations/core/shift.c	Sun Jun 15 15:02:29 2008
@@ -109,7 +109,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_prop,
          const GeglRectangle *result)
 {
@@ -126,7 +126,7 @@
       return FALSE;
     }
 
-  input  = gegl_node_context_get_source (context, "input");
+  input  = gegl_operation_context_get_source (context, "input");
 
   if (input != NULL)
     {
@@ -141,7 +141,7 @@
                                                     of source) */
                          NULL);
 
-      gegl_node_context_set_object (context, "output", G_OBJECT (output));
+      gegl_operation_context_set_object (context, "output", G_OBJECT (output));
 
       g_object_unref (input);
 

Modified: trunk/operations/workshop/rawbayer-load.c
==============================================================================
--- trunk/operations/workshop/rawbayer-load.c	(original)
+++ trunk/operations/workshop/rawbayer-load.c	Sun Jun 15 15:02:29 2008
@@ -105,7 +105,7 @@
 
 static gboolean
 process (GeglOperation       *operation,
-         GeglNodeContext     *context,
+         GeglOperationContext     *context,
          const gchar         *output_pad,
          const GeglRectangle *result)
 
@@ -113,7 +113,7 @@
   GeglChantO *o = GEGL_CHANT_PROPERTIES (operation);
 #if 1
   g_assert (o->chant_data);
-  gegl_node_context_set_object (context, "output", G_OBJECT (o->chant_data));
+  gegl_operation_context_set_object (context, "output", G_OBJECT (o->chant_data));
 
   o->chant_data = NULL;
 #else
@@ -123,8 +123,8 @@
                                       is stealing one.
                                     */
 
-      /* override core behaviour, by resetting the buffer in the node_context */
-      gegl_node_context_set_object (context, "output", G_OBJECT (o->chant_data));
+      /* override core behaviour, by resetting the buffer in the operation_context */
+      gegl_operation_context_set_object (context, "output", G_OBJECT (o->chant_data));
     }
 #endif
   return TRUE;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]