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
fill-info and a
<gdk-pixbuf-module-fill-vtable-func> function named
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, ,
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
<gdk-pixbuf-module>. If a particular functionality is not implemented,
fill-vtable function will simply not set the corresponding function
pointers of the
<gdk-pixbuf-module> structure. If a module supports
incremental loading (i.e. provides
<load-increment>), it doesn't have to implement
gdk-pixbuf can supply a generic
<load> implementation wrapping the
Installing a module is a two-step process:
copy the module file(s) to the loader directory (normally /gtk-2.0//loaders, unless overridden by the environment variable GDK_PIXBUF_MODULEDIR)
call to update the module file (normally /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’.
Obtains the available information about the image formats supported by GdkPixbuf.
- A list of
<gdk-pixbuf-format>s describing the supported image formats. The list should be freed when it is no longer needed, but the structures themselves are owned by
<gdk-pixbuf>and should not be freed.