;; -*- scheme -*-
; object definitions ...
(define-object Color
  (in-module "Gegl")
  (parent "GObject")
  (c-name "GeglColor")
  (gtype-id "GEGL_TYPE_COLOR")
)

(define-object Curve
  (in-module "Gegl")
  (parent "GObject")
  (c-name "GeglCurve")
  (gtype-id "GEGL_TYPE_CURVE")
)

(define-object Operation
  (in-module "Gegl")
  (parent "GObject")
  (c-name "GeglOperation")
  (gtype-id "GEGL_TYPE_OPERATION")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperation")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationComposer
  (in-module "Gegl")
  (parent "GeglOperation")
  (c-name "GeglOperationComposer")
  (gtype-id "GEGL_TYPE_OPERATION_COMPOSER")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationComposer")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationComposer3
  (in-module "Gegl")
  (parent "GeglOperation")
  (c-name "GeglOperationComposer3")
  (gtype-id "GEGL_TYPE_OPERATION_COMPOSER3")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationComposer3")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationFilter
  (in-module "Gegl")
  (parent "GeglOperation")
  (c-name "GeglOperationFilter")
  (gtype-id "GEGL_TYPE_OPERATION_FILTER")
)

(define-object OperationAreaFilter
  (in-module "Gegl")
  (parent "GeglOperationFilter")
  (c-name "GeglOperationAreaFilter")
  (gtype-id "GEGL_TYPE_OPERATION_AREA_FILTER")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationAreaFilter")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationFilter")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationMeta
  (in-module "Gegl")
  (parent "GeglOperation")
  (c-name "GeglOperationMeta")
  (gtype-id "GEGL_TYPE_OPERATION_META")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationMeta")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationPointComposer
  (in-module "Gegl")
  (parent "GeglOperationComposer")
  (c-name "GeglOperationPointComposer")
  (gtype-id "GEGL_TYPE_OPERATION_POINT_COMPOSER")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationPointComposer")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationPointComposer3
  (in-module "Gegl")
  (parent "GeglOperationComposer3")
  (c-name "GeglOperationPointComposer3")
  (gtype-id "GEGL_TYPE_OPERATION_POINT_COMPOSER3")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationPointComposer3")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationPointFilter
  (in-module "Gegl")
  (parent "GeglOperationFilter")
  (c-name "GeglOperationPointFilter")
  (gtype-id "GEGL_TYPE_OPERATION_POINT_FILTER")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationPointFilter")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationSink
  (in-module "Gegl")
  (parent "GeglOperation")
  (c-name "GeglOperationSink")
  (gtype-id "GEGL_TYPE_OPERATION_SINK")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationSink")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationSource
  (in-module "Gegl")
  (parent "GeglOperation")
  (c-name "GeglOperationSource")
  (gtype-id "GEGL_TYPE_OPERATION_SOURCE")
)

(define-object OperationPointRender
  (in-module "Gegl")
  (parent "GeglOperationSource")
  (c-name "GeglOperationPointRender")
  (gtype-id "GEGL_TYPE_OPERATION_POINT_RENDER")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationPointRender")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationSource")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object OperationTemporal
  (in-module "Gegl")
  (parent "GeglOperationFilter")
  (c-name "GeglOperationTemporal")
  (gtype-id "GEGL_TYPE_OPERATION_TEMPORAL")
)

(define-object Chant
  (in-module "Gegl")
  (parent "GeglOperationTemporal")
  (c-name "GeglChant")
  (gtype-id "GEGL_TYPE_CHANT")
)

(define-object TileSource
  (in-module "Gegl")
  (parent "GObject")
  (c-name "GeglTileSource")
  (gtype-id "GEGL_TYPE_TILE_SOURCE")
)

(define-object TileBackend
  (in-module "Gegl")
  (parent "GeglTileSource")
  (c-name "GeglTileBackend")
  (gtype-id "GEGL_TYPE_TILE_BACKEND")
)

;; Enumerations and flags ...

(define-enum Interpolation
  (in-module "Gegl")
  (c-name "GeglInterpolation")
  (gtype-id "GEGL_TYPE_INTERPOLATION")
  (values
    '("nearest" "GEGL_INTERPOLATION_NEAREST")
    '("linear" "GEGL_INTERPOLATION_LINEAR")
    '("cubic" "GEGL_INTERPOLATION_CUBIC")
    '("lanczos" "GEGL_INTERPOLATION_LANCZOS")
    '("downsharp" "GEGL_INTERPOLATION_DOWNSHARP")
    '("downsize" "GEGL_INTERPOLATION_DOWNSIZE")
    '("downsmooth" "GEGL_INTERPOLATION_DOWNSMOOTH")
    '("upsharp" "GEGL_INTERPOLATION_UPSHARP")
    '("upsize" "GEGL_INTERPOLATION_UPSIZE")
    '("upsmooth" "GEGL_INTERPOLATION_UPSMOOTH")
  )
)

(define-flags PadType
  (in-module "Gegl")
  (c-name "GeglPadType")
  (gtype-id "GEGL_TYPE_PAD_TYPE")
  (values
    '("output" "GEGL_PARAM_PAD_OUTPUT")
    '("input" "GEGL_PARAM_PAD_INPUT")
  )
)

(define-flags BlitFlags
  (in-module "Gegl")
  (c-name "GeglBlitFlags")
  (gtype-id "GEGL_TYPE_BLIT_FLAGS")
  (values
    '("default" "GEGL_BLIT_DEFAULT")
    '("cache" "GEGL_BLIT_CACHE")
    '("dirty" "GEGL_BLIT_DIRTY")
  )
)


;; From gegl-buffer-backend.h



;; From gegl-buffer.h

(define-function gegl_buffer_get_type
  (c-name "gegl_buffer_get_type")
  (return-type "GType")
)

(define-function gegl_buffer_new
  (c-name "gegl_buffer_new")
  (is-constructor-of "GeglBuffer")
  (return-type "GeglBuffer*")
  (parameters
    '("const-GeglRectangle*" "extent")
    '("const-Babl*" "format")
  )
)

(define-function gegl_buffer_new_for_backend
  (c-name "gegl_buffer_new_for_backend")
  (return-type "GeglBuffer*")
  (parameters
    '("const-GeglRectangle*" "extent")
    '("void*" "backend")
  )
)

(define-function gegl_buffer_open
  (c-name "gegl_buffer_open")
  (return-type "GeglBuffer*")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method save
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_save")
  (return-type "none")
  (parameters
    '("const-gchar*" "path")
    '("const-GeglRectangle*" "roi")
  )
)

(define-function gegl_buffer_load
  (c-name "gegl_buffer_load")
  (return-type "GeglBuffer*")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method flush
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_flush")
  (return-type "none")
)

(define-method create_sub_buffer
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_create_sub_buffer")
  (return-type "GeglBuffer*")
  (parameters
    '("const-GeglRectangle*" "extent")
  )
)

(define-method destroy
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_destroy")
  (return-type "none")
)

(define-method get_extent
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_get_extent")
  (return-type "const-GeglRectangle*")
)

(define-method set_extent
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_set_extent")
  (return-type "gboolean")
  (parameters
    '("const-GeglRectangle*" "extent")
  )
)

(define-method get
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_get")
  (return-type "none")
  (parameters
    '("gdouble" "scale")
    '("const-GeglRectangle*" "rect")
    '("const-Babl*" "format")
    '("gpointer" "dest")
    '("gint" "rowstride")
  )
)

(define-method set
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_set")
  (return-type "none")
  (parameters
    '("const-GeglRectangle*" "rect")
    '("const-Babl*" "format")
    '("void*" "src")
    '("gint" "rowstride")
  )
)

(define-method get_format
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_get_format")
  (return-type "const-Babl*")
)

(define-method clear
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_clear")
  (return-type "none")
  (parameters
    '("const-GeglRectangle*" "roi")
  )
)

(define-method copy
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_copy")
  (return-type "none")
  (parameters
    '("const-GeglRectangle*" "src_rect")
    '("GeglBuffer*" "dst")
    '("const-GeglRectangle*" "dst_rect")
  )
)

(define-method dup
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_dup")
  (return-type "GeglBuffer*")
)

(define-method sample
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_sample")
  (return-type "none")
  (parameters
    '("gdouble" "x")
    '("gdouble" "y")
    '("gdouble" "scale")
    '("gpointer" "dest")
    '("const-Babl*" "format")
    '("GeglInterpolation" "interpolation")
  )
)

(define-method sample_cleanup
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_sample_cleanup")
  (return-type "none")
)

(define-function gegl_buffer_interpolation_from_string
  (c-name "gegl_buffer_interpolation_from_string")
  (return-type "GeglInterpolation")
  (parameters
    '("const-gchar*" "string")
  )
)

(define-function gegl_buffer_linear_new
  (c-name "gegl_buffer_linear_new")
  (is-constructor-of "GeglBufferLinear")
  (return-type "GeglBuffer*")
  (parameters
    '("const-GeglRectangle*" "extent")
    '("const-Babl*" "format")
  )
)

(define-function gegl_buffer_linear_new_from_data
  (c-name "gegl_buffer_linear_new_from_data")
  (return-type "GeglBuffer*")
  (parameters
    '("const-gpointer" "data")
    '("const-Babl*" "format")
    '("const-GeglRectangle*" "extent")
    '("gint" "rowstride")
    '("GCallback" "destroy_fn")
    '("gpointer" "destroy_fn_data")
  )
)

(define-method linear_open
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_linear_open")
  (return-type "gpointer*")
  (parameters
    '("const-GeglRectangle*" "extent")
    '("gint*" "rowstride")
    '("const-Babl*" "format")
  )
)

(define-method linear_close
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_linear_close")
  (return-type "none")
  (parameters
    '("gpointer" "linear")
  )
)

(define-method get_abyss
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_get_abyss")
  (return-type "const-GeglRectangle*")
)



;; From gegl-buffer-iterator.h

(define-method iterator_new
  (of-object "GeglBuffer")
  (c-name "gegl_buffer_iterator_new")
  (return-type "GeglBufferIterator*")
  (parameters
    '("const-GeglRectangle*" "roi")
    '("const-Babl*" "format")
    '("guint" "flags")
  )
)

(define-method add
  (of-object "GeglBufferIterator")
  (c-name "gegl_buffer_iterator_add")
  (return-type "gint")
  (parameters
    '("GeglBuffer*" "buffer")
    '("const-GeglRectangle*" "roi")
    '("const-Babl*" "format")
    '("guint" "flags")
  )
)

(define-method next
  (of-object "GeglBufferIterator")
  (c-name "gegl_buffer_iterator_next")
  (return-type "gboolean")
)



;; From gegl-chant.h

(define-function gegl_chant_get_type
  (c-name "gegl_chant_get_type")
  (return-type "GType")
)

(define-function gegl_module_register
  (c-name "gegl_module_register")
  (return-type "gboolean")
  (parameters
    '("GTypeModule*" "module")
  )
)

(define-function gegl_module_query
  (c-name "gegl_module_query")
  (return-type "const-GeglModuleInfo*")
  (parameters
    '("GTypeModule*" "module")
  )
)



;; From gegl-color.h

(define-function gegl_color_get_type
  (c-name "gegl_color_get_type")
  (return-type "GType")
)

(define-function gegl_color_new
  (c-name "gegl_color_new")
  (is-constructor-of "GeglColor")
  (return-type "GeglColor*")
  (parameters
    '("const-gchar*" "string")
  )
)

(define-method get_rgba
  (of-object "GeglColor")
  (c-name "gegl_color_get_rgba")
  (return-type "none")
  (parameters
    '("gdouble*" "red")
    '("gdouble*" "green")
    '("gdouble*" "blue")
    '("gdouble*" "alpha")
  )
)

(define-method get_rgba4f
  (of-object "GeglColor")
  (c-name "gegl_color_get_rgba4f")
  (return-type "none")
  (parameters
    '("gfloat*" "buf")
  )
)

