File: //usr/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Module-Interface.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Module Interface</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="index.html" title="The gdk-pixbuf Library">
<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-init.html" title="gdk-pixbuf Xlib initialization">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="reference" href="rn01.html" title="API Reference">
<link rel="reference" href="rn02.html" title="Tools Reference">
<link rel="index" href="ix01.html" title="Index">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="appendix" href="apa.html" title="Appendix A. Porting applications from Imlib to gdk-pixbuf">
<link rel="appendix" href="license.html" title="Appendix B. License">
</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="2">
<tr valign="middle">
<td><a accesskey="p" href="GdkPixbufLoader.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="rn01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">The <span class="application">gdk-pixbuf</span> Library</th>
<td><a accesskey="n" href="gdk-pixbuf-gdk-pixbuf-xlib-init.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3129553" class="shortcut">Top</a>
 | 
<a href="#id3130074" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="gdk-pixbuf-Module-Interface"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id3129553"></a><span class="refentrytitle">Module Interface</span>
</h2>
<p>Module Interface — Extending <span class="application">gdk-pixbuf</span></p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">
#include <gdk-pixbuf/gdk-pixbuf.h>
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-set-option">gdk_pixbuf_set_option</a> (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *key,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *value);
<a
href="../glib/glib-Singly-Linked-Lists.html#GSList"
>GSList</a>* <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-get-formats">gdk_pixbuf_get_formats</a> (void);
<a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-name">gdk_pixbuf_format_get_name</a> (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
<a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-description">gdk_pixbuf_format_get_description</a>
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
<a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>** <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-mime-types">gdk_pixbuf_format_get_mime_types</a>
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
<a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>** <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-extensions">gdk_pixbuf_format_get_extensions</a>
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-is-writable">gdk_pixbuf_format_is_writable</a> (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-is-scalable">gdk_pixbuf_format_is_scalable</a> (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-is-disabled">gdk_pixbuf_format_is_disabled</a> (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
void <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-set-disabled">gdk_pixbuf_format_set_disabled</a> (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format,
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> disabled);
<a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* <a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-license">gdk_pixbuf_format_get_license</a> (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a>;
enum <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormatFlags">GdkPixbufFormatFlags</a>;
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModulePattern">GdkPixbufModulePattern</a>;
void (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillVtableFunc">*GdkPixbufModuleFillVtableFunc</a>)
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule">GdkPixbufModule</a> *module);
void (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillInfoFunc">*GdkPixbufModuleFillInfoFunc</a>) (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *info);
void (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleSizeFunc">*GdkPixbufModuleSizeFunc</a>) (<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> *width,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> *height,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModulePreparedFunc">*GdkPixbufModulePreparedFunc</a>) (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
<a href="gdk-pixbuf-animation.html#GdkPixbufAnimation">GdkPixbufAnimation</a> *anim,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleUpdatedFunc">*GdkPixbufModuleUpdatedFunc</a>) (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
int x,
int y,
int width,
int height,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule">GdkPixbufModule</a>;
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufAnimationClass">GdkPixbufAnimationClass</a>;
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufAnimationIterClass">GdkPixbufAnimationIterClass</a>;
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id3130074"></a><h2>Description</h2>
<p>
If <span class="application">gdk-pixbuf</span> 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 href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillInfoFunc"><span class="type">GdkPixbufModuleFillInfoFunc</span></a> function named <code class="function">fill_info</code> and
a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillVtableFunc"><span class="type">GdkPixbufModuleFillVtableFunc</span></a> function named
<code class="function">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="function">fill_info</code>
function. An external utility, <span><strong class="command">gdk-pixbuf-query-loaders</strong></span>,
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 <span class="application">gdk-pixbuf</span> to obtain
the list of available loaders and their signatures.
</p>
<p>
Modules may only implement a subset of the functionality available via
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule"><span class="type">GdkPixbufModule</span></a>. If a particular functionality is not implemented, the
<code class="function">fill_vtable</code> function will simply not set the corresponding
function pointers of the <a href="gdk-pixbuf-Module-Interface.html#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 <span class="application">gdk-pixbuf</span> 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 type="disc">
<li><p>copy the module file(s) to the loader directory (normally
<code class="filename"><em class="replaceable"><code>libdir</code></em>/gtk-2.0/<em class="replaceable"><code>version</code></em>/loaders</code>,
unless overridden by the environment variable
<code class="envar">GDK_PIXBUF_MODULEDIR</code>)
</p></li>
<li><p>call <span><strong class="command">gdk-pixbuf-query-loaders</strong></span> to update the
module file (normally
<code class="filename"><em class="replaceable"><code>sysconfdir</code></em>/gtk-2.0/gdk-pixbuf.loaders</code>,
unless overridden by the environment variable
<code class="envar">GDK_PIXBUF_MODULE_FILE</code>)
</p></li>
</ul></div>
<p>
</p>
<p>
The <span class="application">gdk-pixbuf</span> interfaces needed for implementing modules are contained in
<code class="filename">gdk-pixbuf-io.h</code> (and
<code class="filename">gdk-pixbuf-animation.h</code> if the module supports animations).
They are not covered by the same stability guarantees as the regular
<span class="application">gdk-pixbuf</span> API. To underline this fact, they are protected by
<code class="literal"><span class="type">ifdef</span> GDK_PIXBUF_ENABLE_BACKEND</code>.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id3130336"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id3130346"></a><h3>
<a name="gdk-pixbuf-set-option"></a>gdk_pixbuf_set_option ()</h3>
<a class="indexterm" name="id3130361"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gdk_pixbuf_set_option (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *key,
const <a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *value);</pre>
<p>
Attaches a key/value pair as an option to a <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>. If <code class="literal">key</code> already
exists in the list of options attached to <em class="parameter"><code>pixbuf</code></em>, the new value is
ignored and <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> is returned.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>key</code></em> :</span></td>
<td> a nul-terminated string.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>value</code></em> :</span></td>
<td> a nul-terminated string.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> on success.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3130523"></a><h3>
<a name="gdk-pixbuf-get-formats"></a>gdk_pixbuf_get_formats ()</h3>
<a class="indexterm" name="id3130539"></a><pre class="programlisting"><a
href="../glib/glib-Singly-Linked-Lists.html#GSList"
>GSList</a>* gdk_pixbuf_get_formats (void);</pre>
<p>
Obtains the available information about the image formats supported
by GdkPixbuf.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> A list of <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>s describing the supported
image formats. The list should be freed when it is no longer needed,
but the structures themselves are owned by <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> and should not be
freed.
</td>
</tr></tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3130604"></a><h3>
<a name="gdk-pixbuf-format-get-name"></a>gdk_pixbuf_format_get_name ()</h3>
<a class="indexterm" name="id3130620"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* gdk_pixbuf_format_get_name (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</pre>
<p>
Returns the name of the format.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the name of the format.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3130693"></a><h3>
<a name="gdk-pixbuf-format-get-description"></a>gdk_pixbuf_format_get_description ()</h3>
<a class="indexterm" name="id3130709"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* gdk_pixbuf_format_get_description
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</pre>
<p>
Returns a description of the format.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> a description of the format.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3130783"></a><h3>
<a name="gdk-pixbuf-format-get-mime-types"></a>gdk_pixbuf_format_get_mime_types ()</h3>
<a class="indexterm" name="id3130799"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>** gdk_pixbuf_format_get_mime_types
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</pre>
<p>
Returns the mime types supported by the format.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> 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.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3130897"></a><h3>
<a name="gdk-pixbuf-format-get-extensions"></a>gdk_pixbuf_format_get_extensions ()</h3>
<a class="indexterm" name="id3130912"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>** gdk_pixbuf_format_get_extensions
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</pre>
<p>
Returns the filename extensions typically used for files in the
given format.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> 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.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131009"></a><h3>
<a name="gdk-pixbuf-format-is-writable"></a>gdk_pixbuf_format_is_writable ()</h3>
<a class="indexterm" name="id3131024"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gdk_pixbuf_format_is_writable (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</pre>
<p>
Returns whether pixbufs can be saved in the given format.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> whether pixbufs can be saved in the given format.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131099"></a><h3>
<a name="gdk-pixbuf-format-is-scalable"></a>gdk_pixbuf_format_is_scalable ()</h3>
<a class="indexterm" name="id3131115"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gdk_pixbuf_format_is_scalable (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</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>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> whether this image format is scalable.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131192"></a><h3>
<a name="gdk-pixbuf-format-is-disabled"></a>gdk_pixbuf_format_is_disabled ()</h3>
<a class="indexterm" name="id3131208"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> gdk_pixbuf_format_is_disabled (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</pre>
<p>
Returns whether this image format is disabled. See
<a href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-set-disabled"><code class="function">gdk_pixbuf_format_set_disabled()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> whether this image format is disabled.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131294"></a><h3>
<a name="gdk-pixbuf-format-set-disabled"></a>gdk_pixbuf_format_set_disabled ()</h3>
<a class="indexterm" name="id3131309"></a><pre class="programlisting">void gdk_pixbuf_format_set_disabled (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format,
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> disabled);</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 href="gdk-pixbuf-Module-Interface.html#gdk-pixbuf-format-get-license"><code class="function">gdk_pixbuf_format_get_license()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>disabled</code></em> :</span></td>
<td> <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>
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131424"></a><h3>
<a name="gdk-pixbuf-format-get-license"></a>gdk_pixbuf_format_get_license ()</h3>
<a class="indexterm" name="id3131440"></a><pre class="programlisting"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a>* gdk_pixbuf_format_get_license (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *format);</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>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>format</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> a string describing the license of <em class="parameter"><code>format</code></em>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131535"></a><h3>
<a name="GdkPixbufFormat"></a>GdkPixbufFormat</h3>
<a class="indexterm" name="id3131550"></a><pre class="programlisting">typedef struct {
gchar *name;
GdkPixbufModulePattern *signature;
gchar *domain;
gchar *description;
gchar **mime_types;
gchar **extensions;
guint32 flags;
gboolean disabled;
gchar *license;
} GdkPixbufFormat;
</pre>
<p>
A <a href="gdk-pixbuf-Module-Interface.html#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 <code class="function">gdk_pixbuf_format_*</code> functions.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *<em class="structfield"><code>name</code></em>;</span></td>
<td>the name of the image format.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModulePattern">GdkPixbufModulePattern</a> *<em class="structfield"><code>signature</code></em>;</span></td>
<td>the signature of the module.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *<em class="structfield"><code>domain</code></em>;</span></td>
<td>the message domain for the <em class="parameter"><code>description</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *<em class="structfield"><code>description</code></em>;</span></td>
<td>a description of the image format.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> **<em class="structfield"><code>mime_types</code></em>;</span></td>
<td>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.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> **<em class="structfield"><code>extensions</code></em>;</span></td>
<td>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.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>flags</code></em>;</span></td>
<td>a combination of <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormatFlags"><span class="type">GdkPixbufFormatFlags</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <em class="structfield"><code>disabled</code></em>;</span></td>
<td>a boolean determining whether the loader is disabled.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *<em class="structfield"><code>license</code></em>;</span></td>
<td>a string containing license information, typically set to
shorthands like "GPL", "LGPL", etc.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131818"></a><h3>
<a name="GdkPixbufFormatFlags"></a>enum GdkPixbufFormatFlags</h3>
<a class="indexterm" name="id3131834"></a><pre class="programlisting">typedef enum /*< skip >*/
{
GDK_PIXBUF_FORMAT_WRITABLE = 1 << 0,
GDK_PIXBUF_FORMAT_SCALABLE = 1 << 1,
GDK_PIXBUF_FORMAT_THREADSAFE = 1 << 2
} GdkPixbufFormatFlags;
</pre>
<p>
Flags which allow a module to specify further details about the supported
operations.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-PIXBUF-FORMAT-WRITABLE:CAPS"></a><code class="literal">GDK_PIXBUF_FORMAT_WRITABLE</code></span></td>
<td>the module can write out images in the format.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-PIXBUF-FORMAT-SCALABLE:CAPS"></a><code class="literal">GDK_PIXBUF_FORMAT_SCALABLE</code></span></td>
<td>the image format is scalable
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-PIXBUF-FORMAT-THREADSAFE:CAPS"></a><code class="literal">GDK_PIXBUF_FORMAT_THREADSAFE</code></span></td>
<td>the module is threadsafe. If this flag is not
set, <span class="application">gdk-pixbuf</span> will use a lock to prevent multiple threads from using
this module at the same time. (Since 2.6)
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3131942"></a><h3>
<a name="GdkPixbufModulePattern"></a>GdkPixbufModulePattern</h3>
<a class="indexterm" name="id3131957"></a><pre class="programlisting">typedef struct {
char *prefix;
char *mask;
int relevance;
} GdkPixbufModulePattern;
</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 <span class="application">gdk-pixbuf</span> 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">GdkPixbufModulePattern</span></a>s. 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>
<div class="informalexample">
<pre class="programlisting">
GdkPixbufModulePattern *signature[] = {
{ "abcdx", " !x z", 100 },
{ "bla", NULL, 90 },
{ NULL, NULL, 0 }
};
</pre>
The example matches e.g. "auud\0" with relevance 100, and "blau" with
relevance 90.</div>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term">char *<em class="structfield"><code>prefix</code></em>;</span></td>
<td>the prefix for this pattern
</td>
</tr>
<tr>
<td>
<span class="term">char *<em class="structfield"><code>mask</code></em>;</span></td>
<td>mask containing bytes which modify how the prefix is matched against
test data
</td>
</tr>
<tr>
<td>
<span class="term">int <em class="structfield"><code>relevance</code></em>;</span></td>
<td>relevance of this pattern
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3132118"></a><h3>
<a name="GdkPixbufModuleFillVtableFunc"></a>GdkPixbufModuleFillVtableFunc ()</h3>
<a class="indexterm" name="id3132134"></a><pre class="programlisting">void (*GdkPixbufModuleFillVtableFunc)
(<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule">GdkPixbufModule</a> *module);</pre>
<p>
Defines the type of the function used to set the vtable of a
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule"><span class="type">GdkPixbufModule</span></a> when it is loaded.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><em class="parameter"><code>module</code></em> :</span></td>
<td>a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule"><span class="type">GdkPixbufModule</span></a>.
</td>
</tr></tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3132204"></a><h3>
<a name="GdkPixbufModuleFillInfoFunc"></a>GdkPixbufModuleFillInfoFunc ()</h3>
<a class="indexterm" name="id3132220"></a><pre class="programlisting">void (*GdkPixbufModuleFillInfoFunc) (<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *info);</pre>
<p>
Defines the type of the function used to fill a
<a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> structure with information about a module.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><em class="parameter"><code>info</code></em> :</span></td>
<td>a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a>.
</td>
</tr></tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3132288"></a><h3>
<a name="GdkPixbufModuleSizeFunc"></a>GdkPixbufModuleSizeFunc ()</h3>
<a class="indexterm" name="id3132303"></a><pre class="programlisting">void (*GdkPixbufModuleSizeFunc) (<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> *width,
<a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> *height,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</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 -- <span class="application">gdk-pixbuf</span> 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 href="gdk-pixbuf-file-loading.html#gdk-pixbuf-get-file-info"><code class="function">gdk_pixbuf_get_file_info()</code></a>
efficiently.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>width</code></em> :</span></td>
<td>pointer to a location containing the current image width
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>height</code></em> :</span></td>
<td>pointer to a location containing the current image height
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td>the loader.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3132456"></a><h3>
<a name="GdkPixbufModulePreparedFunc"></a>GdkPixbufModulePreparedFunc ()</h3>
<a class="indexterm" name="id3132473"></a><pre class="programlisting">void (*GdkPixbufModulePreparedFunc) (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
<a href="gdk-pixbuf-animation.html#GdkPixbufAnimation">GdkPixbufAnimation</a> *anim,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</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 href="GdkPixbufLoader.html" title="GdkPixbufLoader"><span class="type">GdkPixbufLoader</span></a> uses a function of this type to emit the
"<a href="GdkPixbufLoader.html#GdkPixbufLoader-area-prepared">area_prepared</a>"
signal.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></td>
<td>the <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> that is currently being loaded.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>anim</code></em> :</span></td>
<td>if an animation is being loaded, the <a href="gdk-pixbuf-animation.html#GdkPixbufAnimation"><span class="type">GdkPixbufAnimation</span></a>, else <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td>the loader.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3132622"></a><h3>
<a name="GdkPixbufModuleUpdatedFunc"></a>GdkPixbufModuleUpdatedFunc ()</h3>
<a class="indexterm" name="id3132637"></a><pre class="programlisting">void (*GdkPixbufModuleUpdatedFunc) (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
int x,
int y,
int width,
int height,
<a
href="../glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</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 href="GdkPixbufLoader.html" title="GdkPixbufLoader"><span class="type">GdkPixbufLoader</span></a> uses a function of this type to emit the
"<a href="GdkPixbufLoader.html#GdkPixbufLoader-area-updated">area_updated</a>"
signal.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></td>
<td>the <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> that is currently being loaded.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>x</code></em> :</span></td>
<td>the X origin of the updated area.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>y</code></em> :</span></td>
<td>the Y origin of the updated area.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>width</code></em> :</span></td>
<td>the width of the updated area.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>height</code></em> :</span></td>
<td>the height of the updated area.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td>the loader.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3132830"></a><h3>
<a name="GdkPixbufModule"></a>GdkPixbufModule</h3>
<a class="indexterm" name="id3132842"></a><pre class="programlisting">typedef struct {
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);
} GdkPixbufModule;
</pre>
<p>
A <a href="gdk-pixbuf-Module-Interface.html#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 href="gdk-pixbuf-Module-Interface.html#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 href="gdk-pixbuf-Module-Interface.html#GdkPixbufModuleFillVtableFunc"><span class="type">GdkPixbufModuleFillVtableFunc</span></a> function
named <code class="function">fill_vtable</code>, which will get called when the module
is loaded and must set the function pointers of the <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufModule"><span class="type">GdkPixbufModule</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term">char *<em class="structfield"><code>module_name</code></em>;</span></td>
<td>the name of the module, usually the same as the
usual file extension for images of this type, eg. "xpm", "jpeg" or "png".
</td>
</tr>
<tr>
<td>
<span class="term">char *<em class="structfield"><code>module_path</code></em>;</span></td>
<td>the path from which the module is loaded.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Dynamic-Loading-of-Modules.html#GModule"
>GModule</a> *<em class="structfield"><code>module</code></em>;</span></td>
<td>the loaded <a
href="../glib/glib-Dynamic-Loading-of-Modules.html#GModule"
><span class="type">GModule</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat">GdkPixbufFormat</a> *<em class="structfield"><code>info</code></em>;</span></td>
<td>a <a href="gdk-pixbuf-Module-Interface.html#GdkPixbufFormat"><span class="type">GdkPixbufFormat</span></a> holding information about the module.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>load</code></em> ()</span></td>
<td>loads an image from a file.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>load_xpm_data</code></em> ()</span></td>
<td>loads an image from data in memory.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>begin_load</code></em> ()</span></td>
<td>begins an incremental load.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>stop_load</code></em> ()</span></td>
<td>stops an incremental load.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>load_increment</code></em> ()</span></td>
<td>continues an incremental load.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>load_animation</code></em> ()</span></td>
<td>loads an animation from a file.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>save</code></em> ()</span></td>
<td>saves a <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> to a file.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>save_to_callback</code></em> ()</span></td>
<td>saves a <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> by calling the given <a href="gdk-pixbuf-file-saving.html#GdkPixbufSaveFunc"><span class="type">GdkPixbufSaveFunc</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3133208"></a><h3>
<a name="GdkPixbufAnimationClass"></a>GdkPixbufAnimationClass</h3>
<a class="indexterm" name="id3133221"></a><pre class="programlisting">typedef struct {
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);
} GdkPixbufAnimationClass;
</pre>
<p>
Modules supporting animations must derive a type from
<a href="gdk-pixbuf-animation.html#GdkPixbufAnimation"><span class="type">GdkPixbufAnimation</span></a>, providing suitable implementations of the
virtual functions.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a
href="../gobject/gobject-The-Base-Object-Type.html#GObjectClass"
>GObjectClass</a> <em class="structfield"><code>parent_class</code></em>;</span></td>
<td>the parent class
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>is_static_image</code></em> ()</span></td>
<td>returns whether the given animation is just a static image.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>get_static_image</code></em> ()</span></td>
<td>returns a static image representing the given animation.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>get_size</code></em> ()</span></td>
<td>fills <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em> with the frame size of the animation.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>get_iter</code></em> ()</span></td>
<td>returns an iterator for the given animation.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3133353"></a><h3>
<a name="GdkPixbufAnimationIterClass"></a>GdkPixbufAnimationIterClass</h3>
<a class="indexterm" name="id3133366"></a><pre class="programlisting">typedef struct {
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);
} GdkPixbufAnimationIterClass;
</pre>
<p>
Modules supporting animations must derive a type from
<a href="gdk-pixbuf-animation.html#GdkPixbufAnimationIter"><span class="type">GdkPixbufAnimationIter</span></a>, providing suitable implementations of the
virtual functions.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a
href="../gobject/gobject-The-Base-Object-Type.html#GObjectClass"
>GObjectClass</a> <em class="structfield"><code>parent_class</code></em>;</span></td>
<td>the parent class
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>get_delay_time</code></em> ()</span></td>
<td>returns the time in milliseconds that the current frame
should be shown.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>get_pixbuf</code></em> ()</span></td>
<td>returns the current frame.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>on_currently_loading_frame</code></em> ()</span></td>
<td>returns whether the current frame of <em class="parameter"><code>iter</code></em> is
being loaded.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="structfield"><code>advance</code></em> ()</span></td>
<td>advances the iterator to <em class="parameter"><code>current_time</code></em>, possibly changing the
current frame.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</body>
</html>