Next: , Previous: GdkPixbufLoader, Up: Top

36 Module Interface

Extending gdk-pixbuf

36.1 Overview

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’.

36.2 Usage

— Function: gdk-pixbuf-get-formats ⇒  (ret gslist-of)

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.

Since 2.2