(define-method set_rgba
  (of-object "GeglColor")
  (c-name "gegl_color_set_rgba")
  (return-type "none")
  (parameters
    '("gdouble" "red")
    '("gdouble" "green")
    '("gdouble" "blue")
    '("gdouble" "alpha")
  )
)

(define-function gegl_param_color_get_type
  (c-name "gegl_param_color_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_color
  (c-name "gegl_param_spec_color")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("GeglColor*" "default_color")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_param_spec_color_from_string
  (c-name "gegl_param_spec_color_from_string")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("const-gchar*" "default_color_string")
    '("GParamFlags" "flags")
  )
)



;; From gegl-curve.h

(define-function gegl_curve_get_type
  (c-name "gegl_curve_get_type")
  (return-type "GType")
)

(define-function gegl_curve_new
  (c-name "gegl_curve_new")
  (is-constructor-of "GeglCurve")
  (return-type "GeglCurve*")
  (parameters
    '("gdouble" "y_min")
    '("gdouble" "y_max")
  )
)

(define-method get_y_bounds
  (of-object "GeglCurve")
  (c-name "gegl_curve_get_y_bounds")
  (return-type "none")
  (parameters
    '("gdouble*" "min_y")
    '("gdouble*" "max_y")
  )
)

(define-method add_point
  (of-object "GeglCurve")
  (c-name "gegl_curve_add_point")
  (return-type "guint")
  (parameters
    '("gdouble" "x")
    '("gdouble" "y")
  )
)

(define-method get_point
  (of-object "GeglCurve")
  (c-name "gegl_curve_get_point")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("gdouble*" "x")
    '("gdouble*" "y")
  )
)

(define-method set_point
  (of-object "GeglCurve")
  (c-name "gegl_curve_set_point")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("gdouble" "x")
    '("gdouble" "y")
  )
)

(define-method num_points
  (of-object "GeglCurve")
  (c-name "gegl_curve_num_points")
  (return-type "guint")
)

(define-method calc_value
  (of-object "GeglCurve")
  (c-name "gegl_curve_calc_value")
  (return-type "gdouble")
  (parameters
    '("gdouble" "x")
  )
)

(define-method calc_values
  (of-object "GeglCurve")
  (c-name "gegl_curve_calc_values")
  (return-type "none")
  (parameters
    '("gdouble" "x_min")
    '("gdouble" "x_max")
    '("guint" "num_samples")
    '("gdouble*" "xs")
    '("gdouble*" "ys")
  )
)

(define-function gegl_curve_default_curve
  (c-name "gegl_curve_default_curve")
  (return-type "GeglCurve*")
)

(define-function gegl_param_curve_get_type
  (c-name "gegl_param_curve_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_curve
  (c-name "gegl_param_spec_curve")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("GeglCurve*" "default_curve")
    '("GParamFlags" "flags")
  )
)



;; From gegl.h

(define-function gegl_init
  (c-name "gegl_init")
  (return-type "none")
  (parameters
    '("gint*" "argc")
    '("gchar***" "argv")
  )
)

(define-function gegl_get_option_group
  (c-name "gegl_get_option_group")
  (return-type "GOptionGroup*")
)

(define-function gegl_exit
  (c-name "gegl_exit")
  (return-type "none")
)

(define-function gegl_list_operations
  (c-name "gegl_list_operations")
  (return-type "gchar**")
  (parameters
    '("guint*" "n_operations_p")
  )
)

(define-function gegl_list_properties
  (c-name "gegl_list_properties")
  (return-type "GParamSpec**")
  (parameters
    '("const-gchar*" "operation_type")
    '("guint*" "n_properties_p")
  )
)

(define-function gegl_node_new
  (c-name "gegl_node_new")
  (is-constructor-of "GeglNode")
  (return-type "GeglNode*")
)

(define-method new_child
  (of-object "GeglNode")
  (c-name "gegl_node_new_child")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-method connect_from
  (of-object "GeglNode")
  (c-name "gegl_node_connect_from")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "input_pad_name")
    '("GeglNode*" "source")
    '("const-gchar*" "output_pad_name")
  )
)

(define-method connect_to
  (of-object "GeglNode")
  (c-name "gegl_node_connect_to")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "output_pad_name")
    '("GeglNode*" "sink")
    '("const-gchar*" "input_pad_name")
  )
)

(define-method link
  (of-object "GeglNode")
  (c-name "gegl_node_link")
  (return-type "none")
  (parameters
    '("GeglNode*" "sink")
  )
)

(define-method link_many
  (of-object "GeglNode")
  (c-name "gegl_node_link_many")
  (return-type "none")
  (parameters
    '("GeglNode*" "first_sink")
  )
  (varargs #t)
)

(define-method disconnect
  (of-object "GeglNode")
  (c-name "gegl_node_disconnect")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "input_pad")
  )
)

(define-method set
  (of-object "GeglNode")
  (c-name "gegl_node_set")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-method set_valist
  (of-object "GeglNode")
  (c-name "gegl_node_set_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
    '("va_list" "args")
  )
)

(define-method get
  (of-object "GeglNode")
  (c-name "gegl_node_get")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-method get_valist
  (of-object "GeglNode")
  (c-name "gegl_node_get_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_property_name")
    '("va_list" "args")
  )
)

(define-method blit
  (of-object "GeglNode")
  (c-name "gegl_node_blit")
  (return-type "none")
  (parameters
    '("gdouble" "scale")
    '("const-GeglRectangle*" "roi")
    '("const-Babl*" "format")
    '("gpointer" "destination_buf")
    '("gint" "rowstride")
    '("GeglBlitFlags" "flags")
  )
)

(define-method process
  (of-object "GeglNode")
  (c-name "gegl_node_process")
  (return-type "none")
)

(define-method adopt_child
  (of-object "GeglNode")
  (c-name "gegl_node_adopt_child")
  (return-type "GeglNode*")
  (parameters
    '("GeglNode*" "child")
  )
)

