Edit detail for Function trace: loading an image revision 1 of 1

1
Editor: 10.1.0.1
Time: 2004/06/25 10:46:21 GMT+0
Note:

changed:
-
This traces the function calls that occur between a user selecting File/Open... and the image being displayed on the screen.

**1. menu entry File/Open...**
triggers

**2. commands.c:file_open_cmd_callback()**
This does nothing, but call

**3. fileops.c:file_open_callback**
which displays the dialog. Clicking OK triggers

**4. fileops.c:file_open_ok_callback**
It does some processing on the filename and then calls

**5. fileops.c:file_open.**
This looks up the right plugin depending on the format and invokes it via PDB.
The call returns a gimage which is either displayed in a new gdisplay or added as a new layer to an existing image. (?? depending on what ??)
If a new display is to be created, this is done calling

**6. gdisplay.c:gdisplay_new**
This initializes all the fields and registers the display. It creates the interface via

**7. interface.c:create_display_shell**
Amongst many other things, this connects a callback to canvas events:

**8. disp_callbacks.c:gdisplay_canvas_events**
As the display is shown on screen, a GDK_EXPOSE event is sent which leads to the invocation of

**9. disp_callbacks.c:redraw**
which finally displays the image on screen using

**10. gdisplay:gdisplay_expose_area and gdisplay:gdisplays_flush**
(more info on these in the docu on the rendering engine, [RenderArchitecture])

This traces the function calls that occur between a user selecting File/Open... and the image being displayed on the screen.

1. menu entry File/Open... triggers

2. commands.c:file_open_cmd_callback() This does nothing, but call

3. fileops.c:file_open_callback which displays the dialog. Clicking OK triggers

4. fileops.c:file_open_ok_callback It does some processing on the filename and then calls

5. fileops.c:file_open. This looks up the right plugin depending on the format and invokes it via PDB. The call returns a gimage which is either displayed in a new gdisplay or added as a new layer to an existing image. (?? depending on what ??) If a new display is to be created, this is done calling

6. gdisplay.c:gdisplay_new This initializes all the fields and registers the display. It creates the interface via

7. interface.c:create_display_shell Amongst many other things, this connects a callback to canvas events:

8. disp_callbacks.c:gdisplay_canvas_events As the display is shown on screen, a GDK_EXPOSE event is sent which leads to the invocation of

9. disp_callbacks.c:redraw which finally displays the image on screen using

10. gdisplay:gdisplay_expose_area and gdisplay:gdisplays_flush (more info on these in the docu on the rendering engine, RenderArchitecture)