[Gegl-developer] RE: Managed bindings

Øyvind Kolås pippin at gimp.org
Sat Oct 28 17:37:53 PDT 2006


On 10/28/06, George Talusan <george at convolve.ca> wrote:
> Hello,
>
> I too am interested in a gegl-sharp library in particular for F-Spot.
>
> I've used GAPI to create a set of managed bindings for GEGL.  I've run
> into a few problems trying to convert GEGL's hello-world.c into my own
> gegl-sharp hello-world.cs.
>
> 1.  gegl_graph_new returns a GeglNode.  While this is plausible in C
> through the magic of casting, it creates a circular dependency in C#.
> The metaphor GAPI creates for us is: "A Node is a Graph.  While a Graph
> is a Node."

The reason I changed gegl_graph_new to return a GeglNode instead of a
graph was to avoid casting in C. It might even make sense to move all
of the code in the GeglGraph super class into the GeglNode subclass to
avoid the issue completely (I already dislike the large amount of code
needed in the GeglNode class though.)

> 2.  There are lots of instances of va_list usage in the API.  Examples
> are the gegl_node_set/get functions.
>
> I'm not very familiar with the GEGL source so I was wondering if there
> are any suggestions on how we could get the ball rolling to make GEGL
> binding friendly?

It shouldn't be harder to bind GEGL than to bind gobject itself. Like
gobject gegl also provides functions to set/get individual properties:

void          gegl_node_set_property        (GeglNode     *object,
                                             const gchar  *property_name,
                                             const GValue *value);
void          gegl_node_get_property        (GeglNode     *object,
                                             const gchar  *property_name,
                                             GValue       *value);

I presume this should be sufficient.

/Øyvind K.
-- 
«The future is already here. It's just not very evenly distributed»
                                                 -- William Gibson
http://pippin.gimp.org/                            http://ffii.org/


More information about the Gegl-developer mailing list