(define-method add_child
  (of-object "GeglNode")
  (c-name "gegl_node_add_child")
  (return-type "GeglNode*")
  (parameters
    '("GeglNode*" "child")
  )
)

(define-method remove_child
  (of-object "GeglNode")
  (c-name "gegl_node_remove_child")
  (return-type "GeglNode*")
  (parameters
    '("GeglNode*" "child")
  )
)

(define-method get_parent
  (of-object "GeglNode")
  (c-name "gegl_node_get_parent")
  (return-type "GeglNode*")
)

(define-method detect
  (of-object "GeglNode")
  (c-name "gegl_node_detect")
  (return-type "GeglNode*")
  (parameters
    '("gint" "x")
    '("gint" "y")
  )
)

(define-method find_property
  (of-object "GeglNode")
  (c-name "gegl_node_find_property")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "property_name")
  )
)

(define-method get_bounding_box
  (of-object "GeglNode")
  (c-name "gegl_node_get_bounding_box")
  (return-type "GeglRectangle")
)

(define-method get_children
  (of-object "GeglNode")
  (c-name "gegl_node_get_children")
  (return-type "GSList*")
)

(define-method get_consumers
  (of-object "GeglNode")
  (c-name "gegl_node_get_consumers")
  (return-type "gint")
  (parameters
    '("const-gchar*" "output_pad")
    '("GeglNode***" "nodes")
    '("const-gchar***" "pads")
  )
)

(define-method get_input_proxy
  (of-object "GeglNode")
  (c-name "gegl_node_get_input_proxy")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "pad_name")
  )
)

(define-method get_operation
  (of-object "GeglNode")
  (c-name "gegl_node_get_operation")
  (return-type "const-gchar*")
)

(define-method get_output_proxy
  (of-object "GeglNode")
  (c-name "gegl_node_get_output_proxy")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "pad_name")
  )
)

(define-method get_producer
  (of-object "GeglNode")
  (c-name "gegl_node_get_producer")
  (return-type "GeglNode*")
  (parameters
    '("gchar*" "input_pad_name")
    '("gchar**" "output_pad_name")
  )
)

(define-method has_pad
  (of-object "GeglNode")
  (c-name "gegl_node_has_pad")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "pad_name")
  )
)

(define-method create_child
  (of-object "GeglNode")
  (c-name "gegl_node_create_child")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "operation")
  )
)

(define-method get_property
  (of-object "GeglNode")
  (c-name "gegl_node_get_property")
  (return-type "none")
  (parameters
    '("const-gchar*" "property_name")
    '("GValue*" "value")
  )
)

(define-method set_property
  (of-object "GeglNode")
  (c-name "gegl_node_set_property")
  (return-type "none")
  (parameters
    '("const-gchar*" "property_name")
    '("const-GValue*" "value")
  )
)

(define-function gegl_node_new_from_xml
  (c-name "gegl_node_new_from_xml")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "xmldata")
    '("const-gchar*" "path_root")
  )
)

(define-function gegl_node_new_from_file
  (c-name "gegl_node_new_from_file")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method to_xml
  (of-object "GeglNode")
  (c-name "gegl_node_to_xml")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "path_root")
  )
)

(define-method new_processor
  (of-object "GeglNode")
  (c-name "gegl_node_new_processor")
  (return-type "GeglProcessor*")
  (parameters
    '("const-GeglRectangle*" "rectangle")
  )
)

(define-method set_rectangle
  (of-object "GeglProcessor")
  (c-name "gegl_processor_set_rectangle")
  (return-type "none")
  (parameters
    '("const-GeglRectangle*" "rectangle")
  )
)

(define-method work
  (of-object "GeglProcessor")
  (c-name "gegl_processor_work")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "progress")
  )
)

(define-method destroy
  (of-object "GeglProcessor")
  (c-name "gegl_processor_destroy")
  (return-type "none")
)

(define-function gegl_config
  (c-name "gegl_config")
  (return-type "GeglConfig*")
)

(define-function gegl_node
  (c-name "gegl_node")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "op_type")
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-function gegl_graph
  (c-name "gegl_graph")
  (return-type "GeglNode*")
  (parameters
    '("GeglNode*" "node")
  )
)



;; From gegl-lookup.h

(define-function gegl_lookup_new_full
  (c-name "gegl_lookup_new_full")
  (return-type "GeglLookup*")
  (parameters
    '("GeglLookupFunction" "function")
    '("gpointer" "data")
    '("gfloat" "start")
    '("gfloat" "end")
    '("gfloat" "precision")
  )
)

(define-function gegl_lookup_new
  (c-name "gegl_lookup_new")
  (is-constructor-of "GeglLookup")
  (return-type "GeglLookup*")
  (parameters
    '("GeglLookupFunction" "function")
    '("gpointer" "data")
  )
)

(define-method free
  (of-object "GeglLookup")
  (c-name "gegl_lookup_free")
  (return-type "none")
)

(define-function if
  (c-name "if")
  (return-type "else")
  (parameters
    '("i->-lookup->negative_min&&-i-<" "lookup->negative_max")
  )
)



;; From gegl-matrix.h

(define-method identity
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_identity")
  (return-type "none")
)

(define-method equal
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_equal")
  (return-type "gboolean")
  (parameters
    '("GeglMatrix3" "matrix2")
  )
)

(define-method is_identity
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_is_identity")
  (return-type "gboolean")
)

(define-method is_scale
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_is_scale")
  (return-type "gboolean")
)

(define-method is_translate
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_is_translate")
  (return-type "gboolean")
)

(define-method copy
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_copy")
  (return-type "none")
  (parameters
    '("GeglMatrix3" "src")
  )
)

(define-method determinant
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_determinant")
  (return-type "gdouble")
)

(define-method invert
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_invert")
  (return-type "none")
)

(define-method multiply
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_multiply")
  (return-type "none")
  (parameters
    '("GeglMatrix3" "right")
    '("GeglMatrix3" "product")
  )
)

(define-method originate
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_originate")
  (return-type "none")
  (parameters
    '("gdouble" "x")
    '("gdouble" "y")
  )
)

