Learn R Programming

RGtk2 (version 2.12.17)

gdk-pixbuf-Module-Interface: Module Interface

Description

Extending

Arguments

Detailed Description

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 fillInfo and a GdkPixbufModuleFillVtableFunc function named fillVtable. 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 fillInfo 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 fillVtable 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 (normallylibdir, unless overridden by the environment variableGDK_PIXBUF_MODULEDIR)
  • callgdk-pixbuf-query-loadersto update the module file (normallysysconfdir, unless overridden by the environment variableGDK_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.

References

http://developer.gnome.org/doc/API/2.0/gdk-pixbuf/gdk-pixbuf-Module-Interface.html