<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Module Interface: GDK-PixBuf Reference Manual</title> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"> <link rel="home" href="index.html" title="GDK-PixBuf Reference Manual"> <link rel="up" href="rn01.html" title="API Reference"> <link rel="prev" href="GdkPixbufLoader.html" title="GdkPixbufLoader"> <link rel="next" href="gdk-pixbuf-gdk-pixbuf-Xlib-initialization.html" title="gdk-pixbuf Xlib initialization"> <meta name="generator" content="GTK-Doc V1.25.1 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> <td width="100%" align="left" class="shortcuts"> <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> <a href="#gdk-pixbuf-Module-Interface.description" class="shortcut">Description</a></span> </td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="u" href="rn01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="GdkPixbufLoader.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="gdk-pixbuf-gdk-pixbuf-Xlib-initialization.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gdk-pixbuf-Module-Interface"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="gdk-pixbuf-Module-Interface.top_of_page"></a>Module Interface</span></h2> <p>Module Interface — Extending GdkPixBuf</p> </td> <td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="gdk-pixbuf-Module-Interface.functions"></a><h2>Functions</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="functions_return"> <col class="functions_name"> </colgroup> <tbody> <tr> <td class="function_type"> <a href="../glib/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-get-formats" title="gdk_pixbuf_get_formats ()">gdk_pixbuf_get_formats</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="returnvalue">GdkPixbufFormat</span></a> * </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-copy" title="gdk_pixbuf_format_copy ()">gdk_pixbuf_format_copy</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-free" title="gdk_pixbuf_format_free ()">gdk_pixbuf_format_free</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-name" title="gdk_pixbuf_format_get_name ()">gdk_pixbuf_format_get_name</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-description" title="gdk_pixbuf_format_get_description ()">gdk_pixbuf_format_get_description</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-mime-types" title="gdk_pixbuf_format_get_mime_types ()">gdk_pixbuf_format_get_mime_types</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-extensions" title="gdk_pixbuf_format_get_extensions ()">gdk_pixbuf_format_get_extensions</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-is-save-option-supported" title="gdk_pixbuf_format_is_save_option_supported ()">gdk_pixbuf_format_is_save_option_supported</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-is-writable" title="gdk_pixbuf_format_is_writable ()">gdk_pixbuf_format_is_writable</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-is-scalable" title="gdk_pixbuf_format_is_scalable ()">gdk_pixbuf_format_is_scalable</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-is-disabled" title="gdk_pixbuf_format_is_disabled ()">gdk_pixbuf_format_is_disabled</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-set-disabled" title="gdk_pixbuf_format_set_disabled ()">gdk_pixbuf_format_set_disabled</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * </td> <td class="function_name"> <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-license" title="gdk_pixbuf_format_get_license ()">gdk_pixbuf_format_get_license</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillVtableFunc" title="GdkPixbufModuleFillVtableFunc ()">*GdkPixbufModuleFillVtableFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillInfoFunc" title="GdkPixbufModuleFillInfoFunc ()">*GdkPixbufModuleFillInfoFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleSizeFunc" title="GdkPixbufModuleSizeFunc ()">*GdkPixbufModuleSizeFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModulePreparedFunc" title="GdkPixbufModulePreparedFunc ()">*GdkPixbufModulePreparedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleUpdatedFunc" title="GdkPixbufModuleUpdatedFunc ()">*GdkPixbufModuleUpdatedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="gdk-pixbuf-Module-Interface.other"></a><h2>Types and Values</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="name"> <col class="description"> </colgroup> <tbody> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat">GdkPixbufFormat</a></td> </tr> <tr> <td class="datatype_keyword">enum</td> <td class="function_name"><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormatFlags" title="enum GdkPixbufFormatFlags">GdkPixbufFormatFlags</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModulePattern" title="struct GdkPixbufModulePattern">GdkPixbufModulePattern</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule">GdkPixbufModule</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufAnimationClass" title="struct GdkPixbufAnimationClass">GdkPixbufAnimationClass</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufAnimationIterClass" title="struct GdkPixbufAnimationIterClass">GdkPixbufAnimationIterClass</a></td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="gdk-pixbuf-Module-Interface.includes"></a><h2>Includes</h2> <pre class="synopsis">#include <gdk-pixbuf/gdk-pixbuf.h> </pre> </div> <div class="refsect1"> <a name="gdk-pixbuf-Module-Interface.description"></a><h2>Description</h2> <p>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. Each loadable module must export a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillInfoFunc" title="GdkPixbufModuleFillInfoFunc ()"><span class="type">GdkPixbufModuleFillInfoFunc</span></a> function named <code class="literal">fill_info</code> and a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillVtableFunc" title="GdkPixbufModuleFillVtableFunc ()"><span class="type">GdkPixbufModuleFillVtableFunc</span></a> function named <code class="literal">fill_vtable</code>.</p> <p>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 <code class="literal">fill_info</code> 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. </p> <p>Modules may only implement a subset of the functionality available via <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a>. If a particular functionality is not implemented, the <code class="literal">fill_vtable</code> function will simply not set the corresponding function pointers of the <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a> structure. If a module supports incremental loading (i.e. provides <span class="type">begin_load</span>, <span class="type">stop_load</span> and <span class="type">load_increment</span>), it doesn't have to implement <span class="type">load</span>, since GdkPixBuf can supply a generic <span class="type">load</span> implementation wrapping the incremental loading. </p> <p>Installing a module is a two-step process:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p>copy the module file(s) to the loader directory (normally <code class="literal">$libdir/gdk-pixbuf-2.0/$version/loaders</code>, unless overridden by the environment variable <code class="literal">GDK_PIXBUF_MODULEDIR</code>) </p></li> <li class="listitem"><p>call gdk-pixbuf-query-loaders to update the module file (normally <code class="literal">$libdir/gdk-pixbuf-2.0/$version/loaders.cache</code>, unless overridden by the environment variable <code class="literal">GDK_PIXBUF_MODULE_FILE</code>)</p></li> </ul></div> <p>The GdkPixBuf interfaces needed for implementing modules are contained in <code class="literal">gdk-pixbuf-io.h</code> (and <code class="literal">gdk-pixbuf-animation.h</code> 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 <code class="literal">#ifdef GDK_PIXBUF_ENABLE_BACKEND</code>.</p> </div> <div class="refsect1"> <a name="gdk-pixbuf-Module-Interface.functions_details"></a><h2>Functions</h2> <div class="refsect2"> <a name="gdk-pixbuf-get-formats"></a><h3>gdk_pixbuf_get_formats ()</h3> <pre class="programlisting"><a href="../glib/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * gdk_pixbuf_get_formats (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Obtains the available information about the image formats supported by GdkPixbuf.</p> <div class="refsect3"> <a name="gdk-pixbuf-get-formats.returns"></a><h4>Returns</h4> <p> A list of <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormats</span></a> describing the supported image formats. The list should be freed when it is no longer needed, but the structures themselves are owned by <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> and should not be freed. </p> <p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GdkPixbufFormat]</span></p> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-copy"></a><h3>gdk_pixbuf_format_copy ()</h3> <pre class="programlisting"><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="returnvalue">GdkPixbufFormat</span></a> * gdk_pixbuf_format_copy (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Creates a copy of <em class="parameter"><code>format</code></em> </p> <div class="refsect3"> <a name="gdk-pixbuf-format-copy.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-copy.returns"></a><h4>Returns</h4> <p> the newly allocated copy of a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>. Use <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-free" title="gdk_pixbuf_format_free ()"><code class="function">gdk_pixbuf_format_free()</code></a> to free the resources when done</p> </div> <p class="since">Since: 2.22</p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-free"></a><h3>gdk_pixbuf_format_free ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gdk_pixbuf_format_free (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Frees the resources allocated when copying a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> using <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-copy" title="gdk_pixbuf_format_copy ()"><code class="function">gdk_pixbuf_format_copy()</code></a></p> <div class="refsect3"> <a name="gdk-pixbuf-format-free.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <p class="since">Since: 2.22</p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-get-name"></a><h3>gdk_pixbuf_format_get_name ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gdk_pixbuf_format_get_name (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns the name of the format.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-get-name.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-get-name.returns"></a><h4>Returns</h4> <p> the name of the format. </p> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-get-description"></a><h3>gdk_pixbuf_format_get_description ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gdk_pixbuf_format_get_description (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns a description of the format.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-get-description.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-get-description.returns"></a><h4>Returns</h4> <p> a description of the format.</p> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-get-mime-types"></a><h3>gdk_pixbuf_format_get_mime_types ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** gdk_pixbuf_format_get_mime_types (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns the mime types supported by the format.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-get-mime-types.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-get-mime-types.returns"></a><h4>Returns</h4> <p> a <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of mime types which must be freed with <a href="../glib/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when it is no longer needed. </p> <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-get-extensions"></a><h3>gdk_pixbuf_format_get_extensions ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** gdk_pixbuf_format_get_extensions (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns the filename extensions typically used for files in the given format.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-get-extensions.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-get-extensions.returns"></a><h4>Returns</h4> <p> a <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of filename extensions which must be freed with <a href="../glib/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when it is no longer needed. </p> <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-is-save-option-supported"></a><h3>gdk_pixbuf_format_is_save_option_supported ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gdk_pixbuf_format_is_save_option_supported (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>, <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *option_key</code></em>);</pre> <p>Returns <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the save option specified by <em class="parameter"><code>option_key</code></em> is supported when saving a pixbuf using the module implementing <em class="parameter"><code>format</code></em> . See <a class="link" href="gdk-pixbuf-File-saving.html#gdk-pixbuf-save" title="gdk_pixbuf_save ()"><code class="function">gdk_pixbuf_save()</code></a> for more information about option keys.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-is-save-option-supported.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>option_key</p></td> <td class="parameter_description"><p>the name of an option</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-is-save-option-supported.returns"></a><h4>Returns</h4> <p> <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the specified option is supported</p> </div> <p class="since">Since: <a class="link" href="api-index-2-36.html#api-index-2.36">2.36</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-is-writable"></a><h3>gdk_pixbuf_format_is_writable ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gdk_pixbuf_format_is_writable (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns whether pixbufs can be saved in the given format.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-is-writable.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-is-writable.returns"></a><h4>Returns</h4> <p> whether pixbufs can be saved in the given format.</p> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-is-scalable"></a><h3>gdk_pixbuf_format_is_scalable ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gdk_pixbuf_format_is_scalable (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns whether this image format is scalable. If a file is in a scalable format, it is preferable to load it at the desired size, rather than loading it at the default size and scaling the resulting pixbuf to the desired size.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-is-scalable.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-is-scalable.returns"></a><h4>Returns</h4> <p> whether this image format is scalable.</p> </div> <p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-is-disabled"></a><h3>gdk_pixbuf_format_is_disabled ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gdk_pixbuf_format_is_disabled (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns whether this image format is disabled. See <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-set-disabled" title="gdk_pixbuf_format_set_disabled ()"><code class="function">gdk_pixbuf_format_set_disabled()</code></a>.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-is-disabled.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-is-disabled.returns"></a><h4>Returns</h4> <p> whether this image format is disabled.</p> </div> <p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-set-disabled"></a><h3>gdk_pixbuf_format_set_disabled ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gdk_pixbuf_format_set_disabled (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre> <p>Disables or enables an image format. If a format is disabled, gdk-pixbuf won't use the image loader for this format to load images. Applications can use this to avoid using image loaders with an inappropriate license, see <a class="link" href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-license" title="gdk_pixbuf_format_get_license ()"><code class="function">gdk_pixbuf_format_get_license()</code></a>.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-set-disabled.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>disabled</p></td> <td class="parameter_description"><p><a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to disable the format <em class="parameter"><code>format</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p> </div> <hr> <div class="refsect2"> <a name="gdk-pixbuf-format-get-license"></a><h3>gdk_pixbuf_format_get_license ()</h3> <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gdk_pixbuf_format_get_license (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *format</code></em>);</pre> <p>Returns information about the license of the image loader for the format. The returned string should be a shorthand for a wellknown license, e.g. "LGPL", "GPL", "QPL", "GPL/QPL", or "other" to indicate some other license. This string should be freed with <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when it's no longer needed.</p> <div class="refsect3"> <a name="gdk-pixbuf-format-get-license.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="gdk-pixbuf-format-get-license.returns"></a><h4>Returns</h4> <p> a string describing the license of <em class="parameter"><code>format</code></em> . </p> </div> <p class="since">Since: <a class="link" href="api-index-2-6.html#api-index-2.6">2.6</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufModuleFillVtableFunc"></a><h3>GdkPixbufModuleFillVtableFunc ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> <span class="c_punctuation">(</span>*GdkPixbufModuleFillVtableFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a> *module</code></em>);</pre> <p>Defines the type of the function used to set the vtable of a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a> when it is loaded.</p> <div class="refsect3"> <a name="GdkPixbufModuleFillVtableFunc.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>module</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a>.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufModuleFillInfoFunc"></a><h3>GdkPixbufModuleFillInfoFunc ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> <span class="c_punctuation">(</span>*GdkPixbufModuleFillInfoFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *info</code></em>);</pre> <p>Defines the type of the function used to fill a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> structure with information about a module.</p> <div class="refsect3"> <a name="GdkPixbufModuleFillInfoFunc.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>info</p></td> <td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufModuleSizeFunc"></a><h3>GdkPixbufModuleSizeFunc ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> <span class="c_punctuation">(</span>*GdkPixbufModuleSizeFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *width</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *height</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre> <p>Defines the type of the function that gets called once the size of the loaded image is known.</p> <p>The function is expected to set <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em> to the desired size to which the image should be scaled. If a module has no efficient way to achieve the desired scaling during the loading of the image, it may either ignore the size request, or only approximate it - gdk-pixbuf will then perform the required scaling on the completely loaded image. </p> <p>If the function sets <em class="parameter"><code>width</code></em> or <em class="parameter"><code>height</code></em> to zero, the module should interpret this as a hint that it will be closed soon and shouldn't allocate further resources. This convention is used to implement <a class="link" href="gdk-pixbuf-File-Loading.html#gdk-pixbuf-get-file-info" title="gdk_pixbuf_get_file_info ()"><code class="function">gdk_pixbuf_get_file_info()</code></a> efficiently.</p> <div class="refsect3"> <a name="GdkPixbufModuleSizeFunc.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>width</p></td> <td class="parameter_description"><p>pointer to a location containing the current image width</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>height</p></td> <td class="parameter_description"><p>pointer to a location containing the current image height</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>user_data</p></td> <td class="parameter_description"><p>the loader.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufModulePreparedFunc"></a><h3>GdkPixbufModulePreparedFunc ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> <span class="c_punctuation">(</span>*GdkPixbufModulePreparedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>, <em class="parameter"><code><a class="link" href="gdk-pixbuf-Animations.html#GdkPixbufAnimation"><span class="type">GdkPixbufAnimation</span></a> *anim</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre> <p>Defines the type of the function that gets called once the initial setup of <em class="parameter"><code>pixbuf</code></em> is done.</p> <p><a class="link" href="GdkPixbufLoader.html" title="GdkPixbufLoader"><span class="type">GdkPixbufLoader</span></a> uses a function of this type to emit the "<link linkend="GdkPixbufLoader-area-prepared">area_prepared</link>" signal.</p> <div class="refsect3"> <a name="GdkPixbufModulePreparedFunc.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>pixbuf</p></td> <td class="parameter_description"><p>the <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> that is currently being loaded.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>anim</p></td> <td class="parameter_description"><p>if an animation is being loaded, the <a class="link" href="gdk-pixbuf-Animations.html#GdkPixbufAnimation"><span class="type">GdkPixbufAnimation</span></a>, else <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>user_data</p></td> <td class="parameter_description"><p>the loader.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufModuleUpdatedFunc"></a><h3>GdkPixbufModuleUpdatedFunc ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> <span class="c_punctuation">(</span>*GdkPixbufModuleUpdatedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>, <em class="parameter"><code><span class="type">int</span> x</code></em>, <em class="parameter"><code><span class="type">int</span> y</code></em>, <em class="parameter"><code><span class="type">int</span> width</code></em>, <em class="parameter"><code><span class="type">int</span> height</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre> <p>Defines the type of the function that gets called every time a region of <em class="parameter"><code>pixbuf</code></em> is updated.</p> <p><a class="link" href="GdkPixbufLoader.html" title="GdkPixbufLoader"><span class="type">GdkPixbufLoader</span></a> uses a function of this type to emit the "<link linkend="GdkPixbufLoader-area-updated">area_updated</link>" signal.</p> <div class="refsect3"> <a name="GdkPixbufModuleUpdatedFunc.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>pixbuf</p></td> <td class="parameter_description"><p>the <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> that is currently being loaded.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>x</p></td> <td class="parameter_description"><p>the X origin of the updated area.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>y</p></td> <td class="parameter_description"><p>the Y origin of the updated area.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>width</p></td> <td class="parameter_description"><p>the width of the updated area.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>height</p></td> <td class="parameter_description"><p>the height of the updated area.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>user_data</p></td> <td class="parameter_description"><p>the loader.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> </div> <div class="refsect1"> <a name="gdk-pixbuf-Module-Interface.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GdkPixbufFormat"></a><h3>struct GdkPixbufFormat</h3> <pre class="programlisting">struct GdkPixbufFormat { gchar *name; GdkPixbufModulePattern *signature; gchar *domain; gchar *description; gchar **mime_types; gchar **extensions; guint32 flags; gboolean disabled; gchar *license; }; </pre> <p>A <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> contains information about the image format accepted by a module. Only modules should access the fields directly, applications should use the <function>gdk_pixbuf_format_*</function> functions.</p> <div class="refsect3"> <a name="GdkPixbufFormat.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GdkPixbufFormat.name"></a>name</code></em>;</p></td> <td class="struct_member_description"><p>the name of the image format.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModulePattern" title="struct GdkPixbufModulePattern"><span class="type">GdkPixbufModulePattern</span></a> *<em class="structfield"><code><a name="GdkPixbufFormat.signature"></a>signature</code></em>;</p></td> <td class="struct_member_description"><p>the signature of the module.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GdkPixbufFormat.domain"></a>domain</code></em>;</p></td> <td class="struct_member_description"><p>the message domain for the <em class="parameter"><code>description</code></em> .</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GdkPixbufFormat.description"></a>description</code></em>;</p></td> <td class="struct_member_description"><p>a description of the image format.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **<em class="structfield"><code><a name="GdkPixbufFormat.mime-types"></a>mime_types</code></em>;</p></td> <td class="struct_member_description"><p>a <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of MIME types for the image format.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **<em class="structfield"><code><a name="GdkPixbufFormat.extensions"></a>extensions</code></em>;</p></td> <td class="struct_member_description"><p>a <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of typical filename extensions for the image format.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkPixbufFormat.flags"></a>flags</code></em>;</p></td> <td class="struct_member_description"><p>a combination of <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormatFlags" title="enum GdkPixbufFormatFlags"><span class="type">GdkPixbufFormatFlags</span></a>.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GdkPixbufFormat.disabled"></a>disabled</code></em>;</p></td> <td class="struct_member_description"><p>a boolean determining whether the loader is disabled.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GdkPixbufFormat.license"></a>license</code></em>;</p></td> <td class="struct_member_description"><p>a string containing license information, typically set to shorthands like "GPL", "LGPL", etc.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufFormatFlags"></a><h3>enum GdkPixbufFormatFlags</h3> <p>Flags which allow a module to specify further details about the supported operations.</p> <div class="refsect3"> <a name="GdkPixbufFormatFlags.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="enum_members_name"> <col class="enum_members_description"> <col width="200px" class="enum_members_annotations"> </colgroup> <tbody> <tr> <td class="enum_member_name"><p><a name="GDK-PIXBUF-FORMAT-WRITABLE:CAPS"></a>GDK_PIXBUF_FORMAT_WRITABLE</p></td> <td class="enum_member_description"> <p>the module can write out images in the format.</p> </td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="GDK-PIXBUF-FORMAT-SCALABLE:CAPS"></a>GDK_PIXBUF_FORMAT_SCALABLE</p></td> <td class="enum_member_description"> <p>the image format is scalable</p> </td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="GDK-PIXBUF-FORMAT-THREADSAFE:CAPS"></a>GDK_PIXBUF_FORMAT_THREADSAFE</p></td> <td class="enum_member_description"> <p>the module is threadsafe. gdk-pixbuf ignores modules that are not marked as threadsafe. (Since 2.28).</p> </td> <td class="enum_member_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufModulePattern"></a><h3>struct GdkPixbufModulePattern</h3> <pre class="programlisting">struct GdkPixbufModulePattern { char *prefix; char *mask; int relevance; }; </pre> <p>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 <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, 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. Each prefix has an associated integer that describes the relevance of the prefix, with 0 meaning a mismatch and 100 a "perfect match".</p> <p>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'. </p> <p>The signature of a module is stored as an array of <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModulePattern"><span class="type">GdkPixbufModulePatterns</span></a>. The array is terminated by a pattern where the <em class="parameter"><code>prefix</code></em> is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p> <p><informalexample><programlisting> GdkPixbufModulePattern *signature[] = { { "abcdx", " !x z", 100 }, { "bla", NULL, 90 }, { NULL, NULL, 0 } }; </programlisting> The example matches e.g. "auud\0" with relevance 100, and "blau" with relevance 90.</informalexample></p> <div class="refsect3"> <a name="GdkPixbufModulePattern.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GdkPixbufModulePattern.prefix"></a>prefix</code></em>;</p></td> <td class="struct_member_description"><p>the prefix for this pattern</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GdkPixbufModulePattern.mask"></a>mask</code></em>;</p></td> <td class="struct_member_description"><p>mask containing bytes which modify how the prefix is matched against test data</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="GdkPixbufModulePattern.relevance"></a>relevance</code></em>;</p></td> <td class="struct_member_description"><p>relevance of this pattern</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p> </div> <hr> <div class="refsect2"> <a name="GdkPixbufModule"></a><h3>struct GdkPixbufModule</h3> <pre class="programlisting">struct GdkPixbufModule { char *module_name; char *module_path; GModule *module; GdkPixbufFormat *info; GdkPixbuf *(* load) (FILE *f, GError **error); GdkPixbuf *(* load_xpm_data) (const char **data); /* Incremental loading */ gpointer (* begin_load) (GdkPixbufModuleSizeFunc size_func, GdkPixbufModulePreparedFunc prepare_func, GdkPixbufModuleUpdatedFunc update_func, gpointer user_data, GError **error); gboolean (* stop_load) (gpointer context, GError **error); gboolean (* load_increment) (gpointer context, const guchar *buf, guint size, GError **error); /* Animation loading */ GdkPixbufAnimation *(* load_animation) (FILE *f, GError **error); /* Saving */ gboolean (* save) (FILE *f, GdkPixbuf *pixbuf, gchar **param_keys, gchar **param_values, GError **error); gboolean (*save_to_callback) (GdkPixbufSaveFunc save_func, gpointer user_data, GdkPixbuf *pixbuf, gchar **option_keys, gchar **option_values, GError **error); gboolean (* is_save_option_supported) (const gchar *option_key); }; </pre> <p>A <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a> contains the necessary functions to load and save images in a certain file format. </p> <p>A <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a> can be loaded dynamically from a <a href="../glib/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a>. Each loadable module must contain a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillVtableFunc" title="GdkPixbufModuleFillVtableFunc ()"><span class="type">GdkPixbufModuleFillVtableFunc</span></a> function named <function>fill_vtable</function>, which will get called when the module is loaded and must set the function pointers of the <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule" title="struct GdkPixbufModule"><span class="type">GdkPixbufModule</span></a>.</p> <div class="refsect3"> <a name="GdkPixbufModule.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GdkPixbufModule.module-name"></a>module_name</code></em>;</p></td> <td class="struct_member_description"><p>the name of the module, usually the same as the usual file extension for images of this type, eg. "xpm", "jpeg" or "png".</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GdkPixbufModule.module-path"></a>module_path</code></em>;</p></td> <td class="struct_member_description"><p>the path from which the module is loaded.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a> *<em class="structfield"><code><a name="GdkPixbufModule.module"></a>module</code></em>;</p></td> <td class="struct_member_description"><p>the loaded <a href="../glib/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a>.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> *<em class="structfield"><code><a name="GdkPixbufModule.info"></a>info</code></em>;</p></td> <td class="struct_member_description"><p>a <a class="link" href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat" title="struct GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> holding information about the module.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.load"></a>load</code></em> ()</p></td> <td class="struct_member_description"><p>loads an image from a file.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.load-xpm-data"></a>load_xpm_data</code></em> ()</p></td> <td class="struct_member_description"><p>loads an image from data in memory.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.begin-load"></a>begin_load</code></em> ()</p></td> <td class="struct_member_description"><p>begins an incremental load.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.stop-load"></a>stop_load</code></em> ()</p></td> <td class="struct_member_description"><p>stops an incremental load.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.load-increment"></a>load_increment</code></em> ()</p></td> <td class="struct_member_description"><p>continues an incremental load.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.load-animation"></a>load_animation</code></em> ()</p></td> <td class="struct_member_description"><p>loads an animation from a file.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.save"></a>save</code></em> ()</p></td> <td class="struct_member_description"><p>saves a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> to a file.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.save-to-callback"></a>save_to_callback</code></em> ()</p></td> <td class="struct_member_description"><p>saves a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> by calling the given <a class="link" href="gdk-pixbuf-File-saving.html#GdkPixbufSaveFunc" title="GdkPixbufSaveFunc ()"><span class="type">GdkPixbufSaveFunc</span></a>.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufModule.is-save-option-supported"></a>is_save_option_supported</code></em> ()</p></td> <td class="struct_member_description"><p>returns whether a save option key is supported by the module</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="GdkPixbufAnimationClass"></a><h3>struct GdkPixbufAnimationClass</h3> <pre class="programlisting">struct GdkPixbufAnimationClass { GObjectClass parent_class; gboolean (*is_static_image) (GdkPixbufAnimation *anim); GdkPixbuf* (*get_static_image) (GdkPixbufAnimation *anim); void (*get_size) (GdkPixbufAnimation *anim, int *width, int *height); GdkPixbufAnimationIter* (*get_iter) (GdkPixbufAnimation *anim, const GTimeVal *start_time); }; </pre> <p>Modules supporting animations must derive a type from <a class="link" href="gdk-pixbuf-Animations.html#GdkPixbufAnimation"><span class="type">GdkPixbufAnimation</span></a>, providing suitable implementations of the virtual functions.</p> <div class="refsect3"> <a name="GdkPixbufAnimationClass.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationClass.is-static-image"></a>is_static_image</code></em> ()</p></td> <td class="struct_member_description"><p>returns whether the given animation is just a static image.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationClass.get-static-image"></a>get_static_image</code></em> ()</p></td> <td class="struct_member_description"><p>returns a static image representing the given animation.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationClass.get-size"></a>get_size</code></em> ()</p></td> <td class="struct_member_description"><p>fills <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em> with the frame size of the animation.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationClass.get-iter"></a>get_iter</code></em> ()</p></td> <td class="struct_member_description"><p>returns an iterator for the given animation.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="GdkPixbufAnimationIterClass"></a><h3>struct GdkPixbufAnimationIterClass</h3> <pre class="programlisting">struct GdkPixbufAnimationIterClass { GObjectClass parent_class; int (*get_delay_time) (GdkPixbufAnimationIter *iter); GdkPixbuf* (*get_pixbuf) (GdkPixbufAnimationIter *iter); gboolean (*on_currently_loading_frame) (GdkPixbufAnimationIter *iter); gboolean (*advance) (GdkPixbufAnimationIter *iter, const GTimeVal *current_time); }; </pre> <p>Modules supporting animations must derive a type from <a class="link" href="gdk-pixbuf-Animations.html#GdkPixbufAnimationIter"><span class="type">GdkPixbufAnimationIter</span></a>, providing suitable implementations of the virtual functions.</p> <div class="refsect3"> <a name="GdkPixbufAnimationIterClass.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationIterClass.get-delay-time"></a>get_delay_time</code></em> ()</p></td> <td class="struct_member_description"><p>returns the time in milliseconds that the current frame should be shown.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationIterClass.get-pixbuf"></a>get_pixbuf</code></em> ()</p></td> <td class="struct_member_description"><p>returns the current frame.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationIterClass.on-currently-loading-frame"></a>on_currently_loading_frame</code></em> ()</p></td> <td class="struct_member_description"><p>returns whether the current frame of <em class="parameter"><code>iter</code></em> is being loaded.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="GdkPixbufAnimationIterClass.advance"></a>advance</code></em> ()</p></td> <td class="struct_member_description"><p>advances the iterator to <em class="parameter"><code>current_time</code></em> , possibly changing the current frame.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.25.1</div> </body> </html>