## GeglOperation

GeglOperation

## Functions

GeglRectangle | gegl_operation_get_invalidated_by_change ()
GeglRectangle | gegl_operation_get_bounding_box ()
GeglRectangle * | gegl_operation_source_get_bounding_box ()
GeglRectangle | gegl_operation_get_cached_region ()
GeglRectangle | gegl_operation_get_required_for_output ()
GeglNode * | gegl_operation_detect ()
void | gegl_operation_attach ()
void | gegl_operation_prepare ()
gboolean | gegl_operation_process ()
void | gegl_operation_create_pad ()
void | gegl_operation_set_format ()
const Babl * | gegl_operation_get_format ()
const gchar * | gegl_operation_get_name ()
const Babl * | gegl_operation_get_source_format ()
GeglNode * | gegl_operation_get_source_node ()
void | gegl_operation_class_set_key ()
const gchar * | gegl_operation_class_get_key ()
void | gegl_operation_class_set_keys ()
void | gegl_operation_set_key ()
gboolean | gegl_operation_use_opencl ()
gboolean | gegl_operation_use_threading ()
gdouble | gegl_operation_get_pixels_per_thread ()
void | gegl_operation_invalidate ()
gboolean | gegl_operation_cl_set_kernel_args ()
gboolean | gegl_can_do_inplace_processing ()
void | gegl_object_set_has_forked ()
gboolean | gegl_object_get_has_forked ()
guchar * | gegl_temp_buffer ()
void | gegl_operation_progress ()
const Babl * | gegl_operation_get_source_space ()

## Types and Values

| GeglOperation

## Description

## Functions

### gegl_operation_get_invalidated_by_change ()

    GeglRectangle
    gegl_operation_get_invalidated_by_change
                                   (GeglOperation *operation,
                                    const gchar *input_pad,
                                    const GeglRectangle *roi);

### gegl_operation_get_bounding_box ()

    GeglRectangle
    gegl_operation_get_bounding_box (GeglOperation *operation);

### gegl_operation_source_get_bounding_box ()

    GeglRectangle *
    gegl_operation_source_get_bounding_box
                                   (GeglOperation *operation,
                                    const gchar *pad_name);

### gegl_operation_get_cached_region ()

    GeglRectangle
    gegl_operation_get_cached_region (GeglOperation *operation,
                                      const GeglRectangle *roi);

### gegl_operation_get_required_for_output ()

    GeglRectangle
    gegl_operation_get_required_for_output
                                   (GeglOperation *operation,
                                    const gchar *input_pad,
                                    const GeglRectangle *roi);

### gegl_operation_detect ()

    GeglNode *
    gegl_operation_detect (GeglOperation *operation,
                           gint x,
                           gint y);

### gegl_operation_attach ()

    void
    gegl_operation_attach (GeglOperation *operation,
                           GeglNode *node);

### gegl_operation_prepare ()

    void
    gegl_operation_prepare (GeglOperation *operation);

### gegl_operation_process ()

    gboolean
    gegl_operation_process (GeglOperation *operation,
                            GeglOperationContext *context,
                            const gchar *output_pad,
                            const GeglRectangle *roi,
                            gint level);

### gegl_operation_create_pad ()

    void
    gegl_operation_create_pad (GeglOperation *operation,
                               GParamSpec *param_spec);

Create a property.

#### Parameters

self | a GeglOperation. |

### gegl_operation_set_format ()

    void
    gegl_operation_set_format (GeglOperation *operation,
                               const gchar *pad_name,
                               const Babl *format);

### gegl_operation_get_format ()

    const Babl *
    gegl_operation_get_format (GeglOperation *operation,
                               const gchar *pad_name);

### gegl_operation_get_name ()

    const gchar *
    gegl_operation_get_name (GeglOperation *operation);

### gegl_operation_get_source_format ()

    const Babl *
    gegl_operation_get_source_format (GeglOperation *operation,
                                      const gchar *padname);

### gegl_operation_get_source_node ()

    GeglNode *
    gegl_operation_get_source_node (GeglOperation *operation,
                                    const gchar *pad_name);

### gegl_operation_class_set_key ()

    void
    gegl_operation_class_set_key (GeglOperationClass *klass,
                                  const gchar *key_name,
                                  const gchar *key_value);

### gegl_operation_class_get_key ()

    const gchar *
    gegl_operation_class_get_key (GeglOperationClass *operation_class,
                                  const gchar *key_name);

### gegl_operation_class_set_keys ()

    void
    gegl_operation_class_set_keys (GeglOperationClass *klass,
                                   const gchar *key_name,
                                   ...);

### gegl_operation_set_key ()

    void
    gegl_operation_set_key (const gchar *operation_type,
                            const gchar *key_name,
                            const gchar *key_value);

### gegl_operation_use_opencl ()

    gboolean
    gegl_operation_use_opencl (const GeglOperation *operation);

### gegl_operation_use_threading ()

    gboolean
    gegl_operation_use_threading (GeglOperation *operation,
                                  const GeglRectangle *roi);

### gegl_operation_get_pixels_per_thread ()

    gdouble
    gegl_operation_get_pixels_per_thread (GeglOperation *operation);

### gegl_operation_invalidate ()

    void
    gegl_operation_invalidate (GeglOperation *operation,
                               const GeglRectangle *roi,
                               gboolean clear_cache);

### gegl_operation_cl_set_kernel_args ()

    gboolean
    gegl_operation_cl_set_kernel_args (GeglOperation *operation,
                                       cl_kernel kernel,
                                       gint *p,
                                       cl_int *err);

### gegl_can_do_inplace_processing ()

    gboolean
    gegl_can_do_inplace_processing (GeglOperation *operation,
                                    GeglBuffer *input,
                                    const GeglRectangle *result);

### gegl_object_set_has_forked ()

    void
    gegl_object_set_has_forked (GObject *object);

Mark an object as "forked", indicating that it should not be modified in place by gegl operations. This should only be used inside of the process method of a GeglOperation subclass.

[skip]

#### Parameters

object | Object to mark |

### gegl_object_get_has_forked ()

    gboolean
    gegl_object_get_has_forked (GObject *object);

Returns TRUE if the object has been marked as "forked".

[skip]

#### Parameters

object | Object to check |

### gegl_temp_buffer ()

    guchar *
    gegl_temp_buffer (int no,
                      int min_size);

Returns a singleton scratch buffer for use with multi-threaded processing dispatch.

### gegl_operation_progress ()

    void
    gegl_operation_progress (GeglOperation *operation,
                             gdouble progress,
                             gchar *message);

### gegl_operation_get_source_space ()

    const Babl *
    gegl_operation_get_source_space (GeglOperation *operation,
                                     const char *in_pad);

## Types and Values

### GeglOperation

    typedef struct {
      GObject parent_instance;
    } GeglOperation;