(define-method transform_point
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_transform_point")
  (return-type "none")
  (parameters
    '("gdouble*" "x")
    '("gdouble*" "y")
  )
)

(define-method parse_string
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_parse_string")
  (return-type "none")
  (parameters
    '("const-gchar*" "string")
  )
)

(define-method to_string
  (of-object "GeglMatrix3")
  (c-name "gegl_matrix3_to_string")
  (return-type "gchar*")
)



;; From gegl-paramspecs.h

(define-function gegl_int32_get_type
  (c-name "gegl_int32_get_type")
  (return-type "GType")
)

(define-function gegl_param_int32_get_type
  (c-name "gegl_param_int32_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_int32
  (c-name "gegl_param_spec_int32")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("gint" "minimum")
    '("gint" "maximum")
    '("gint" "default_value")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_int16_get_type
  (c-name "gegl_int16_get_type")
  (return-type "GType")
)

(define-function gegl_param_int16_get_type
  (c-name "gegl_param_int16_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_int16
  (c-name "gegl_param_spec_int16")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("gint" "minimum")
    '("gint" "maximum")
    '("gint" "default_value")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_int8_get_type
  (c-name "gegl_int8_get_type")
  (return-type "GType")
)

(define-function gegl_param_int8_get_type
  (c-name "gegl_param_int8_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_int8
  (c-name "gegl_param_spec_int8")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("guint" "minimum")
    '("guint" "maximum")
    '("guint" "default_value")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_param_string_get_type
  (c-name "gegl_param_string_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_string
  (c-name "gegl_param_spec_string")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("gboolean" "no_validate")
    '("gboolean" "null_ok")
    '("const-gchar*" "default_value")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_param_file_path_get_type
  (c-name "gegl_param_file_path_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_file_path
  (c-name "gegl_param_spec_file_path")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("gboolean" "no_validate")
    '("gboolean" "null_ok")
    '("const-gchar*" "default_value")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_param_multiline_get_type
  (c-name "gegl_param_multiline_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_multiline
  (c-name "gegl_param_spec_multiline")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("const-gchar*" "default_value")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_param_enum_get_type
  (c-name "gegl_param_enum_get_type")
  (return-type "GType")
)

(define-function gegl_param_spec_enum
  (c-name "gegl_param_spec_enum")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("GType" "enum_type")
    '("gint" "default_value")
    '("GParamFlags" "flags")
  )
)

(define-method exclude_value
  (of-object "GeglParamSpecEnum")
  (c-name "gegl_param_spec_enum_exclude_value")
  (return-type "none")
  (parameters
    '("gint" "value")
  )
)



;; From gegl-path.h

(define-function gegl_path_get_type
  (c-name "gegl_path_get_type")
  (return-type "GType")
)

(define-function gegl_path_new
  (c-name "gegl_path_new")
  (is-constructor-of "GeglPath")
  (return-type "GeglPath*")
)

(define-function gegl_path_new_from_string
  (c-name "gegl_path_new_from_string")
  (return-type "GeglPath*")
  (parameters
    '("const-gchar*" "instructions")
  )
)

(define-method is_empty
  (of-object "GeglPath")
  (c-name "gegl_path_is_empty")
  (return-type "gboolean")
)

(define-method get_n_nodes
  (of-object "GeglPath")
  (c-name "gegl_path_get_n_nodes")
  (return-type "gint")
)

(define-method get_length
  (of-object "GeglPath")
  (c-name "gegl_path_get_length")
  (return-type "gdouble")
)

(define-method get_node
  (of-object "GeglPath")
  (c-name "gegl_path_get_node")
  (return-type "gboolean")
  (parameters
    '("gint" "index")
    '("GeglPathItem*" "node")
  )
)

(define-method to_string
  (of-object "GeglPath")
  (c-name "gegl_path_to_string")
  (return-type "gchar*")
)

(define-method set_matrix
  (of-object "GeglPath")
  (c-name "gegl_path_set_matrix")
  (return-type "none")
  (parameters
    '("GeglMatrix3" "matrix")
  )
)

(define-method get_matrix
  (of-object "GeglPath")
  (c-name "gegl_path_get_matrix")
  (return-type "none")
  (parameters
    '("GeglMatrix3" "matrix")
  )
)

(define-method closest_point
  (of-object "GeglPath")
  (c-name "gegl_path_closest_point")
  (return-type "gdouble")
  (parameters
    '("gdouble" "x")
    '("gdouble" "y")
    '("gdouble*" "on_path_x")
    '("gdouble*" "on_path_y")
    '("gint*" "node_pos_before")
  )
)

(define-method calc
  (of-object "GeglPath")
  (c-name "gegl_path_calc")
  (return-type "gboolean")
  (parameters
    '("gdouble" "pos")
    '("gdouble*" "x")
    '("gdouble*" "y")
  )
)

(define-method calc_values
  (of-object "GeglPath")
  (c-name "gegl_path_calc_values")
  (return-type "none")
  (parameters
    '("guint" "num_samples")
    '("gdouble*" "xs")
    '("gdouble*" "ys")
  )
)

(define-method get_bounds
  (of-object "GeglPath")
  (c-name "gegl_path_get_bounds")
  (return-type "none")
  (parameters
    '("gdouble*" "min_x")
    '("gdouble*" "max_x")
    '("gdouble*" "min_y")
    '("gdouble*" "max_y")
  )
)

(define-method foreach
  (of-object "GeglPath")
  (c-name "gegl_path_foreach")
  (return-type "none")
  (parameters
    '("GeglNodeFunction" "each_item")
    '("gpointer" "user_data")
  )
)

(define-method foreach_flat
  (of-object "GeglPath")
  (c-name "gegl_path_foreach_flat")
  (return-type "none")
  (parameters
    '("GeglNodeFunction" "each_item")
    '("gpointer" "user_data")
  )
)

(define-method clear
  (of-object "GeglPath")
  (c-name "gegl_path_clear")
  (return-type "none")
)

(define-method insert_node
  (of-object "GeglPath")
  (c-name "gegl_path_insert_node")
  (return-type "none")
  (parameters
    '("gint" "pos")
    '("const-GeglPathItem*" "node")
  )
)

(define-method replace_node
  (of-object "GeglPath")
  (c-name "gegl_path_replace_node")
  (return-type "none")
  (parameters
    '("gint" "pos")
    '("const-GeglPathItem*" "node")
  )
)

(define-method remove_node
  (of-object "GeglPath")
  (c-name "gegl_path_remove_node")
  (return-type "none")
  (parameters
    '("gint" "pos")
  )
)

(define-method parse_string
  (of-object "GeglPath")
  (c-name "gegl_path_parse_string")
  (return-type "none")
  (parameters
    '("const-gchar*" "instructions")
  )
)

(define-method append
  (of-object "GeglPath")
  (c-name "gegl_path_append")
  (return-type "none")
  (parameters
  )
  (varargs #t)
)

(define-method freeze
  (of-object "GeglPath")
  (c-name "gegl_path_freeze")
  (return-type "none")
)

(define-method thaw
  (of-object "GeglPath")
  (c-name "gegl_path_thaw")
  (return-type "none")
)

(define-function gegl_param_spec_path
  (c-name "gegl_param_spec_path")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("GeglPath*" "default_path")
    '("GParamFlags" "flags")
  )
)

(define-function gegl_param_path_get_type
  (c-name "gegl_param_path_get_type")
  (return-type "GType")
)

(define-function gegl_path_type_get_n_items
  (c-name "gegl_path_type_get_n_items")
  (return-type "gint")
  (parameters
    '("gchar" "type")
  )
)

(define-function gegl_path_add_type
  (c-name "gegl_path_add_type")
  (return-type "none")
  (parameters
    '("gchar" "type")
    '("gint" "items")
    '("const-gchar*" "description")
  )
)

(define-method append
  (of-object "GeglPathList")
  (c-name "gegl_path_list_append")
  (return-type "GeglPathList*")
  (parameters
  )
  (varargs #t)
)

(define-method destroy
  (of-object "GeglPathList")
  (c-name "gegl_path_list_destroy")
  (return-type "GeglPathList*")
)

(define-function gegl_path_add_flattener
  (c-name "gegl_path_add_flattener")
  (return-type "none")
  (parameters
    '("GeglFlattenerFunc" "func")
  )
)



;; From gegl-plugin.h

(define-function gegl_module_register_type
  (c-name "gegl_module_register_type")
  (return-type "GType")
  (parameters
    '("GTypeModule*" "module")
    '("GType" "parent_type")
    '("const-gchar*" "type_name")
    '("const-GTypeInfo*" "type_info")
    '("GTypeFlags" "flags")
  )
)

(define-method get_source
  (of-object "GeglOperationContext")
  (c-name "gegl_operation_context_get_source")
  (return-type "GeglBuffer*")
  (parameters
    '("const-gchar*" "padname")
  )
)

(define-method get_target
  (of-object "GeglOperationContext")
  (c-name "gegl_operation_context_get_target")
  (return-type "GeglBuffer*")
  (parameters
    '("const-gchar*" "padname")
  )
)

(define-method take_object
  (of-object "GeglOperationContext")
  (c-name "gegl_operation_context_take_object")
  (return-type "none")
  (parameters
    '("const-gchar*" "padname")
    '("GObject*" "data")
  )
)

(define-method get_object
  (of-object "GeglOperationContext")
  (c-name "gegl_operation_context_get_object")
  (return-type "GObject*")
  (parameters
    '("const-gchar*" "padname")
  )
)

(define-function gegl_extension_handler_register
  (c-name "gegl_extension_handler_register")
  (return-type "none")
  (parameters
    '("const-gchar*" "extension")
    '("const-gchar*" "handler")
  )
)

(define-function gegl_extension_handler_register_saver
  (c-name "gegl_extension_handler_register_saver")
  (return-type "none")
  (parameters
    '("const-gchar*" "extension")
    '("const-gchar*" "handler")
  )
)

(define-function gegl_extension_handler_get
  (c-name "gegl_extension_handler_get")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "extension")
  )
)

(define-function gegl_extension_handler_get_saver
  (c-name "gegl_extension_handler_get_saver")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "extension")
  )
)



;; From gegl-simd.h



;; From gegl-tile-backend.h

(define-method get_tile_size
  (of-object "GeglTileBackend")
  (c-name "gegl_tile_backend_get_tile_size")
  (return-type "gint")
)

(define-method get_format
  (of-object "GeglTileBackend")
  (c-name "gegl_tile_backend_get_format")
  (return-type "Babl*")
)

(define-method set_extent
  (of-object "GeglTileBackend")
  (c-name "gegl_tile_backend_set_extent")
  (return-type "none")
  (parameters
    '("GeglRectangle*" "rectangle")
  )
)

(define-method get_extent
  (of-object "GeglTileBackend")
  (c-name "gegl_tile_backend_get_extent")
  (return-type "GeglRectangle")
)

(define-function gegl_tile_backend_get_type
  (c-name "gegl_tile_backend_get_type")
  (return-type "GType")
)



;; From gegl-tile.h

(define-function gegl_tile_new
  (c-name "gegl_tile_new")
  (is-constructor-of "GeglTile")
  (return-type "GeglTile*")
  (parameters
    '("gint" "size")
  )
)

(define-function gegl_tile_new_bare
  (c-name "gegl_tile_new_bare")
  (return-type "GeglTile*")
)

(define-method ref
  (of-object "GeglTile")
  (c-name "gegl_tile_ref")
  (return-type "GeglTile*")
)

(define-method unref
  (of-object "GeglTile")
  (c-name "gegl_tile_unref")
  (return-type "none")
)

(define-method lock
  (of-object "GeglTile")
  (c-name "gegl_tile_lock")
  (return-type "none")
)

(define-method unlock
  (of-object "GeglTile")
  (c-name "gegl_tile_unlock")
  (return-type "none")
)

(define-method mark_as_stored
  (of-object "GeglTile")
  (c-name "gegl_tile_mark_as_stored")
  (return-type "none")
)

(define-method is_stored
  (of-object "GeglTile")
  (c-name "gegl_tile_is_stored")
  (return-type "gboolean")
)

(define-method store
  (of-object "GeglTile")
  (c-name "gegl_tile_store")
  (return-type "gboolean")
)

(define-method void
  (of-object "GeglTile")
  (c-name "gegl_tile_void")
  (return-type "none")
)

(define-method dup
  (of-object "GeglTile")
  (c-name "gegl_tile_dup")
  (return-type "GeglTile*")
)

(define-method set_rev
  (of-object "GeglTile")
  (c-name "gegl_tile_set_rev")
  (return-type "none")
  (parameters
    '("guint" "rev")
  )
)

(define-method get_rev
  (of-object "GeglTile")
  (c-name "gegl_tile_get_rev")
  (return-type "guint")
)

(define-method get_data
  (of-object "GeglTile")
  (c-name "gegl_tile_get_data")
  (return-type "guchar*")
)



;; From gegl-tile-source.h

(define-function gegl_tile_source_get_type
  (c-name "gegl_tile_source_get_type")
  (return-type "GType")
)

(define-method get_tile
  (of-object "GeglTileSource")
  (c-name "gegl_tile_source_get_tile")
  (return-type "GeglTile*")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "z")
  )
)

