GdkPixbuf: Reimport from git aa4dfd1e9

This commit is contained in:
Marijn Suijten
2021-01-05 22:03:57 +01:00
parent 22a2303eb5
commit 55374e92fb

View File

@@ -359,13 +359,13 @@ interpolation is just as fast and results in higher quality.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="PIXBUF_MICRO" value="0" c:type="GDK_PIXBUF_MICRO">
<constant name="PIXBUF_MICRO" value="3" c:type="GDK_PIXBUF_MICRO">
<doc xml:space="preserve">Micro version of gdk-pixbuf library, that is the "2" in
"0.8.2" for example.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="PIXBUF_MINOR" value="40" c:type="GDK_PIXBUF_MINOR">
<constant name="PIXBUF_MINOR" value="42" c:type="GDK_PIXBUF_MINOR">
<doc xml:space="preserve">Minor version of gdk-pixbuf library, that is the "8" in
"0.8.2" for example.</doc>
@@ -392,7 +392,7 @@ interpolation is just as fast and results in higher quality.</doc>
</parameter>
</parameters>
</function-macro>
<constant name="PIXBUF_VERSION" value="2.40.0" c:type="GDK_PIXBUF_VERSION">
<constant name="PIXBUF_VERSION" value="2.42.3" c:type="GDK_PIXBUF_VERSION">
<doc xml:space="preserve">Contains the full version of the gdk-pixbuf header as a string.
This is the version being compiled against; contrast with
#gdk_pixbuf_version.</doc>
@@ -2534,7 +2534,7 @@ be at least as large as the width of the pixbuf.</doc>
<type name="gint" c:type="gint"/>
</property>
</class>
<enumeration name="PixbufAlphaMode" glib:type-name="GdkPixbufAlphaMode" glib:get-type="gdk_pixbuf_alpha_mode_get_type" c:type="GdkPixbufAlphaMode">
<enumeration name="PixbufAlphaMode" deprecated="1" glib:type-name="GdkPixbufAlphaMode" glib:get-type="gdk_pixbuf_alpha_mode_get_type" c:type="GdkPixbufAlphaMode">
<doc xml:space="preserve">These values can be passed to
gdk_pixbuf_xlib_render_to_drawable_alpha() to control how the alpha
channel of an image should be handled. This function can create a
@@ -2543,6 +2543,7 @@ the image. In the future, when the X Window System gets an alpha
channel extension, it will be possible to do full alpha
compositing onto arbitrary drawables. For now both cases fall
back to a bilevel clipping mask.</doc>
<doc-deprecated xml:space="preserve">it is unused since 2.42.</doc-deprecated>
<member name="bilevel" value="0" c:identifier="GDK_PIXBUF_ALPHA_BILEVEL" glib:nick="bilevel">
<doc xml:space="preserve">A bilevel clipping mask (black and white)
will be created and used to draw the image. Pixels below 0.5 opacity
@@ -2554,8 +2555,9 @@ back to a bilevel clipping mask.</doc>
In the future it will do full alpha compositing.</doc>
</member>
</enumeration>
<class name="PixbufAnimation" c:symbol-prefix="pixbuf_animation" c:type="GdkPixbufAnimation" parent="GObject.Object" glib:type-name="GdkPixbufAnimation" glib:get-type="gdk_pixbuf_animation_get_type">
<class name="PixbufAnimation" c:symbol-prefix="pixbuf_animation" c:type="GdkPixbufAnimation" parent="GObject.Object" glib:type-name="GdkPixbufAnimation" glib:get-type="gdk_pixbuf_animation_get_type" glib:type-struct="PixbufAnimationClass">
<doc xml:space="preserve">An opaque struct representing an animation.</doc>
<constructor name="new_from_file" c:identifier="gdk_pixbuf_animation_new_from_file" throws="1">
<doc xml:space="preserve">Creates a new animation by loading it from a file. The file format is
detected automatically. If the file's format does not support multi-frame
@@ -2674,6 +2676,109 @@ result of the operation.</doc>
</parameter>
</parameters>
</function>
<virtual-method name="get_iter" invoker="get_iter">
<doc xml:space="preserve">Get an iterator for displaying an animation. The iterator provides
the frames that should be displayed at a given time. It should be
freed after use with g_object_unref().
@start_time would normally come from g_get_current_time(), and marks
the beginning of animation playback. After creating an iterator, you
should immediately display the pixbuf returned by
gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install
a timeout (with g_timeout_add()) or by some other mechanism ensure
that you'll update the image after
gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time
the image is updated, you should reinstall the timeout with the new,
possibly-changed delay time.
As a shortcut, if @start_time is %NULL, the result of
g_get_current_time() will be used automatically.
To update the image (i.e. possibly change the result of
gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
call gdk_pixbuf_animation_iter_advance().
If you're using #GdkPixbufLoader, in addition to updating the image
after the delay time, you should also update it whenever you
receive the area_updated signal and
gdk_pixbuf_animation_iter_on_currently_loading_frame() returns
%TRUE. In this case, the frame currently being fed into the loader
has received new data, so needs to be refreshed. The delay time for
a frame may also be modified after an area_updated signal, for
example if the delay time for a frame is encoded in the data after
the frame itself. So your timeout should be reinstalled after any
area_updated signal.
A delay time of -1 is possible, indicating "infinite."</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">an iterator to move over the animation</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</return-value>
<parameters>
<instance-parameter name="animation" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimation</doc>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</instance-parameter>
<parameter name="start_time" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">time when the animation starts playing</doc>
<type name="GLib.TimeVal" c:type="const GTimeVal*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="get_size">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="animation" transfer-ownership="none">
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</instance-parameter>
<parameter name="width" transfer-ownership="none">
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="get_static_image" invoker="get_static_image">
<doc xml:space="preserve">If an animation is really just a plain image (has only one frame),
this function returns that image. If the animation is an animation,
this function returns a reasonable thing to display as a static
unanimated image, which might be the first frame, or something more
sophisticated. If an animation hasn't loaded any frames yet, this
function will return %NULL.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">unanimated image representing the animation</doc>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<instance-parameter name="animation" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimation</doc>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="is_static_image" invoker="is_static_image">
<doc xml:space="preserve">If you load a file with gdk_pixbuf_animation_new_from_file() and it
turns out to be a plain, unanimated image, then this function will
return %TRUE. Use gdk_pixbuf_animation_get_static_image() to retrieve
the image.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the "animation" was really just an image</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="animation" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimation</doc>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</instance-parameter>
</parameters>
</virtual-method>
<method name="get_height" c:identifier="gdk_pixbuf_animation_get_height">
<doc xml:space="preserve">Queries the height of the bounding box of a pixbuf animation.</doc>
@@ -2817,10 +2922,191 @@ the image.</doc>
</instance-parameter>
</parameters>
</method>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
</class>
<class name="PixbufAnimationIter" c:symbol-prefix="pixbuf_animation_iter" c:type="GdkPixbufAnimationIter" parent="GObject.Object" glib:type-name="GdkPixbufAnimationIter" glib:get-type="gdk_pixbuf_animation_iter_get_type">
<record name="PixbufAnimationClass" c:type="GdkPixbufAnimationClass" glib:is-gtype-struct-for="PixbufAnimation">
<doc xml:space="preserve">Modules supporting animations must derive a type from
#GdkPixbufAnimation, providing suitable implementations of the
virtual functions.</doc>
<field name="parent_class">
<doc xml:space="preserve">the parent class</doc>
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="is_static_image">
<callback name="is_static_image">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the "animation" was really just an image</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="animation" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimation</doc>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_static_image">
<callback name="get_static_image">
<return-value transfer-ownership="none">
<doc xml:space="preserve">unanimated image representing the animation</doc>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="animation" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimation</doc>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_size">
<callback name="get_size">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="animation" transfer-ownership="none">
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_iter">
<callback name="get_iter">
<return-value transfer-ownership="full">
<doc xml:space="preserve">an iterator to move over the animation</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</return-value>
<parameters>
<parameter name="animation" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimation</doc>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</parameter>
<parameter name="start_time" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">time when the animation starts playing</doc>
<type name="GLib.TimeVal" c:type="const GTimeVal*"/>
</parameter>
</parameters>
</callback>
</field>
</record>
<class name="PixbufAnimationIter" c:symbol-prefix="pixbuf_animation_iter" c:type="GdkPixbufAnimationIter" parent="GObject.Object" glib:type-name="GdkPixbufAnimationIter" glib:get-type="gdk_pixbuf_animation_iter_get_type" glib:type-struct="PixbufAnimationIterClass">
<doc xml:space="preserve">An opaque struct representing an iterator which points to a
certain position in an animation.</doc>
<virtual-method name="advance" invoker="advance">
<doc xml:space="preserve">Possibly advances an animation to a new frame. Chooses the frame based
on the start time passed to gdk_pixbuf_animation_get_iter().
@current_time would normally come from g_get_current_time(), and
must be greater than or equal to the time passed to
gdk_pixbuf_animation_get_iter(), and must increase or remain
unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is
called. That is, you can't go backward in time; animations only
play forward.
As a shortcut, pass %NULL for the current time and g_get_current_time()
will be invoked on your behalf. So you only need to explicitly pass
@current_time if you're doing something odd like playing the animation
at double speed.
If this function returns %FALSE, there's no need to update the animation
display, assuming the display had been rendered prior to advancing;
if %TRUE, you need to call gdk_pixbuf_animation_iter_get_pixbuf()
and update the display with the new pixbuf.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the image may need updating</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimationIter</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</instance-parameter>
<parameter name="current_time" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">current time</doc>
<type name="GLib.TimeVal" c:type="const GTimeVal*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="get_delay_time" invoker="get_delay_time">
<doc xml:space="preserve">Gets the number of milliseconds the current pixbuf should be displayed,
or -1 if the current pixbuf should be displayed forever. g_timeout_add()
conveniently takes a timeout in milliseconds, so you can use a timeout
to schedule the next update.
Note that some formats, like GIF, might clamp the timeout values in the
image file to avoid updates that are just too quick. The minimum timeout
for GIF images is currently 20 milliseconds.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">delay time in milliseconds (thousandths of a second)</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">an animation iterator</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_pixbuf" invoker="get_pixbuf">
<doc xml:space="preserve">Gets the current pixbuf which should be displayed; the pixbuf might not
be the same size as the animation itself
(gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()).
This pixbuf should be displayed for
gdk_pixbuf_animation_iter_get_delay_time() milliseconds. The caller
of this function does not own a reference to the returned pixbuf;
the returned pixbuf will become invalid when the iterator advances
to the next frame, which may happen anytime you call
gdk_pixbuf_animation_iter_advance(). Copy the pixbuf to keep it
(don't just add a reference), as it may get recycled as you advance
the iterator.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the pixbuf to be displayed</doc>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<instance-parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">an animation iterator</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="on_currently_loading_frame" invoker="on_currently_loading_frame">
<doc xml:space="preserve">Used to determine how to respond to the area_updated signal on
#GdkPixbufLoader when loading an animation. area_updated is emitted
for an area of the frame currently streaming in to the loader. So if
you're on the currently loading frame, you need to redraw the screen for
the updated area.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the frame we're on is partially loaded, or the last frame</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimationIter</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</instance-parameter>
</parameters>
</virtual-method>
<method name="advance" c:identifier="gdk_pixbuf_animation_iter_advance">
<doc xml:space="preserve">Possibly advances an animation to a new frame. Chooses the frame based
on the start time passed to gdk_pixbuf_animation_get_iter().
@@ -2920,7 +3206,84 @@ the updated area.</doc>
</instance-parameter>
</parameters>
</method>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
</class>
<record name="PixbufAnimationIterClass" c:type="GdkPixbufAnimationIterClass" glib:is-gtype-struct-for="PixbufAnimationIter">
<doc xml:space="preserve">Modules supporting animations must derive a type from
#GdkPixbufAnimationIter, providing suitable implementations of the
virtual functions.</doc>
<field name="parent_class">
<doc xml:space="preserve">the parent class</doc>
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="get_delay_time">
<callback name="get_delay_time">
<return-value transfer-ownership="none">
<doc xml:space="preserve">delay time in milliseconds (thousandths of a second)</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">an animation iterator</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_pixbuf">
<callback name="get_pixbuf">
<return-value transfer-ownership="none">
<doc xml:space="preserve">the pixbuf to be displayed</doc>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">an animation iterator</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="on_currently_loading_frame">
<callback name="on_currently_loading_frame">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the frame we're on is partially loaded, or the last frame</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimationIter</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="advance">
<callback name="advance">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the image may need updating</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="iter" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufAnimationIter</doc>
<type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
</parameter>
<parameter name="current_time" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">current time</doc>
<type name="GLib.TimeVal" c:type="const GTimeVal*"/>
</parameter>
</parameters>
</callback>
</field>
</record>
<callback name="PixbufDestroyNotify" c:type="GdkPixbufDestroyNotify">
<doc xml:space="preserve">A function of this type is responsible for freeing the pixel array
of a pixbuf. The gdk_pixbuf_new_from_data() function lets you
@@ -2978,8 +3341,49 @@ domain.</doc>
</return-value>
</function>
</enumeration>
<record name="PixbufFormat" c:type="GdkPixbufFormat" glib:type-name="GdkPixbufFormat" glib:get-type="gdk_pixbuf_format_get_type" c:symbol-prefix="pixbuf_format">
<record name="PixbufFormat" c:type="GdkPixbufFormat" version="2.2" glib:type-name="GdkPixbufFormat" glib:get-type="gdk_pixbuf_format_get_type" c:symbol-prefix="pixbuf_format">
<doc xml:space="preserve">A #GdkPixbufFormat contains information about the image format accepted by a
module. Only modules should access the fields directly, applications should
use the &lt;function&gt;gdk_pixbuf_format_*&lt;/function&gt; functions.</doc>
<field name="name" writable="1">
<doc xml:space="preserve">the name of the image format.</doc>
<type name="utf8" c:type="gchar*"/>
</field>
<field name="signature" writable="1">
<doc xml:space="preserve">the signature of the module.</doc>
<type name="PixbufModulePattern" c:type="GdkPixbufModulePattern*"/>
</field>
<field name="domain" writable="1">
<doc xml:space="preserve">the message domain for the @description.</doc>
<type name="utf8" c:type="gchar*"/>
</field>
<field name="description" writable="1">
<doc xml:space="preserve">a description of the image format.</doc>
<type name="utf8" c:type="gchar*"/>
</field>
<field name="mime_types" writable="1">
<doc xml:space="preserve">a %NULL-terminated array of MIME types for the image format.</doc>
<type name="utf8" c:type="gchar**"/>
</field>
<field name="extensions" writable="1">
<doc xml:space="preserve">a %NULL-terminated array of typical filename extensions for the
image format.</doc>
<type name="utf8" c:type="gchar**"/>
</field>
<field name="flags" writable="1">
<doc xml:space="preserve">a combination of #GdkPixbufFormatFlags.</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="disabled" writable="1">
<doc xml:space="preserve">a boolean determining whether the loader is disabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</field>
<field name="license" writable="1">
<doc xml:space="preserve">a string containing license information, typically set to
shorthands like "GPL", "LGPL", etc.</doc>
<type name="utf8" c:type="gchar*"/>
</field>
<method name="copy" c:identifier="gdk_pixbuf_format_copy" version="2.22">
<doc xml:space="preserve">Creates a copy of @format</doc>
@@ -3176,6 +3580,21 @@ with an inappropriate license, see gdk_pixbuf_format_get_license().</doc>
</parameters>
</method>
</record>
<bitfield name="PixbufFormatFlags" version="2.2" c:type="GdkPixbufFormatFlags">
<doc xml:space="preserve">Flags which allow a module to specify further details about the supported
operations.</doc>
<member name="writable" value="1" c:identifier="GDK_PIXBUF_FORMAT_WRITABLE">
<doc xml:space="preserve">the module can write out images in the format.</doc>
</member>
<member name="scalable" value="2" c:identifier="GDK_PIXBUF_FORMAT_SCALABLE">
<doc xml:space="preserve">the image format is scalable</doc>
</member>
<member name="threadsafe" value="4" c:identifier="GDK_PIXBUF_FORMAT_THREADSAFE">
<doc xml:space="preserve">the module is threadsafe. gdk-pixbuf
ignores modules that are not marked as threadsafe. (Since 2.28).</doc>
</member>
</bitfield>
<class name="PixbufLoader" c:symbol-prefix="pixbuf_loader" c:type="GdkPixbufLoader" parent="GObject.Object" glib:type-name="GdkPixbufLoader" glib:get-type="gdk_pixbuf_loader_get_type" glib:type-struct="PixbufLoaderClass">
<doc xml:space="preserve">The GdkPixbufLoader struct contains only private
fields.</doc>
@@ -3620,6 +4039,399 @@ the desired size to which the image should be scaled.</doc>
</callback>
</field>
</record>
<record name="PixbufModule" c:type="GdkPixbufModule">
<doc xml:space="preserve">A #GdkPixbufModule contains the necessary functions to load and save
images in a certain file format.
A #GdkPixbufModule can be loaded dynamically from a #GModule.
Each loadable module must contain a #GdkPixbufModuleFillVtableFunc function
named &lt;function&gt;fill_vtable&lt;/function&gt;, which will get called when the module
is loaded and must set the function pointers of the #GdkPixbufModule.</doc>
<field name="module_name" writable="1">
<doc xml:space="preserve">the name of the module, usually the same as the
usual file extension for images of this type, eg. "xpm", "jpeg" or "png".</doc>
<type name="utf8" c:type="char*"/>
</field>
<field name="module_path" writable="1">
<doc xml:space="preserve">the path from which the module is loaded.</doc>
<type name="utf8" c:type="char*"/>
</field>
<field name="module" writable="1">
<doc xml:space="preserve">the loaded #GModule.</doc>
<type name="gpointer" c:type="gpointer"/>
</field>
<field name="info" writable="1">
<doc xml:space="preserve">a #GdkPixbufFormat holding information about the module.</doc>
<type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
</field>
<field name="load" introspectable="0">
<callback name="load" introspectable="0" throws="1">
<return-value>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="f" transfer-ownership="none">
<type name="gpointer" c:type="FILE*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="load_xpm_data" introspectable="0">
<callback name="load_xpm_data" introspectable="0">
<return-value>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="data" transfer-ownership="none">
<type name="utf8" c:type="const char**"/>
</parameter>
</parameters>
</callback>
</field>
<field name="begin_load" introspectable="0">
<callback name="begin_load" introspectable="0" throws="1">
<return-value transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<parameter name="size_func" transfer-ownership="none">
<type name="PixbufModuleSizeFunc" c:type="GdkPixbufModuleSizeFunc"/>
</parameter>
<parameter name="prepared_func" transfer-ownership="none">
<type name="PixbufModulePreparedFunc" c:type="GdkPixbufModulePreparedFunc"/>
</parameter>
<parameter name="updated_func" transfer-ownership="none" closure="3">
<type name="PixbufModuleUpdatedFunc" c:type="GdkPixbufModuleUpdatedFunc"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
</field>
<field name="stop_load">
<callback name="stop_load" throws="1">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
</field>
<field name="load_increment">
<callback name="load_increment" throws="1">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="buf" transfer-ownership="none">
<type name="guint8" c:type="const guchar*"/>
</parameter>
<parameter name="size" transfer-ownership="none">
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</callback>
</field>
<field name="load_animation" introspectable="0">
<callback name="load_animation" introspectable="0" throws="1">
<return-value>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</return-value>
<parameters>
<parameter name="f" transfer-ownership="none">
<type name="gpointer" c:type="FILE*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="save">
<callback name="save" throws="1">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="f" transfer-ownership="none">
<type name="gpointer" c:type="FILE*"/>
</parameter>
<parameter name="pixbuf" transfer-ownership="none">
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</parameter>
<parameter name="param_keys" transfer-ownership="none">
<type name="utf8" c:type="gchar**"/>
</parameter>
<parameter name="param_values" transfer-ownership="none">
<type name="utf8" c:type="gchar**"/>
</parameter>
</parameters>
</callback>
</field>
<field name="save_to_callback" introspectable="0">
<callback name="save_to_callback" introspectable="0" throws="1">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="save_func" transfer-ownership="none" closure="1">
<type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="pixbuf" transfer-ownership="none">
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</parameter>
<parameter name="option_keys" transfer-ownership="none">
<type name="utf8" c:type="gchar**"/>
</parameter>
<parameter name="option_values" transfer-ownership="none">
<type name="utf8" c:type="gchar**"/>
</parameter>
</parameters>
</callback>
</field>
<field name="is_save_option_supported">
<callback name="is_save_option_supported">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="option_key" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="_reserved1" introspectable="0">
<callback name="_reserved1">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</callback>
</field>
<field name="_reserved2" introspectable="0">
<callback name="_reserved2">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</callback>
</field>
<field name="_reserved3" introspectable="0">
<callback name="_reserved3">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</callback>
</field>
<field name="_reserved4" introspectable="0">
<callback name="_reserved4">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</callback>
</field>
</record>
<callback name="PixbufModuleFillInfoFunc" c:type="GdkPixbufModuleFillInfoFunc" version="2.2">
<doc xml:space="preserve">Defines the type of the function used to fill a
#GdkPixbufFormat structure with information about a module.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="info" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufFormat.</doc>
<type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
</parameter>
</parameters>
</callback>
<callback name="PixbufModuleFillVtableFunc" c:type="GdkPixbufModuleFillVtableFunc" version="2.2">
<doc xml:space="preserve">Defines the type of the function used to set the vtable of a
#GdkPixbufModule when it is loaded.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="module" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixbufModule.</doc>
<type name="PixbufModule" c:type="GdkPixbufModule*"/>
</parameter>
</parameters>
</callback>
<record name="PixbufModulePattern" c:type="GdkPixbufModulePattern" version="2.2">
<doc xml:space="preserve">The signature of a module is a set of prefixes. Prefixes are encoded as
pairs of ordinary strings, where the second string, called the mask, if
not %NULL, must be of the same length as the first one and may contain
' ', '!', 'x', 'z', and 'n' to indicate bytes that must be matched,
not matched, "don't-care"-bytes, zeros and non-zeros.
Each prefix has an associated integer that describes the relevance of
the prefix, with 0 meaning a mismatch and 100 a "perfect match".
Starting with gdk-pixbuf 2.8, the first byte of the mask may be '*',
indicating an unanchored pattern that matches not only at the beginning,
but also in the middle. Versions prior to 2.8 will interpret the '*'
like an 'x'.
The signature of a module is stored as an array of
#GdkPixbufModulePatterns. The array is terminated by a pattern
where the @prefix is %NULL.
&lt;informalexample&gt;&lt;programlisting&gt;
GdkPixbufModulePattern *signature[] = {
{ "abcdx", " !x z", 100 },
{ "bla", NULL, 90 },
{ NULL, NULL, 0 }
};
&lt;/programlisting&gt;
The example matches e.g. "auud\0" with relevance 100, and "blau" with
relevance 90.&lt;/informalexample&gt;</doc>
<field name="prefix" writable="1">
<doc xml:space="preserve">the prefix for this pattern</doc>
<type name="utf8" c:type="char*"/>
</field>
<field name="mask" writable="1">
<doc xml:space="preserve">mask containing bytes which modify how the prefix is matched against
test data</doc>
<type name="utf8" c:type="char*"/>
</field>
<field name="relevance" writable="1">
<doc xml:space="preserve">relevance of this pattern</doc>
<type name="gint" c:type="int"/>
</field>
</record>
<callback name="PixbufModulePreparedFunc" c:type="GdkPixbufModulePreparedFunc" version="2.2">
<doc xml:space="preserve">Defines the type of the function that gets called once the initial
setup of @pixbuf is done.
#GdkPixbufLoader uses a function of this type to emit the
"&lt;link linkend="GdkPixbufLoader-area-prepared"&gt;area_prepared&lt;/link&gt;"
signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="pixbuf" transfer-ownership="none">
<doc xml:space="preserve">the #GdkPixbuf that is currently being loaded.</doc>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</parameter>
<parameter name="anim" transfer-ownership="none">
<doc xml:space="preserve">if an animation is being loaded, the #GdkPixbufAnimation, else %NULL.</doc>
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
<doc xml:space="preserve">the loader.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="PixbufModuleSizeFunc" c:type="GdkPixbufModuleSizeFunc" version="2.2">
<doc xml:space="preserve">Defines the type of the function that gets called once the size
of the loaded image is known.
The function is expected to set @width and @height 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.
If the function sets @width or @height 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 gdk_pixbuf_get_file_info()
efficiently.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">pointer to a location containing the current image width</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">pointer to a location containing the current image height</doc>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
<doc xml:space="preserve">the loader.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="PixbufModuleUpdatedFunc" c:type="GdkPixbufModuleUpdatedFunc" version="2.2">
<doc xml:space="preserve">Defines the type of the function that gets called every time a region
of @pixbuf is updated.
#GdkPixbufLoader uses a function of this type to emit the
"&lt;link linkend="GdkPixbufLoader-area-updated"&gt;area_updated&lt;/link&gt;"
signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="pixbuf" transfer-ownership="none">
<doc xml:space="preserve">the #GdkPixbuf that is currently being loaded.</doc>
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve">the X origin of the updated area.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve">the Y origin of the updated area.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">the width of the updated area.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">the height of the updated area.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="5">
<doc xml:space="preserve">the loader.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<class name="PixbufNonAnim" c:symbol-prefix="pixbuf_non_anim" parent="PixbufAnimation" glib:type-name="GdkPixbufNonAnim" glib:get-type="gdk_pixbuf_non_anim_get_type">
<constructor name="new" c:identifier="gdk_pixbuf_non_anim_new">
<return-value transfer-ownership="full">
<type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
</return-value>
<parameters>
<parameter name="pixbuf" transfer-ownership="none">
<type name="Pixbuf" c:type="GdkPixbuf*"/>
</parameter>
</parameters>
</constructor>
</class>
<enumeration name="PixbufRotation" glib:type-name="GdkPixbufRotation" glib:get-type="gdk_pixbuf_rotation_get_type" c:type="GdkPixbufRotation">
<doc xml:space="preserve">The possible rotations which can be passed to gdk_pixbuf_rotate_simple().
To make them easier to use, their numerical values are the actual degrees.</doc>