PixbufModuleProtocol
public protocol PixbufModuleProtocol
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 variableGDK_PIXBUF_MODULEDIR) - call
gdk-pixbuf-query-loadersto update the module file (normally$libdir/gdk-pixbuf-2.0/$version/loaders.cache, unless overridden by the environment variableGDK_PIXBUF_MODULE_FILE)
The PixbufModuleProtocol protocol exposes the methods and properties of an underlying GdkPixbufModule instance.
The default implementation of these can be found in the protocol extension below.
For a concrete class that implements these methods and properties, see PixbufModule.
Alternatively, use PixbufModuleRef as a lighweight, unowned reference if you already have an instance you just want to use.
-
Untyped pointer to the underlying
GdkPixbufModuleinstance.Declaration
Swift
var ptr: UnsafeMutableRawPointer! { get } -
_ptrDefault implementationTyped pointer to the underlying
GdkPixbufModuleinstance.Default Implementation
Return the stored, untyped pointer as a typed pointer to the
GdkPixbufModuleinstance.Declaration
Swift
var _ptr: UnsafeMutablePointer<GdkPixbufModule>! { get } -
Required Initialiser for types conforming to
PixbufModuleProtocolDeclaration
Swift
init(raw: UnsafeMutableRawPointer)
-
moduleNameExtension methodthe name of the module, usually the same as the usual file extension for images of this type, eg. “xpm”, “jpeg” or “png”.
Declaration
Swift
@inlinable var moduleName: UnsafeMutablePointer<CChar>! { get set } -
modulePathExtension methodthe path from which the module is loaded.
Declaration
Swift
@inlinable var modulePath: UnsafeMutablePointer<CChar>! { get set } -
moduleExtension methodthe loaded
GModule.Declaration
Swift
@inlinable var module: ModuleRef! { get set } -
infoExtension methoda
GdkPixbufFormatholding information about the module.Declaration
Swift
@inlinable var info: PixbufFormatRef! { get set } -
loadExtension methodloads an image from a file.
Declaration
Swift
@inlinable var load: GdkPixbufModuleLoadFunc! { get set } -
loadXpmDataExtension methodloads an image from data in memory.
Declaration
Swift
@inlinable var loadXpmData: GdkPixbufModuleLoadXpmDataFunc! { get set } -
beginLoadExtension methodbegins an incremental load.
Declaration
Swift
@inlinable var beginLoad: GdkPixbufModuleBeginLoadFunc! { get set } -
stopLoadExtension methodstops an incremental load.
Declaration
Swift
@inlinable var stopLoad: GdkPixbufModuleStopLoadFunc! { get set } -
loadIncrementExtension methodcontinues an incremental load.
Declaration
Swift
@inlinable var loadIncrement: GdkPixbufModuleIncrementLoadFunc! { get set } -
loadAnimationExtension methodloads an animation from a file.
Declaration
Swift
@inlinable var loadAnimation: GdkPixbufModuleLoadAnimationFunc! { get set } -
saveExtension methodsaves a
GdkPixbufto a file.Declaration
Swift
@inlinable var save: GdkPixbufModuleSaveFunc! { get set } -
saveToCallbackExtension methodsaves a
GdkPixbufby calling the givenGdkPixbufSaveFunc.Declaration
Swift
@inlinable var saveToCallback: GdkPixbufModuleSaveCallbackFunc! { get set } -
isSaveOptionSupportedExtension methodreturns whether a save option key is supported by the module
Declaration
Swift
@inlinable var isSaveOptionSupported: GdkPixbufModuleSaveOptionSupportedFunc! { get set }
View on GitHub
Install in Dash
PixbufModuleProtocol Protocol Reference