(define-method set_tile
  (of-object "GeglTileSource")
  (c-name "gegl_tile_source_set_tile")
  (return-type "gboolean")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "z")
    '("GeglTile*" "tile")
  )
)

(define-method is_cached
  (of-object "GeglTileSource")
  (c-name "gegl_tile_source_is_cached")
  (return-type "gboolean")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "z")
  )
)

(define-method exist
  (of-object "GeglTileSource")
  (c-name "gegl_tile_source_exist")
  (return-type "gboolean")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "z")
  )
)

(define-method void
  (of-object "GeglTileSource")
  (c-name "gegl_tile_source_void")
  (return-type "none")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "z")
  )
)

(define-method refetch
  (of-object "GeglTileSource")
  (c-name "gegl_tile_source_refetch")
  (return-type "none")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "z")
  )
)

(define-method idle
  (of-object "GeglTileSource")
  (c-name "gegl_tile_source_idle")
  (return-type "gboolean")
)



;; From gegl-types.h

(define-function gegl_rectangle_get_type
  (c-name "gegl_rectangle_get_type")
  (return-type "GType")
)

(define-function gegl_node_get_type
  (c-name "gegl_node_get_type")
  (return-type "GType")
)

(define-function gegl_processor_get_type
  (c-name "gegl_processor_get_type")
  (return-type "GType")
)



