It compiles because Gimp plug-ins (unlike PhotoShop plug-ins) are
separate executables, which
communicate with the main Gimp app via a shared memory channel.  As
separate executables,
they are compiled separately and don't necessarily need to avoid
function namespace conflicts with
the main app.  (Although in my opinion it would be better design to
avoid such conflicts.)

The libgimp function gimp_image_get_parasite_list is actually just the
C hook for the function
image_get_parasite_list_invoker, whose autogenerated source code you can find in
app/pdb/image_cmds.c.  The PDB actually consists of a large set of
"invoker" functions
of that sort -- libgimp is simply the C language binding that C
plug-ins use to access the
PDB.  Other languages such as Python and Ruby have their own bindings
-- the function of
a binding is to transform a native language command into a call to one
of the invoker functions
that belong to the PDB.

(Libgimp also contains some utility functions that are useful for C
plug-ins but don't involve
the PDB, but that doesn't affect the main point.)

  -- Bill
Gimp-developer mailing list

Reply via email to