Hoogle Search
Within LTS Haskell 24.40 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
module GI.GdkPixbuf.Structs.
PixbufModule A GdkPixbufModule contains the necessary functions to load and save images in a certain file format. If GdkPixbuf has been compiled with GModule support, it can be extended by modules which can load (and perhaps also save) new image and animation formats.
Implementing modules
The GdkPixbuf 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 GdkPixbufModuleFillVtableFunc function named fill_vtable, which will get called when the module is loaded and must set the function pointers of the GdkPixbufModule. 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 to obtain the list of available loaders and their signatures. Modules may only implement a subset of the functionality available via GdkPixbufModule. If a particular functionality is not implemented, the fill_vtable function will simply not set the corresponding function pointers of the GdkPixbufModule 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 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)
-
gi-gdkpixbuf GI.GdkPixbuf.Structs.PixbufModule Memory-managed wrapper type.
PixbufModule :: ManagedPtr PixbufModule -> PixbufModulegi-gdkpixbuf GI.GdkPixbuf.Structs.PixbufModule No documentation available.
module GI.GdkPixbuf.Structs.
PixbufModulePattern The signature prefix for a module. The signature of a module is a set of prefixes. Prefixes are encoded as pairs of ordinary strings, where the second string, called the mask, if not NULL, must be of the same length as the first one and may contain ' ', '!', 'x', 'z', and 'n' to indicate bytes that must be matched, not matched, "don't-care"-bytes, zeros and non-zeros, respectively. Each prefix has an associated integer that describes the relevance of the prefix, with 0 meaning a mismatch and 100 a "perfect match". Starting with gdk-pixbuf 2.8, the first byte of the mask may be '*', indicating an unanchored pattern that matches not only at the beginning, but also in the middle. Versions prior to 2.8 will interpret the '*' like an 'x'. The signature of a module is stored as an array of GdkPixbufModulePatterns. The array is terminated by a pattern where the prefix is NULL.
c code
GdkPixbufModulePattern *signature[] = { { "abcdx", " !x z", 100 }, { "bla", NULL, 90 }, { NULL, NULL, 0 } };In the example above, the signature matches e.g. "auud\0" with relevance 100, and "blau" with relevance 90. Since: 2.2-
gi-gdkpixbuf GI.GdkPixbuf.Structs.PixbufModulePattern Memory-managed wrapper type.
PixbufModulePattern :: ManagedPtr PixbufModulePattern -> PixbufModulePatterngi-gdkpixbuf GI.GdkPixbuf.Structs.PixbufModulePattern No documentation available.
class Functor f =>
Phantom (f :: Type -> Type)lens-family Lens.Family2 No documentation available.
-
lens-family Lens.Family2 No documentation available.
-
lens-family Lens.Family2 No documentation available.
-
lens-family Lens.Family2.Unchecked No documentation available.