;; From gegl-utils.h

(define-method set
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_set")
  (return-type "none")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("guint" "width")
    '("guint" "height")
  )
)

(define-method equal
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_equal")
  (return-type "gboolean")
  (parameters
    '("const-GeglRectangle*" "rectangle2")
  )
)

(define-method equal_coords
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_equal_coords")
  (return-type "gboolean")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "width")
    '("gint" "height")
  )
)

(define-method is_empty
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_is_empty")
  (return-type "gboolean")
)

(define-method copy
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_copy")
  (return-type "none")
  (parameters
    '("const-GeglRectangle*" "source")
  )
)

(define-method bounding_box
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_bounding_box")
  (return-type "none")
  (parameters
    '("const-GeglRectangle*" "source1")
    '("const-GeglRectangle*" "source2")
  )
)

(define-method intersect
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_intersect")
  (return-type "gboolean")
  (parameters
    '("const-GeglRectangle*" "src1")
    '("const-GeglRectangle*" "src2")
  )
)

(define-method contains
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_contains")
  (return-type "gboolean")
  (parameters
    '("const-GeglRectangle*" "child")
  )
)

(define-function gegl_rectangle_infinite_plane
  (c-name "gegl_rectangle_infinite_plane")
  (return-type "GeglRectangle")
)

(define-method is_infinite_plane
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_is_infinite_plane")
  (return-type "gboolean")
)

(define-method dump
  (of-object "GeglRectangle")
  (c-name "gegl_rectangle_dump")
  (return-type "none")
)

(define-function gegl_malloc
  (c-name "gegl_malloc")
  (return-type "gpointer")
  (parameters
    '("gsize" "n_bytes")
  )
)

(define-function gegl_free
  (c-name "gegl_free")
  (return-type "none")
  (parameters
    '("gpointer" "mem")
  )
)



;; From gegl-version.h

(define-function gegl_get_version
  (c-name "gegl_get_version")
  (return-type "none")
  (parameters
    '("int*" "major")
    '("int*" "minor")
    '("int*" "micro")
  )
)



;; From gegl-operation-area-filter.h

(define-function gegl_operation_area_filter_get_type
  (c-name "gegl_operation_area_filter_get_type")
  (return-type "GType")
)



;; From gegl-operation-composer3.h

(define-function gegl_operation_composer3_get_type
  (c-name "gegl_operation_composer3_get_type")
  (return-type "GType")
)



;; From gegl-operation-composer.h

(define-function gegl_operation_composer_get_type
  (c-name "gegl_operation_composer_get_type")
  (return-type "GType")
)



;; From gegl-operation-filter.h

(define-function gegl_operation_filter_get_type
  (c-name "gegl_operation_filter_get_type")
  (return-type "GType")
)



;; From gegl-operation.h

(define-method add_processor
  (of-object "GeglOperationClass")
  (c-name "gegl_operation_class_add_processor")
  (return-type "none")
  (parameters
    '("GCallback" "process")
    '("const-gchar*" "string")
  )
)

(define-function gegl_operation_get_type
  (c-name "gegl_operation_get_type")
  (return-type "GType")
)

(define-method get_invalidated_by_change
  (of-object "GeglOperation")
  (c-name "gegl_operation_get_invalidated_by_change")
  (return-type "GeglRectangle")
  (parameters
    '("const-gchar*" "input_pad")
    '("const-GeglRectangle*" "roi")
  )
)

(define-method get_bounding_box
  (of-object "GeglOperation")
  (c-name "gegl_operation_get_bounding_box")
  (return-type "GeglRectangle")
)

