Home | Press | Mailing List | Documentation | Screenshots | People | SourceForge | Downloads |
app/main.c:main gtk_set_locale setlocale gtk_init g_set_message_handler app/install.c:install_verify install_callback <app/main.c:init> app/app_procs.c:gimp_init app/app_procs.c:app_init gtk_rc_parse app/app_procs.c:make_initialization_status_window app/app_procs.c:splash_text_draw app/procedural_db.c:procedural_db_init app/internal_procs.c:internal_procs_init [PDB procs that are core] app/procedural_db.c:procedural_db_register ... app/procedural_db.c:procedural_db_register(&quit_proc); app/gimprc.c:parse_gimprc app/app_procs.c:splash_logo_draw app/fileops.c:file_ops_pre_init app/procedural_db.c:procedural_db_register ... app/xcf.c:xcf_init app/gimpbrushlist.c:brushes_init app/patterns.c:patterns_init app/palette.c:palettes_init app/gradient.c:gradients_init app/plug_in.c:plug_in_init plug-ins/gimpwire.c:WireBufferInit app/procedural_db.c:procedural_db_register [progress and message box] plug-ins/gimpprotocol.c:gp_init plug-ins/gimpwire.c:wire_register ... plug-ins/gimpwire.c:wire_set_writer(plug_in_write); plug-ins/gimpwire.c:wire_set_reader(plug_in_read); plug-ins/gimpwire.c:wire_set_flusher(plug_in_flush); [Searching plug-ins in path...] app/datafiles.c:datafiles_read_directories plug_in_callback is where plug-ins get called when picked from a menu.
After the plug-in launches it runs gimp_loop(), a message handling loop. That receives a GP_CONFIG message and then GP_PROC_RUN message from Film Gimp to configure and run the plug-in's operation. After responding to GP_PROC_RUN by calling gimp_proc_run (msg.data); the plug-in does a gimpquit() and exists. Extensions (such as programming languages, e.g., Script-Fu) remain resident and have a somewhat different mechanism.
gimp_proc_run (* PLUG_IN_INFO.run_proc) [Function pointer to run(), the action code in the plug-in] gimp_drawable_get [Will ask Film Gimp main for display info via wire] gimp_drawable_width gimp_run_procedure("gimp_drawable_width"...) gp_proc_run_write [Send wire message to Film Gimp] wire_write_msg