Module Interface Extending &gdk-pixbuf; If &gdk-pixbuf; has been compiled with GModule support, it can be extended by modules which can load (and perhaps also save) new image and animation formats. Each loadable module must export a #GdkPixbufModuleFillInfoFunc function named fill_info and a #GdkPixbufModuleFillVtableFunc function named fill_vtable. In order to make format-checking work before actually loading the modules (which may require dlopening image libraries), modules export their signatures (and other information) via the fill_info function. An external utility, gdk-pixbuf-query-loaders, uses this to create a text file containing a list of all available loaders and their signatures. This file is then read at runtime by &gdk-pixbuf; to obtain the list of available loaders and their signatures. Modules may only implement a subset of the functionality available via #GdkPixbufModule. If a particular functionality is not implemented, the fill_vtable function will simply not set the corresponding function pointers of the #GdkPixbufModule structure. If a module supports incremental loading (i.e. provides #begin_load, #stop_load and #load_increment), it doesn't have to implement #load, since &gdk-pixbuf; can supply a generic #load implementation wrapping the incremental loading. Installing a module is a two-step process: copy the module file(s) to the loader directory (normally libdir/gtk-2.0/version/loaders, unless overridden by the environment variable GDK_PIXBUF_MODULEDIR) call gdk-pixbuf-query-loaders to update the module file (normally sysconfdir/gtk-2.0/gdk-pixbuf.loaders, unless overridden by the environment variable GDK_PIXBUF_MODULE_FILE) The &gdk-pixbuf; interfaces needed for implementing modules are contained in gdk-pixbuf-io.h (and gdk-pixbuf-animation.h if the module supports animations). They are not covered by the same stability guarantees as the regular &gdk-pixbuf; API. To underline this fact, they are protected by #ifdef GDK_PIXBUF_ENABLE_BACKEND. A #GdkPixbufModule contains the necessary functions to load and save images in a certain file format. A #GdkPixbufModule can be loaded dynamically from a #GModule. Each loadable module must contain a #GdkPixbufModuleFillVtableFunc function named fill_vtable, which will get called when the module is loaded and must set the function pointers of the #GdkPixbufModule. @module_name: the name of the module, usually the same as the usual file extension for images of this type, eg. "xpm", "jpeg" or "png". @module_path: the path from which the module is loaded. @module: the loaded #GModule. @info: a #GdkPixbufFormat holding information about the module. @load: loads an image from a file. @load_xpm_data: loads an image from data in memory. @begin_load: begins an incremental load. @stop_load: stops an incremental load. @load_increment: continues an incremental load. @load_animation: loads an animation from a file. @save: saves a #GdkPixbuf to a file. @_reserved1: @_reserved2: @_reserved3: @_reserved4: @_reserved5: @_reserved6: