PixbufModule

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)

Constructors

this
this(void* ptr, Flag!"Take" take)

Members

Functions

cPtr
void* cPtr()

Properties

info
gdkpixbuf.pixbuf_format.PixbufFormat info [@property getter]

Get info field.

info
gdkpixbuf.pixbuf_format.PixbufFormat info [@property setter]

Set info field.

isSaveOptionSupported
GdkPixbufModuleSaveOptionSupportedFunc isSaveOptionSupported [@property setter]

Set isSaveOptionSupported field.

isSaveOptionSupported
GdkPixbufModuleSaveOptionSupportedFunc isSaveOptionSupported [@property getter]

Get isSaveOptionSupported field.

load
GdkPixbufModuleLoadFunc load [@property getter]

Get load field.

load
GdkPixbufModuleLoadFunc load [@property setter]

Set load field.

loadAnimation
GdkPixbufModuleLoadAnimationFunc loadAnimation [@property getter]

Get loadAnimation field.

loadAnimation
GdkPixbufModuleLoadAnimationFunc loadAnimation [@property setter]

Set loadAnimation field.

loadIncrement
GdkPixbufModuleIncrementLoadFunc loadIncrement [@property getter]

Get loadIncrement field.

loadIncrement
GdkPixbufModuleIncrementLoadFunc loadIncrement [@property setter]

Set loadIncrement field.

loadXpmData
GdkPixbufModuleLoadXpmDataFunc loadXpmData [@property getter]

Get loadXpmData field.

loadXpmData
GdkPixbufModuleLoadXpmDataFunc loadXpmData [@property setter]

Set loadXpmData field.

moduleName
string moduleName [@property getter]

Get moduleName field.

moduleName
string moduleName [@property setter]

Set moduleName field.

modulePath
string modulePath [@property getter]

Get modulePath field.

modulePath
string modulePath [@property setter]

Set modulePath field.

module_
gmodule.module_.Module module_ [@property getter]

Get module_ field.

save
GdkPixbufModuleSaveFunc save [@property getter]

Get save field.

save
GdkPixbufModuleSaveFunc save [@property setter]

Set save field.

stopLoad
GdkPixbufModuleStopLoadFunc stopLoad [@property getter]

Get stopLoad field.

stopLoad
GdkPixbufModuleStopLoadFunc stopLoad [@property setter]

Set stopLoad field.