Can you provide the stack trace? (with debug symbols)

On 28 Dec 2016 11:34 p.m., "Vincent" <debian-si...@free-astro.vinvin.tf>
wrote:

> Hello,
> I'm evaluating gegl to replace the image display part of siril, a free
> astronomy image processor [1]. Siril is a GTK+3 application, so I
> naturally tried gegl-gtk which seems to have be abandonned for some
> time. I have updated it to compile with gegl 3.10, and examples are
> apparently working, if someone is interested the code is available [2].
>
> I have a hard time understanding the basic concepts of GEGL, in
> particular the graph. I could not find a clear documentation for GEGL so
> my knowledge comes mainly from the gegl-gtk examples, so please tell me
> if the following is right: some nodes of the graph are data producers,
> some are data processors, some are data consumers like saving to disk or
> displaying. In general, there's one data producer and one data consumer
> in the graph, and there can be many data processors, the image
> processing operations. The fact that there seems to be a root to all
> graphs, from which all other nodes are instantiated as children with
> gegl_node_new_child() is very disturbing because that would mean that it
> is a tree, not a graph, so I assumed that nodes are automatically
> connected from parent to child, which doesn't seem to be the case at
> all.
>
> That being said, I tried to make a simple application that takes a
> 16-bit integer pixel buffer and display it in gegl-gtk. I figured that
> would make a graph such as:
>
> gegl:buffer_source -> insert here some -> gegl-gtk widget
>               |      brightness mapping
>         buffer|      or other operations
>               |
> gegl_buffer --|
>
> The code I'm using is the following, without any operation in the middle:
>     const Babl* format = babl_format("Y u16");
>     GeglBuffer *buf = gegl_buffer_new(&_rect, format);
>     gegl_buffer_set(buf, &_rect, 1, format, image_buffer,
> GEGL_AUTO_ROWSTRIDE);
>     /* create the graph that displays this buffer */
>     GeglNode *bufnode = gegl_node_new_child(gegl,
>                     "operation", "gegl:buffer-source", "buffer", buf,
> NULL);
>     gegl_node_process(bufnode);
>
>     // Get the GtkWindow from glade and add gegl-gtk to it
>     GtkWidget *box = lookup_widget("a_window");
>     view = GTK_WIDGET(gegl_gtk_view_new_for_node(bufnode));
>     gtk_container_add(GTK_CONTAINER(box), view);
>
> Of course _rect is set to the correct 0,0,width,height of the buffer.
>
> The problem is that all I get from this code is segfaults. What did I
> miss? Isn't gegl-gtk supposed to display the image data given by the
> output port of a node? Is something required to transform the gegl
> buffer data to a format that the gegl-gtk widget can understand?
>
> I will need two types of graphs for image data display: one for grey
> images channels display with at least a basic brightness/contrast
> control duplicated for each of the R G and B channels, one that displays
> colour images recombined from the three greys. Anybody has an idea about
> how I can recombine the resulting images from the three grey graphs and
> display it into a new gegl-gtk widget?
>
> Thank you
>
> [1] https://free-astro.org/index.php/Siril
> [2] https://free-astro.org/svn/siril/trunk/deps/gegl-gtk/
>
> _______________________________________________
> gegl-developer-list mailing list
> List address:    gegl-developer-list@gnome.org
> List membership: https://mail.gnome.org/mailman/listinfo/gegl-
> developer-list
>
>
_______________________________________________
gegl-developer-list mailing list
List address:    gegl-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list

Reply via email to