(define-method source_get_bounding_box
  (of-object "GeglOperation")
  (c-name "gegl_operation_source_get_bounding_box")
  (return-type "GeglRectangle*")
  (parameters
    '("const-gchar*" "pad_name")
  )
)

(define-method get_cached_region
  (of-object "GeglOperation")
  (c-name "gegl_operation_get_cached_region")
  (return-type "GeglRectangle")
  (parameters
    '("const-GeglRectangle*" "roi")
  )
)

(define-method get_required_for_output
  (of-object "GeglOperation")
  (c-name "gegl_operation_get_required_for_output")
  (return-type "GeglRectangle")
  (parameters
    '("const-gchar*" "input_pad")
    '("const-GeglRectangle*" "roi")
  )
)

(define-method detect
  (of-object "GeglOperation")
  (c-name "gegl_operation_detect")
  (return-type "GeglNode*")
  (parameters
    '("gint" "x")
    '("gint" "y")
  )
)

(define-method attach
  (of-object "GeglOperation")
  (c-name "gegl_operation_attach")
  (return-type "none")
  (parameters
    '("GeglNode*" "node")
  )
)

(define-method prepare
  (of-object "GeglOperation")
  (c-name "gegl_operation_prepare")
  (return-type "none")
)

(define-method process
  (of-object "GeglOperation")
  (c-name "gegl_operation_process")
  (return-type "gboolean")
  (parameters
    '("GeglOperationContext*" "context")
    '("const-gchar*" "output_pad")
    '("const-GeglRectangle*" "roi")
  )
)

(define-method create_pad
  (of-object "GeglOperation")
  (c-name "gegl_operation_create_pad")
  (return-type "none")
  (parameters
    '("GParamSpec*" "param_spec")
  )
)

(define-method set_format
  (of-object "GeglOperation")
  (c-name "gegl_operation_set_format")
  (return-type "none")
  (parameters
    '("const-gchar*" "pad_name")
    '("const-Babl*" "format")
  )
)

(define-method get_format
  (of-object "GeglOperation")
  (c-name "gegl_operation_get_format")
  (return-type "const-Babl*")
  (parameters
    '("const-gchar*" "pad_name")
  )
)

(define-method get_name
  (of-object "GeglOperation")
  (c-name "gegl_operation_get_name")
  (return-type "const-gchar*")
)

(define-method get_source_node
  (of-object "GeglOperation")
  (c-name "gegl_operation_get_source_node")
  (return-type "GeglNode*")
  (parameters
    '("const-gchar*" "pad_name")
  )
)

(define-function gegl_list_properties
  (c-name "gegl_list_properties")
  (return-type "GParamSpec**")
  (parameters
    '("const-gchar*" "operation_type")
    '("guint*" "n_properties_p")
  )
)

(define-method invalidate
  (of-object "GeglOperation")
  (c-name "gegl_operation_invalidate")
  (return-type "none")
  (parameters
    '("const-GeglRectangle*" "roi")
    '("gboolean" "clear_cache")
  )
)

(define-method calc_need_rects
  (of-object "GeglOperation")
  (c-name "gegl_operation_calc_need_rects")
  (return-type "gboolean")
  (parameters
    '("gpointer" "context_id")
  )
)

(define-function gegl_operation_path_prop_changed
  (c-name "gegl_operation_path_prop_changed")
  (return-type "none")
  (parameters
    '("GeglPath*" "path")
    '("GeglOperation*" "operation")
  )
)



;; From gegl-operation-meta.h

(define-function gegl_operation_meta_get_type
  (c-name "gegl_operation_meta_get_type")
  (return-type "GType")
)

(define-method meta_redirect
  (of-object "GeglOperation")
  (c-name "gegl_operation_meta_redirect")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GeglNode*" "internal")
    '("const-gchar*" "internal_name")
  )
)

(define-method property_changed
  (of-object "GeglOperationMeta")
  (c-name "gegl_operation_meta_property_changed")
  (return-type "none")
  (parameters
    '("GParamSpec*" "arg1")
    '("gpointer" "user_data")
  )
)



;; From gegl-operation-point-composer3.h

(define-function gegl_operation_point_composer3_get_type
  (c-name "gegl_operation_point_composer3_get_type")
  (return-type "GType")
)



;; From gegl-operation-point-composer.h

(define-function gegl_operation_point_composer_get_type
  (c-name "gegl_operation_point_composer_get_type")
  (return-type "GType")
)



;; From gegl-operation-point-filter.h

(define-function gegl_operation_point_filter_get_type
  (c-name "gegl_operation_point_filter_get_type")
  (return-type "GType")
)



;; From gegl-operation-point-render.h

(define-function gegl_operation_point_render_get_type
  (c-name "gegl_operation_point_render_get_type")
  (return-type "GType")
)



;; From gegl-operation-sink.h

(define-function gegl_operation_sink_get_type
  (c-name "gegl_operation_sink_get_type")
  (return-type "GType")
)

(define-method sink_needs_full
  (of-object "GeglOperation")
  (c-name "gegl_operation_sink_needs_full")
  (return-type "gboolean")
)



;; From gegl-operation-source.h

(define-function gegl_operation_source_get_type
  (c-name "gegl_operation_source_get_type")
  (return-type "GType")
)



;; From gegl-operation-temporal.h

(define-function gegl_operation_temporal_get_type
  (c-name "gegl_operation_temporal_get_type")
  (return-type "GType")
)

(define-method temporal_set_history_length
  (of-object "GeglOperation")
  (c-name "gegl_operation_temporal_set_history_length")
  (return-type "none")
  (parameters
    '("gint" "history_length")
  )
)

(define-method temporal_get_history_length
  (of-object "GeglOperation")
  (c-name "gegl_operation_temporal_get_history_length")
  (return-type "guint")
)

(define-method temporal_get_frame
  (of-object "GeglOperation")
  (c-name "gegl_operation_temporal_get_frame")
  (return-type "GeglBuffer*")
  (parameters
    '("gint" "frame")
  )
)


