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 <gdk-pixbuf-module-fill-info-func>
function named fill-info
and a
<gdk-pixbuf-module-fill-vtable-func>
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, ,
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,
the 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 <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 /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’.
gslist-of
)Obtains the available information about the image formats supported by GdkPixbuf.
- ret
- 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.Since 2.2