gdkpixbuf.pixbuf_module

Module for [PixbufModule] class

Types 1

A [gdkpixbuf.pixbuf_module.PixbufModule] contains the necessary functions to load and save images in a certain file format.

If [gdkpixbuf.pixbuf.Pixbuf] has been compiled with [gmodule.module_.Module] support, it can be extended by modules which can load (and perhaps also save) new image and animation formats.

Implementing modules

The [gdkpixbuf.pixbuf.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 GdkPixbuf API. To underline this fact, they are protected by the GDK_PIXBUF_ENABLE_BACKEND pre-processor symbol.

Each loadable module must contain a [gdkpixbuf.types.PixbufModuleFillVtableFunc] function named fill_vtable, which will get called when the module is loaded and must set the function pointers of the [gdkpixbuf.pixbuf_module.PixbufModule].

In order to make format-checking work before actually loading the modules (which may require calling dlopen to load 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 [gdkpixbuf.pixbuf.Pixbuf] to obtain the list of available loaders and their signatures.

Modules may only implement a subset of the functionality available via [gdkpixbuf.pixbuf_module.PixbufModule]. If a particular functionality is not implemented, the fill_vtable function will simply not set the corresponding function pointers of the [gdkpixbuf.pixbuf_module.PixbufModule] 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 [gdkpixbuf.pixbuf.Pixbuf] can supply a generic load implementation wrapping the incremental loading.

Installing modules

Installing a module is a two-step process:

  • copy the module file(s) to the loader directory (normally

$libdir/gdk-pixbuf-2.0/$version/loaders, unless overridden by the environment variable GDK_PIXBUF_MODULEDIR)

  • call gdk-pixbuf-query-loaders to update the module file (normally

$libdir/gdk-pixbuf-2.0/$version/loaders.cache, unless overridden by the environment variable GDK_PIXBUF_MODULE_FILE)

Fields
GdkPixbufModule _cInstance
Methods
void * _cPtr()
string moduleName() @propertyGet `moduleName` field. Returns: the name of the module, usually the same as the usual file extension for images of this type, eg. "xpm", "jpeg" or "png".
void moduleName(string propval) @propertySet `moduleName` field. Params: propval = the name of the module, usually the same as the usual file extension for images of this type, eg. "xpm", "jpeg" or "png".
string modulePath() @propertyGet `modulePath` field. Returns: the path from which the module is loaded.
void modulePath(string propval) @propertySet `modulePath` field. Params: propval = the path from which the module is loaded.
gmodule.module_.Module module_() @propertyGet `module` field. Returns: the loaded [gmodule.module.Module].
gdkpixbuf.pixbuf_format.PixbufFormat info() @propertyGet `info` field. Returns: a [gdkpixbuf.pixbuf_format.PixbufFormat] holding information about the module.
void info(gdkpixbuf.pixbuf_format.PixbufFormat propval) @propertySet `info` field. Params: propval = a [gdkpixbuf.pixbuf_format.PixbufFormat] holding information about the module.
GdkPixbufModuleLoadFunc load() @propertyGet `load` field. Returns: loads an image from a file.
void load(GdkPixbufModuleLoadFunc propval) @propertySet `load` field. Params: propval = loads an image from a file.
GdkPixbufModuleLoadXpmDataFunc loadXpmData() @propertyGet `loadXpmData` field. Returns: loads an image from data in memory.
void loadXpmData(GdkPixbufModuleLoadXpmDataFunc propval) @propertySet `loadXpmData` field. Params: propval = loads an image from data in memory.
GdkPixbufModuleStopLoadFunc stopLoad() @propertyGet `stopLoad` field. Returns: stops an incremental load.
void stopLoad(GdkPixbufModuleStopLoadFunc propval) @propertySet `stopLoad` field. Params: propval = stops an incremental load.
GdkPixbufModuleIncrementLoadFunc loadIncrement() @propertyGet `loadIncrement` field. Returns: continues an incremental load.
void loadIncrement(GdkPixbufModuleIncrementLoadFunc propval) @propertySet `loadIncrement` field. Params: propval = continues an incremental load.
GdkPixbufModuleLoadAnimationFunc loadAnimation() @propertyGet `loadAnimation` field. Returns: loads an animation from a file.
void loadAnimation(GdkPixbufModuleLoadAnimationFunc propval) @propertySet `loadAnimation` field. Params: propval = loads an animation from a file.
GdkPixbufModuleSaveFunc save() @propertyGet `save` field. Returns: saves a [gdkpixbuf.pixbuf.Pixbuf] to a file.
void save(GdkPixbufModuleSaveFunc propval) @propertySet `save` field. Params: propval = saves a [gdkpixbuf.pixbuf.Pixbuf] to a file.
GdkPixbufModuleSaveOptionSupportedFunc isSaveOptionSupported() @propertyGet `isSaveOptionSupported` field. Returns: returns whether a save option key is supported by the module
void isSaveOptionSupported(GdkPixbufModuleSaveOptionSupportedFunc propval) @propertySet `isSaveOptionSupported` field. Params: propval = returns whether a save option key is supported by the module
Constructors
this(void * ptr, Flag!"Take" take)