v0.2.2 9100209

GdkPixbuf-2.0.gir RawHistoryFolder

1<?xml version="1.0"?>
2<!-- This file was automatically generated from C sources - DO NOT EDIT!
3To affect the contents of this file, edit the original C definitions,
4and/or use gtk-doc annotations.  -->
5<repository version="1.2"
6            xmlns="http://www.gtk.org/introspection/core/1.0"
7            xmlns:c="http://www.gtk.org/introspection/c/1.0"
8            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
9            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
10  <include name="GModule" version="2.0"/>
11  <include name="Gio" version="2.0"/>
12  <package name="gdk-pixbuf-2.0"/>
13  <c:include name="gdk-pixbuf/gdk-pixbuf.h"/>
14  <doc:format name="unknown"/>
15  <namespace name="GdkPixbuf"
16             version="2.0"
17             shared-library="libgdk_pixbuf-2.0.so.0"
18             c:identifier-prefixes="Gdk"
19             c:symbol-prefixes="gdk">
20    <enumeration name="Colorspace"
21                 glib:type-name="GdkColorspace"
22                 glib:get-type="gdk_colorspace_get_type"
23                 c:type="GdkColorspace">
24      <doc xml:space="preserve"
25           filename="gdk-pixbuf/gdk-pixbuf-core.h"
26           line="71">This enumeration defines the color spaces that are supported by
27the gdk-pixbuf library.
28
29Currently only RGB is supported.</doc>
30      <member name="rgb"
31              value="0"
32              c:identifier="GDK_COLORSPACE_RGB"
33              glib:nick="rgb"
34              glib:name="GDK_COLORSPACE_RGB">
35        <doc xml:space="preserve"
36             filename="gdk-pixbuf/gdk-pixbuf-core.h"
37             line="73">Indicates a red/green/blue additive color space.</doc>
38      </member>
39    </enumeration>
40    <function-macro name="IS_PIXBUF"
41                    c:identifier="GDK_IS_PIXBUF"
42                    introspectable="0">
43      <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="93"/>
44      <parameters>
45        <parameter name="object">
46        </parameter>
47      </parameters>
48    </function-macro>
49    <function-macro name="IS_PIXBUF_ANIMATION"
50                    c:identifier="GDK_IS_PIXBUF_ANIMATION"
51                    introspectable="0">
52      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="46"/>
53      <parameters>
54        <parameter name="object">
55        </parameter>
56      </parameters>
57    </function-macro>
58    <function-macro name="IS_PIXBUF_ANIMATION_CLASS"
59                    c:identifier="GDK_IS_PIXBUF_ANIMATION_CLASS"
60                    introspectable="0">
61      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
62                       line="135"/>
63      <parameters>
64        <parameter name="klass">
65        </parameter>
66      </parameters>
67    </function-macro>
68    <function-macro name="IS_PIXBUF_ANIMATION_ITER"
69                    c:identifier="GDK_IS_PIXBUF_ANIMATION_ITER"
70                    introspectable="0">
71      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="50"/>
72      <parameters>
73        <parameter name="object">
74        </parameter>
75      </parameters>
76    </function-macro>
77    <function-macro name="IS_PIXBUF_ANIMATION_ITER_CLASS"
78                    c:identifier="GDK_IS_PIXBUF_ANIMATION_ITER_CLASS"
79                    introspectable="0">
80      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
81                       line="183"/>
82      <parameters>
83        <parameter name="klass">
84        </parameter>
85      </parameters>
86    </function-macro>
87    <function-macro name="IS_PIXBUF_LOADER"
88                    c:identifier="GDK_IS_PIXBUF_LOADER"
89                    introspectable="0">
90      <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="42"/>
91      <parameters>
92        <parameter name="obj">
93        </parameter>
94      </parameters>
95    </function-macro>
96    <function-macro name="IS_PIXBUF_LOADER_CLASS"
97                    c:identifier="GDK_IS_PIXBUF_LOADER_CLASS"
98                    introspectable="0">
99      <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="43"/>
100      <parameters>
101        <parameter name="klass">
102        </parameter>
103      </parameters>
104    </function-macro>
105    <function-macro name="IS_PIXBUF_NON_ANIM"
106                    c:identifier="GDK_IS_PIXBUF_NON_ANIM"
107                    introspectable="0">
108      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
109                       line="210"/>
110      <parameters>
111        <parameter name="object">
112        </parameter>
113      </parameters>
114    </function-macro>
115    <function-macro name="IS_PIXBUF_SIMPLE_ANIM"
116                    c:identifier="GDK_IS_PIXBUF_SIMPLE_ANIM"
117                    introspectable="0">
118      <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
119                       line="43"/>
120      <parameters>
121        <parameter name="object">
122        </parameter>
123      </parameters>
124    </function-macro>
125    <function-macro name="IS_PIXBUF_SIMPLE_ANIM_CLASS"
126                    c:identifier="GDK_IS_PIXBUF_SIMPLE_ANIM_CLASS"
127                    introspectable="0">
128      <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
129                       line="46"/>
130      <parameters>
131        <parameter name="klass">
132        </parameter>
133      </parameters>
134    </function-macro>
135    <enumeration name="InterpType"
136                 glib:type-name="GdkInterpType"
137                 glib:get-type="gdk_interp_type_get_type"
138                 c:type="GdkInterpType">
139      <doc xml:space="preserve"
140           filename="gdk-pixbuf/gdk-pixbuf-transform.h"
141           line="39">Interpolation modes for scaling functions.
142
143The `GDK_INTERP_NEAREST` mode is the fastest scaling method, but has
144horrible quality when scaling down; `GDK_INTERP_BILINEAR` is the best
145choice if you aren't sure what to choose, it has a good speed/quality
146balance.
147
148**Note**: Cubic filtering is missing from the list; hyperbolic
149interpolation is just as fast and results in higher quality.</doc>
150      <member name="nearest"
151              value="0"
152              c:identifier="GDK_INTERP_NEAREST"
153              glib:nick="nearest"
154              glib:name="GDK_INTERP_NEAREST">
155        <doc xml:space="preserve"
156             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
157             line="41">Nearest neighbor sampling; this is the fastest
158 and lowest quality mode. Quality is normally unacceptable when scaling
159 down, but may be OK when scaling up.</doc>
160      </member>
161      <member name="tiles"
162              value="1"
163              c:identifier="GDK_INTERP_TILES"
164              glib:nick="tiles"
165              glib:name="GDK_INTERP_TILES">
166        <doc xml:space="preserve"
167             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
168             line="44">This is an accurate simulation of the PostScript
169 image operator without any interpolation enabled.  Each pixel is
170 rendered as a tiny parallelogram of solid color, the edges of which
171 are implemented with antialiasing.  It resembles nearest neighbor for
172 enlargement, and bilinear for reduction.</doc>
173      </member>
174      <member name="bilinear"
175              value="2"
176              c:identifier="GDK_INTERP_BILINEAR"
177              glib:nick="bilinear"
178              glib:name="GDK_INTERP_BILINEAR">
179        <doc xml:space="preserve"
180             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
181             line="49">Best quality/speed balance; use this mode by
182 default. Bilinear interpolation.  For enlargement, it is
183 equivalent to point-sampling the ideal bilinear-interpolated image.
184 For reduction, it is equivalent to laying down small tiles and
185 integrating over the coverage area.</doc>
186      </member>
187      <member name="hyper"
188              value="3"
189              c:identifier="GDK_INTERP_HYPER"
190              glib:nick="hyper"
191              glib:name="GDK_INTERP_HYPER">
192        <doc xml:space="preserve"
193             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
194             line="54">This is the slowest and highest quality
195 reconstruction function. It is derived from the hyperbolic filters in
196 Wolberg's "Digital Image Warping", and is formally defined as the
197 hyperbolic-filter sampling the ideal hyperbolic-filter interpolated
198 image (the filter is designed to be idempotent for 1:1 pixel mapping).
199 **Deprecated**: this interpolation filter is deprecated, as in reality
200 it has a lower quality than the @GDK_INTERP_BILINEAR filter
201 (Since: 2.38)</doc>
202      </member>
203    </enumeration>
204    <function-macro name="PIXBUF" c:identifier="GDK_PIXBUF" introspectable="0">
205      <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="92"/>
206      <parameters>
207        <parameter name="object">
208        </parameter>
209      </parameters>
210    </function-macro>
211    <function-macro name="PIXBUF_ANIMATION"
212                    c:identifier="GDK_PIXBUF_ANIMATION"
213                    introspectable="0">
214      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="45"/>
215      <parameters>
216        <parameter name="object">
217        </parameter>
218      </parameters>
219    </function-macro>
220    <function-macro name="PIXBUF_ANIMATION_CLASS"
221                    c:identifier="GDK_PIXBUF_ANIMATION_CLASS"
222                    introspectable="0">
223      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
224                       line="134"/>
225      <parameters>
226        <parameter name="klass">
227        </parameter>
228      </parameters>
229    </function-macro>
230    <function-macro name="PIXBUF_ANIMATION_GET_CLASS"
231                    c:identifier="GDK_PIXBUF_ANIMATION_GET_CLASS"
232                    introspectable="0">
233      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
234                       line="136"/>
235      <parameters>
236        <parameter name="obj">
237        </parameter>
238      </parameters>
239    </function-macro>
240    <function-macro name="PIXBUF_ANIMATION_ITER"
241                    c:identifier="GDK_PIXBUF_ANIMATION_ITER"
242                    introspectable="0">
243      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="49"/>
244      <parameters>
245        <parameter name="object">
246        </parameter>
247      </parameters>
248    </function-macro>
249    <function-macro name="PIXBUF_ANIMATION_ITER_CLASS"
250                    c:identifier="GDK_PIXBUF_ANIMATION_ITER_CLASS"
251                    introspectable="0">
252      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
253                       line="182"/>
254      <parameters>
255        <parameter name="klass">
256        </parameter>
257      </parameters>
258    </function-macro>
259    <function-macro name="PIXBUF_ANIMATION_ITER_GET_CLASS"
260                    c:identifier="GDK_PIXBUF_ANIMATION_ITER_GET_CLASS"
261                    introspectable="0">
262      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
263                       line="184"/>
264      <parameters>
265        <parameter name="obj">
266        </parameter>
267      </parameters>
268    </function-macro>
269    <function-macro name="PIXBUF_CHECK_VERSION"
270                    c:identifier="GDK_PIXBUF_CHECK_VERSION"
271                    version="2.36"
272                    introspectable="0">
273      <doc xml:space="preserve"
274           filename="gdk-pixbuf/gdk-pixbuf-macros.h"
275           line="32">Macro to test the version of GdkPixbuf being compiled against.</doc>
276      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="45"/>
277      <parameters>
278        <parameter name="major">
279          <doc xml:space="preserve"
280               filename="gdk-pixbuf/gdk-pixbuf-macros.h"
281               line="34">major version (e.g. 2 for version 2.34.0)</doc>
282        </parameter>
283        <parameter name="minor">
284          <doc xml:space="preserve"
285               filename="gdk-pixbuf/gdk-pixbuf-macros.h"
286               line="35">minor version (e.g. 34 for version 2.34.0)</doc>
287        </parameter>
288        <parameter name="micro">
289          <doc xml:space="preserve"
290               filename="gdk-pixbuf/gdk-pixbuf-macros.h"
291               line="36">micro version (e.g. 0 for version 2.34.0)</doc>
292        </parameter>
293      </parameters>
294    </function-macro>
295    <function-macro name="PIXBUF_DEPRECATED_IN_2_0_FOR"
296                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_0_FOR"
297                    introspectable="0">
298      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="353"/>
299      <parameters>
300        <parameter name="f">
301        </parameter>
302      </parameters>
303    </function-macro>
304    <function-macro name="PIXBUF_DEPRECATED_IN_2_10_FOR"
305                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_10_FOR"
306                    introspectable="0">
307      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="443"/>
308      <parameters>
309        <parameter name="f">
310        </parameter>
311      </parameters>
312    </function-macro>
313    <function-macro name="PIXBUF_DEPRECATED_IN_2_12_FOR"
314                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_12_FOR"
315                    introspectable="0">
316      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="461"/>
317      <parameters>
318        <parameter name="f">
319        </parameter>
320      </parameters>
321    </function-macro>
322    <function-macro name="PIXBUF_DEPRECATED_IN_2_14_FOR"
323                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_14_FOR"
324                    introspectable="0">
325      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="479"/>
326      <parameters>
327        <parameter name="f">
328        </parameter>
329      </parameters>
330    </function-macro>
331    <function-macro name="PIXBUF_DEPRECATED_IN_2_16_FOR"
332                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_16_FOR"
333                    introspectable="0">
334      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="497"/>
335      <parameters>
336        <parameter name="f">
337        </parameter>
338      </parameters>
339    </function-macro>
340    <function-macro name="PIXBUF_DEPRECATED_IN_2_18_FOR"
341                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_18_FOR"
342                    introspectable="0">
343      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="515"/>
344      <parameters>
345        <parameter name="f">
346        </parameter>
347      </parameters>
348    </function-macro>
349    <function-macro name="PIXBUF_DEPRECATED_IN_2_20_FOR"
350                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_20_FOR"
351                    introspectable="0">
352      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="533"/>
353      <parameters>
354        <parameter name="f">
355        </parameter>
356      </parameters>
357    </function-macro>
358    <function-macro name="PIXBUF_DEPRECATED_IN_2_22_FOR"
359                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_22_FOR"
360                    introspectable="0">
361      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="551"/>
362      <parameters>
363        <parameter name="f">
364        </parameter>
365      </parameters>
366    </function-macro>
367    <function-macro name="PIXBUF_DEPRECATED_IN_2_24_FOR"
368                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_24_FOR"
369                    introspectable="0">
370      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="569"/>
371      <parameters>
372        <parameter name="f">
373        </parameter>
374      </parameters>
375    </function-macro>
376    <function-macro name="PIXBUF_DEPRECATED_IN_2_26_FOR"
377                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_26_FOR"
378                    introspectable="0">
379      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="587"/>
380      <parameters>
381        <parameter name="f">
382        </parameter>
383      </parameters>
384    </function-macro>
385    <function-macro name="PIXBUF_DEPRECATED_IN_2_28_FOR"
386                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_28_FOR"
387                    introspectable="0">
388      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="605"/>
389      <parameters>
390        <parameter name="f">
391        </parameter>
392      </parameters>
393    </function-macro>
394    <function-macro name="PIXBUF_DEPRECATED_IN_2_2_FOR"
395                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_2_FOR"
396                    introspectable="0">
397      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="371"/>
398      <parameters>
399        <parameter name="f">
400        </parameter>
401      </parameters>
402    </function-macro>
403    <function-macro name="PIXBUF_DEPRECATED_IN_2_30_FOR"
404                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_30_FOR"
405                    introspectable="0">
406      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="623"/>
407      <parameters>
408        <parameter name="f">
409        </parameter>
410      </parameters>
411    </function-macro>
412    <function-macro name="PIXBUF_DEPRECATED_IN_2_32_FOR"
413                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_32_FOR"
414                    introspectable="0">
415      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="641"/>
416      <parameters>
417        <parameter name="f">
418        </parameter>
419      </parameters>
420    </function-macro>
421    <function-macro name="PIXBUF_DEPRECATED_IN_2_34_FOR"
422                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_34_FOR"
423                    introspectable="0">
424      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="659"/>
425      <parameters>
426        <parameter name="f">
427        </parameter>
428      </parameters>
429    </function-macro>
430    <function-macro name="PIXBUF_DEPRECATED_IN_2_36_FOR"
431                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_36_FOR"
432                    introspectable="0">
433      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="677"/>
434      <parameters>
435        <parameter name="f">
436        </parameter>
437      </parameters>
438    </function-macro>
439    <function-macro name="PIXBUF_DEPRECATED_IN_2_38_FOR"
440                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_38_FOR"
441                    introspectable="0">
442      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="695"/>
443      <parameters>
444        <parameter name="f">
445        </parameter>
446      </parameters>
447    </function-macro>
448    <function-macro name="PIXBUF_DEPRECATED_IN_2_40_FOR"
449                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_40_FOR"
450                    introspectable="0">
451      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="713"/>
452      <parameters>
453        <parameter name="f">
454        </parameter>
455      </parameters>
456    </function-macro>
457    <function-macro name="PIXBUF_DEPRECATED_IN_2_44_FOR"
458                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_44_FOR"
459                    introspectable="0">
460      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="731"/>
461      <parameters>
462        <parameter name="f">
463        </parameter>
464      </parameters>
465    </function-macro>
466    <function-macro name="PIXBUF_DEPRECATED_IN_2_4_FOR"
467                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_4_FOR"
468                    introspectable="0">
469      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="389"/>
470      <parameters>
471        <parameter name="f">
472        </parameter>
473      </parameters>
474    </function-macro>
475    <function-macro name="PIXBUF_DEPRECATED_IN_2_6_FOR"
476                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_6_FOR"
477                    introspectable="0">
478      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="407"/>
479      <parameters>
480        <parameter name="f">
481        </parameter>
482      </parameters>
483    </function-macro>
484    <function-macro name="PIXBUF_DEPRECATED_IN_2_8_FOR"
485                    c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_8_FOR"
486                    introspectable="0">
487      <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="425"/>
488      <parameters>
489        <parameter name="f">
490        </parameter>
491      </parameters>
492    </function-macro>
493    <function-macro name="PIXBUF_LOADER"
494                    c:identifier="GDK_PIXBUF_LOADER"
495                    introspectable="0">
496      <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="40"/>
497      <parameters>
498        <parameter name="obj">
499        </parameter>
500      </parameters>
501    </function-macro>
502    <function-macro name="PIXBUF_LOADER_CLASS"
503                    c:identifier="GDK_PIXBUF_LOADER_CLASS"
504                    introspectable="0">
505      <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="41"/>
506      <parameters>
507        <parameter name="klass">
508        </parameter>
509      </parameters>
510    </function-macro>
511    <function-macro name="PIXBUF_LOADER_GET_CLASS"
512                    c:identifier="GDK_PIXBUF_LOADER_GET_CLASS"
513                    introspectable="0">
514      <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="44"/>
515      <parameters>
516        <parameter name="obj">
517        </parameter>
518      </parameters>
519    </function-macro>
520    <constant name="PIXBUF_MAJOR" value="2" c:type="GDK_PIXBUF_MAJOR">
521      <doc xml:space="preserve"
522           filename="gdk-pixbuf/gdk-pixbuf-features.h"
523           line="10">Major version of gdk-pixbuf library, that is the "0" in
524"0.8.2" for example.</doc>
525      <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="37"/>
526      <type name="gint" c:type="gint"/>
527    </constant>
528    <constant name="PIXBUF_MICRO" value="3" c:type="GDK_PIXBUF_MICRO">
529      <doc xml:space="preserve"
530           filename="gdk-pixbuf/gdk-pixbuf-features.h"
531           line="22">Micro version of gdk-pixbuf library, that is the "2" in
532"0.8.2" for example.</doc>
533      <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="39"/>
534      <type name="gint" c:type="gint"/>
535    </constant>
536    <constant name="PIXBUF_MINOR" value="44" c:type="GDK_PIXBUF_MINOR">
537      <doc xml:space="preserve"
538           filename="gdk-pixbuf/gdk-pixbuf-features.h"
539           line="16">Minor version of gdk-pixbuf library, that is the "8" in
540"0.8.2" for example.</doc>
541      <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="38"/>
542      <type name="gint" c:type="gint"/>
543    </constant>
544    <function-macro name="PIXBUF_NON_ANIM"
545                    c:identifier="GDK_PIXBUF_NON_ANIM"
546                    introspectable="0">
547      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
548                       line="209"/>
549      <parameters>
550        <parameter name="object">
551        </parameter>
552      </parameters>
553    </function-macro>
554    <function-macro name="PIXBUF_SIMPLE_ANIM"
555                    c:identifier="GDK_PIXBUF_SIMPLE_ANIM"
556                    introspectable="0">
557      <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
558                       line="42"/>
559      <parameters>
560        <parameter name="object">
561        </parameter>
562      </parameters>
563    </function-macro>
564    <function-macro name="PIXBUF_SIMPLE_ANIM_CLASS"
565                    c:identifier="GDK_PIXBUF_SIMPLE_ANIM_CLASS"
566                    introspectable="0">
567      <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
568                       line="45"/>
569      <parameters>
570        <parameter name="klass">
571        </parameter>
572      </parameters>
573    </function-macro>
574    <function-macro name="PIXBUF_SIMPLE_ANIM_GET_CLASS"
575                    c:identifier="GDK_PIXBUF_SIMPLE_ANIM_GET_CLASS"
576                    introspectable="0">
577      <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
578                       line="47"/>
579      <parameters>
580        <parameter name="obj">
581        </parameter>
582      </parameters>
583    </function-macro>
584    <constant name="PIXBUF_VERSION" value="2.44.3" c:type="GDK_PIXBUF_VERSION">
585      <doc xml:space="preserve"
586           filename="gdk-pixbuf/gdk-pixbuf-features.h"
587           line="28">Contains the full version of GdkPixbuf as a string.
588
589This is the version being compiled against; contrast with
590`gdk_pixbuf_version`.</doc>
591      <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="40"/>
592      <type name="utf8" c:type="gchar*"/>
593    </constant>
594    <class name="Pixbuf"
595           c:symbol-prefix="pixbuf"
596           c:type="GdkPixbuf"
597           parent="GObject.Object"
598           glib:type-name="GdkPixbuf"
599           glib:get-type="gdk_pixbuf_get_type">
600      <doc xml:space="preserve"
601           filename="gdk-pixbuf/gdk-pixbuf.c"
602           line="24">A pixel buffer.
603
604`GdkPixbuf` contains information about an image's pixel data,
605its color space, bits per sample, width and height, and the
606rowstride (the number of bytes between the start of one row
607and the start of the next).
608
609## Creating new `GdkPixbuf`
610
611The most basic way to create a pixbuf is to wrap an existing pixel
612buffer with a [class@GdkPixbuf.Pixbuf] instance. You can use the
613[`ctor@GdkPixbuf.Pixbuf.new_from_data`] function to do this.
614
615Every time you create a new `GdkPixbuf` instance for some data, you
616will need to specify the destroy notification function that will be
617called when the data buffer needs to be freed; this will happen when
618a `GdkPixbuf` is finalized by the reference counting functions. If
619you have a chunk of static data compiled into your application, you
620can pass in `NULL` as the destroy notification function so that the
621data will not be freed.
622
623The [`ctor@GdkPixbuf.Pixbuf.new`] constructor function can be used
624as a convenience to create a pixbuf with an empty buffer; this is
625equivalent to allocating a data buffer using `malloc()` and then
626wrapping it with `gdk_pixbuf_new_from_data()`. The `gdk_pixbuf_new()`
627function will compute an optimal rowstride so that rendering can be
628performed with an efficient algorithm.
629
630You can also copy an existing pixbuf with the [method@Pixbuf.copy]
631function. This is not the same as just acquiring a reference to
632the old pixbuf instance: the copy function will actually duplicate
633the pixel data in memory and create a new [class@Pixbuf] instance
634for it.
635
636## Reference counting
637
638`GdkPixbuf` structures are reference counted. This means that an
639application can share a single pixbuf among many parts of the
640code. When a piece of the program needs to use a pixbuf, it should
641acquire a reference to it by calling `g_object_ref()`; when it no
642longer needs the pixbuf, it should release the reference it acquired
643by calling `g_object_unref()`. The resources associated with a
644`GdkPixbuf` will be freed when its reference count drops to zero.
645Newly-created `GdkPixbuf` instances start with a reference count
646of one.
647
648## Image Data
649
650Image data in a pixbuf is stored in memory in an uncompressed,
651packed format. Rows in the image are stored top to bottom, and
652in each row pixels are stored from left to right.
653
654There may be padding at the end of a row.
655
656The "rowstride" value of a pixbuf, as returned by [`method@GdkPixbuf.Pixbuf.get_rowstride`],
657indicates the number of bytes between rows.
658
659**NOTE**: If you are copying raw pixbuf data with `memcpy()` note that the
660last row in the pixbuf may not be as wide as the full rowstride, but rather
661just as wide as the pixel data needs to be; that is: it is unsafe to do
662`memcpy (dest, pixels, rowstride * height)` to copy a whole pixbuf. Use
663[method@GdkPixbuf.Pixbuf.copy] instead, or compute the width in bytes of the
664last row as:
665
666```c
667last_row = width * ((n_channels * bits_per_sample + 7) / 8);
668```
669
670The same rule applies when iterating over each row of a `GdkPixbuf` pixels
671array.
672
673The following code illustrates a simple `put_pixel()`
674function for RGB pixbufs with 8 bits per channel with an alpha
675channel.
676
677```c
678static void
679put_pixel (GdkPixbuf *pixbuf,
680           int x,
681	   int y,
682	   guchar red,
683	   guchar green,
684	   guchar blue,
685	   guchar alpha)
686{
687  int n_channels = gdk_pixbuf_get_n_channels (pixbuf);
688
689  // Ensure that the pixbuf is valid
690  g_assert (gdk_pixbuf_get_colorspace (pixbuf) == GDK_COLORSPACE_RGB);
691  g_assert (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8);
692  g_assert (gdk_pixbuf_get_has_alpha (pixbuf));
693  g_assert (n_channels == 4);
694
695  int width = gdk_pixbuf_get_width (pixbuf);
696  int height = gdk_pixbuf_get_height (pixbuf);
697
698  // Ensure that the coordinates are in a valid range
699  g_assert (x &gt;= 0 &amp;&amp; x &lt; width);
700  g_assert (y &gt;= 0 &amp;&amp; y &lt; height);
701
702  int rowstride = gdk_pixbuf_get_rowstride (pixbuf);
703
704  // The pixel buffer in the GdkPixbuf instance
705  guchar *pixels = gdk_pixbuf_get_pixels (pixbuf);
706
707  // The pixel we wish to modify
708  guchar *p = pixels + y * rowstride + x * n_channels;
709  p[0] = red;
710  p[1] = green;
711  p[2] = blue;
712  p[3] = alpha;
713}
714```
715
716## Loading images
717
718The `GdkPixBuf` class provides a simple mechanism for loading
719an image from a file in synchronous and asynchronous fashion.
720
721For GUI applications, it is recommended to use the asynchronous
722stream API to avoid blocking the control flow of the application.
723
724Additionally, `GdkPixbuf` provides the [class@GdkPixbuf.PixbufLoader`]
725API for progressive image loading.
726
727## Saving images
728
729The `GdkPixbuf` class provides methods for saving image data in
730a number of file formats. The formatted data can be written to a
731file or to a memory buffer. `GdkPixbuf` can also call a user-defined
732callback on the data, which allows to e.g. write the image
733to a socket or store it in a database.</doc>
734      <implements name="Gio.Icon"/>
735      <implements name="Gio.LoadableIcon"/>
736      <constructor name="new" c:identifier="gdk_pixbuf_new">
737        <doc xml:space="preserve"
738             filename="gdk-pixbuf/gdk-pixbuf.c"
739             line="599">Creates a new `GdkPixbuf` structure and allocates a buffer for it.
740
741If the allocation of the buffer failed, this function will return `NULL`.
742
743The buffer has an optimal rowstride. Note that the buffer is not cleared;
744you will have to fill it completely yourself.</doc>
745        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="204"/>
746        <return-value transfer-ownership="full" nullable="1">
747          <doc xml:space="preserve"
748               filename="gdk-pixbuf/gdk-pixbuf.c"
749               line="614">A newly-created pixel buffer</doc>
750          <type name="Pixbuf" c:type="GdkPixbuf*"/>
751        </return-value>
752        <parameters>
753          <parameter name="colorspace" transfer-ownership="none">
754            <doc xml:space="preserve"
755                 filename="gdk-pixbuf/gdk-pixbuf.c"
756                 line="601">Color space for image</doc>
757            <type name="Colorspace" c:type="GdkColorspace"/>
758          </parameter>
759          <parameter name="has_alpha" transfer-ownership="none">
760            <doc xml:space="preserve"
761                 filename="gdk-pixbuf/gdk-pixbuf.c"
762                 line="602">Whether the image should have transparency information</doc>
763            <type name="gboolean" c:type="gboolean"/>
764          </parameter>
765          <parameter name="bits_per_sample" transfer-ownership="none">
766            <doc xml:space="preserve"
767                 filename="gdk-pixbuf/gdk-pixbuf.c"
768                 line="603">Number of bits per color sample</doc>
769            <type name="gint" c:type="int"/>
770          </parameter>
771          <parameter name="width" transfer-ownership="none">
772            <doc xml:space="preserve"
773                 filename="gdk-pixbuf/gdk-pixbuf.c"
774                 line="604">Width of image in pixels, must be &gt; 0</doc>
775            <type name="gint" c:type="int"/>
776          </parameter>
777          <parameter name="height" transfer-ownership="none">
778            <doc xml:space="preserve"
779                 filename="gdk-pixbuf/gdk-pixbuf.c"
780                 line="605">Height of image in pixels, must be &gt; 0</doc>
781            <type name="gint" c:type="int"/>
782          </parameter>
783        </parameters>
784      </constructor>
785      <constructor name="new_from_bytes"
786                   c:identifier="gdk_pixbuf_new_from_bytes"
787                   version="2.32">
788        <doc xml:space="preserve"
789             filename="gdk-pixbuf/gdk-pixbuf-data.c"
790             line="96">Creates a new #GdkPixbuf out of in-memory readonly image data.
791
792Currently only RGB images with 8 bits per sample are supported.
793
794This is the `GBytes` variant of gdk_pixbuf_new_from_data(), useful
795for language bindings.</doc>
796        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="284"/>
797        <return-value transfer-ownership="full">
798          <doc xml:space="preserve"
799               filename="gdk-pixbuf/gdk-pixbuf-data.c"
800               line="113">A newly-created pixbuf</doc>
801          <type name="Pixbuf" c:type="GdkPixbuf*"/>
802        </return-value>
803        <parameters>
804          <parameter name="data" transfer-ownership="none">
805            <doc xml:space="preserve"
806                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
807                 line="98">Image data in 8-bit/sample packed format inside a #GBytes</doc>
808            <type name="GLib.Bytes" c:type="GBytes*"/>
809          </parameter>
810          <parameter name="colorspace" transfer-ownership="none">
811            <doc xml:space="preserve"
812                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
813                 line="99">Colorspace for the image data</doc>
814            <type name="Colorspace" c:type="GdkColorspace"/>
815          </parameter>
816          <parameter name="has_alpha" transfer-ownership="none">
817            <doc xml:space="preserve"
818                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
819                 line="100">Whether the data has an opacity channel</doc>
820            <type name="gboolean" c:type="gboolean"/>
821          </parameter>
822          <parameter name="bits_per_sample" transfer-ownership="none">
823            <doc xml:space="preserve"
824                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
825                 line="101">Number of bits per sample</doc>
826            <type name="gint" c:type="int"/>
827          </parameter>
828          <parameter name="width" transfer-ownership="none">
829            <doc xml:space="preserve"
830                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
831                 line="102">Width of the image in pixels, must be &gt; 0</doc>
832            <type name="gint" c:type="int"/>
833          </parameter>
834          <parameter name="height" transfer-ownership="none">
835            <doc xml:space="preserve"
836                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
837                 line="103">Height of the image in pixels, must be &gt; 0</doc>
838            <type name="gint" c:type="int"/>
839          </parameter>
840          <parameter name="rowstride" transfer-ownership="none">
841            <doc xml:space="preserve"
842                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
843                 line="104">Distance in bytes between row starts</doc>
844            <type name="gint" c:type="int"/>
845          </parameter>
846        </parameters>
847      </constructor>
848      <constructor name="new_from_data"
849                   c:identifier="gdk_pixbuf_new_from_data">
850        <doc xml:space="preserve"
851             filename="gdk-pixbuf/gdk-pixbuf-data.c"
852             line="29">Creates a new #GdkPixbuf out of in-memory image data.
853
854Currently only RGB images with 8 bits per sample are supported.
855
856Since you are providing a pre-allocated pixel buffer, you must also
857specify a way to free that data.  This is done with a function of
858type `GdkPixbufDestroyNotify`.  When a pixbuf created with is
859finalized, your destroy notification function will be called, and
860it is its responsibility to free the pixel array.
861
862See also: [ctor@GdkPixbuf.Pixbuf.new_from_bytes]</doc>
863        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="274"/>
864        <return-value transfer-ownership="full">
865          <doc xml:space="preserve"
866               filename="gdk-pixbuf/gdk-pixbuf-data.c"
867               line="56">A newly-created pixbuf</doc>
868          <type name="Pixbuf" c:type="GdkPixbuf*"/>
869        </return-value>
870        <parameters>
871          <parameter name="data" transfer-ownership="none">
872            <doc xml:space="preserve"
873                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
874                 line="31">Image data in 8-bit/sample packed format</doc>
875            <array zero-terminated="0" c:type="const guchar*">
876              <type name="guint8" c:type="guchar"/>
877            </array>
878          </parameter>
879          <parameter name="colorspace" transfer-ownership="none">
880            <doc xml:space="preserve"
881                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
882                 line="32">Colorspace for the image data</doc>
883            <type name="Colorspace" c:type="GdkColorspace"/>
884          </parameter>
885          <parameter name="has_alpha" transfer-ownership="none">
886            <doc xml:space="preserve"
887                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
888                 line="33">Whether the data has an opacity channel</doc>
889            <type name="gboolean" c:type="gboolean"/>
890          </parameter>
891          <parameter name="bits_per_sample" transfer-ownership="none">
892            <doc xml:space="preserve"
893                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
894                 line="34">Number of bits per sample</doc>
895            <type name="gint" c:type="int"/>
896          </parameter>
897          <parameter name="width" transfer-ownership="none">
898            <doc xml:space="preserve"
899                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
900                 line="35">Width of the image in pixels, must be &gt; 0</doc>
901            <type name="gint" c:type="int"/>
902          </parameter>
903          <parameter name="height" transfer-ownership="none">
904            <doc xml:space="preserve"
905                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
906                 line="36">Height of the image in pixels, must be &gt; 0</doc>
907            <type name="gint" c:type="int"/>
908          </parameter>
909          <parameter name="rowstride" transfer-ownership="none">
910            <doc xml:space="preserve"
911                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
912                 line="37">Distance in bytes between row starts</doc>
913            <type name="gint" c:type="int"/>
914          </parameter>
915          <parameter name="destroy_fn"
916                     transfer-ownership="none"
917                     nullable="1"
918                     allow-none="1"
919                     scope="async"
920                     closure="8">
921            <doc xml:space="preserve"
922                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
923                 line="38">Function
924  used to free the data when the pixbuf's reference count
925  drops to zero, or `NULL` if the data should not be freed</doc>
926            <type name="PixbufDestroyNotify" c:type="GdkPixbufDestroyNotify"/>
927          </parameter>
928          <parameter name="destroy_fn_data"
929                     transfer-ownership="none"
930                     nullable="1"
931                     allow-none="1">
932            <doc xml:space="preserve"
933                 filename="gdk-pixbuf/gdk-pixbuf-data.c"
934                 line="41">Closure data to pass to the destroy
935  notification function</doc>
936            <type name="gpointer" c:type="gpointer"/>
937          </parameter>
938        </parameters>
939      </constructor>
940      <constructor name="new_from_file"
941                   c:identifier="gdk_pixbuf_new_from_file"
942                   throws="1">
943        <doc xml:space="preserve"
944             filename="gdk-pixbuf/gdk-pixbuf-io.c"
945             line="1176">Creates a new pixbuf by loading an image from a file.
946
947The file format is detected automatically.
948
949If `NULL` is returned, then @error will be set. Possible errors are:
950
951 - the file could not be opened
952 - there is no loader for the file's format
953 - there is not enough memory to allocate the image buffer
954 - the image buffer contains invalid data
955
956The error domains are `GDK_PIXBUF_ERROR` and `G_FILE_ERROR`.</doc>
957        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="250"/>
958        <return-value transfer-ownership="full" nullable="1">
959          <doc xml:space="preserve"
960               filename="gdk-pixbuf/gdk-pixbuf-io.c"
961               line="1195">A newly-created pixbuf</doc>
962          <type name="Pixbuf" c:type="GdkPixbuf*"/>
963        </return-value>
964        <parameters>
965          <parameter name="filename" transfer-ownership="none">
966            <doc xml:space="preserve"
967                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
968                 line="1178">Name of file to load, in the GLib file
969  name encoding</doc>
970            <type name="filename" c:type="const char*"/>
971          </parameter>
972        </parameters>
973      </constructor>
974      <constructor name="new_from_file_at_scale"
975                   c:identifier="gdk_pixbuf_new_from_file_at_scale"
976                   version="2.6"
977                   throws="1">
978        <doc xml:space="preserve"
979             filename="gdk-pixbuf/gdk-pixbuf-io.c"
980             line="1424">Creates a new pixbuf by loading an image from a file.
981
982The file format is detected automatically.
983
984If `NULL` is returned, then @error will be set. Possible errors are:
985
986 - the file could not be opened
987 - there is no loader for the file's format
988 - there is not enough memory to allocate the image buffer
989 - the image buffer contains invalid data
990
991The error domains are `GDK_PIXBUF_ERROR` and `G_FILE_ERROR`.
992
993The image will be scaled to fit in the requested size, optionally preserving
994the image's aspect ratio.
995
996When preserving the aspect ratio, a `width` of -1 will cause the image
997to be scaled to the exact given height, and a `height` of -1 will cause
998the image to be scaled to the exact given width. When not preserving
999aspect ratio, a `width` or `height` of -1 means to not scale the image
1000at all in that dimension. Negative values for `width` and `height` are
1001allowed since 2.8.</doc>
1002        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="258"/>
1003        <return-value transfer-ownership="full" nullable="1">
1004          <doc xml:space="preserve"
1005               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1006               line="1456">A newly-created pixbuf</doc>
1007          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1008        </return-value>
1009        <parameters>
1010          <parameter name="filename" transfer-ownership="none">
1011            <doc xml:space="preserve"
1012                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1013                 line="1426">Name of file to load, in the GLib file
1014    name encoding</doc>
1015            <type name="filename" c:type="const char*"/>
1016          </parameter>
1017          <parameter name="width" transfer-ownership="none">
1018            <doc xml:space="preserve"
1019                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1020                 line="1428">The width the image should have or -1 to not constrain the width</doc>
1021            <type name="gint" c:type="int"/>
1022          </parameter>
1023          <parameter name="height" transfer-ownership="none">
1024            <doc xml:space="preserve"
1025                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1026                 line="1429">The height the image should have or -1 to not constrain the height</doc>
1027            <type name="gint" c:type="int"/>
1028          </parameter>
1029          <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1030            <doc xml:space="preserve"
1031                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1032                 line="1430">`TRUE` to preserve the image's aspect ratio</doc>
1033            <type name="gboolean" c:type="gboolean"/>
1034          </parameter>
1035        </parameters>
1036      </constructor>
1037      <constructor name="new_from_file_at_size"
1038                   c:identifier="gdk_pixbuf_new_from_file_at_size"
1039                   version="2.4"
1040                   throws="1">
1041        <doc xml:space="preserve"
1042             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1043             line="1297">Creates a new pixbuf by loading an image from a file.
1044
1045The file format is detected automatically.
1046
1047If `NULL` is returned, then @error will be set. Possible errors are:
1048
1049 - the file could not be opened
1050 - there is no loader for the file's format
1051 - there is not enough memory to allocate the image buffer
1052 - the image buffer contains invalid data
1053
1054The error domains are `GDK_PIXBUF_ERROR` and `G_FILE_ERROR`.
1055
1056The image will be scaled to fit in the requested size, preserving
1057the image's aspect ratio. Note that the returned pixbuf may be smaller
1058than `width` x `height`, if the aspect ratio requires it. To load
1059and image at the requested size, regardless of aspect ratio, use
1060[ctor@GdkPixbuf.Pixbuf.new_from_file_at_scale].</doc>
1061        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="253"/>
1062        <return-value transfer-ownership="full" nullable="1">
1063          <doc xml:space="preserve"
1064               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1065               line="1324">A newly-created pixbuf</doc>
1066          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1067        </return-value>
1068        <parameters>
1069          <parameter name="filename" transfer-ownership="none">
1070            <doc xml:space="preserve"
1071                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1072                 line="1299">Name of file to load, in the GLib file
1073    name encoding</doc>
1074            <type name="filename" c:type="const char*"/>
1075          </parameter>
1076          <parameter name="width" transfer-ownership="none">
1077            <doc xml:space="preserve"
1078                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1079                 line="1301">The width the image should have or -1 to not constrain the width</doc>
1080            <type name="gint" c:type="int"/>
1081          </parameter>
1082          <parameter name="height" transfer-ownership="none">
1083            <doc xml:space="preserve"
1084                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1085                 line="1302">The height the image should have or -1 to not constrain the height</doc>
1086            <type name="gint" c:type="int"/>
1087          </parameter>
1088        </parameters>
1089      </constructor>
1090      <constructor name="new_from_inline"
1091                   c:identifier="gdk_pixbuf_new_from_inline"
1092                   deprecated="1"
1093                   deprecated-version="2.32"
1094                   throws="1">
1095        <doc xml:space="preserve"
1096             filename="gdk-pixbuf/gdk-pixdata.c"
1097             line="951">Creates a `GdkPixbuf` from a flat representation that is suitable for
1098storing as inline data in a program.
1099
1100This is useful if you want to ship a program with images, but don't want
1101to depend on any external files.
1102
1103GdkPixbuf ships with a program called `gdk-pixbuf-csource`, which allows
1104for conversion of `GdkPixbuf`s into such a inline representation.
1105
1106In almost all cases, you should pass the `--raw` option to
1107`gdk-pixbuf-csource`. A sample invocation would be:
1108
1109```
1110gdk-pixbuf-csource --raw --name=myimage_inline myimage.png
1111```
1112
1113For the typical case where the inline pixbuf is read-only static data,
1114you don't need to copy the pixel data unless you intend to write to
1115it, so you can pass `FALSE` for `copy_pixels`. If you pass `--rle` to
1116`gdk-pixbuf-csource`, a copy will be made even if `copy_pixels` is `FALSE`,
1117so using this option is generally a bad idea.
1118
1119If you create a pixbuf from const inline data compiled into your
1120program, it's probably safe to ignore errors and disable length checks,
1121since things will always succeed:
1122
1123```c
1124pixbuf = gdk_pixbuf_new_from_inline (-1, myimage_inline, FALSE, NULL);
1125```
1126
1127For non-const inline data, you could get out of memory. For untrusted
1128inline data located at runtime, you could have corrupt inline data in
1129addition.</doc>
1130        <doc-deprecated xml:space="preserve">Use `GResource` instead.</doc-deprecated>
1131        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="295"/>
1132        <return-value transfer-ownership="full">
1133          <doc xml:space="preserve"
1134               filename="gdk-pixbuf/gdk-pixdata.c"
1135               line="995">A newly-created pixbuf</doc>
1136          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1137        </return-value>
1138        <parameters>
1139          <parameter name="data_length" transfer-ownership="none">
1140            <doc xml:space="preserve"
1141                 filename="gdk-pixbuf/gdk-pixdata.c"
1142                 line="953">Length in bytes of the `data` argument or -1 to
1143  disable length checks</doc>
1144            <type name="gint" c:type="gint"/>
1145          </parameter>
1146          <parameter name="data" transfer-ownership="none">
1147            <doc xml:space="preserve"
1148                 filename="gdk-pixbuf/gdk-pixdata.c"
1149                 line="955">Byte data containing a
1150  serialized `GdkPixdata` structure</doc>
1151            <array length="0" zero-terminated="0" c:type="const guint8*">
1152              <type name="guint8" c:type="guint8"/>
1153            </array>
1154          </parameter>
1155          <parameter name="copy_pixels" transfer-ownership="none">
1156            <doc xml:space="preserve"
1157                 filename="gdk-pixbuf/gdk-pixdata.c"
1158                 line="957">Whether to copy the pixel data, or use direct pointers
1159  `data` for the resulting pixbuf</doc>
1160            <type name="gboolean" c:type="gboolean"/>
1161          </parameter>
1162        </parameters>
1163      </constructor>
1164      <constructor name="new_from_resource"
1165                   c:identifier="gdk_pixbuf_new_from_resource"
1166                   version="2.26"
1167                   throws="1">
1168        <doc xml:space="preserve"
1169             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1170             line="1883">Creates a new pixbuf by loading an image from an resource.
1171
1172The file format is detected automatically. If `NULL` is returned, then
1173@error will be set.</doc>
1174        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="264"/>
1175        <return-value transfer-ownership="full" nullable="1">
1176          <doc xml:space="preserve"
1177               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1178               line="1893">A newly-created pixbuf</doc>
1179          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1180        </return-value>
1181        <parameters>
1182          <parameter name="resource_path" transfer-ownership="none">
1183            <doc xml:space="preserve"
1184                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1185                 line="1885">the path of the resource file</doc>
1186            <type name="utf8" c:type="const char*"/>
1187          </parameter>
1188        </parameters>
1189      </constructor>
1190      <constructor name="new_from_resource_at_scale"
1191                   c:identifier="gdk_pixbuf_new_from_resource_at_scale"
1192                   version="2.26"
1193                   throws="1">
1194        <doc xml:space="preserve"
1195             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1196             line="1917">Creates a new pixbuf by loading an image from an resource.
1197
1198The file format is detected automatically. If `NULL` is returned, then
1199@error will be set.
1200
1201The image will be scaled to fit in the requested size, optionally
1202preserving the image's aspect ratio. When preserving the aspect ratio,
1203a @width of -1 will cause the image to be scaled to the exact given
1204height, and a @height of -1 will cause the image to be scaled to the
1205exact given width. When not preserving aspect ratio, a @width or
1206@height of -1 means to not scale the image at all in that dimension.
1207
1208The stream is not closed.</doc>
1209        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="267"/>
1210        <return-value transfer-ownership="full" nullable="1">
1211          <doc xml:space="preserve"
1212               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1213               line="1939">A newly-created pixbuf</doc>
1214          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1215        </return-value>
1216        <parameters>
1217          <parameter name="resource_path" transfer-ownership="none">
1218            <doc xml:space="preserve"
1219                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1220                 line="1919">the path of the resource file</doc>
1221            <type name="utf8" c:type="const char*"/>
1222          </parameter>
1223          <parameter name="width" transfer-ownership="none">
1224            <doc xml:space="preserve"
1225                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1226                 line="1920">The width the image should have or -1 to not constrain the width</doc>
1227            <type name="gint" c:type="int"/>
1228          </parameter>
1229          <parameter name="height" transfer-ownership="none">
1230            <doc xml:space="preserve"
1231                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1232                 line="1921">The height the image should have or -1 to not constrain the height</doc>
1233            <type name="gint" c:type="int"/>
1234          </parameter>
1235          <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1236            <doc xml:space="preserve"
1237                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1238                 line="1922">`TRUE` to preserve the image's aspect ratio</doc>
1239            <type name="gboolean" c:type="gboolean"/>
1240          </parameter>
1241        </parameters>
1242      </constructor>
1243      <constructor name="new_from_stream"
1244                   c:identifier="gdk_pixbuf_new_from_stream"
1245                   version="2.14"
1246                   throws="1">
1247        <doc xml:space="preserve"
1248             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1249             line="1804">Creates a new pixbuf by loading an image from an input stream.
1250
1251The file format is detected automatically.
1252
1253If `NULL` is returned, then `error` will be set.
1254
1255The `cancellable` can be used to abort the operation from another thread.
1256If the operation was cancelled, the error `G_IO_ERROR_CANCELLED` will be
1257returned. Other possible errors are in the `GDK_PIXBUF_ERROR` and
1258`G_IO_ERROR` domains.
1259
1260The stream is not closed.</doc>
1261        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="404"/>
1262        <return-value transfer-ownership="full" nullable="1">
1263          <doc xml:space="preserve"
1264               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1265               line="1823">A newly-created pixbuf</doc>
1266          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1267        </return-value>
1268        <parameters>
1269          <parameter name="stream" transfer-ownership="none">
1270            <doc xml:space="preserve"
1271                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1272                 line="1806">a `GInputStream` to load the pixbuf from</doc>
1273            <type name="Gio.InputStream" c:type="GInputStream*"/>
1274          </parameter>
1275          <parameter name="cancellable"
1276                     transfer-ownership="none"
1277                     nullable="1"
1278                     allow-none="1">
1279            <doc xml:space="preserve"
1280                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1281                 line="1807">optional `GCancellable` object, `NULL` to ignore</doc>
1282            <type name="Gio.Cancellable" c:type="GCancellable*"/>
1283          </parameter>
1284        </parameters>
1285      </constructor>
1286      <constructor name="new_from_stream_at_scale"
1287                   c:identifier="gdk_pixbuf_new_from_stream_at_scale"
1288                   version="2.14"
1289                   throws="1">
1290        <doc xml:space="preserve"
1291             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1292             line="1630">Creates a new pixbuf by loading an image from an input stream.
1293
1294The file format is detected automatically. If `NULL` is returned, then
1295@error will be set. The @cancellable can be used to abort the operation
1296from another thread. If the operation was cancelled, the error
1297`G_IO_ERROR_CANCELLED` will be returned. Other possible errors are in
1298the `GDK_PIXBUF_ERROR` and `G_IO_ERROR` domains.
1299
1300The image will be scaled to fit in the requested size, optionally
1301preserving the image's aspect ratio.
1302
1303When preserving the aspect ratio, a `width` of -1 will cause the image to be
1304scaled to the exact given height, and a `height` of -1 will cause the image
1305to be scaled to the exact given width. If both `width` and `height` are
1306given, this function will behave as if the smaller of the two values
1307is passed as -1.
1308
1309When not preserving aspect ratio, a `width` or `height` of -1 means to not
1310scale the image at all in that dimension.
1311
1312The stream is not closed.</doc>
1313        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="419"/>
1314        <return-value transfer-ownership="full" nullable="1">
1315          <doc xml:space="preserve"
1316               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1317               line="1661">A newly-created pixbuf</doc>
1318          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1319        </return-value>
1320        <parameters>
1321          <parameter name="stream" transfer-ownership="none">
1322            <doc xml:space="preserve"
1323                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1324                 line="1632">a `GInputStream` to load the pixbuf from</doc>
1325            <type name="Gio.InputStream" c:type="GInputStream*"/>
1326          </parameter>
1327          <parameter name="width" transfer-ownership="none">
1328            <doc xml:space="preserve"
1329                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1330                 line="1633">The width the image should have or -1 to not constrain the width</doc>
1331            <type name="gint" c:type="gint"/>
1332          </parameter>
1333          <parameter name="height" transfer-ownership="none">
1334            <doc xml:space="preserve"
1335                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1336                 line="1634">The height the image should have or -1 to not constrain the height</doc>
1337            <type name="gint" c:type="gint"/>
1338          </parameter>
1339          <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1340            <doc xml:space="preserve"
1341                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1342                 line="1635">`TRUE` to preserve the image's aspect ratio</doc>
1343            <type name="gboolean" c:type="gboolean"/>
1344          </parameter>
1345          <parameter name="cancellable"
1346                     transfer-ownership="none"
1347                     nullable="1"
1348                     allow-none="1">
1349            <doc xml:space="preserve"
1350                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1351                 line="1636">optional `GCancellable` object, `NULL` to ignore</doc>
1352            <type name="Gio.Cancellable" c:type="GCancellable*"/>
1353          </parameter>
1354        </parameters>
1355      </constructor>
1356      <constructor name="new_from_stream_finish"
1357                   c:identifier="gdk_pixbuf_new_from_stream_finish"
1358                   version="2.24"
1359                   throws="1">
1360        <doc xml:space="preserve"
1361             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1362             line="2004">Finishes an asynchronous pixbuf creation operation started with
1363gdk_pixbuf_new_from_stream_async().</doc>
1364        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="415"/>
1365        <return-value transfer-ownership="full" nullable="1">
1366          <doc xml:space="preserve"
1367               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1368               line="2012">the newly created pixbuf</doc>
1369          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1370        </return-value>
1371        <parameters>
1372          <parameter name="async_result" transfer-ownership="none">
1373            <doc xml:space="preserve"
1374                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1375                 line="2006">a `GAsyncResult`</doc>
1376            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1377          </parameter>
1378        </parameters>
1379      </constructor>
1380      <constructor name="new_from_xpm_data"
1381                   c:identifier="gdk_pixbuf_new_from_xpm_data"
1382                   deprecated="1"
1383                   deprecated-version="2.44">
1384        <doc xml:space="preserve"
1385             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1386             line="2238">Creates a new pixbuf by parsing XPM data in memory.
1387
1388This data is commonly the result of including an XPM file into a
1389program's C source.</doc>
1390        <doc-deprecated xml:space="preserve">Use [ctor@GdkPixbuf.Pixbuf.new_from_stream] with
1391  a [class@Gio.MemoryInputStream], making sure to handle errors in
1392  case the XPM format loader is not available</doc-deprecated>
1393        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="292"/>
1394        <return-value transfer-ownership="full" nullable="1">
1395          <doc xml:space="preserve"
1396               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1397               line="2247">A newly-created pixbuf</doc>
1398          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1399        </return-value>
1400        <parameters>
1401          <parameter name="data" transfer-ownership="none">
1402            <doc xml:space="preserve"
1403                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1404                 line="2240">Pointer to inline XPM data.</doc>
1405            <array c:type="const char**">
1406              <type name="utf8" c:type="char*"/>
1407            </array>
1408          </parameter>
1409        </parameters>
1410      </constructor>
1411      <function name="calculate_rowstride"
1412                c:identifier="gdk_pixbuf_calculate_rowstride"
1413                version="2.36.8">
1414        <doc xml:space="preserve"
1415             filename="gdk-pixbuf/gdk-pixbuf.c"
1416             line="557">Calculates the rowstride that an image created with those values would
1417have.
1418
1419This function is useful for front-ends and backends that want to check
1420image values without needing to create a `GdkPixbuf`.</doc>
1421        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="208"/>
1422        <return-value transfer-ownership="none">
1423          <doc xml:space="preserve"
1424               filename="gdk-pixbuf/gdk-pixbuf.c"
1425               line="571">the rowstride for the given values, or -1 in case of error.</doc>
1426          <type name="gint" c:type="gint"/>
1427        </return-value>
1428        <parameters>
1429          <parameter name="colorspace" transfer-ownership="none">
1430            <doc xml:space="preserve"
1431                 filename="gdk-pixbuf/gdk-pixbuf.c"
1432                 line="559">Color space for image</doc>
1433            <type name="Colorspace" c:type="GdkColorspace"/>
1434          </parameter>
1435          <parameter name="has_alpha" transfer-ownership="none">
1436            <doc xml:space="preserve"
1437                 filename="gdk-pixbuf/gdk-pixbuf.c"
1438                 line="560">Whether the image should have transparency information</doc>
1439            <type name="gboolean" c:type="gboolean"/>
1440          </parameter>
1441          <parameter name="bits_per_sample" transfer-ownership="none">
1442            <doc xml:space="preserve"
1443                 filename="gdk-pixbuf/gdk-pixbuf.c"
1444                 line="561">Number of bits per color sample</doc>
1445            <type name="gint" c:type="int"/>
1446          </parameter>
1447          <parameter name="width" transfer-ownership="none">
1448            <doc xml:space="preserve"
1449                 filename="gdk-pixbuf/gdk-pixbuf.c"
1450                 line="562">Width of image in pixels, must be &gt; 0</doc>
1451            <type name="gint" c:type="int"/>
1452          </parameter>
1453          <parameter name="height" transfer-ownership="none">
1454            <doc xml:space="preserve"
1455                 filename="gdk-pixbuf/gdk-pixbuf.c"
1456                 line="563">Height of image in pixels, must be &gt; 0</doc>
1457            <type name="gint" c:type="int"/>
1458          </parameter>
1459        </parameters>
1460      </function>
1461      <function name="get_file_info"
1462                c:identifier="gdk_pixbuf_get_file_info"
1463                version="2.4"
1464                glib:async-func="get_file_info_async">
1465        <doc xml:space="preserve"
1466             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1467             line="2054">Parses an image file far enough to determine its format and size.</doc>
1468        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="77"/>
1469        <return-value transfer-ownership="none" nullable="1">
1470          <doc xml:space="preserve"
1471               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1472               line="2062">A `GdkPixbufFormat` describing
1473  the image format of the file</doc>
1474          <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
1475        </return-value>
1476        <parameters>
1477          <parameter name="filename" transfer-ownership="none">
1478            <doc xml:space="preserve"
1479                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1480                 line="2056">The name of the file to identify.</doc>
1481            <type name="filename" c:type="const gchar*"/>
1482          </parameter>
1483          <parameter name="width"
1484                     direction="out"
1485                     caller-allocates="0"
1486                     transfer-ownership="full"
1487                     optional="1"
1488                     allow-none="1">
1489            <doc xml:space="preserve"
1490                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1491                 line="2057">Return location for the width of the image</doc>
1492            <type name="gint" c:type="gint*"/>
1493          </parameter>
1494          <parameter name="height"
1495                     direction="out"
1496                     caller-allocates="0"
1497                     transfer-ownership="full"
1498                     optional="1"
1499                     allow-none="1">
1500            <doc xml:space="preserve"
1501                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1502                 line="2058">Return location for the height of the image</doc>
1503            <type name="gint" c:type="gint*"/>
1504          </parameter>
1505        </parameters>
1506      </function>
1507      <function name="get_file_info_async"
1508                c:identifier="gdk_pixbuf_get_file_info_async"
1509                version="2.32"
1510                glib:finish-func="get_file_info_finish"
1511                glib:sync-func="get_file_info">
1512        <doc xml:space="preserve"
1513             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1514             line="2152">Asynchronously parses an image file far enough to determine its
1515format and size.
1516
1517For more details see gdk_pixbuf_get_file_info(), which is the synchronous
1518version of this function.
1519
1520When the operation is finished, @callback will be called in the
1521main thread. You can then call gdk_pixbuf_get_file_info_finish() to
1522get the result of the operation.</doc>
1523        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="81"/>
1524        <return-value transfer-ownership="none">
1525          <type name="none" c:type="void"/>
1526        </return-value>
1527        <parameters>
1528          <parameter name="filename" transfer-ownership="none">
1529            <doc xml:space="preserve"
1530                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1531                 line="2154">The name of the file to identify</doc>
1532            <type name="filename" c:type="const gchar*"/>
1533          </parameter>
1534          <parameter name="cancellable"
1535                     transfer-ownership="none"
1536                     nullable="1"
1537                     allow-none="1">
1538            <doc xml:space="preserve"
1539                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1540                 line="2155">optional `GCancellable` object, `NULL` to ignore</doc>
1541            <type name="Gio.Cancellable" c:type="GCancellable*"/>
1542          </parameter>
1543          <parameter name="callback"
1544                     transfer-ownership="none"
1545                     nullable="1"
1546                     allow-none="1"
1547                     scope="async"
1548                     closure="3">
1549            <doc xml:space="preserve"
1550                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1551                 line="2156">a `GAsyncReadyCallback` to call when the file info is available</doc>
1552            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1553          </parameter>
1554          <parameter name="user_data"
1555                     transfer-ownership="none"
1556                     nullable="1"
1557                     allow-none="1">
1558            <doc xml:space="preserve"
1559                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1560                 line="2157">the data to pass to the callback function</doc>
1561            <type name="gpointer" c:type="gpointer"/>
1562          </parameter>
1563        </parameters>
1564      </function>
1565      <function name="get_file_info_finish"
1566                c:identifier="gdk_pixbuf_get_file_info_finish"
1567                version="2.32"
1568                throws="1">
1569        <doc xml:space="preserve"
1570             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1571             line="2195">Finishes an asynchronous pixbuf parsing operation started with
1572gdk_pixbuf_get_file_info_async().</doc>
1573        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="86"/>
1574        <return-value transfer-ownership="none" nullable="1">
1575          <doc xml:space="preserve"
1576               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1577               line="2205">A `GdkPixbufFormat` describing the
1578  image format of the file</doc>
1579          <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
1580        </return-value>
1581        <parameters>
1582          <parameter name="async_result" transfer-ownership="none">
1583            <doc xml:space="preserve"
1584                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1585                 line="2197">a `GAsyncResult`</doc>
1586            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1587          </parameter>
1588          <parameter name="width"
1589                     direction="out"
1590                     caller-allocates="0"
1591                     transfer-ownership="full">
1592            <doc xml:space="preserve"
1593                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1594                 line="2198">Return location for the width of the image, or `NULL`</doc>
1595            <type name="gint" c:type="gint*"/>
1596          </parameter>
1597          <parameter name="height"
1598                     direction="out"
1599                     caller-allocates="0"
1600                     transfer-ownership="full">
1601            <doc xml:space="preserve"
1602                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1603                 line="2199">Return location for the height of the image, or `NULL`</doc>
1604            <type name="gint" c:type="gint*"/>
1605          </parameter>
1606        </parameters>
1607      </function>
1608      <function name="get_formats"
1609                c:identifier="gdk_pixbuf_get_formats"
1610                version="2.2">
1611        <doc xml:space="preserve"
1612             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1613             line="3520">Obtains the available information about the image formats supported
1614by GdkPixbuf.</doc>
1615        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="52"/>
1616        <return-value transfer-ownership="container">
1617          <doc xml:space="preserve"
1618               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1619               line="3526">A list of
1620  support image formats.</doc>
1621          <type name="GLib.SList" c:type="GSList*">
1622            <type name="PixbufFormat"/>
1623          </type>
1624        </return-value>
1625      </function>
1626      <function name="init_modules"
1627                c:identifier="gdk_pixbuf_init_modules"
1628                version="2.40"
1629                throws="1">
1630        <doc xml:space="preserve"
1631             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1632             line="563">Initalizes the gdk-pixbuf loader modules referenced by the `loaders.cache`
1633file present inside that directory.
1634
1635This is to be used by applications that want to ship certain loaders
1636in a different location from the system ones.
1637
1638This is needed when the OS or runtime ships a minimal number of loaders
1639so as to reduce the potential attack surface of carefully crafted image
1640files, especially for uncommon file types. Applications that require
1641broader image file types coverage, such as image viewers, would be
1642expected to ship the gdk-pixbuf modules in a separate location, bundled
1643with the application in a separate directory from the OS or runtime-
1644provided modules.</doc>
1645        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="45"/>
1646        <return-value transfer-ownership="none">
1647          <type name="gboolean" c:type="gboolean"/>
1648        </return-value>
1649        <parameters>
1650          <parameter name="path" transfer-ownership="none">
1651            <doc xml:space="preserve"
1652                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1653                 line="565">Path to directory where the `loaders.cache` is installed</doc>
1654            <type name="utf8" c:type="const char*"/>
1655          </parameter>
1656        </parameters>
1657      </function>
1658      <function name="new_from_stream_async"
1659                c:identifier="gdk_pixbuf_new_from_stream_async"
1660                version="2.24"
1661                glib:finish-func="gdk_pixbuf_new_from_stream_finish">
1662        <doc xml:space="preserve"
1663             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1664             line="1962">Creates a new pixbuf by asynchronously loading an image from an input stream.
1665
1666For more details see gdk_pixbuf_new_from_stream(), which is the synchronous
1667version of this function.
1668
1669When the operation is finished, @callback will be called in the main thread.
1670You can then call gdk_pixbuf_new_from_stream_finish() to get the result of
1671the operation.</doc>
1672        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="409"/>
1673        <return-value transfer-ownership="none">
1674          <type name="none" c:type="void"/>
1675        </return-value>
1676        <parameters>
1677          <parameter name="stream" transfer-ownership="none">
1678            <doc xml:space="preserve"
1679                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1680                 line="1964">a `GInputStream` from which to load the pixbuf</doc>
1681            <type name="Gio.InputStream" c:type="GInputStream*"/>
1682          </parameter>
1683          <parameter name="cancellable"
1684                     transfer-ownership="none"
1685                     nullable="1"
1686                     allow-none="1">
1687            <doc xml:space="preserve"
1688                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1689                 line="1965">optional `GCancellable` object, `NULL` to ignore</doc>
1690            <type name="Gio.Cancellable" c:type="GCancellable*"/>
1691          </parameter>
1692          <parameter name="callback"
1693                     transfer-ownership="none"
1694                     nullable="1"
1695                     allow-none="1"
1696                     scope="async"
1697                     closure="3">
1698            <doc xml:space="preserve"
1699                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1700                 line="1966">a `GAsyncReadyCallback` to call when the pixbuf is loaded</doc>
1701            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1702          </parameter>
1703          <parameter name="user_data"
1704                     transfer-ownership="none"
1705                     nullable="1"
1706                     allow-none="1">
1707            <doc xml:space="preserve"
1708                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1709                 line="1967">the data to pass to the callback function</doc>
1710            <type name="gpointer" c:type="gpointer"/>
1711          </parameter>
1712        </parameters>
1713      </function>
1714      <function name="new_from_stream_at_scale_async"
1715                c:identifier="gdk_pixbuf_new_from_stream_at_scale_async"
1716                version="2.24"
1717                glib:finish-func="gdk_pixbuf_new_from_stream_finish">
1718        <doc xml:space="preserve"
1719             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1720             line="1742">Creates a new pixbuf by asynchronously loading an image from an input stream.
1721
1722For more details see gdk_pixbuf_new_from_stream_at_scale(), which is the synchronous
1723version of this function.
1724
1725When the operation is finished, @callback will be called in the main thread.
1726You can then call gdk_pixbuf_new_from_stream_finish() to get the result of the operation.</doc>
1727        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="427"/>
1728        <return-value transfer-ownership="none">
1729          <type name="none" c:type="void"/>
1730        </return-value>
1731        <parameters>
1732          <parameter name="stream" transfer-ownership="none">
1733            <doc xml:space="preserve"
1734                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1735                 line="1744">a `GInputStream` from which to load the pixbuf</doc>
1736            <type name="Gio.InputStream" c:type="GInputStream*"/>
1737          </parameter>
1738          <parameter name="width" transfer-ownership="none">
1739            <doc xml:space="preserve"
1740                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1741                 line="1745">the width the image should have or -1 to not constrain the width</doc>
1742            <type name="gint" c:type="gint"/>
1743          </parameter>
1744          <parameter name="height" transfer-ownership="none">
1745            <doc xml:space="preserve"
1746                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1747                 line="1746">the height the image should have or -1 to not constrain the height</doc>
1748            <type name="gint" c:type="gint"/>
1749          </parameter>
1750          <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1751            <doc xml:space="preserve"
1752                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1753                 line="1747">`TRUE` to preserve the image's aspect ratio</doc>
1754            <type name="gboolean" c:type="gboolean"/>
1755          </parameter>
1756          <parameter name="cancellable"
1757                     transfer-ownership="none"
1758                     nullable="1"
1759                     allow-none="1">
1760            <doc xml:space="preserve"
1761                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1762                 line="1748">optional `GCancellable` object, `NULL` to ignore</doc>
1763            <type name="Gio.Cancellable" c:type="GCancellable*"/>
1764          </parameter>
1765          <parameter name="callback"
1766                     transfer-ownership="none"
1767                     nullable="1"
1768                     allow-none="1"
1769                     scope="async"
1770                     closure="6">
1771            <doc xml:space="preserve"
1772                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1773                 line="1749">a `GAsyncReadyCallback` to call when the pixbuf is loaded</doc>
1774            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1775          </parameter>
1776          <parameter name="user_data"
1777                     transfer-ownership="none"
1778                     nullable="1"
1779                     allow-none="1">
1780            <doc xml:space="preserve"
1781                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1782                 line="1750">the data to pass to the callback function</doc>
1783            <type name="gpointer" c:type="gpointer"/>
1784          </parameter>
1785        </parameters>
1786      </function>
1787      <function name="save_to_stream_finish"
1788                c:identifier="gdk_pixbuf_save_to_stream_finish"
1789                version="2.24"
1790                throws="1">
1791        <doc xml:space="preserve"
1792             filename="gdk-pixbuf/gdk-pixbuf-io.c"
1793             line="3293">Finishes an asynchronous pixbuf save operation started with
1794gdk_pixbuf_save_to_stream_async().</doc>
1795        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="453"/>
1796        <return-value transfer-ownership="none">
1797          <doc xml:space="preserve"
1798               filename="gdk-pixbuf/gdk-pixbuf-io.c"
1799               line="3301">`TRUE` if the pixbuf was saved successfully, `FALSE` if an error was set.</doc>
1800          <type name="gboolean" c:type="gboolean"/>
1801        </return-value>
1802        <parameters>
1803          <parameter name="async_result" transfer-ownership="none">
1804            <doc xml:space="preserve"
1805                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1806                 line="3295">a `GAsyncResult`</doc>
1807            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1808          </parameter>
1809        </parameters>
1810      </function>
1811      <method name="add_alpha" c:identifier="gdk_pixbuf_add_alpha">
1812        <doc xml:space="preserve"
1813             filename="gdk-pixbuf/gdk-pixbuf-util.c"
1814             line="29">Takes an existing pixbuf and adds an alpha channel to it.
1815
1816If the existing pixbuf already had an alpha channel, the channel
1817values are copied from the original; otherwise, the alpha channel
1818is initialized to 255 (full opacity).
1819
1820If `substitute_color` is `TRUE`, then the color specified by the
1821(`r`, `g`, `b`) arguments will be assigned zero opacity. That is,
1822if you pass `(255, 255, 255)` for the substitute color, all white
1823pixels will become fully transparent.
1824
1825If `substitute_color` is `FALSE`, then the (`r`, `g`, `b`) arguments
1826will be ignored.</doc>
1827        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="477"/>
1828        <return-value transfer-ownership="full" nullable="1">
1829          <doc xml:space="preserve"
1830               filename="gdk-pixbuf/gdk-pixbuf-util.c"
1831               line="51">A newly-created pixbuf</doc>
1832          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1833        </return-value>
1834        <parameters>
1835          <instance-parameter name="pixbuf" transfer-ownership="none">
1836            <doc xml:space="preserve"
1837                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1838                 line="31">A #GdkPixbuf.</doc>
1839            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
1840          </instance-parameter>
1841          <parameter name="substitute_color" transfer-ownership="none">
1842            <doc xml:space="preserve"
1843                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1844                 line="32">Whether to set a color to zero opacity.</doc>
1845            <type name="gboolean" c:type="gboolean"/>
1846          </parameter>
1847          <parameter name="r" transfer-ownership="none">
1848            <doc xml:space="preserve"
1849                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1850                 line="33">Red value to substitute.</doc>
1851            <type name="guint8" c:type="guchar"/>
1852          </parameter>
1853          <parameter name="g" transfer-ownership="none">
1854            <doc xml:space="preserve"
1855                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1856                 line="34">Green value to substitute.</doc>
1857            <type name="guint8" c:type="guchar"/>
1858          </parameter>
1859          <parameter name="b" transfer-ownership="none">
1860            <doc xml:space="preserve"
1861                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1862                 line="35">Blue value to substitute.</doc>
1863            <type name="guint8" c:type="guchar"/>
1864          </parameter>
1865        </parameters>
1866      </method>
1867      <method name="apply_embedded_orientation"
1868              c:identifier="gdk_pixbuf_apply_embedded_orientation"
1869              version="2.12">
1870        <doc xml:space="preserve"
1871             filename="gdk-pixbuf/gdk-pixbuf-util.c"
1872             line="273">Takes an existing pixbuf and checks for the presence of an
1873associated "orientation" option.
1874
1875The orientation option may be provided by the JPEG loader (which
1876reads the exif orientation tag) or the TIFF loader (which reads
1877the TIFF orientation tag, and compensates it for the partial
1878transforms performed by libtiff).
1879
1880If an orientation option/tag is present, the appropriate transform
1881will be performed so that the pixbuf is oriented correctly.</doc>
1882        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="497"/>
1883        <return-value transfer-ownership="full" nullable="1">
1884          <doc xml:space="preserve"
1885               filename="gdk-pixbuf/gdk-pixbuf-util.c"
1886               line="288">A newly-created pixbuf</doc>
1887          <type name="Pixbuf" c:type="GdkPixbuf*"/>
1888        </return-value>
1889        <parameters>
1890          <instance-parameter name="src" transfer-ownership="none">
1891            <doc xml:space="preserve"
1892                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1893                 line="275">a pixbuf with an orientation option</doc>
1894            <type name="Pixbuf" c:type="GdkPixbuf*"/>
1895          </instance-parameter>
1896        </parameters>
1897      </method>
1898      <method name="composite" c:identifier="gdk_pixbuf_composite">
1899        <doc xml:space="preserve"
1900             filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1901             line="91">Creates a transformation of the source image @src by scaling by
1902@scale_x and @scale_y then translating by @offset_x and @offset_y.
1903
1904This gives an image in the coordinates of the destination pixbuf.
1905The rectangle (@dest_x, @dest_y, @dest_width, @dest_height)
1906is then alpha blended onto the corresponding rectangle of the
1907original destination image.
1908
1909When the destination rectangle contains parts not in the source
1910image, the data at the edges of the source image is replicated
1911to infinity.
1912
1913![](composite.png)</doc>
1914        <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
1915                         line="111"/>
1916        <return-value transfer-ownership="none">
1917          <type name="none" c:type="void"/>
1918        </return-value>
1919        <parameters>
1920          <instance-parameter name="src" transfer-ownership="none">
1921            <doc xml:space="preserve"
1922                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1923                 line="93">a #GdkPixbuf</doc>
1924            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
1925          </instance-parameter>
1926          <parameter name="dest" transfer-ownership="none">
1927            <doc xml:space="preserve"
1928                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1929                 line="94">the #GdkPixbuf into which to render the results</doc>
1930            <type name="Pixbuf" c:type="GdkPixbuf*"/>
1931          </parameter>
1932          <parameter name="dest_x" transfer-ownership="none">
1933            <doc xml:space="preserve"
1934                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1935                 line="95">the left coordinate for region to render</doc>
1936            <type name="gint" c:type="int"/>
1937          </parameter>
1938          <parameter name="dest_y" transfer-ownership="none">
1939            <doc xml:space="preserve"
1940                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1941                 line="96">the top coordinate for region to render</doc>
1942            <type name="gint" c:type="int"/>
1943          </parameter>
1944          <parameter name="dest_width" transfer-ownership="none">
1945            <doc xml:space="preserve"
1946                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1947                 line="97">the width of the region to render</doc>
1948            <type name="gint" c:type="int"/>
1949          </parameter>
1950          <parameter name="dest_height" transfer-ownership="none">
1951            <doc xml:space="preserve"
1952                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1953                 line="98">the height of the region to render</doc>
1954            <type name="gint" c:type="int"/>
1955          </parameter>
1956          <parameter name="offset_x" transfer-ownership="none">
1957            <doc xml:space="preserve"
1958                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1959                 line="99">the offset in the X direction (currently rounded to an integer)</doc>
1960            <type name="gdouble" c:type="double"/>
1961          </parameter>
1962          <parameter name="offset_y" transfer-ownership="none">
1963            <doc xml:space="preserve"
1964                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1965                 line="100">the offset in the Y direction (currently rounded to an integer)</doc>
1966            <type name="gdouble" c:type="double"/>
1967          </parameter>
1968          <parameter name="scale_x" transfer-ownership="none">
1969            <doc xml:space="preserve"
1970                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1971                 line="101">the scale factor in the X direction</doc>
1972            <type name="gdouble" c:type="double"/>
1973          </parameter>
1974          <parameter name="scale_y" transfer-ownership="none">
1975            <doc xml:space="preserve"
1976                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1977                 line="102">the scale factor in the Y direction</doc>
1978            <type name="gdouble" c:type="double"/>
1979          </parameter>
1980          <parameter name="interp_type" transfer-ownership="none">
1981            <doc xml:space="preserve"
1982                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1983                 line="103">the interpolation type for the transformation.</doc>
1984            <type name="InterpType" c:type="GdkInterpType"/>
1985          </parameter>
1986          <parameter name="overall_alpha" transfer-ownership="none">
1987            <doc xml:space="preserve"
1988                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1989                 line="104">overall alpha for source image (0..255)</doc>
1990            <type name="gint" c:type="int"/>
1991          </parameter>
1992        </parameters>
1993      </method>
1994      <method name="composite_color" c:identifier="gdk_pixbuf_composite_color">
1995        <doc xml:space="preserve"
1996             filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1997             line="158">Creates a transformation of the source image @src by scaling by
1998@scale_x and @scale_y then translating by @offset_x and @offset_y,
1999then alpha blends the rectangle (@dest_x ,@dest_y, @dest_width,
2000@dest_height) of the resulting image with a checkboard of the
2001colors @color1 and @color2 and renders it onto the destination
2002image.
2003
2004If the source image has no alpha channel, and @overall_alpha is 255, a fast
2005path is used which omits the alpha blending and just performs the scaling.
2006
2007See gdk_pixbuf_composite_color_simple() for a simpler variant of this
2008function suitable for many tasks.</doc>
2009        <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2010                         line="124"/>
2011        <return-value transfer-ownership="none">
2012          <type name="none" c:type="void"/>
2013        </return-value>
2014        <parameters>
2015          <instance-parameter name="src" transfer-ownership="none">
2016            <doc xml:space="preserve"
2017                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2018                 line="160">a #GdkPixbuf</doc>
2019            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2020          </instance-parameter>
2021          <parameter name="dest" transfer-ownership="none">
2022            <doc xml:space="preserve"
2023                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2024                 line="161">the #GdkPixbuf into which to render the results</doc>
2025            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2026          </parameter>
2027          <parameter name="dest_x" transfer-ownership="none">
2028            <doc xml:space="preserve"
2029                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2030                 line="162">the left coordinate for region to render</doc>
2031            <type name="gint" c:type="int"/>
2032          </parameter>
2033          <parameter name="dest_y" transfer-ownership="none">
2034            <doc xml:space="preserve"
2035                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2036                 line="163">the top coordinate for region to render</doc>
2037            <type name="gint" c:type="int"/>
2038          </parameter>
2039          <parameter name="dest_width" transfer-ownership="none">
2040            <doc xml:space="preserve"
2041                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2042                 line="164">the width of the region to render</doc>
2043            <type name="gint" c:type="int"/>
2044          </parameter>
2045          <parameter name="dest_height" transfer-ownership="none">
2046            <doc xml:space="preserve"
2047                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2048                 line="165">the height of the region to render</doc>
2049            <type name="gint" c:type="int"/>
2050          </parameter>
2051          <parameter name="offset_x" transfer-ownership="none">
2052            <doc xml:space="preserve"
2053                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2054                 line="166">the offset in the X direction (currently rounded to an integer)</doc>
2055            <type name="gdouble" c:type="double"/>
2056          </parameter>
2057          <parameter name="offset_y" transfer-ownership="none">
2058            <doc xml:space="preserve"
2059                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2060                 line="167">the offset in the Y direction (currently rounded to an integer)</doc>
2061            <type name="gdouble" c:type="double"/>
2062          </parameter>
2063          <parameter name="scale_x" transfer-ownership="none">
2064            <doc xml:space="preserve"
2065                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2066                 line="168">the scale factor in the X direction</doc>
2067            <type name="gdouble" c:type="double"/>
2068          </parameter>
2069          <parameter name="scale_y" transfer-ownership="none">
2070            <doc xml:space="preserve"
2071                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2072                 line="169">the scale factor in the Y direction</doc>
2073            <type name="gdouble" c:type="double"/>
2074          </parameter>
2075          <parameter name="interp_type" transfer-ownership="none">
2076            <doc xml:space="preserve"
2077                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2078                 line="170">the interpolation type for the transformation.</doc>
2079            <type name="InterpType" c:type="GdkInterpType"/>
2080          </parameter>
2081          <parameter name="overall_alpha" transfer-ownership="none">
2082            <doc xml:space="preserve"
2083                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2084                 line="171">overall alpha for source image (0..255)</doc>
2085            <type name="gint" c:type="int"/>
2086          </parameter>
2087          <parameter name="check_x" transfer-ownership="none">
2088            <doc xml:space="preserve"
2089                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2090                 line="172">the X offset for the checkboard (origin of checkboard is at -@check_x, -@check_y)</doc>
2091            <type name="gint" c:type="int"/>
2092          </parameter>
2093          <parameter name="check_y" transfer-ownership="none">
2094            <doc xml:space="preserve"
2095                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2096                 line="173">the Y offset for the checkboard</doc>
2097            <type name="gint" c:type="int"/>
2098          </parameter>
2099          <parameter name="check_size" transfer-ownership="none">
2100            <doc xml:space="preserve"
2101                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2102                 line="174">the size of checks in the checkboard (must be a power of two)</doc>
2103            <type name="gint" c:type="int"/>
2104          </parameter>
2105          <parameter name="color1" transfer-ownership="none">
2106            <doc xml:space="preserve"
2107                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2108                 line="175">the color of check at upper left</doc>
2109            <type name="guint32" c:type="guint32"/>
2110          </parameter>
2111          <parameter name="color2" transfer-ownership="none">
2112            <doc xml:space="preserve"
2113                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2114                 line="176">the color of the other check</doc>
2115            <type name="guint32" c:type="guint32"/>
2116          </parameter>
2117        </parameters>
2118      </method>
2119      <method name="composite_color_simple"
2120              c:identifier="gdk_pixbuf_composite_color_simple">
2121        <doc xml:space="preserve"
2122             filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2123             line="292">Creates a new pixbuf by scaling `src` to `dest_width` x `dest_height`
2124and alpha blending the result with a checkboard of colors `color1`
2125and `color2`.</doc>
2126        <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2127                         line="149"/>
2128        <return-value transfer-ownership="full" nullable="1">
2129          <doc xml:space="preserve"
2130               filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2131               line="307">the new pixbuf</doc>
2132          <type name="Pixbuf" c:type="GdkPixbuf*"/>
2133        </return-value>
2134        <parameters>
2135          <instance-parameter name="src" transfer-ownership="none">
2136            <doc xml:space="preserve"
2137                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2138                 line="294">a #GdkPixbuf</doc>
2139            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2140          </instance-parameter>
2141          <parameter name="dest_width" transfer-ownership="none">
2142            <doc xml:space="preserve"
2143                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2144                 line="295">the width of destination image</doc>
2145            <type name="gint" c:type="int"/>
2146          </parameter>
2147          <parameter name="dest_height" transfer-ownership="none">
2148            <doc xml:space="preserve"
2149                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2150                 line="296">the height of destination image</doc>
2151            <type name="gint" c:type="int"/>
2152          </parameter>
2153          <parameter name="interp_type" transfer-ownership="none">
2154            <doc xml:space="preserve"
2155                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2156                 line="297">the interpolation type for the transformation.</doc>
2157            <type name="InterpType" c:type="GdkInterpType"/>
2158          </parameter>
2159          <parameter name="overall_alpha" transfer-ownership="none">
2160            <doc xml:space="preserve"
2161                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2162                 line="298">overall alpha for source image (0..255)</doc>
2163            <type name="gint" c:type="int"/>
2164          </parameter>
2165          <parameter name="check_size" transfer-ownership="none">
2166            <doc xml:space="preserve"
2167                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2168                 line="299">the size of checks in the checkboard (must be a power of two)</doc>
2169            <type name="gint" c:type="int"/>
2170          </parameter>
2171          <parameter name="color1" transfer-ownership="none">
2172            <doc xml:space="preserve"
2173                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2174                 line="300">the color of check at upper left</doc>
2175            <type name="guint32" c:type="guint32"/>
2176          </parameter>
2177          <parameter name="color2" transfer-ownership="none">
2178            <doc xml:space="preserve"
2179                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2180                 line="301">the color of the other check</doc>
2181            <type name="guint32" c:type="guint32"/>
2182          </parameter>
2183        </parameters>
2184      </method>
2185      <method name="copy" c:identifier="gdk_pixbuf_copy">
2186        <doc xml:space="preserve"
2187             filename="gdk-pixbuf/gdk-pixbuf.c"
2188             line="643">Creates a new `GdkPixbuf` with a copy of the information in the specified
2189`pixbuf`.
2190
2191Note that this does not copy the options set on the original `GdkPixbuf`,
2192use gdk_pixbuf_copy_options() for this.</doc>
2193        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="216"/>
2194        <return-value transfer-ownership="full" nullable="1">
2195          <doc xml:space="preserve"
2196               filename="gdk-pixbuf/gdk-pixbuf.c"
2197               line="653">A newly-created pixbuf</doc>
2198          <type name="Pixbuf" c:type="GdkPixbuf*"/>
2199        </return-value>
2200        <parameters>
2201          <instance-parameter name="pixbuf" transfer-ownership="none">
2202            <doc xml:space="preserve"
2203                 filename="gdk-pixbuf/gdk-pixbuf.c"
2204                 line="645">A pixbuf.</doc>
2205            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2206          </instance-parameter>
2207        </parameters>
2208      </method>
2209      <method name="copy_area" c:identifier="gdk_pixbuf_copy_area">
2210        <doc xml:space="preserve"
2211             filename="gdk-pixbuf/gdk-pixbuf-util.c"
2212             line="121">Copies a rectangular area from `src_pixbuf` to `dest_pixbuf`.
2213
2214Conversion of pixbuf formats is done automatically.
2215
2216If the source rectangle overlaps the destination rectangle on the
2217same pixbuf, it will be overwritten during the copy operation.
2218Therefore, you can not use this function to scroll a pixbuf.</doc>
2219        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="482"/>
2220        <return-value transfer-ownership="none">
2221          <type name="none" c:type="void"/>
2222        </return-value>
2223        <parameters>
2224          <instance-parameter name="src_pixbuf" transfer-ownership="none">
2225            <doc xml:space="preserve"
2226                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2227                 line="123">Source pixbuf.</doc>
2228            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2229          </instance-parameter>
2230          <parameter name="src_x" transfer-ownership="none">
2231            <doc xml:space="preserve"
2232                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2233                 line="124">Source X coordinate within @src_pixbuf.</doc>
2234            <type name="gint" c:type="int"/>
2235          </parameter>
2236          <parameter name="src_y" transfer-ownership="none">
2237            <doc xml:space="preserve"
2238                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2239                 line="125">Source Y coordinate within @src_pixbuf.</doc>
2240            <type name="gint" c:type="int"/>
2241          </parameter>
2242          <parameter name="width" transfer-ownership="none">
2243            <doc xml:space="preserve"
2244                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2245                 line="126">Width of the area to copy.</doc>
2246            <type name="gint" c:type="int"/>
2247          </parameter>
2248          <parameter name="height" transfer-ownership="none">
2249            <doc xml:space="preserve"
2250                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2251                 line="127">Height of the area to copy.</doc>
2252            <type name="gint" c:type="int"/>
2253          </parameter>
2254          <parameter name="dest_pixbuf" transfer-ownership="none">
2255            <doc xml:space="preserve"
2256                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2257                 line="128">Destination pixbuf.</doc>
2258            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2259          </parameter>
2260          <parameter name="dest_x" transfer-ownership="none">
2261            <doc xml:space="preserve"
2262                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2263                 line="129">X coordinate within @dest_pixbuf.</doc>
2264            <type name="gint" c:type="int"/>
2265          </parameter>
2266          <parameter name="dest_y" transfer-ownership="none">
2267            <doc xml:space="preserve"
2268                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2269                 line="130">Y coordinate within @dest_pixbuf.</doc>
2270            <type name="gint" c:type="int"/>
2271          </parameter>
2272        </parameters>
2273      </method>
2274      <method name="copy_options"
2275              c:identifier="gdk_pixbuf_copy_options"
2276              version="2.36">
2277        <doc xml:space="preserve"
2278             filename="gdk-pixbuf/gdk-pixbuf.c"
2279             line="1311">Copies the key/value pair options attached to a `GdkPixbuf` to another
2280`GdkPixbuf`.
2281
2282This is useful to keep original metadata after having manipulated
2283a file. However be careful to remove metadata which you've already
2284applied, such as the "orientation" option after rotating the image.</doc>
2285        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="513"/>
2286        <return-value transfer-ownership="none">
2287          <doc xml:space="preserve"
2288               filename="gdk-pixbuf/gdk-pixbuf.c"
2289               line="1323">`TRUE` on success.</doc>
2290          <type name="gboolean" c:type="gboolean"/>
2291        </return-value>
2292        <parameters>
2293          <instance-parameter name="src_pixbuf" transfer-ownership="none">
2294            <doc xml:space="preserve"
2295                 filename="gdk-pixbuf/gdk-pixbuf.c"
2296                 line="1313">the source pixbuf</doc>
2297            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2298          </instance-parameter>
2299          <parameter name="dest_pixbuf" transfer-ownership="none">
2300            <doc xml:space="preserve"
2301                 filename="gdk-pixbuf/gdk-pixbuf.c"
2302                 line="1314">the destination pixbuf</doc>
2303            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2304          </parameter>
2305        </parameters>
2306      </method>
2307      <method name="fill" c:identifier="gdk_pixbuf_fill">
2308        <doc xml:space="preserve"
2309             filename="gdk-pixbuf/gdk-pixbuf.c"
2310             line="1043">Clears a pixbuf to the given RGBA value, converting the RGBA value into
2311the pixbuf's pixel format.
2312
2313The alpha component will be ignored if the pixbuf doesn't have an alpha
2314channel.</doc>
2315        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="301"/>
2316        <return-value transfer-ownership="none">
2317          <type name="none" c:type="void"/>
2318        </return-value>
2319        <parameters>
2320          <instance-parameter name="pixbuf" transfer-ownership="none">
2321            <doc xml:space="preserve"
2322                 filename="gdk-pixbuf/gdk-pixbuf.c"
2323                 line="1045">a `GdkPixbuf`</doc>
2324            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2325          </instance-parameter>
2326          <parameter name="pixel" transfer-ownership="none">
2327            <doc xml:space="preserve"
2328                 filename="gdk-pixbuf/gdk-pixbuf.c"
2329                 line="1046">RGBA pixel to used to clear (`0xffffffff` is opaque white,
2330  `0x00000000` transparent black)</doc>
2331            <type name="guint32" c:type="guint32"/>
2332          </parameter>
2333        </parameters>
2334      </method>
2335      <method name="flip" c:identifier="gdk_pixbuf_flip" version="2.6">
2336        <doc xml:space="preserve"
2337             filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2338             line="446">Flips a pixbuf horizontally or vertically and returns the
2339result in a new pixbuf.</doc>
2340        <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2341                         line="162"/>
2342        <return-value transfer-ownership="full" nullable="1">
2343          <doc xml:space="preserve"
2344               filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2345               line="454">the new pixbuf</doc>
2346          <type name="Pixbuf" c:type="GdkPixbuf*"/>
2347        </return-value>
2348        <parameters>
2349          <instance-parameter name="src" transfer-ownership="none">
2350            <doc xml:space="preserve"
2351                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2352                 line="448">a #GdkPixbuf</doc>
2353            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2354          </instance-parameter>
2355          <parameter name="horizontal" transfer-ownership="none">
2356            <doc xml:space="preserve"
2357                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2358                 line="449">`TRUE` to flip horizontally, `FALSE` to flip vertically</doc>
2359            <type name="gboolean" c:type="gboolean"/>
2360          </parameter>
2361        </parameters>
2362      </method>
2363      <method name="get_bits_per_sample"
2364              c:identifier="gdk_pixbuf_get_bits_per_sample"
2365              glib:get-property="bits-per-sample">
2366        <doc xml:space="preserve"
2367             filename="gdk-pixbuf/gdk-pixbuf.c"
2368             line="795">Queries the number of bits per color sample in a pixbuf.</doc>
2369        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="178"/>
2370        <return-value transfer-ownership="none">
2371          <doc xml:space="preserve"
2372               filename="gdk-pixbuf/gdk-pixbuf.c"
2373               line="801">Number of bits per color sample.</doc>
2374          <type name="gint" c:type="int"/>
2375        </return-value>
2376        <parameters>
2377          <instance-parameter name="pixbuf" transfer-ownership="none">
2378            <doc xml:space="preserve"
2379                 filename="gdk-pixbuf/gdk-pixbuf.c"
2380                 line="797">A pixbuf.</doc>
2381            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2382          </instance-parameter>
2383        </parameters>
2384      </method>
2385      <method name="get_byte_length"
2386              c:identifier="gdk_pixbuf_get_byte_length"
2387              version="2.26">
2388        <doc xml:space="preserve"
2389             filename="gdk-pixbuf/gdk-pixbuf.c"
2390             line="1008">Returns the length of the pixel data, in bytes.</doc>
2391        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="188"/>
2392        <return-value transfer-ownership="none">
2393          <doc xml:space="preserve"
2394               filename="gdk-pixbuf/gdk-pixbuf.c"
2395               line="1014">The length of the pixel data.</doc>
2396          <type name="gsize" c:type="gsize"/>
2397        </return-value>
2398        <parameters>
2399          <instance-parameter name="pixbuf" transfer-ownership="none">
2400            <doc xml:space="preserve"
2401                 filename="gdk-pixbuf/gdk-pixbuf.c"
2402                 line="1010">A pixbuf</doc>
2403            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2404          </instance-parameter>
2405        </parameters>
2406      </method>
2407      <method name="get_colorspace"
2408              c:identifier="gdk_pixbuf_get_colorspace"
2409              glib:get-property="colorspace">
2410        <doc xml:space="preserve"
2411             filename="gdk-pixbuf/gdk-pixbuf.c"
2412             line="747">Queries the color space of a pixbuf.</doc>
2413        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="172"/>
2414        <return-value transfer-ownership="none">
2415          <doc xml:space="preserve"
2416               filename="gdk-pixbuf/gdk-pixbuf.c"
2417               line="753">Color space.</doc>
2418          <type name="Colorspace" c:type="GdkColorspace"/>
2419        </return-value>
2420        <parameters>
2421          <instance-parameter name="pixbuf" transfer-ownership="none">
2422            <doc xml:space="preserve"
2423                 filename="gdk-pixbuf/gdk-pixbuf.c"
2424                 line="749">A pixbuf.</doc>
2425            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2426          </instance-parameter>
2427        </parameters>
2428      </method>
2429      <method name="get_has_alpha"
2430              c:identifier="gdk_pixbuf_get_has_alpha"
2431              glib:get-property="has-alpha">
2432        <doc xml:space="preserve"
2433             filename="gdk-pixbuf/gdk-pixbuf.c"
2434             line="779">Queries whether a pixbuf has an alpha channel (opacity information).</doc>
2435        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="176"/>
2436        <return-value transfer-ownership="none">
2437          <doc xml:space="preserve"
2438               filename="gdk-pixbuf/gdk-pixbuf.c"
2439               line="785">`TRUE` if it has an alpha channel, `FALSE` otherwise.</doc>
2440          <type name="gboolean" c:type="gboolean"/>
2441        </return-value>
2442        <parameters>
2443          <instance-parameter name="pixbuf" transfer-ownership="none">
2444            <doc xml:space="preserve"
2445                 filename="gdk-pixbuf/gdk-pixbuf.c"
2446                 line="781">A pixbuf.</doc>
2447            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2448          </instance-parameter>
2449        </parameters>
2450      </method>
2451      <method name="get_height"
2452              c:identifier="gdk_pixbuf_get_height"
2453              glib:get-property="height">
2454        <doc xml:space="preserve"
2455             filename="gdk-pixbuf/gdk-pixbuf.c"
2456             line="975">Queries the height of a pixbuf.</doc>
2457        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="184"/>
2458        <return-value transfer-ownership="none">
2459          <doc xml:space="preserve"
2460               filename="gdk-pixbuf/gdk-pixbuf.c"
2461               line="981">Height in pixels.</doc>
2462          <type name="gint" c:type="int"/>
2463        </return-value>
2464        <parameters>
2465          <instance-parameter name="pixbuf" transfer-ownership="none">
2466            <doc xml:space="preserve"
2467                 filename="gdk-pixbuf/gdk-pixbuf.c"
2468                 line="977">A pixbuf.</doc>
2469            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2470          </instance-parameter>
2471        </parameters>
2472      </method>
2473      <method name="get_n_channels"
2474              c:identifier="gdk_pixbuf_get_n_channels"
2475              glib:get-property="n-channels">
2476        <doc xml:space="preserve"
2477             filename="gdk-pixbuf/gdk-pixbuf.c"
2478             line="763">Queries the number of channels of a pixbuf.</doc>
2479        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="174"/>
2480        <return-value transfer-ownership="none">
2481          <doc xml:space="preserve"
2482               filename="gdk-pixbuf/gdk-pixbuf.c"
2483               line="769">Number of channels.</doc>
2484          <type name="gint" c:type="int"/>
2485        </return-value>
2486        <parameters>
2487          <instance-parameter name="pixbuf" transfer-ownership="none">
2488            <doc xml:space="preserve"
2489                 filename="gdk-pixbuf/gdk-pixbuf.c"
2490                 line="765">A pixbuf.</doc>
2491            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2492          </instance-parameter>
2493        </parameters>
2494      </method>
2495      <method name="get_option" c:identifier="gdk_pixbuf_get_option">
2496        <doc xml:space="preserve"
2497             filename="gdk-pixbuf/gdk-pixbuf.c"
2498             line="1111">Looks up @key in the list of options that may have been attached to the
2499@pixbuf when it was loaded, or that may have been attached by another
2500function using gdk_pixbuf_set_option().
2501
2502For instance, the ANI loader provides "Title" and "Artist" options.
2503The ICO, XBM, and XPM loaders provide "x_hot" and "y_hot" hot-spot
2504options for cursor definitions. The PNG loader provides the tEXt ancillary
2505chunk key/value pairs as options. Since 2.12, the TIFF and JPEG loaders
2506return an "orientation" option string that corresponds to the embedded
2507TIFF/Exif orientation tag (if present). Since 2.32, the TIFF loader sets
2508the "multipage" option string to "yes" when a multi-page TIFF is loaded.
2509Since 2.32 the JPEG and PNG loaders set "x-dpi" and "y-dpi" if the file
2510contains image density information in dots per inch.
2511Since 2.36.6, the JPEG loader sets the "comment" option with the comment
2512EXIF tag.</doc>
2513        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="505"/>
2514        <return-value transfer-ownership="none" nullable="1">
2515          <doc xml:space="preserve"
2516               filename="gdk-pixbuf/gdk-pixbuf.c"
2517               line="1132">the value associated with `key`</doc>
2518          <type name="utf8" c:type="const gchar*"/>
2519        </return-value>
2520        <parameters>
2521          <instance-parameter name="pixbuf" transfer-ownership="none">
2522            <doc xml:space="preserve"
2523                 filename="gdk-pixbuf/gdk-pixbuf.c"
2524                 line="1113">a `GdkPixbuf`</doc>
2525            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2526          </instance-parameter>
2527          <parameter name="key" transfer-ownership="none">
2528            <doc xml:space="preserve"
2529                 filename="gdk-pixbuf/gdk-pixbuf.c"
2530                 line="1114">a nul-terminated string.</doc>
2531            <type name="utf8" c:type="const gchar*"/>
2532          </parameter>
2533        </parameters>
2534      </method>
2535      <method name="get_options"
2536              c:identifier="gdk_pixbuf_get_options"
2537              version="2.32">
2538        <doc xml:space="preserve"
2539             filename="gdk-pixbuf/gdk-pixbuf.c"
2540             line="1156">Returns a `GHashTable` with a list of all the options that may have been
2541attached to the `pixbuf` when it was loaded, or that may have been
2542attached by another function using [method@GdkPixbuf.Pixbuf.set_option].</doc>
2543        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="511"/>
2544        <return-value transfer-ownership="container">
2545          <doc xml:space="preserve"
2546               filename="gdk-pixbuf/gdk-pixbuf.c"
2547               line="1164">a #GHashTable
2548  of key/values pairs</doc>
2549          <type name="GLib.HashTable" c:type="GHashTable*">
2550            <type name="utf8"/>
2551            <type name="utf8"/>
2552          </type>
2553        </return-value>
2554        <parameters>
2555          <instance-parameter name="pixbuf" transfer-ownership="none">
2556            <doc xml:space="preserve"
2557                 filename="gdk-pixbuf/gdk-pixbuf.c"
2558                 line="1158">a `GdkPixbuf`</doc>
2559            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2560          </instance-parameter>
2561        </parameters>
2562      </method>
2563      <method name="get_pixels"
2564              c:identifier="gdk_pixbuf_get_pixels"
2565              shadowed-by="get_pixels_with_length"
2566              glib:get-property="pixels">
2567        <doc xml:space="preserve"
2568             filename="gdk-pixbuf/gdk-pixbuf.c"
2569             line="811">Queries a pointer to the pixel data of a pixbuf.
2570
2571This function will cause an implicit copy of the pixbuf data if the
2572pixbuf was created from read-only data.
2573
2574Please see the section on [image data](class.Pixbuf.html#image-data) for information
2575about how the pixel data is stored in memory.</doc>
2576        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="180"/>
2577        <return-value transfer-ownership="none">
2578          <doc xml:space="preserve"
2579               filename="gdk-pixbuf/gdk-pixbuf.c"
2580               line="823">A pointer to the pixbuf's pixel data.</doc>
2581          <array zero-terminated="0" c:type="guchar*">
2582            <type name="guint8" c:type="guchar"/>
2583          </array>
2584        </return-value>
2585        <parameters>
2586          <instance-parameter name="pixbuf" transfer-ownership="none">
2587            <doc xml:space="preserve"
2588                 filename="gdk-pixbuf/gdk-pixbuf.c"
2589                 line="813">A pixbuf.</doc>
2590            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2591          </instance-parameter>
2592        </parameters>
2593      </method>
2594      <method name="get_pixels_with_length"
2595              c:identifier="gdk_pixbuf_get_pixels_with_length"
2596              shadows="get_pixels"
2597              version="2.26">
2598        <doc xml:space="preserve"
2599             filename="gdk-pixbuf/gdk-pixbuf.c"
2600             line="857">Queries a pointer to the pixel data of a pixbuf.
2601
2602This function will cause an implicit copy of the pixbuf data if the
2603pixbuf was created from read-only data.
2604
2605Please see the section on [image data](class.Pixbuf.html#image-data) for information
2606about how the pixel data is stored in memory.</doc>
2607        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="191"/>
2608        <return-value transfer-ownership="none">
2609          <doc xml:space="preserve"
2610               filename="gdk-pixbuf/gdk-pixbuf.c"
2611               line="870">A pointer to the pixbuf's
2612pixel data.</doc>
2613          <array length="0" zero-terminated="0" c:type="guchar*">
2614            <type name="guint8" c:type="guchar"/>
2615          </array>
2616        </return-value>
2617        <parameters>
2618          <instance-parameter name="pixbuf" transfer-ownership="none">
2619            <doc xml:space="preserve"
2620                 filename="gdk-pixbuf/gdk-pixbuf.c"
2621                 line="859">A pixbuf.</doc>
2622            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2623          </instance-parameter>
2624          <parameter name="length"
2625                     direction="out"
2626                     caller-allocates="0"
2627                     transfer-ownership="full">
2628            <doc xml:space="preserve"
2629                 filename="gdk-pixbuf/gdk-pixbuf.c"
2630                 line="860">The length of the binary data.</doc>
2631            <type name="guint" c:type="guint*"/>
2632          </parameter>
2633        </parameters>
2634      </method>
2635      <method name="get_rowstride"
2636              c:identifier="gdk_pixbuf_get_rowstride"
2637              glib:get-property="rowstride">
2638        <doc xml:space="preserve"
2639             filename="gdk-pixbuf/gdk-pixbuf.c"
2640             line="991">Queries the rowstride of a pixbuf, which is the number of bytes between
2641the start of a row and the start of the next row.</doc>
2642        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="186"/>
2643        <return-value transfer-ownership="none">
2644          <doc xml:space="preserve"
2645               filename="gdk-pixbuf/gdk-pixbuf.c"
2646               line="998">Distance between row starts.</doc>
2647          <type name="gint" c:type="int"/>
2648        </return-value>
2649        <parameters>
2650          <instance-parameter name="pixbuf" transfer-ownership="none">
2651            <doc xml:space="preserve"
2652                 filename="gdk-pixbuf/gdk-pixbuf.c"
2653                 line="993">A pixbuf.</doc>
2654            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2655          </instance-parameter>
2656        </parameters>
2657      </method>
2658      <method name="get_width"
2659              c:identifier="gdk_pixbuf_get_width"
2660              glib:get-property="width">
2661        <doc xml:space="preserve"
2662             filename="gdk-pixbuf/gdk-pixbuf.c"
2663             line="959">Queries the width of a pixbuf.</doc>
2664        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="182"/>
2665        <return-value transfer-ownership="none">
2666          <doc xml:space="preserve"
2667               filename="gdk-pixbuf/gdk-pixbuf.c"
2668               line="965">Width in pixels.</doc>
2669          <type name="gint" c:type="int"/>
2670        </return-value>
2671        <parameters>
2672          <instance-parameter name="pixbuf" transfer-ownership="none">
2673            <doc xml:space="preserve"
2674                 filename="gdk-pixbuf/gdk-pixbuf.c"
2675                 line="961">A pixbuf.</doc>
2676            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2677          </instance-parameter>
2678        </parameters>
2679      </method>
2680      <method name="new_subpixbuf" c:identifier="gdk_pixbuf_new_subpixbuf">
2681        <doc xml:space="preserve"
2682             filename="gdk-pixbuf/gdk-pixbuf.c"
2683             line="685">Creates a new pixbuf which represents a sub-region of `src_pixbuf`.
2684
2685The new pixbuf shares its pixels with the original pixbuf, so
2686writing to one affects both.  The new pixbuf holds a reference to
2687`src_pixbuf`, so `src_pixbuf` will not be finalized until the new
2688pixbuf is finalized.
2689
2690Note that if `src_pixbuf` is read-only, this function will force it
2691to be mutable.</doc>
2692        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="220"/>
2693        <return-value transfer-ownership="full">
2694          <doc xml:space="preserve"
2695               filename="gdk-pixbuf/gdk-pixbuf.c"
2696               line="703">a new pixbuf</doc>
2697          <type name="Pixbuf" c:type="GdkPixbuf*"/>
2698        </return-value>
2699        <parameters>
2700          <instance-parameter name="src_pixbuf" transfer-ownership="none">
2701            <doc xml:space="preserve"
2702                 filename="gdk-pixbuf/gdk-pixbuf.c"
2703                 line="687">a `GdkPixbuf`</doc>
2704            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2705          </instance-parameter>
2706          <parameter name="src_x" transfer-ownership="none">
2707            <doc xml:space="preserve"
2708                 filename="gdk-pixbuf/gdk-pixbuf.c"
2709                 line="688">X coord in @src_pixbuf</doc>
2710            <type name="gint" c:type="int"/>
2711          </parameter>
2712          <parameter name="src_y" transfer-ownership="none">
2713            <doc xml:space="preserve"
2714                 filename="gdk-pixbuf/gdk-pixbuf.c"
2715                 line="689">Y coord in @src_pixbuf</doc>
2716            <type name="gint" c:type="int"/>
2717          </parameter>
2718          <parameter name="width" transfer-ownership="none">
2719            <doc xml:space="preserve"
2720                 filename="gdk-pixbuf/gdk-pixbuf.c"
2721                 line="690">width of region in @src_pixbuf</doc>
2722            <type name="gint" c:type="int"/>
2723          </parameter>
2724          <parameter name="height" transfer-ownership="none">
2725            <doc xml:space="preserve"
2726                 filename="gdk-pixbuf/gdk-pixbuf.c"
2727                 line="691">height of region in @src_pixbuf</doc>
2728            <type name="gint" c:type="int"/>
2729          </parameter>
2730        </parameters>
2731      </method>
2732      <method name="read_pixel_bytes"
2733              c:identifier="gdk_pixbuf_read_pixel_bytes"
2734              version="2.32">
2735        <doc xml:space="preserve"
2736             filename="gdk-pixbuf/gdk-pixbuf.c"
2737             line="924">Provides a #GBytes buffer containing the raw pixel data; the data
2738must not be modified.
2739
2740This function allows skipping the implicit copy that must be made
2741if gdk_pixbuf_get_pixels() is called on a read-only pixbuf.</doc>
2742        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="197"/>
2743        <return-value transfer-ownership="full">
2744          <doc xml:space="preserve"
2745               filename="gdk-pixbuf/gdk-pixbuf.c"
2746               line="934">A new reference to a read-only copy of
2747  the pixel data.  Note that for mutable pixbufs, this function will
2748  incur a one-time copy of the pixel data for conversion into the
2749  returned #GBytes.</doc>
2750          <type name="GLib.Bytes" c:type="GBytes*"/>
2751        </return-value>
2752        <parameters>
2753          <instance-parameter name="pixbuf" transfer-ownership="none">
2754            <doc xml:space="preserve"
2755                 filename="gdk-pixbuf/gdk-pixbuf.c"
2756                 line="926">A pixbuf</doc>
2757            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2758          </instance-parameter>
2759        </parameters>
2760      </method>
2761      <method name="read_pixels"
2762              c:identifier="gdk_pixbuf_read_pixels"
2763              version="2.32">
2764        <doc xml:space="preserve"
2765             filename="gdk-pixbuf/gdk-pixbuf.c"
2766             line="890">Provides a read-only pointer to the raw pixel data.
2767
2768This function allows skipping the implicit copy that must be made
2769if gdk_pixbuf_get_pixels() is called on a read-only pixbuf.</doc>
2770        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="195"/>
2771        <return-value transfer-ownership="none">
2772          <doc xml:space="preserve"
2773               filename="gdk-pixbuf/gdk-pixbuf.c"
2774               line="899">a read-only pointer to the raw pixel data</doc>
2775          <type name="guint8" c:type="const guint8*"/>
2776        </return-value>
2777        <parameters>
2778          <instance-parameter name="pixbuf" transfer-ownership="none">
2779            <doc xml:space="preserve"
2780                 filename="gdk-pixbuf/gdk-pixbuf.c"
2781                 line="892">A pixbuf</doc>
2782            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2783          </instance-parameter>
2784        </parameters>
2785      </method>
2786      <method name="ref"
2787              c:identifier="gdk_pixbuf_ref"
2788              introspectable="0"
2789              deprecated="1"
2790              deprecated-version="2.0">
2791        <doc xml:space="preserve"
2792             filename="gdk-pixbuf/gdk-pixbuf.c"
2793             line="414">Adds a reference to a pixbuf.</doc>
2794        <doc-deprecated xml:space="preserve">Use g_object_ref().</doc-deprecated>
2795        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="165"/>
2796        <return-value>
2797          <doc xml:space="preserve"
2798               filename="gdk-pixbuf/gdk-pixbuf.c"
2799               line="420">The same as the @pixbuf argument.</doc>
2800          <type name="Pixbuf" c:type="GdkPixbuf*"/>
2801        </return-value>
2802        <parameters>
2803          <instance-parameter name="pixbuf" transfer-ownership="none">
2804            <doc xml:space="preserve"
2805                 filename="gdk-pixbuf/gdk-pixbuf.c"
2806                 line="416">A pixbuf.</doc>
2807            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2808          </instance-parameter>
2809        </parameters>
2810      </method>
2811      <method name="remove_option"
2812              c:identifier="gdk_pixbuf_remove_option"
2813              version="2.36">
2814        <doc xml:space="preserve"
2815             filename="gdk-pixbuf/gdk-pixbuf.c"
2816             line="1191">Removes the key/value pair option attached to a `GdkPixbuf`.</doc>
2817        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="508"/>
2818        <return-value transfer-ownership="none">
2819          <doc xml:space="preserve"
2820               filename="gdk-pixbuf/gdk-pixbuf.c"
2821               line="1198">`TRUE` if an option was removed, `FALSE` if not.</doc>
2822          <type name="gboolean" c:type="gboolean"/>
2823        </return-value>
2824        <parameters>
2825          <instance-parameter name="pixbuf" transfer-ownership="none">
2826            <doc xml:space="preserve"
2827                 filename="gdk-pixbuf/gdk-pixbuf.c"
2828                 line="1193">a `GdkPixbuf`</doc>
2829            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2830          </instance-parameter>
2831          <parameter name="key" transfer-ownership="none">
2832            <doc xml:space="preserve"
2833                 filename="gdk-pixbuf/gdk-pixbuf.c"
2834                 line="1194">a nul-terminated string representing the key to remove.</doc>
2835            <type name="utf8" c:type="const gchar*"/>
2836          </parameter>
2837        </parameters>
2838      </method>
2839      <method name="rotate_simple"
2840              c:identifier="gdk_pixbuf_rotate_simple"
2841              version="2.6">
2842        <doc xml:space="preserve"
2843             filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2844             line="340">Rotates a pixbuf by a multiple of 90 degrees, and returns the
2845result in a new pixbuf.
2846
2847If `angle` is 0, this function will return a copy of `src`.</doc>
2848        <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2849                         line="159"/>
2850        <return-value transfer-ownership="full" nullable="1">
2851          <doc xml:space="preserve"
2852               filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2853               line="350">the new pixbuf</doc>
2854          <type name="Pixbuf" c:type="GdkPixbuf*"/>
2855        </return-value>
2856        <parameters>
2857          <instance-parameter name="src" transfer-ownership="none">
2858            <doc xml:space="preserve"
2859                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2860                 line="342">a #GdkPixbuf</doc>
2861            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2862          </instance-parameter>
2863          <parameter name="angle" transfer-ownership="none">
2864            <doc xml:space="preserve"
2865                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2866                 line="343">the angle to rotate by</doc>
2867            <type name="PixbufRotation" c:type="GdkPixbufRotation"/>
2868          </parameter>
2869        </parameters>
2870      </method>
2871      <method name="saturate_and_pixelate"
2872              c:identifier="gdk_pixbuf_saturate_and_pixelate">
2873        <doc xml:space="preserve"
2874             filename="gdk-pixbuf/gdk-pixbuf-util.c"
2875             line="172">Modifies saturation and optionally pixelates `src`, placing the result in
2876`dest`.
2877
2878The `src` and `dest` pixbufs must have the same image format, size, and
2879rowstride.
2880
2881The `src` and `dest` arguments may be the same pixbuf with no ill effects.
2882
2883If `saturation` is 1.0 then saturation is not changed. If it's less than 1.0,
2884saturation is reduced (the image turns toward grayscale); if greater than
28851.0, saturation is increased (the image gets more vivid colors).
2886
2887If `pixelate` is `TRUE`, then pixels are faded in a checkerboard pattern to
2888create a pixelated image.</doc>
2889        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="490"/>
2890        <return-value transfer-ownership="none">
2891          <type name="none" c:type="void"/>
2892        </return-value>
2893        <parameters>
2894          <instance-parameter name="src" transfer-ownership="none">
2895            <doc xml:space="preserve"
2896                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2897                 line="174">source image</doc>
2898            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2899          </instance-parameter>
2900          <parameter name="dest" transfer-ownership="none">
2901            <doc xml:space="preserve"
2902                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2903                 line="175">place to write modified version of @src</doc>
2904            <type name="Pixbuf" c:type="GdkPixbuf*"/>
2905          </parameter>
2906          <parameter name="saturation" transfer-ownership="none">
2907            <doc xml:space="preserve"
2908                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2909                 line="176">saturation factor</doc>
2910            <type name="gfloat" c:type="gfloat"/>
2911          </parameter>
2912          <parameter name="pixelate" transfer-ownership="none">
2913            <doc xml:space="preserve"
2914                 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2915                 line="177">whether to pixelate</doc>
2916            <type name="gboolean" c:type="gboolean"/>
2917          </parameter>
2918        </parameters>
2919      </method>
2920      <method name="save" c:identifier="gdk_pixbuf_save" introspectable="0">
2921        <doc xml:space="preserve"
2922             filename="gdk-pixbuf/gdk-pixbuf-io.c"
2923             line="2510">Saves pixbuf to a file in format @type. By default, "jpeg", "png", "ico"
2924and "bmp" are possible file formats to save in, but more formats may be
2925installed. The list of all writable formats can be determined in the
2926following way:
2927
2928```c
2929void add_if_writable (GdkPixbufFormat *data, GSList **list)
2930{
2931  if (gdk_pixbuf_format_is_writable (data))
2932    *list = g_slist_prepend (*list, data);
2933}
2934
2935GSList *formats = gdk_pixbuf_get_formats ();
2936GSList *writable_formats = NULL;
2937g_slist_foreach (formats, add_if_writable, &amp;writable_formats);
2938g_slist_free (formats);
2939```
2940
2941If `error` is set, `FALSE` will be returned. Possible errors include
2942those in the `GDK_PIXBUF_ERROR` domain and those in the `G_FILE_ERROR`
2943domain.
2944
2945The variable argument list should be `NULL`-terminated; if not empty,
2946it should contain pairs of strings that modify the save
2947parameters. For example:
2948
2949```c
2950gdk_pixbuf_save (pixbuf, handle, "jpeg", &amp;error, "quality", "100", NULL);
2951```
2952
2953Currently only few parameters exist.
2954
2955JPEG images can be saved with a "quality" parameter; its value should be
2956in the range `[0, 100]`. JPEG and PNG density can be set by setting the
2957"x-dpi" and "y-dpi" parameters to the appropriate values in dots per inch.
2958
2959Text chunks can be attached to PNG images by specifying parameters of
2960the form "tEXt::key", where key is an ASCII string of length 1-79.
2961The values are UTF-8 encoded strings. The PNG compression level can
2962be specified using the "compression" parameter; it's value is in an
2963integer in the range of `[0, 9]`.
2964
2965ICC color profiles can also be embedded into PNG, JPEG and TIFF images.
2966The "icc-profile" value should be the complete ICC profile encoded
2967into base64.
2968
2969```c
2970char *contents;
2971gsize length;
2972
2973// icm_path is set elsewhere
2974g_file_get_contents (icm_path, &amp;contents, &amp;length, NULL);
2975
2976char *contents_encode = g_base64_encode ((const guchar *) contents, length);
2977
2978gdk_pixbuf_save (pixbuf, handle, "png", &amp;error, "icc-profile", contents_encode, NULL);
2979```
2980
2981TIFF images recognize:
2982
2983 1. a "bits-per-sample" option (integer) which can be either 1 for saving
2984    bi-level CCITTFAX4 images, or 8 for saving 8-bits per sample
2985 2. a "compression" option (integer) which can be 1 for no compression,
2986    2 for Huffman, 5 for LZW, 7 for JPEG and 8 for DEFLATE (see the libtiff
2987    documentation and tiff.h for all supported codec values)
2988 3. an "icc-profile" option (zero-terminated string) containing a base64
2989    encoded ICC color profile.
2990
2991ICO images can be saved in depth 16, 24, or 32, by using the "depth"
2992parameter. When the ICO saver is given "x_hot" and "y_hot" parameters,
2993it produces a CUR instead of an ICO.</doc>
2994        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="314"/>
2995        <return-value transfer-ownership="none">
2996          <doc xml:space="preserve"
2997               filename="gdk-pixbuf/gdk-pixbuf-io.c"
2998               line="2590">`TRUE` on success, and `FALSE` otherwise</doc>
2999          <type name="gboolean" c:type="gboolean"/>
3000        </return-value>
3001        <parameters>
3002          <instance-parameter name="pixbuf" transfer-ownership="none">
3003            <doc xml:space="preserve"
3004                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3005                 line="2512">a `GdkPixbuf`.</doc>
3006            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3007          </instance-parameter>
3008          <parameter name="filename" transfer-ownership="none">
3009            <doc xml:space="preserve"
3010                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3011                 line="2513">name of file to save.</doc>
3012            <type name="filename" c:type="const char*"/>
3013          </parameter>
3014          <parameter name="type" transfer-ownership="none">
3015            <doc xml:space="preserve"
3016                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3017                 line="2514">name of file format.</doc>
3018            <type name="utf8" c:type="const char*"/>
3019          </parameter>
3020          <parameter name="error"
3021                     transfer-ownership="none"
3022                     nullable="1"
3023                     allow-none="1">
3024            <doc xml:space="preserve"
3025                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3026                 line="2515">return location for error</doc>
3027            <type name="GLib.Error" c:type="GError**"/>
3028          </parameter>
3029          <parameter name="..." transfer-ownership="none">
3030            <doc xml:space="preserve"
3031                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3032                 line="2516">list of key-value save options, followed by `NULL`</doc>
3033            <varargs/>
3034          </parameter>
3035        </parameters>
3036      </method>
3037      <method name="save_to_buffer"
3038              c:identifier="gdk_pixbuf_save_to_buffer"
3039              version="2.4"
3040              introspectable="0">
3041        <doc xml:space="preserve"
3042             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3043             line="2847">Saves pixbuf to a new buffer in format `type`, which is currently "jpeg",
3044"png", "tiff", "ico" or "bmp".
3045
3046This is a convenience function that uses `gdk_pixbuf_save_to_callback()`
3047to do the real work.
3048
3049Note that the buffer is not `NUL`-terminated and may contain embedded `NUL`
3050characters.
3051
3052If @error is set, `FALSE` will be returned and @buffer will be set to
3053`NULL`. Possible errors include those in the `GDK_PIXBUF_ERROR`
3054domain.
3055
3056See `gdk_pixbuf_save()` for more details.</doc>
3057        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="387"/>
3058        <return-value transfer-ownership="none">
3059          <doc xml:space="preserve"
3060               filename="gdk-pixbuf/gdk-pixbuf-io.c"
3061               line="2872">whether an error was set</doc>
3062          <type name="gboolean" c:type="gboolean"/>
3063        </return-value>
3064        <parameters>
3065          <instance-parameter name="pixbuf" transfer-ownership="none">
3066            <doc xml:space="preserve"
3067                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3068                 line="2849">a `GdkPixbuf`.</doc>
3069            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3070          </instance-parameter>
3071          <parameter name="buffer"
3072                     direction="out"
3073                     caller-allocates="0"
3074                     transfer-ownership="full">
3075            <doc xml:space="preserve"
3076                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3077                 line="2850">location to receive a pointer
3078  to the new buffer.</doc>
3079            <array length="1" zero-terminated="0" c:type="gchar**">
3080              <type name="guint8"/>
3081            </array>
3082          </parameter>
3083          <parameter name="buffer_size"
3084                     direction="out"
3085                     caller-allocates="0"
3086                     transfer-ownership="full">
3087            <doc xml:space="preserve"
3088                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3089                 line="2852">location to receive the size of the new buffer.</doc>
3090            <type name="gsize" c:type="gsize*"/>
3091          </parameter>
3092          <parameter name="type" transfer-ownership="none">
3093            <doc xml:space="preserve"
3094                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3095                 line="2853">name of file format.</doc>
3096            <type name="utf8" c:type="const char*"/>
3097          </parameter>
3098          <parameter name="error" transfer-ownership="none">
3099            <doc xml:space="preserve"
3100                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3101                 line="2854">return location for error, or `NULL`</doc>
3102            <type name="GLib.Error" c:type="GError**"/>
3103          </parameter>
3104          <parameter name="..." transfer-ownership="none">
3105            <doc xml:space="preserve"
3106                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3107                 line="2855">list of key-value save options</doc>
3108            <varargs/>
3109          </parameter>
3110        </parameters>
3111      </method>
3112      <method name="save_to_bufferv"
3113              c:identifier="gdk_pixbuf_save_to_bufferv"
3114              version="2.4"
3115              throws="1">
3116        <doc xml:space="preserve"
3117             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3118             line="2940">Vector version of `gdk_pixbuf_save_to_buffer()`.
3119
3120Saves pixbuf to a new buffer in format @type, which is currently "jpeg",
3121"tiff", "png", "ico" or "bmp".
3122
3123See [method@GdkPixbuf.Pixbuf.save_to_buffer] for more details.</doc>
3124        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="395"/>
3125        <return-value transfer-ownership="none">
3126          <doc xml:space="preserve"
3127               filename="gdk-pixbuf/gdk-pixbuf-io.c"
3128               line="2958">whether an error was set</doc>
3129          <type name="gboolean" c:type="gboolean"/>
3130        </return-value>
3131        <parameters>
3132          <instance-parameter name="pixbuf" transfer-ownership="none">
3133            <doc xml:space="preserve"
3134                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3135                 line="2942">a `GdkPixbuf`.</doc>
3136            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3137          </instance-parameter>
3138          <parameter name="buffer"
3139                     direction="out"
3140                     caller-allocates="0"
3141                     transfer-ownership="full">
3142            <doc xml:space="preserve"
3143                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3144                 line="2943">
3145  location to receive a pointer to the new buffer.</doc>
3146            <array length="1" zero-terminated="0" c:type="gchar**">
3147              <type name="guint8"/>
3148            </array>
3149          </parameter>
3150          <parameter name="buffer_size"
3151                     direction="out"
3152                     caller-allocates="0"
3153                     transfer-ownership="full">
3154            <doc xml:space="preserve"
3155                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3156                 line="2945">location to receive the size of the new buffer.</doc>
3157            <type name="gsize" c:type="gsize*"/>
3158          </parameter>
3159          <parameter name="type" transfer-ownership="none">
3160            <doc xml:space="preserve"
3161                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3162                 line="2946">name of file format.</doc>
3163            <type name="utf8" c:type="const char*"/>
3164          </parameter>
3165          <parameter name="option_keys"
3166                     transfer-ownership="none"
3167                     nullable="1"
3168                     allow-none="1">
3169            <doc xml:space="preserve"
3170                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3171                 line="2947">name of options to set</doc>
3172            <array c:type="char**">
3173              <type name="utf8"/>
3174            </array>
3175          </parameter>
3176          <parameter name="option_values"
3177                     transfer-ownership="none"
3178                     nullable="1"
3179                     allow-none="1">
3180            <doc xml:space="preserve"
3181                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3182                 line="2948">values for named options</doc>
3183            <array c:type="char**">
3184              <type name="utf8"/>
3185            </array>
3186          </parameter>
3187        </parameters>
3188      </method>
3189      <method name="save_to_callback"
3190              c:identifier="gdk_pixbuf_save_to_callback"
3191              version="2.4"
3192              introspectable="0">
3193        <doc xml:space="preserve"
3194             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3195             line="2734">Saves pixbuf in format `type` by feeding the produced data to a
3196callback.
3197
3198This function can be used when you want to store the image to something
3199other than a file, such as an in-memory buffer or a socket.
3200
3201If @error is set, `FALSE` will be returned. Possible errors
3202include those in the `GDK_PIXBUF_ERROR` domain and whatever the save
3203function generates.
3204
3205See [method@GdkPixbuf.Pixbuf.save] for more details.</doc>
3206        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="368"/>
3207        <return-value transfer-ownership="none">
3208          <doc xml:space="preserve"
3209               filename="gdk-pixbuf/gdk-pixbuf-io.c"
3210               line="2756">whether an error was set</doc>
3211          <type name="gboolean" c:type="gboolean"/>
3212        </return-value>
3213        <parameters>
3214          <instance-parameter name="pixbuf" transfer-ownership="none">
3215            <doc xml:space="preserve"
3216                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3217                 line="2736">a `GdkPixbuf`.</doc>
3218            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3219          </instance-parameter>
3220          <parameter name="save_func"
3221                     transfer-ownership="none"
3222                     scope="call"
3223                     closure="1">
3224            <doc xml:space="preserve"
3225                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3226                 line="2737">a function that is called to save each block of data that
3227  the save routine generates.</doc>
3228            <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
3229          </parameter>
3230          <parameter name="user_data"
3231                     transfer-ownership="none"
3232                     nullable="1"
3233                     allow-none="1">
3234            <doc xml:space="preserve"
3235                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3236                 line="2739">user data to pass to the save function.</doc>
3237            <type name="gpointer" c:type="gpointer"/>
3238          </parameter>
3239          <parameter name="type" transfer-ownership="none">
3240            <doc xml:space="preserve"
3241                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3242                 line="2740">name of file format.</doc>
3243            <type name="utf8" c:type="const char*"/>
3244          </parameter>
3245          <parameter name="error"
3246                     transfer-ownership="none"
3247                     nullable="1"
3248                     allow-none="1">
3249            <doc xml:space="preserve"
3250                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3251                 line="2741">return location for error, or `NULL`</doc>
3252            <type name="GLib.Error" c:type="GError**"/>
3253          </parameter>
3254          <parameter name="..." transfer-ownership="none">
3255            <doc xml:space="preserve"
3256                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3257                 line="2742">list of key-value save options</doc>
3258            <varargs/>
3259          </parameter>
3260        </parameters>
3261      </method>
3262      <method name="save_to_callbackv"
3263              c:identifier="gdk_pixbuf_save_to_callbackv"
3264              version="2.4"
3265              throws="1">
3266        <doc xml:space="preserve"
3267             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3268             line="2791">Vector version of `gdk_pixbuf_save_to_callback()`.
3269
3270Saves pixbuf to a callback in format @type, which is currently "jpeg",
3271"png", "tiff", "ico" or "bmp".
3272
3273If @error is set, `FALSE` will be returned.
3274
3275See [method@GdkPixbuf.Pixbuf.save_to_callback] for more details.</doc>
3276        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="376"/>
3277        <return-value transfer-ownership="none">
3278          <doc xml:space="preserve"
3279               filename="gdk-pixbuf/gdk-pixbuf-io.c"
3280               line="2811">whether an error was set</doc>
3281          <type name="gboolean" c:type="gboolean"/>
3282        </return-value>
3283        <parameters>
3284          <instance-parameter name="pixbuf" transfer-ownership="none">
3285            <doc xml:space="preserve"
3286                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3287                 line="2793">a `GdkPixbuf`</doc>
3288            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3289          </instance-parameter>
3290          <parameter name="save_func"
3291                     transfer-ownership="none"
3292                     scope="call"
3293                     closure="1">
3294            <doc xml:space="preserve"
3295                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3296                 line="2794">a function that is called to
3297  save each block of data that the save routine generates</doc>
3298            <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
3299          </parameter>
3300          <parameter name="user_data"
3301                     transfer-ownership="none"
3302                     nullable="1"
3303                     allow-none="1">
3304            <doc xml:space="preserve"
3305                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3306                 line="2796">user data to pass to the save function</doc>
3307            <type name="gpointer" c:type="gpointer"/>
3308          </parameter>
3309          <parameter name="type" transfer-ownership="none">
3310            <doc xml:space="preserve"
3311                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3312                 line="2797">name of file format</doc>
3313            <type name="utf8" c:type="const char*"/>
3314          </parameter>
3315          <parameter name="option_keys"
3316                     transfer-ownership="none"
3317                     nullable="1"
3318                     allow-none="1">
3319            <doc xml:space="preserve"
3320                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3321                 line="2798">name of options to set</doc>
3322            <array c:type="char**">
3323              <type name="utf8"/>
3324            </array>
3325          </parameter>
3326          <parameter name="option_values"
3327                     transfer-ownership="none"
3328                     nullable="1"
3329                     allow-none="1">
3330            <doc xml:space="preserve"
3331                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3332                 line="2799">values for named options</doc>
3333            <array c:type="char**">
3334              <type name="utf8"/>
3335            </array>
3336          </parameter>
3337        </parameters>
3338      </method>
3339      <method name="save_to_stream"
3340              c:identifier="gdk_pixbuf_save_to_stream"
3341              version="2.14"
3342              introspectable="0">
3343        <doc xml:space="preserve"
3344             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3345             line="3084">Saves `pixbuf` to an output stream.
3346
3347Supported file formats are currently "jpeg", "tiff", "png", "ico" or
3348"bmp". See `gdk_pixbuf_save_to_buffer()` for more details.
3349
3350The `cancellable` can be used to abort the operation from another
3351thread. If the operation was cancelled, the error `G_IO_ERROR_CANCELLED`
3352will be returned. Other possible errors are in the `GDK_PIXBUF_ERROR`
3353and `G_IO_ERROR` domains.
3354
3355The stream is not closed at the end of this call.</doc>
3356        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="436"/>
3357        <return-value transfer-ownership="none">
3358          <doc xml:space="preserve"
3359               filename="gdk-pixbuf/gdk-pixbuf-io.c"
3360               line="3105">`TRUE` if the pixbuf was saved successfully, `FALSE` if an
3361  error was set.</doc>
3362          <type name="gboolean" c:type="gboolean"/>
3363        </return-value>
3364        <parameters>
3365          <instance-parameter name="pixbuf" transfer-ownership="none">
3366            <doc xml:space="preserve"
3367                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3368                 line="3086">a `GdkPixbuf`</doc>
3369            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3370          </instance-parameter>
3371          <parameter name="stream" transfer-ownership="none">
3372            <doc xml:space="preserve"
3373                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3374                 line="3087">a `GOutputStream` to save the pixbuf to</doc>
3375            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3376          </parameter>
3377          <parameter name="type" transfer-ownership="none">
3378            <doc xml:space="preserve"
3379                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3380                 line="3088">name of file format</doc>
3381            <type name="utf8" c:type="const char*"/>
3382          </parameter>
3383          <parameter name="cancellable"
3384                     transfer-ownership="none"
3385                     nullable="1"
3386                     allow-none="1">
3387            <doc xml:space="preserve"
3388                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3389                 line="3089">optional `GCancellable` object, `NULL` to ignore</doc>
3390            <type name="Gio.Cancellable" c:type="GCancellable*"/>
3391          </parameter>
3392          <parameter name="error"
3393                     transfer-ownership="none"
3394                     nullable="1"
3395                     allow-none="1">
3396            <doc xml:space="preserve"
3397                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3398                 line="3090">return location for error, or `NULL`</doc>
3399            <type name="GLib.Error" c:type="GError**"/>
3400          </parameter>
3401          <parameter name="..." transfer-ownership="none">
3402            <doc xml:space="preserve"
3403                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3404                 line="3091">list of key-value save options</doc>
3405            <varargs/>
3406          </parameter>
3407        </parameters>
3408      </method>
3409      <method name="save_to_stream_async"
3410              c:identifier="gdk_pixbuf_save_to_stream_async"
3411              version="2.24"
3412              introspectable="0"
3413              glib:finish-func="gdk_pixbuf_save_to_stream_finish">
3414        <doc xml:space="preserve"
3415             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3416             line="3238">Saves `pixbuf` to an output stream asynchronously.
3417
3418For more details see gdk_pixbuf_save_to_stream(), which is the synchronous
3419version of this function.
3420
3421When the operation is finished, `callback` will be called in the main thread.
3422
3423You can then call gdk_pixbuf_save_to_stream_finish() to get the result of
3424the operation.</doc>
3425        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="444"/>
3426        <return-value transfer-ownership="none">
3427          <type name="none" c:type="void"/>
3428        </return-value>
3429        <parameters>
3430          <instance-parameter name="pixbuf" transfer-ownership="none">
3431            <doc xml:space="preserve"
3432                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3433                 line="3240">a `GdkPixbuf`</doc>
3434            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3435          </instance-parameter>
3436          <parameter name="stream" transfer-ownership="none">
3437            <doc xml:space="preserve"
3438                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3439                 line="3241">a `GOutputStream` to which to save the pixbuf</doc>
3440            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3441          </parameter>
3442          <parameter name="type" transfer-ownership="none">
3443            <doc xml:space="preserve"
3444                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3445                 line="3242">name of file format</doc>
3446            <type name="utf8" c:type="const gchar*"/>
3447          </parameter>
3448          <parameter name="cancellable"
3449                     transfer-ownership="none"
3450                     nullable="1"
3451                     allow-none="1">
3452            <doc xml:space="preserve"
3453                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3454                 line="3243">optional `GCancellable` object, `NULL` to ignore</doc>
3455            <type name="Gio.Cancellable" c:type="GCancellable*"/>
3456          </parameter>
3457          <parameter name="callback"
3458                     transfer-ownership="none"
3459                     nullable="1"
3460                     allow-none="1"
3461                     scope="async"
3462                     closure="4">
3463            <doc xml:space="preserve"
3464                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3465                 line="3244">a `GAsyncReadyCallback` to call when the pixbuf is saved</doc>
3466            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
3467          </parameter>
3468          <parameter name="user_data"
3469                     transfer-ownership="none"
3470                     nullable="1"
3471                     allow-none="1">
3472            <doc xml:space="preserve"
3473                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3474                 line="3245">the data to pass to the callback function</doc>
3475            <type name="gpointer" c:type="gpointer"/>
3476          </parameter>
3477          <parameter name="..." transfer-ownership="none">
3478            <doc xml:space="preserve"
3479                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3480                 line="3246">list of key-value save options</doc>
3481            <varargs/>
3482          </parameter>
3483        </parameters>
3484      </method>
3485      <method name="save_to_streamv"
3486              c:identifier="gdk_pixbuf_save_to_streamv"
3487              version="2.36"
3488              throws="1">
3489        <doc xml:space="preserve"
3490             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3491             line="3042">Saves `pixbuf` to an output stream.
3492
3493Supported file formats are currently "jpeg", "tiff", "png", "ico" or
3494"bmp".
3495
3496See [method@GdkPixbuf.Pixbuf.save_to_stream] for more details.</doc>
3497        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="467"/>
3498        <return-value transfer-ownership="none">
3499          <doc xml:space="preserve"
3500               filename="gdk-pixbuf/gdk-pixbuf-io.c"
3501               line="3059">`TRUE` if the pixbuf was saved successfully, `FALSE` if an
3502  error was set.</doc>
3503          <type name="gboolean" c:type="gboolean"/>
3504        </return-value>
3505        <parameters>
3506          <instance-parameter name="pixbuf" transfer-ownership="none">
3507            <doc xml:space="preserve"
3508                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3509                 line="3044">a `GdkPixbuf`</doc>
3510            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3511          </instance-parameter>
3512          <parameter name="stream" transfer-ownership="none">
3513            <doc xml:space="preserve"
3514                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3515                 line="3045">a `GOutputStream` to save the pixbuf to</doc>
3516            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3517          </parameter>
3518          <parameter name="type" transfer-ownership="none">
3519            <doc xml:space="preserve"
3520                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3521                 line="3046">name of file format</doc>
3522            <type name="utf8" c:type="const char*"/>
3523          </parameter>
3524          <parameter name="option_keys"
3525                     transfer-ownership="none"
3526                     nullable="1"
3527                     allow-none="1">
3528            <doc xml:space="preserve"
3529                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3530                 line="3047">name of options to set</doc>
3531            <array c:type="char**">
3532              <type name="utf8"/>
3533            </array>
3534          </parameter>
3535          <parameter name="option_values"
3536                     transfer-ownership="none"
3537                     nullable="1"
3538                     allow-none="1">
3539            <doc xml:space="preserve"
3540                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3541                 line="3048">values for named options</doc>
3542            <array c:type="char**">
3543              <type name="utf8"/>
3544            </array>
3545          </parameter>
3546          <parameter name="cancellable"
3547                     transfer-ownership="none"
3548                     nullable="1"
3549                     allow-none="1">
3550            <doc xml:space="preserve"
3551                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3552                 line="3049">optional `GCancellable` object, `NULL` to ignore</doc>
3553            <type name="Gio.Cancellable" c:type="GCancellable*"/>
3554          </parameter>
3555        </parameters>
3556      </method>
3557      <method name="save_to_streamv_async"
3558              c:identifier="gdk_pixbuf_save_to_streamv_async"
3559              version="2.36"
3560              glib:finish-func="gdk_pixbuf_save_to_stream_finish">
3561        <doc xml:space="preserve"
3562             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3563             line="3180">Saves `pixbuf` to an output stream asynchronously.
3564
3565For more details see gdk_pixbuf_save_to_streamv(), which is the synchronous
3566version of this function.
3567
3568When the operation is finished, `callback` will be called in the main thread.
3569
3570You can then call gdk_pixbuf_save_to_stream_finish() to get the result of
3571the operation.</doc>
3572        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="457"/>
3573        <return-value transfer-ownership="none">
3574          <type name="none" c:type="void"/>
3575        </return-value>
3576        <parameters>
3577          <instance-parameter name="pixbuf" transfer-ownership="none">
3578            <doc xml:space="preserve"
3579                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3580                 line="3182">a `GdkPixbuf`</doc>
3581            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3582          </instance-parameter>
3583          <parameter name="stream" transfer-ownership="none">
3584            <doc xml:space="preserve"
3585                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3586                 line="3183">a `GOutputStream` to which to save the pixbuf</doc>
3587            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3588          </parameter>
3589          <parameter name="type" transfer-ownership="none">
3590            <doc xml:space="preserve"
3591                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3592                 line="3184">name of file format</doc>
3593            <type name="utf8" c:type="const gchar*"/>
3594          </parameter>
3595          <parameter name="option_keys"
3596                     transfer-ownership="none"
3597                     nullable="1"
3598                     allow-none="1">
3599            <doc xml:space="preserve"
3600                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3601                 line="3185">name of options to set</doc>
3602            <array c:type="gchar**">
3603              <type name="utf8"/>
3604            </array>
3605          </parameter>
3606          <parameter name="option_values"
3607                     transfer-ownership="none"
3608                     nullable="1"
3609                     allow-none="1">
3610            <doc xml:space="preserve"
3611                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3612                 line="3186">values for named options</doc>
3613            <array c:type="gchar**">
3614              <type name="utf8"/>
3615            </array>
3616          </parameter>
3617          <parameter name="cancellable"
3618                     transfer-ownership="none"
3619                     nullable="1"
3620                     allow-none="1">
3621            <doc xml:space="preserve"
3622                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3623                 line="3187">optional `GCancellable` object, `NULL` to ignore</doc>
3624            <type name="Gio.Cancellable" c:type="GCancellable*"/>
3625          </parameter>
3626          <parameter name="callback"
3627                     transfer-ownership="none"
3628                     nullable="1"
3629                     allow-none="1"
3630                     scope="async"
3631                     closure="6">
3632            <doc xml:space="preserve"
3633                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3634                 line="3188">a `GAsyncReadyCallback` to call when the pixbuf is saved</doc>
3635            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
3636          </parameter>
3637          <parameter name="user_data"
3638                     transfer-ownership="none"
3639                     nullable="1"
3640                     allow-none="1">
3641            <doc xml:space="preserve"
3642                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3643                 line="3189">the data to pass to the callback function</doc>
3644            <type name="gpointer" c:type="gpointer"/>
3645          </parameter>
3646        </parameters>
3647      </method>
3648      <method name="savev" c:identifier="gdk_pixbuf_savev" throws="1">
3649        <doc xml:space="preserve"
3650             filename="gdk-pixbuf/gdk-pixbuf-io.c"
3651             line="2622">Vector version of `gdk_pixbuf_save()`.
3652
3653Saves pixbuf to a file in `type`, which is currently "jpeg", "png", "tiff", "ico" or "bmp".
3654
3655If @error is set, `FALSE` will be returned.
3656
3657See [method@GdkPixbuf.Pixbuf.save] for more details.</doc>
3658        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="321"/>
3659        <return-value transfer-ownership="none">
3660          <doc xml:space="preserve"
3661               filename="gdk-pixbuf/gdk-pixbuf-io.c"
3662               line="2639">whether an error was set</doc>
3663          <type name="gboolean" c:type="gboolean"/>
3664        </return-value>
3665        <parameters>
3666          <instance-parameter name="pixbuf" transfer-ownership="none">
3667            <doc xml:space="preserve"
3668                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3669                 line="2624">a `GdkPixbuf`.</doc>
3670            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3671          </instance-parameter>
3672          <parameter name="filename" transfer-ownership="none">
3673            <doc xml:space="preserve"
3674                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3675                 line="2625">name of file to save.</doc>
3676            <type name="filename" c:type="const char*"/>
3677          </parameter>
3678          <parameter name="type" transfer-ownership="none">
3679            <doc xml:space="preserve"
3680                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3681                 line="2626">name of file format.</doc>
3682            <type name="utf8" c:type="const char*"/>
3683          </parameter>
3684          <parameter name="option_keys"
3685                     transfer-ownership="none"
3686                     nullable="1"
3687                     allow-none="1">
3688            <doc xml:space="preserve"
3689                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3690                 line="2627">name of options to set</doc>
3691            <array c:type="char**">
3692              <type name="utf8"/>
3693            </array>
3694          </parameter>
3695          <parameter name="option_values"
3696                     transfer-ownership="none"
3697                     nullable="1"
3698                     allow-none="1">
3699            <doc xml:space="preserve"
3700                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3701                 line="2628">values for named options</doc>
3702            <array c:type="char**">
3703              <type name="utf8"/>
3704            </array>
3705          </parameter>
3706        </parameters>
3707      </method>
3708      <method name="scale" c:identifier="gdk_pixbuf_scale">
3709        <doc xml:space="preserve"
3710             filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3711             line="28">Creates a transformation of the source image @src by scaling by
3712@scale_x and @scale_y then translating by @offset_x and @offset_y,
3713then renders the rectangle (@dest_x, @dest_y, @dest_width,
3714@dest_height) of the resulting image onto the destination image
3715replacing the previous contents.
3716
3717Try to use gdk_pixbuf_scale_simple() first; this function is
3718the industrial-strength power tool you can fall back to, if
3719gdk_pixbuf_scale_simple() isn't powerful enough.
3720
3721If the source rectangle overlaps the destination rectangle on the
3722same pixbuf, it will be overwritten during the scaling which
3723results in rendering artifacts.</doc>
3724        <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
3725                         line="99"/>
3726        <return-value transfer-ownership="none">
3727          <type name="none" c:type="void"/>
3728        </return-value>
3729        <parameters>
3730          <instance-parameter name="src" transfer-ownership="none">
3731            <doc xml:space="preserve"
3732                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3733                 line="30">a #GdkPixbuf</doc>
3734            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
3735          </instance-parameter>
3736          <parameter name="dest" transfer-ownership="none">
3737            <doc xml:space="preserve"
3738                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3739                 line="31">the #GdkPixbuf into which to render the results</doc>
3740            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3741          </parameter>
3742          <parameter name="dest_x" transfer-ownership="none">
3743            <doc xml:space="preserve"
3744                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3745                 line="32">the left coordinate for region to render</doc>
3746            <type name="gint" c:type="int"/>
3747          </parameter>
3748          <parameter name="dest_y" transfer-ownership="none">
3749            <doc xml:space="preserve"
3750                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3751                 line="33">the top coordinate for region to render</doc>
3752            <type name="gint" c:type="int"/>
3753          </parameter>
3754          <parameter name="dest_width" transfer-ownership="none">
3755            <doc xml:space="preserve"
3756                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3757                 line="34">the width of the region to render</doc>
3758            <type name="gint" c:type="int"/>
3759          </parameter>
3760          <parameter name="dest_height" transfer-ownership="none">
3761            <doc xml:space="preserve"
3762                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3763                 line="35">the height of the region to render</doc>
3764            <type name="gint" c:type="int"/>
3765          </parameter>
3766          <parameter name="offset_x" transfer-ownership="none">
3767            <doc xml:space="preserve"
3768                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3769                 line="36">the offset in the X direction (currently rounded to an integer)</doc>
3770            <type name="gdouble" c:type="double"/>
3771          </parameter>
3772          <parameter name="offset_y" transfer-ownership="none">
3773            <doc xml:space="preserve"
3774                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3775                 line="37">the offset in the Y direction (currently rounded to an integer)</doc>
3776            <type name="gdouble" c:type="double"/>
3777          </parameter>
3778          <parameter name="scale_x" transfer-ownership="none">
3779            <doc xml:space="preserve"
3780                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3781                 line="38">the scale factor in the X direction</doc>
3782            <type name="gdouble" c:type="double"/>
3783          </parameter>
3784          <parameter name="scale_y" transfer-ownership="none">
3785            <doc xml:space="preserve"
3786                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3787                 line="39">the scale factor in the Y direction</doc>
3788            <type name="gdouble" c:type="double"/>
3789          </parameter>
3790          <parameter name="interp_type" transfer-ownership="none">
3791            <doc xml:space="preserve"
3792                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3793                 line="40">the interpolation type for the transformation.</doc>
3794            <type name="InterpType" c:type="GdkInterpType"/>
3795          </parameter>
3796        </parameters>
3797      </method>
3798      <method name="scale_simple" c:identifier="gdk_pixbuf_scale_simple">
3799        <doc xml:space="preserve"
3800             filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3801             line="236">Create a new pixbuf containing a copy of `src` scaled to
3802`dest_width` x `dest_height`.
3803
3804This function leaves `src` unaffected.
3805
3806The `interp_type` should be `GDK_INTERP_NEAREST` if you want maximum
3807speed (but when scaling down `GDK_INTERP_NEAREST` is usually unusably
3808ugly). The default `interp_type` should be `GDK_INTERP_BILINEAR` which
3809offers reasonable quality and speed.
3810
3811You can scale a sub-portion of `src` by creating a sub-pixbuf
3812pointing into `src`; see [method@GdkPixbuf.Pixbuf.new_subpixbuf].
3813
3814If `dest_width` and `dest_height` are equal to the width and height of
3815`src`, this function will return an unscaled copy of `src`.
3816
3817For more complicated scaling/alpha blending see [method@GdkPixbuf.Pixbuf.scale]
3818and [method@GdkPixbuf.Pixbuf.composite].</doc>
3819        <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
3820                         line="143"/>
3821        <return-value transfer-ownership="full" nullable="1">
3822          <doc xml:space="preserve"
3823               filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3824               line="262">the new pixbuf</doc>
3825          <type name="Pixbuf" c:type="GdkPixbuf*"/>
3826        </return-value>
3827        <parameters>
3828          <instance-parameter name="src" transfer-ownership="none">
3829            <doc xml:space="preserve"
3830                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3831                 line="238">a #GdkPixbuf</doc>
3832            <type name="Pixbuf" c:type="const GdkPixbuf*"/>
3833          </instance-parameter>
3834          <parameter name="dest_width" transfer-ownership="none">
3835            <doc xml:space="preserve"
3836                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3837                 line="239">the width of destination image</doc>
3838            <type name="gint" c:type="int"/>
3839          </parameter>
3840          <parameter name="dest_height" transfer-ownership="none">
3841            <doc xml:space="preserve"
3842                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3843                 line="240">the height of destination image</doc>
3844            <type name="gint" c:type="int"/>
3845          </parameter>
3846          <parameter name="interp_type" transfer-ownership="none">
3847            <doc xml:space="preserve"
3848                 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3849                 line="241">the interpolation type for the transformation.</doc>
3850            <type name="InterpType" c:type="GdkInterpType"/>
3851          </parameter>
3852        </parameters>
3853      </method>
3854      <method name="set_option"
3855              c:identifier="gdk_pixbuf_set_option"
3856              version="2.2">
3857        <doc xml:space="preserve"
3858             filename="gdk-pixbuf/gdk-pixbuf.c"
3859             line="1257">Attaches a key/value pair as an option to a `GdkPixbuf`.
3860
3861If `key` already exists in the list of options attached to the `pixbuf`,
3862the new value is ignored and `FALSE` is returned.</doc>
3863        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="501"/>
3864        <return-value transfer-ownership="none">
3865          <doc xml:space="preserve"
3866               filename="gdk-pixbuf/gdk-pixbuf.c"
3867               line="1268">`TRUE` on success</doc>
3868          <type name="gboolean" c:type="gboolean"/>
3869        </return-value>
3870        <parameters>
3871          <instance-parameter name="pixbuf" transfer-ownership="none">
3872            <doc xml:space="preserve"
3873                 filename="gdk-pixbuf/gdk-pixbuf.c"
3874                 line="1259">a `GdkPixbuf`</doc>
3875            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3876          </instance-parameter>
3877          <parameter name="key" transfer-ownership="none">
3878            <doc xml:space="preserve"
3879                 filename="gdk-pixbuf/gdk-pixbuf.c"
3880                 line="1260">a nul-terminated string.</doc>
3881            <type name="utf8" c:type="const gchar*"/>
3882          </parameter>
3883          <parameter name="value" transfer-ownership="none">
3884            <doc xml:space="preserve"
3885                 filename="gdk-pixbuf/gdk-pixbuf.c"
3886                 line="1261">a nul-terminated string.</doc>
3887            <type name="utf8" c:type="const gchar*"/>
3888          </parameter>
3889        </parameters>
3890      </method>
3891      <method name="unref"
3892              c:identifier="gdk_pixbuf_unref"
3893              introspectable="0"
3894              deprecated="1"
3895              deprecated-version="2.0">
3896        <doc xml:space="preserve"
3897             filename="gdk-pixbuf/gdk-pixbuf.c"
3898             line="430">Removes a reference from a pixbuf.</doc>
3899        <doc-deprecated xml:space="preserve">Use g_object_unref().</doc-deprecated>
3900        <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="167"/>
3901        <return-value transfer-ownership="none">
3902          <type name="none" c:type="void"/>
3903        </return-value>
3904        <parameters>
3905          <instance-parameter name="pixbuf" transfer-ownership="none">
3906            <doc xml:space="preserve"
3907                 filename="gdk-pixbuf/gdk-pixbuf.c"
3908                 line="432">A pixbuf.</doc>
3909            <type name="Pixbuf" c:type="GdkPixbuf*"/>
3910          </instance-parameter>
3911        </parameters>
3912      </method>
3913      <property name="bits-per-sample"
3914                writable="1"
3915                construct-only="1"
3916                transfer-ownership="none"
3917                getter="get_bits_per_sample"
3918                default-value="8">
3919        <doc xml:space="preserve"
3920             filename="gdk-pixbuf/gdk-pixbuf.c"
3921             line="281">The number of bits per sample.
3922
3923Currently only 8 bit per sample are supported.</doc>
3924        <type name="gint" c:type="gint"/>
3925      </property>
3926      <property name="colorspace"
3927                writable="1"
3928                construct-only="1"
3929                transfer-ownership="none"
3930                getter="get_colorspace"
3931                default-value="GDK_COLORSPACE_RGB">
3932        <doc xml:space="preserve"
3933             filename="gdk-pixbuf/gdk-pixbuf.c"
3934             line="254">The color space of the pixbuf.
3935
3936Currently, only `GDK_COLORSPACE_RGB` is supported.</doc>
3937        <type name="Colorspace"/>
3938      </property>
3939      <property name="has-alpha"
3940                writable="1"
3941                construct-only="1"
3942                transfer-ownership="none"
3943                getter="get_has_alpha"
3944                default-value="FALSE">
3945        <doc xml:space="preserve"
3946             filename="gdk-pixbuf/gdk-pixbuf.c"
3947             line="269">Whether the pixbuf has an alpha channel.</doc>
3948        <type name="gboolean" c:type="gboolean"/>
3949      </property>
3950      <property name="height"
3951                writable="1"
3952                construct-only="1"
3953                transfer-ownership="none"
3954                getter="get_height"
3955                default-value="1">
3956        <doc xml:space="preserve"
3957             filename="gdk-pixbuf/gdk-pixbuf.c"
3958             line="311">The number of rows of the pixbuf.</doc>
3959        <type name="gint" c:type="gint"/>
3960      </property>
3961      <property name="n-channels"
3962                writable="1"
3963                construct-only="1"
3964                transfer-ownership="none"
3965                getter="get_n_channels"
3966                default-value="3">
3967        <doc xml:space="preserve"
3968             filename="gdk-pixbuf/gdk-pixbuf.c"
3969             line="238">The number of samples per pixel.
3970
3971Currently, only 3 or 4 samples per pixel are supported.</doc>
3972        <type name="gint" c:type="gint"/>
3973      </property>
3974      <property name="pixel-bytes"
3975                writable="1"
3976                construct-only="1"
3977                transfer-ownership="none">
3978        <type name="GLib.Bytes"/>
3979      </property>
3980      <property name="pixels"
3981                writable="1"
3982                construct-only="1"
3983                transfer-ownership="none"
3984                getter="get_pixels">
3985        <doc xml:space="preserve"
3986             filename="gdk-pixbuf/gdk-pixbuf.c"
3987             line="343">A pointer to the pixel data of the pixbuf.</doc>
3988        <type name="gpointer" c:type="gpointer"/>
3989      </property>
3990      <property name="rowstride"
3991                writable="1"
3992                construct-only="1"
3993                transfer-ownership="none"
3994                getter="get_rowstride"
3995                default-value="1">
3996        <doc xml:space="preserve"
3997             filename="gdk-pixbuf/gdk-pixbuf.c"
3998             line="325">The number of bytes between the start of a row and
3999the start of the next row.
4000
4001This number must (obviously) be at least as large as the
4002width of the pixbuf.</doc>
4003        <type name="gint" c:type="gint"/>
4004      </property>
4005      <property name="width"
4006                writable="1"
4007                construct-only="1"
4008                transfer-ownership="none"
4009                getter="get_width"
4010                default-value="1">
4011        <doc xml:space="preserve"
4012             filename="gdk-pixbuf/gdk-pixbuf.c"
4013             line="297">The number of columns of the pixbuf.</doc>
4014        <type name="gint" c:type="gint"/>
4015      </property>
4016    </class>
4017    <enumeration name="PixbufAlphaMode"
4018                 deprecated="1"
4019                 deprecated-version="2.42"
4020                 glib:type-name="GdkPixbufAlphaMode"
4021                 glib:get-type="gdk_pixbuf_alpha_mode_get_type"
4022                 c:type="GdkPixbufAlphaMode">
4023      <doc xml:space="preserve"
4024           filename="gdk-pixbuf/gdk-pixbuf-core.h"
4025           line="39">Control the alpha channel for drawables.
4026
4027These values can be passed to gdk_pixbuf_xlib_render_to_drawable_alpha()
4028in gdk-pixbuf-xlib to control how the alpha channel of an image should
4029be handled.
4030
4031This function can create a bilevel clipping mask (black and white) and use
4032it while painting the image.
4033
4034In the future, when the X Window System gets an alpha channel extension,
4035it will be possible to do full alpha compositing onto arbitrary drawables.
4036For now both cases fall back to a bilevel clipping mask.</doc>
4037      <doc-deprecated xml:space="preserve">There is no user of GdkPixbufAlphaMode in GdkPixbuf,
4038  and the Xlib utility functions have been split out to their own
4039  library, gdk-pixbuf-xlib</doc-deprecated>
4040      <member name="bilevel"
4041              value="0"
4042              c:identifier="GDK_PIXBUF_ALPHA_BILEVEL"
4043              glib:nick="bilevel"
4044              glib:name="GDK_PIXBUF_ALPHA_BILEVEL">
4045        <doc xml:space="preserve"
4046             filename="gdk-pixbuf/gdk-pixbuf-core.h"
4047             line="41">A bilevel clipping mask (black and white)
4048 will be created and used to draw the image.  Pixels below 0.5 opacity
4049 will be considered fully transparent, and all others will be
4050 considered fully opaque.</doc>
4051      </member>
4052      <member name="full"
4053              value="1"
4054              c:identifier="GDK_PIXBUF_ALPHA_FULL"
4055              glib:nick="full"
4056              glib:name="GDK_PIXBUF_ALPHA_FULL">
4057        <doc xml:space="preserve"
4058             filename="gdk-pixbuf/gdk-pixbuf-core.h"
4059             line="45">For now falls back to #GDK_PIXBUF_ALPHA_BILEVEL.
4060 In the future it will do full alpha compositing.</doc>
4061      </member>
4062    </enumeration>
4063    <class name="PixbufAnimation"
4064           c:symbol-prefix="pixbuf_animation"
4065           c:type="GdkPixbufAnimation"
4066           parent="GObject.Object"
4067           glib:type-name="GdkPixbufAnimation"
4068           glib:get-type="gdk_pixbuf_animation_get_type"
4069           glib:type-struct="PixbufAnimationClass">
4070      <doc xml:space="preserve"
4071           filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4072           line="34">An opaque object representing an animation.
4073
4074The GdkPixBuf library provides a simple mechanism to load and
4075represent animations. An animation is conceptually a series of
4076frames to be displayed over time.
4077
4078The animation may not be represented as a series of frames
4079internally; for example, it may be stored as a sprite and
4080instructions for moving the sprite around a background.
4081
4082To display an animation you don't need to understand its
4083representation, however; you just ask `GdkPixbuf` what should
4084be displayed at a given point in time.</doc>
4085      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4086                       line="160"/>
4087      <constructor name="new_from_file"
4088                   c:identifier="gdk_pixbuf_animation_new_from_file"
4089                   throws="1">
4090        <doc xml:space="preserve"
4091             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4092             line="146">Creates a new animation by loading it from a file.
4093
4094The file format is detected automatically.
4095
4096If the file's format does not support multi-frame images, then an animation
4097with a single frame will be created.
4098
4099Possible errors are in the `GDK_PIXBUF_ERROR` and `G_FILE_ERROR` domains.</doc>
4100        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4101                         line="63"/>
4102        <return-value transfer-ownership="full" nullable="1">
4103          <doc xml:space="preserve"
4104               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4105               line="161">A newly-created animation</doc>
4106          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4107        </return-value>
4108        <parameters>
4109          <parameter name="filename" transfer-ownership="none">
4110            <doc xml:space="preserve"
4111                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4112                 line="148">Name of file to load, in the GLib file
4113  name encoding</doc>
4114            <type name="filename" c:type="const char*"/>
4115          </parameter>
4116        </parameters>
4117      </constructor>
4118      <constructor name="new_from_resource"
4119                   c:identifier="gdk_pixbuf_animation_new_from_resource"
4120                   version="2.28"
4121                   throws="1">
4122        <doc xml:space="preserve"
4123             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4124             line="503">Creates a new pixbuf animation by loading an image from an resource.
4125
4126The file format is detected automatically. If `NULL` is returned, then
4127@error will be set.</doc>
4128        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4129                         line="78"/>
4130        <return-value transfer-ownership="full" nullable="1">
4131          <doc xml:space="preserve"
4132               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4133               line="513">A newly-created animation</doc>
4134          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4135        </return-value>
4136        <parameters>
4137          <parameter name="resource_path" transfer-ownership="none">
4138            <doc xml:space="preserve"
4139                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4140                 line="505">the path of the resource file</doc>
4141            <type name="utf8" c:type="const char*"/>
4142          </parameter>
4143        </parameters>
4144      </constructor>
4145      <constructor name="new_from_stream"
4146                   c:identifier="gdk_pixbuf_animation_new_from_stream"
4147                   version="2.28"
4148                   throws="1">
4149        <doc xml:space="preserve"
4150             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4151             line="345">Creates a new animation by loading it from an input stream.
4152
4153The file format is detected automatically.
4154
4155If `NULL` is returned, then @error will be set.
4156
4157The @cancellable can be used to abort the operation from another thread.
4158If the operation was cancelled, the error `G_IO_ERROR_CANCELLED` will be
4159returned. Other possible errors are in the `GDK_PIXBUF_ERROR` and
4160`G_IO_ERROR` domains.
4161
4162The stream is not closed.</doc>
4163        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4164                         line="66"/>
4165        <return-value transfer-ownership="full" nullable="1">
4166          <doc xml:space="preserve"
4167               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4168               line="364">A newly-created animation</doc>
4169          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4170        </return-value>
4171        <parameters>
4172          <parameter name="stream" transfer-ownership="none">
4173            <doc xml:space="preserve"
4174                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4175                 line="347">a `GInputStream` to load the pixbuf from</doc>
4176            <type name="Gio.InputStream" c:type="GInputStream*"/>
4177          </parameter>
4178          <parameter name="cancellable"
4179                     transfer-ownership="none"
4180                     nullable="1"
4181                     allow-none="1">
4182            <doc xml:space="preserve"
4183                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4184                 line="348">optional `GCancellable` object</doc>
4185            <type name="Gio.Cancellable" c:type="GCancellable*"/>
4186          </parameter>
4187        </parameters>
4188      </constructor>
4189      <constructor name="new_from_stream_finish"
4190                   c:identifier="gdk_pixbuf_animation_new_from_stream_finish"
4191                   version="2.28"
4192                   throws="1">
4193        <doc xml:space="preserve"
4194             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4195             line="478">Finishes an asynchronous pixbuf animation creation operation started with
4196[func@GdkPixbuf.PixbufAnimation.new_from_stream_async].</doc>
4197        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4198                         line="75"/>
4199        <return-value transfer-ownership="full" nullable="1">
4200          <doc xml:space="preserve"
4201               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4202               line="486">the newly created animation</doc>
4203          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4204        </return-value>
4205        <parameters>
4206          <parameter name="async_result" transfer-ownership="none">
4207            <doc xml:space="preserve"
4208                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4209                 line="480">a #GAsyncResult</doc>
4210            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
4211          </parameter>
4212        </parameters>
4213      </constructor>
4214      <function name="new_from_stream_async"
4215                c:identifier="gdk_pixbuf_animation_new_from_stream_async"
4216                version="2.28"
4217                glib:finish-func="new_from_stream_finish">
4218        <doc xml:space="preserve"
4219             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4220             line="442">Creates a new animation by asynchronously loading an image from an input stream.
4221
4222For more details see gdk_pixbuf_new_from_stream(), which is the synchronous
4223version of this function.
4224
4225When the operation is finished, `callback` will be called in the main thread.
4226You can then call gdk_pixbuf_animation_new_from_stream_finish() to get the
4227result of the operation.</doc>
4228        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4229                         line="70"/>
4230        <return-value transfer-ownership="none">
4231          <type name="none" c:type="void"/>
4232        </return-value>
4233        <parameters>
4234          <parameter name="stream" transfer-ownership="none">
4235            <doc xml:space="preserve"
4236                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4237                 line="444">a #GInputStream from which to load the animation</doc>
4238            <type name="Gio.InputStream" c:type="GInputStream*"/>
4239          </parameter>
4240          <parameter name="cancellable"
4241                     transfer-ownership="none"
4242                     nullable="1"
4243                     allow-none="1">
4244            <doc xml:space="preserve"
4245                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4246                 line="445">optional #GCancellable object</doc>
4247            <type name="Gio.Cancellable" c:type="GCancellable*"/>
4248          </parameter>
4249          <parameter name="callback"
4250                     transfer-ownership="none"
4251                     nullable="1"
4252                     allow-none="1"
4253                     scope="async"
4254                     closure="3">
4255            <doc xml:space="preserve"
4256                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4257                 line="446">a `GAsyncReadyCallback` to call when the pixbuf is loaded</doc>
4258            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
4259          </parameter>
4260          <parameter name="user_data"
4261                     transfer-ownership="none"
4262                     nullable="1"
4263                     allow-none="1">
4264            <doc xml:space="preserve"
4265                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4266                 line="447">the data to pass to the callback function</doc>
4267            <type name="gpointer" c:type="gpointer"/>
4268          </parameter>
4269        </parameters>
4270      </function>
4271      <virtual-method name="get_iter" invoker="get_iter">
4272        <doc xml:space="preserve"
4273             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4274             line="663">Get an iterator for displaying an animation.
4275
4276The iterator provides the frames that should be displayed at a
4277given time.
4278
4279@start_time would normally come from g_get_current_time(), and marks
4280the beginning of animation playback. After creating an iterator, you
4281should immediately display the pixbuf returned by
4282gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install
4283a timeout (with g_timeout_add()) or by some other mechanism ensure
4284that you'll update the image after
4285gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time
4286the image is updated, you should reinstall the timeout with the new,
4287possibly-changed delay time.
4288
4289As a shortcut, if @start_time is `NULL`, the result of
4290g_get_current_time() will be used automatically.
4291
4292To update the image (i.e. possibly change the result of
4293gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
4294call gdk_pixbuf_animation_iter_advance().
4295
4296If you're using #GdkPixbufLoader, in addition to updating the image
4297after the delay time, you should also update it whenever you
4298receive the area_updated signal and
4299gdk_pixbuf_animation_iter_on_currently_loading_frame() returns
4300`TRUE`. In this case, the frame currently being fed into the loader
4301has received new data, so needs to be refreshed. The delay time for
4302a frame may also be modified after an area_updated signal, for
4303example if the delay time for a frame is encoded in the data after
4304the frame itself. So your timeout should be reinstalled after any
4305area_updated signal.
4306
4307A delay time of -1 is possible, indicating "infinite".</doc>
4308        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4309                         line="158"/>
4310        <return-value transfer-ownership="full">
4311          <doc xml:space="preserve"
4312               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4313               line="703">an iterator to move over the animation</doc>
4314          <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4315        </return-value>
4316        <parameters>
4317          <instance-parameter name="animation" transfer-ownership="none">
4318            <doc xml:space="preserve"
4319                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4320                 line="665">a #GdkPixbufAnimation</doc>
4321            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4322          </instance-parameter>
4323          <parameter name="start_time"
4324                     transfer-ownership="none"
4325                     nullable="1"
4326                     allow-none="1">
4327            <doc xml:space="preserve"
4328                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4329                 line="666">time when the animation starts playing</doc>
4330            <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4331          </parameter>
4332        </parameters>
4333      </virtual-method>
4334      <virtual-method name="get_size">
4335        <doc xml:space="preserve"
4336             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4337             line="125">fills @width and @height with the frame size of the animation.</doc>
4338        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4339                         line="154"/>
4340        <return-value transfer-ownership="none">
4341          <type name="none" c:type="void"/>
4342        </return-value>
4343        <parameters>
4344          <instance-parameter name="animation" transfer-ownership="none">
4345            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4346          </instance-parameter>
4347          <parameter name="width" transfer-ownership="none">
4348            <type name="gint" c:type="int*"/>
4349          </parameter>
4350          <parameter name="height" transfer-ownership="none">
4351            <type name="gint" c:type="int*"/>
4352          </parameter>
4353        </parameters>
4354      </virtual-method>
4355      <virtual-method name="get_static_image" invoker="get_static_image">
4356        <doc xml:space="preserve"
4357             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4358             line="592">Retrieves a static image for the animation.
4359
4360If an animation is really just a plain image (has only one frame),
4361this function returns that image.
4362
4363If the animation is an animation, this function returns a reasonable
4364image to use as a static unanimated image, which might be the first
4365frame, or something more sophisticated depending on the file format.
4366
4367If an animation hasn't loaded any frames yet, this function will
4368return `NULL`.</doc>
4369        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4370                         line="152"/>
4371        <return-value transfer-ownership="none">
4372          <doc xml:space="preserve"
4373               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4374               line="608">unanimated image representing the animation</doc>
4375          <type name="Pixbuf" c:type="GdkPixbuf*"/>
4376        </return-value>
4377        <parameters>
4378          <instance-parameter name="animation" transfer-ownership="none">
4379            <doc xml:space="preserve"
4380                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4381                 line="594">a #GdkPixbufAnimation</doc>
4382            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4383          </instance-parameter>
4384        </parameters>
4385      </virtual-method>
4386      <virtual-method name="is_static_image" invoker="is_static_image">
4387        <doc xml:space="preserve"
4388             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4389             line="571">Checks whether the animation is a static image.
4390
4391If you load a file with gdk_pixbuf_animation_new_from_file() and it
4392turns out to be a plain, unanimated image, then this function will
4393return `TRUE`. Use gdk_pixbuf_animation_get_static_image() to retrieve
4394the image.</doc>
4395        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4396                         line="150"/>
4397        <return-value transfer-ownership="none">
4398          <doc xml:space="preserve"
4399               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4400               line="582">`TRUE` if the "animation" was really just an image</doc>
4401          <type name="gboolean" c:type="gboolean"/>
4402        </return-value>
4403        <parameters>
4404          <instance-parameter name="animation" transfer-ownership="none">
4405            <doc xml:space="preserve"
4406                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4407                 line="573">a #GdkPixbufAnimation</doc>
4408            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4409          </instance-parameter>
4410        </parameters>
4411      </virtual-method>
4412      <method name="get_height" c:identifier="gdk_pixbuf_animation_get_height">
4413        <doc xml:space="preserve"
4414             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4415             line="640">Queries the height of the bounding box of a pixbuf animation.</doc>
4416        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4417                         line="89"/>
4418        <return-value transfer-ownership="none">
4419          <doc xml:space="preserve"
4420               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4421               line="646">Height of the bounding box of the animation.</doc>
4422          <type name="gint" c:type="int"/>
4423        </return-value>
4424        <parameters>
4425          <instance-parameter name="animation" transfer-ownership="none">
4426            <doc xml:space="preserve"
4427                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4428                 line="642">An animation.</doc>
4429            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4430          </instance-parameter>
4431        </parameters>
4432      </method>
4433      <method name="get_iter" c:identifier="gdk_pixbuf_animation_get_iter">
4434        <doc xml:space="preserve"
4435             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4436             line="663">Get an iterator for displaying an animation.
4437
4438The iterator provides the frames that should be displayed at a
4439given time.
4440
4441@start_time would normally come from g_get_current_time(), and marks
4442the beginning of animation playback. After creating an iterator, you
4443should immediately display the pixbuf returned by
4444gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install
4445a timeout (with g_timeout_add()) or by some other mechanism ensure
4446that you'll update the image after
4447gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time
4448the image is updated, you should reinstall the timeout with the new,
4449possibly-changed delay time.
4450
4451As a shortcut, if @start_time is `NULL`, the result of
4452g_get_current_time() will be used automatically.
4453
4454To update the image (i.e. possibly change the result of
4455gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
4456call gdk_pixbuf_animation_iter_advance().
4457
4458If you're using #GdkPixbufLoader, in addition to updating the image
4459after the delay time, you should also update it whenever you
4460receive the area_updated signal and
4461gdk_pixbuf_animation_iter_on_currently_loading_frame() returns
4462`TRUE`. In this case, the frame currently being fed into the loader
4463has received new data, so needs to be refreshed. The delay time for
4464a frame may also be modified after an area_updated signal, for
4465example if the delay time for a frame is encoded in the data after
4466the frame itself. So your timeout should be reinstalled after any
4467area_updated signal.
4468
4469A delay time of -1 is possible, indicating "infinite".</doc>
4470        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4471                         line="97"/>
4472        <return-value transfer-ownership="full">
4473          <doc xml:space="preserve"
4474               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4475               line="703">an iterator to move over the animation</doc>
4476          <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4477        </return-value>
4478        <parameters>
4479          <instance-parameter name="animation" transfer-ownership="none">
4480            <doc xml:space="preserve"
4481                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4482                 line="665">a #GdkPixbufAnimation</doc>
4483            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4484          </instance-parameter>
4485          <parameter name="start_time"
4486                     transfer-ownership="none"
4487                     nullable="1"
4488                     allow-none="1">
4489            <doc xml:space="preserve"
4490                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4491                 line="666">time when the animation starts playing</doc>
4492            <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4493          </parameter>
4494        </parameters>
4495      </method>
4496      <method name="get_static_image"
4497              c:identifier="gdk_pixbuf_animation_get_static_image">
4498        <doc xml:space="preserve"
4499             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4500             line="592">Retrieves a static image for the animation.
4501
4502If an animation is really just a plain image (has only one frame),
4503this function returns that image.
4504
4505If the animation is an animation, this function returns a reasonable
4506image to use as a static unanimated image, which might be the first
4507frame, or something more sophisticated depending on the file format.
4508
4509If an animation hasn't loaded any frames yet, this function will
4510return `NULL`.</doc>
4511        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4512                         line="93"/>
4513        <return-value transfer-ownership="none">
4514          <doc xml:space="preserve"
4515               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4516               line="608">unanimated image representing the animation</doc>
4517          <type name="Pixbuf" c:type="GdkPixbuf*"/>
4518        </return-value>
4519        <parameters>
4520          <instance-parameter name="animation" transfer-ownership="none">
4521            <doc xml:space="preserve"
4522                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4523                 line="594">a #GdkPixbufAnimation</doc>
4524            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4525          </instance-parameter>
4526        </parameters>
4527      </method>
4528      <method name="get_width" c:identifier="gdk_pixbuf_animation_get_width">
4529        <doc xml:space="preserve"
4530             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4531             line="618">Queries the width of the bounding box of a pixbuf animation.</doc>
4532        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4533                         line="87"/>
4534        <return-value transfer-ownership="none">
4535          <doc xml:space="preserve"
4536               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4537               line="624">Width of the bounding box of the animation.</doc>
4538          <type name="gint" c:type="int"/>
4539        </return-value>
4540        <parameters>
4541          <instance-parameter name="animation" transfer-ownership="none">
4542            <doc xml:space="preserve"
4543                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4544                 line="620">An animation.</doc>
4545            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4546          </instance-parameter>
4547        </parameters>
4548      </method>
4549      <method name="is_static_image"
4550              c:identifier="gdk_pixbuf_animation_is_static_image">
4551        <doc xml:space="preserve"
4552             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4553             line="571">Checks whether the animation is a static image.
4554
4555If you load a file with gdk_pixbuf_animation_new_from_file() and it
4556turns out to be a plain, unanimated image, then this function will
4557return `TRUE`. Use gdk_pixbuf_animation_get_static_image() to retrieve
4558the image.</doc>
4559        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4560                         line="91"/>
4561        <return-value transfer-ownership="none">
4562          <doc xml:space="preserve"
4563               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4564               line="582">`TRUE` if the "animation" was really just an image</doc>
4565          <type name="gboolean" c:type="gboolean"/>
4566        </return-value>
4567        <parameters>
4568          <instance-parameter name="animation" transfer-ownership="none">
4569            <doc xml:space="preserve"
4570                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4571                 line="573">a #GdkPixbufAnimation</doc>
4572            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4573          </instance-parameter>
4574        </parameters>
4575      </method>
4576      <method name="ref"
4577              c:identifier="gdk_pixbuf_animation_ref"
4578              introspectable="0"
4579              deprecated="1"
4580              deprecated-version="2.0">
4581        <doc xml:space="preserve"
4582             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4583             line="541">Adds a reference to an animation.</doc>
4584        <doc-deprecated xml:space="preserve">Use g_object_ref().</doc-deprecated>
4585        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4586                         line="82"/>
4587        <return-value>
4588          <doc xml:space="preserve"
4589               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4590               line="547">The same as the @animation argument.</doc>
4591          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4592        </return-value>
4593        <parameters>
4594          <instance-parameter name="animation" transfer-ownership="none">
4595            <doc xml:space="preserve"
4596                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4597                 line="543">An animation.</doc>
4598            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4599          </instance-parameter>
4600        </parameters>
4601      </method>
4602      <method name="unref"
4603              c:identifier="gdk_pixbuf_animation_unref"
4604              introspectable="0"
4605              deprecated="1"
4606              deprecated-version="2.0">
4607        <doc xml:space="preserve"
4608             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4609             line="557">Removes a reference from an animation.</doc>
4610        <doc-deprecated xml:space="preserve">Use g_object_unref().</doc-deprecated>
4611        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4612                         line="84"/>
4613        <return-value transfer-ownership="none">
4614          <type name="none" c:type="void"/>
4615        </return-value>
4616        <parameters>
4617          <instance-parameter name="animation" transfer-ownership="none">
4618            <doc xml:space="preserve"
4619                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4620                 line="559">An animation.</doc>
4621            <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4622          </instance-parameter>
4623        </parameters>
4624      </method>
4625      <field name="parent_instance">
4626        <type name="GObject.Object" c:type="GObject"/>
4627      </field>
4628    </class>
4629    <record name="PixbufAnimationClass"
4630            c:type="GdkPixbufAnimationClass"
4631            glib:is-gtype-struct-for="PixbufAnimation">
4632      <doc xml:space="preserve"
4633           filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4634           line="120">Modules supporting animations must derive a type from
4635#GdkPixbufAnimation, providing suitable implementations of the
4636virtual functions.</doc>
4637      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4638                       line="160"/>
4639      <field name="parent_class">
4640        <doc xml:space="preserve"
4641             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4642             line="122">the parent class</doc>
4643        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
4644      </field>
4645      <field name="is_static_image">
4646        <doc xml:space="preserve"
4647             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4648             line="123">returns whether the given animation is just a static image.</doc>
4649        <callback name="is_static_image">
4650          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4651                           line="150"/>
4652          <return-value transfer-ownership="none">
4653            <doc xml:space="preserve"
4654                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4655                 line="582">`TRUE` if the "animation" was really just an image</doc>
4656            <type name="gboolean" c:type="gboolean"/>
4657          </return-value>
4658          <parameters>
4659            <parameter name="animation" transfer-ownership="none">
4660              <doc xml:space="preserve"
4661                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4662                   line="573">a #GdkPixbufAnimation</doc>
4663              <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4664            </parameter>
4665          </parameters>
4666        </callback>
4667      </field>
4668      <field name="get_static_image">
4669        <doc xml:space="preserve"
4670             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4671             line="124">returns a static image representing the given animation.</doc>
4672        <callback name="get_static_image">
4673          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4674                           line="152"/>
4675          <return-value transfer-ownership="none">
4676            <doc xml:space="preserve"
4677                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4678                 line="608">unanimated image representing the animation</doc>
4679            <type name="Pixbuf" c:type="GdkPixbuf*"/>
4680          </return-value>
4681          <parameters>
4682            <parameter name="animation" transfer-ownership="none">
4683              <doc xml:space="preserve"
4684                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4685                   line="594">a #GdkPixbufAnimation</doc>
4686              <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4687            </parameter>
4688          </parameters>
4689        </callback>
4690      </field>
4691      <field name="get_size">
4692        <doc xml:space="preserve"
4693             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4694             line="125">fills @width and @height with the frame size of the animation.</doc>
4695        <callback name="get_size">
4696          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4697                           line="154"/>
4698          <return-value transfer-ownership="none">
4699            <type name="none" c:type="void"/>
4700          </return-value>
4701          <parameters>
4702            <parameter name="animation" transfer-ownership="none">
4703              <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4704            </parameter>
4705            <parameter name="width" transfer-ownership="none">
4706              <type name="gint" c:type="int*"/>
4707            </parameter>
4708            <parameter name="height" transfer-ownership="none">
4709              <type name="gint" c:type="int*"/>
4710            </parameter>
4711          </parameters>
4712        </callback>
4713      </field>
4714      <field name="get_iter">
4715        <doc xml:space="preserve"
4716             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4717             line="126">returns an iterator for the given animation.</doc>
4718        <callback name="get_iter">
4719          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4720                           line="158"/>
4721          <return-value transfer-ownership="full">
4722            <doc xml:space="preserve"
4723                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4724                 line="703">an iterator to move over the animation</doc>
4725            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4726          </return-value>
4727          <parameters>
4728            <parameter name="animation" transfer-ownership="none">
4729              <doc xml:space="preserve"
4730                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4731                   line="665">a #GdkPixbufAnimation</doc>
4732              <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4733            </parameter>
4734            <parameter name="start_time"
4735                       transfer-ownership="none"
4736                       nullable="1"
4737                       allow-none="1">
4738              <doc xml:space="preserve"
4739                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4740                   line="666">time when the animation starts playing</doc>
4741              <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4742            </parameter>
4743          </parameters>
4744        </callback>
4745      </field>
4746    </record>
4747    <class name="PixbufAnimationIter"
4748           c:symbol-prefix="pixbuf_animation_iter"
4749           c:type="GdkPixbufAnimationIter"
4750           parent="GObject.Object"
4751           glib:type-name="GdkPixbufAnimationIter"
4752           glib:get-type="gdk_pixbuf_animation_iter_get_type"
4753           glib:type-struct="PixbufAnimationIterClass">
4754      <doc xml:space="preserve"
4755           filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4756           line="52">An opaque object representing an iterator which points to a
4757certain position in an animation.</doc>
4758      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4759                       line="205"/>
4760      <virtual-method name="advance" invoker="advance">
4761        <doc xml:space="preserve"
4762             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4763             line="812">Possibly advances an animation to a new frame.
4764
4765Chooses the frame based on the start time passed to
4766gdk_pixbuf_animation_get_iter().
4767
4768@current_time would normally come from g_get_current_time(), and
4769must be greater than or equal to the time passed to
4770gdk_pixbuf_animation_get_iter(), and must increase or remain
4771unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is
4772called. That is, you can't go backward in time; animations only
4773play forward.
4774
4775As a shortcut, pass `NULL` for the current time and g_get_current_time()
4776will be invoked on your behalf. So you only need to explicitly pass
4777@current_time if you're doing something odd like playing the animation
4778at double speed.
4779
4780If this function returns `FALSE`, there's no need to update the animation
4781display, assuming the display had been rendered prior to advancing;
4782if `TRUE`, you need to call gdk_pixbuf_animation_iter_get_pixbuf()
4783and update the display with the new pixbuf.</doc>
4784        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4785                         line="203"/>
4786        <return-value transfer-ownership="none">
4787          <doc xml:space="preserve"
4788               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4789               line="839">`TRUE` if the image may need updating</doc>
4790          <type name="gboolean" c:type="gboolean"/>
4791        </return-value>
4792        <parameters>
4793          <instance-parameter name="iter" transfer-ownership="none">
4794            <doc xml:space="preserve"
4795                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4796                 line="814">a #GdkPixbufAnimationIter</doc>
4797            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4798          </instance-parameter>
4799          <parameter name="current_time"
4800                     transfer-ownership="none"
4801                     nullable="1"
4802                     allow-none="1">
4803            <doc xml:space="preserve"
4804                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4805                 line="815">current time</doc>
4806            <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4807          </parameter>
4808        </parameters>
4809      </virtual-method>
4810      <virtual-method name="get_delay_time" invoker="get_delay_time">
4811        <doc xml:space="preserve"
4812             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4813             line="734">Gets the number of milliseconds the current pixbuf should be displayed,
4814or -1 if the current pixbuf should be displayed forever.
4815
4816The `g_timeout_add()` function conveniently takes a timeout in milliseconds,
4817so you can use a timeout to schedule the next update.
4818
4819Note that some formats, like GIF, might clamp the timeout values in the
4820image file to avoid updates that are just too quick. The minimum timeout
4821for GIF images is currently 20 milliseconds.</doc>
4822        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4823                         line="197"/>
4824        <return-value transfer-ownership="none">
4825          <doc xml:space="preserve"
4826               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4827               line="748">delay time in milliseconds (thousandths of a second)</doc>
4828          <type name="gint" c:type="int"/>
4829        </return-value>
4830        <parameters>
4831          <instance-parameter name="iter" transfer-ownership="none">
4832            <doc xml:space="preserve"
4833                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4834                 line="736">an animation iterator</doc>
4835            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4836          </instance-parameter>
4837        </parameters>
4838      </virtual-method>
4839      <virtual-method name="get_pixbuf" invoker="get_pixbuf">
4840        <doc xml:space="preserve"
4841             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4842             line="759">Gets the current pixbuf which should be displayed.
4843
4844The pixbuf might not be the same size as the animation itself
4845(gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()).
4846
4847This pixbuf should be displayed for gdk_pixbuf_animation_iter_get_delay_time()
4848milliseconds.
4849
4850The caller of this function does not own a reference to the returned
4851pixbuf; the returned pixbuf will become invalid when the iterator
4852advances to the next frame, which may happen anytime you call
4853gdk_pixbuf_animation_iter_advance().
4854
4855Copy the pixbuf to keep it (don't just add a reference), as it may get
4856recycled as you advance the iterator.</doc>
4857        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4858                         line="199"/>
4859        <return-value transfer-ownership="none">
4860          <doc xml:space="preserve"
4861               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4862               line="779">the pixbuf to be displayed</doc>
4863          <type name="Pixbuf" c:type="GdkPixbuf*"/>
4864        </return-value>
4865        <parameters>
4866          <instance-parameter name="iter" transfer-ownership="none">
4867            <doc xml:space="preserve"
4868                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4869                 line="761">an animation iterator</doc>
4870            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4871          </instance-parameter>
4872        </parameters>
4873      </virtual-method>
4874      <virtual-method name="on_currently_loading_frame"
4875                      invoker="on_currently_loading_frame">
4876        <doc xml:space="preserve"
4877             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4878             line="790">Used to determine how to respond to the area_updated signal on
4879#GdkPixbufLoader when loading an animation.
4880
4881The `::area_updated` signal is emitted for an area of the frame currently
4882streaming in to the loader. So if you're on the currently loading frame,
4883you will need to redraw the screen for the updated area.</doc>
4884        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4885                         line="201"/>
4886        <return-value transfer-ownership="none">
4887          <doc xml:space="preserve"
4888               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4889               line="801">`TRUE` if the frame we're on is partially loaded, or the last frame</doc>
4890          <type name="gboolean" c:type="gboolean"/>
4891        </return-value>
4892        <parameters>
4893          <instance-parameter name="iter" transfer-ownership="none">
4894            <doc xml:space="preserve"
4895                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4896                 line="792">a #GdkPixbufAnimationIter</doc>
4897            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4898          </instance-parameter>
4899        </parameters>
4900      </virtual-method>
4901      <method name="advance" c:identifier="gdk_pixbuf_animation_iter_advance">
4902        <doc xml:space="preserve"
4903             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4904             line="812">Possibly advances an animation to a new frame.
4905
4906Chooses the frame based on the start time passed to
4907gdk_pixbuf_animation_get_iter().
4908
4909@current_time would normally come from g_get_current_time(), and
4910must be greater than or equal to the time passed to
4911gdk_pixbuf_animation_get_iter(), and must increase or remain
4912unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is
4913called. That is, you can't go backward in time; animations only
4914play forward.
4915
4916As a shortcut, pass `NULL` for the current time and g_get_current_time()
4917will be invoked on your behalf. So you only need to explicitly pass
4918@current_time if you're doing something odd like playing the animation
4919at double speed.
4920
4921If this function returns `FALSE`, there's no need to update the animation
4922display, assuming the display had been rendered prior to advancing;
4923if `TRUE`, you need to call gdk_pixbuf_animation_iter_get_pixbuf()
4924and update the display with the new pixbuf.</doc>
4925        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4926                         line="111"/>
4927        <return-value transfer-ownership="none">
4928          <doc xml:space="preserve"
4929               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4930               line="839">`TRUE` if the image may need updating</doc>
4931          <type name="gboolean" c:type="gboolean"/>
4932        </return-value>
4933        <parameters>
4934          <instance-parameter name="iter" transfer-ownership="none">
4935            <doc xml:space="preserve"
4936                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4937                 line="814">a #GdkPixbufAnimationIter</doc>
4938            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4939          </instance-parameter>
4940          <parameter name="current_time"
4941                     transfer-ownership="none"
4942                     nullable="1"
4943                     allow-none="1">
4944            <doc xml:space="preserve"
4945                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4946                 line="815">current time</doc>
4947            <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4948          </parameter>
4949        </parameters>
4950      </method>
4951      <method name="get_delay_time"
4952              c:identifier="gdk_pixbuf_animation_iter_get_delay_time">
4953        <doc xml:space="preserve"
4954             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4955             line="734">Gets the number of milliseconds the current pixbuf should be displayed,
4956or -1 if the current pixbuf should be displayed forever.
4957
4958The `g_timeout_add()` function conveniently takes a timeout in milliseconds,
4959so you can use a timeout to schedule the next update.
4960
4961Note that some formats, like GIF, might clamp the timeout values in the
4962image file to avoid updates that are just too quick. The minimum timeout
4963for GIF images is currently 20 milliseconds.</doc>
4964        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4965                         line="104"/>
4966        <return-value transfer-ownership="none">
4967          <doc xml:space="preserve"
4968               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4969               line="748">delay time in milliseconds (thousandths of a second)</doc>
4970          <type name="gint" c:type="int"/>
4971        </return-value>
4972        <parameters>
4973          <instance-parameter name="iter" transfer-ownership="none">
4974            <doc xml:space="preserve"
4975                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4976                 line="736">an animation iterator</doc>
4977            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4978          </instance-parameter>
4979        </parameters>
4980      </method>
4981      <method name="get_pixbuf"
4982              c:identifier="gdk_pixbuf_animation_iter_get_pixbuf">
4983        <doc xml:space="preserve"
4984             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4985             line="759">Gets the current pixbuf which should be displayed.
4986
4987The pixbuf might not be the same size as the animation itself
4988(gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()).
4989
4990This pixbuf should be displayed for gdk_pixbuf_animation_iter_get_delay_time()
4991milliseconds.
4992
4993The caller of this function does not own a reference to the returned
4994pixbuf; the returned pixbuf will become invalid when the iterator
4995advances to the next frame, which may happen anytime you call
4996gdk_pixbuf_animation_iter_advance().
4997
4998Copy the pixbuf to keep it (don't just add a reference), as it may get
4999recycled as you advance the iterator.</doc>
5000        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5001                         line="106"/>
5002        <return-value transfer-ownership="none">
5003          <doc xml:space="preserve"
5004               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5005               line="779">the pixbuf to be displayed</doc>
5006          <type name="Pixbuf" c:type="GdkPixbuf*"/>
5007        </return-value>
5008        <parameters>
5009          <instance-parameter name="iter" transfer-ownership="none">
5010            <doc xml:space="preserve"
5011                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5012                 line="761">an animation iterator</doc>
5013            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
5014          </instance-parameter>
5015        </parameters>
5016      </method>
5017      <method name="on_currently_loading_frame"
5018              c:identifier="gdk_pixbuf_animation_iter_on_currently_loading_frame">
5019        <doc xml:space="preserve"
5020             filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5021             line="790">Used to determine how to respond to the area_updated signal on
5022#GdkPixbufLoader when loading an animation.
5023
5024The `::area_updated` signal is emitted for an area of the frame currently
5025streaming in to the loader. So if you're on the currently loading frame,
5026you will need to redraw the screen for the updated area.</doc>
5027        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5028                         line="108"/>
5029        <return-value transfer-ownership="none">
5030          <doc xml:space="preserve"
5031               filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5032               line="801">`TRUE` if the frame we're on is partially loaded, or the last frame</doc>
5033          <type name="gboolean" c:type="gboolean"/>
5034        </return-value>
5035        <parameters>
5036          <instance-parameter name="iter" transfer-ownership="none">
5037            <doc xml:space="preserve"
5038                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5039                 line="792">a #GdkPixbufAnimationIter</doc>
5040            <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
5041          </instance-parameter>
5042        </parameters>
5043      </method>
5044      <field name="parent_instance">
5045        <type name="GObject.Object" c:type="GObject"/>
5046      </field>
5047    </class>
5048    <record name="PixbufAnimationIterClass"
5049            c:type="GdkPixbufAnimationIterClass"
5050            glib:is-gtype-struct-for="PixbufAnimationIter">
5051      <doc xml:space="preserve"
5052           filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5053           line="165">Modules supporting animations must derive a type from
5054#GdkPixbufAnimationIter, providing suitable implementations of the
5055virtual functions.</doc>
5056      <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5057                       line="205"/>
5058      <field name="parent_class">
5059        <doc xml:space="preserve"
5060             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5061             line="167">the parent class</doc>
5062        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
5063      </field>
5064      <field name="get_delay_time">
5065        <doc xml:space="preserve"
5066             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5067             line="168">returns the time in milliseconds that the current frame
5068 should be shown.</doc>
5069        <callback name="get_delay_time">
5070          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5071                           line="197"/>
5072          <return-value transfer-ownership="none">
5073            <doc xml:space="preserve"
5074                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5075                 line="748">delay time in milliseconds (thousandths of a second)</doc>
5076            <type name="gint" c:type="int"/>
5077          </return-value>
5078          <parameters>
5079            <parameter name="iter" transfer-ownership="none">
5080              <doc xml:space="preserve"
5081                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5082                   line="736">an animation iterator</doc>
5083              <type name="PixbufAnimationIter"
5084                    c:type="GdkPixbufAnimationIter*"/>
5085            </parameter>
5086          </parameters>
5087        </callback>
5088      </field>
5089      <field name="get_pixbuf">
5090        <doc xml:space="preserve"
5091             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5092             line="170">returns the current frame.</doc>
5093        <callback name="get_pixbuf">
5094          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5095                           line="199"/>
5096          <return-value transfer-ownership="none">
5097            <doc xml:space="preserve"
5098                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5099                 line="779">the pixbuf to be displayed</doc>
5100            <type name="Pixbuf" c:type="GdkPixbuf*"/>
5101          </return-value>
5102          <parameters>
5103            <parameter name="iter" transfer-ownership="none">
5104              <doc xml:space="preserve"
5105                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5106                   line="761">an animation iterator</doc>
5107              <type name="PixbufAnimationIter"
5108                    c:type="GdkPixbufAnimationIter*"/>
5109            </parameter>
5110          </parameters>
5111        </callback>
5112      </field>
5113      <field name="on_currently_loading_frame">
5114        <doc xml:space="preserve"
5115             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5116             line="171">returns whether the current frame of @iter is
5117 being loaded.</doc>
5118        <callback name="on_currently_loading_frame">
5119          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5120                           line="201"/>
5121          <return-value transfer-ownership="none">
5122            <doc xml:space="preserve"
5123                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5124                 line="801">`TRUE` if the frame we're on is partially loaded, or the last frame</doc>
5125            <type name="gboolean" c:type="gboolean"/>
5126          </return-value>
5127          <parameters>
5128            <parameter name="iter" transfer-ownership="none">
5129              <doc xml:space="preserve"
5130                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5131                   line="792">a #GdkPixbufAnimationIter</doc>
5132              <type name="PixbufAnimationIter"
5133                    c:type="GdkPixbufAnimationIter*"/>
5134            </parameter>
5135          </parameters>
5136        </callback>
5137      </field>
5138      <field name="advance">
5139        <doc xml:space="preserve"
5140             filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5141             line="173">advances the iterator to @current_time, possibly changing the
5142 current frame.</doc>
5143        <callback name="advance">
5144          <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5145                           line="203"/>
5146          <return-value transfer-ownership="none">
5147            <doc xml:space="preserve"
5148                 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5149                 line="839">`TRUE` if the image may need updating</doc>
5150            <type name="gboolean" c:type="gboolean"/>
5151          </return-value>
5152          <parameters>
5153            <parameter name="iter" transfer-ownership="none">
5154              <doc xml:space="preserve"
5155                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5156                   line="814">a #GdkPixbufAnimationIter</doc>
5157              <type name="PixbufAnimationIter"
5158                    c:type="GdkPixbufAnimationIter*"/>
5159            </parameter>
5160            <parameter name="current_time"
5161                       transfer-ownership="none"
5162                       nullable="1"
5163                       allow-none="1">
5164              <doc xml:space="preserve"
5165                   filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5166                   line="815">current time</doc>
5167              <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
5168            </parameter>
5169          </parameters>
5170        </callback>
5171      </field>
5172    </record>
5173    <callback name="PixbufDestroyNotify" c:type="GdkPixbufDestroyNotify">
5174      <doc xml:space="preserve"
5175           filename="gdk-pixbuf/gdk-pixbuf-core.h"
5176           line="96">A function of this type is responsible for freeing the pixel array
5177of a pixbuf.
5178
5179The gdk_pixbuf_new_from_data() function lets you pass in a pre-allocated
5180pixel array so that a pixbuf can be created from it; in this case you
5181will need to pass in a function of type `GdkPixbufDestroyNotify` so that
5182the pixel data can be freed when the pixbuf is finalized.</doc>
5183      <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="110"/>
5184      <return-value transfer-ownership="none">
5185        <type name="none" c:type="void"/>
5186      </return-value>
5187      <parameters>
5188        <parameter name="pixels" transfer-ownership="none">
5189          <doc xml:space="preserve"
5190               filename="gdk-pixbuf/gdk-pixbuf-core.h"
5191               line="98">The pixel array of the pixbuf
5192  that is being finalized.</doc>
5193          <array zero-terminated="0" c:type="guchar*">
5194            <type name="guint8"/>
5195          </array>
5196        </parameter>
5197        <parameter name="data"
5198                   transfer-ownership="none"
5199                   nullable="1"
5200                   allow-none="1"
5201                   closure="1">
5202          <doc xml:space="preserve"
5203               filename="gdk-pixbuf/gdk-pixbuf-core.h"
5204               line="100">User closure data.</doc>
5205          <type name="gpointer" c:type="gpointer"/>
5206        </parameter>
5207      </parameters>
5208    </callback>
5209    <enumeration name="PixbufError"
5210                 glib:type-name="GdkPixbufError"
5211                 glib:get-type="gdk_pixbuf_error_get_type"
5212                 c:type="GdkPixbufError"
5213                 glib:error-domain="gdk-pixbuf-error-quark">
5214      <doc xml:space="preserve"
5215           filename="gdk-pixbuf/gdk-pixbuf-core.h"
5216           line="123">An error code in the `GDK_PIXBUF_ERROR` domain.
5217
5218Many gdk-pixbuf operations can cause errors in this domain, or in
5219the `G_FILE_ERROR` domain.</doc>
5220      <member name="corrupt_image"
5221              value="0"
5222              c:identifier="GDK_PIXBUF_ERROR_CORRUPT_IMAGE"
5223              glib:nick="corrupt-image"
5224              glib:name="GDK_PIXBUF_ERROR_CORRUPT_IMAGE">
5225        <doc xml:space="preserve"
5226             filename="gdk-pixbuf/gdk-pixbuf-core.h"
5227             line="125">An image file was broken somehow.</doc>
5228      </member>
5229      <member name="insufficient_memory"
5230              value="1"
5231              c:identifier="GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY"
5232              glib:nick="insufficient-memory"
5233              glib:name="GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY">
5234        <doc xml:space="preserve"
5235             filename="gdk-pixbuf/gdk-pixbuf-core.h"
5236             line="126">Not enough memory.</doc>
5237      </member>
5238      <member name="bad_option"
5239              value="2"
5240              c:identifier="GDK_PIXBUF_ERROR_BAD_OPTION"
5241              glib:nick="bad-option"
5242              glib:name="GDK_PIXBUF_ERROR_BAD_OPTION">
5243        <doc xml:space="preserve"
5244             filename="gdk-pixbuf/gdk-pixbuf-core.h"
5245             line="127">A bad option was passed to a pixbuf save module.</doc>
5246      </member>
5247      <member name="unknown_type"
5248              value="3"
5249              c:identifier="GDK_PIXBUF_ERROR_UNKNOWN_TYPE"
5250              glib:nick="unknown-type"
5251              glib:name="GDK_PIXBUF_ERROR_UNKNOWN_TYPE">
5252        <doc xml:space="preserve"
5253             filename="gdk-pixbuf/gdk-pixbuf-core.h"
5254             line="128">Unknown image type.</doc>
5255      </member>
5256      <member name="unsupported_operation"
5257              value="4"
5258              c:identifier="GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION"
5259              glib:nick="unsupported-operation"
5260              glib:name="GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION">
5261        <doc xml:space="preserve"
5262             filename="gdk-pixbuf/gdk-pixbuf-core.h"
5263             line="129">Don't know how to perform the
5264 given operation on the type of image at hand.</doc>
5265      </member>
5266      <member name="failed"
5267              value="5"
5268              c:identifier="GDK_PIXBUF_ERROR_FAILED"
5269              glib:nick="failed"
5270              glib:name="GDK_PIXBUF_ERROR_FAILED">
5271        <doc xml:space="preserve"
5272             filename="gdk-pixbuf/gdk-pixbuf-core.h"
5273             line="131">Generic failure code, something went wrong.</doc>
5274      </member>
5275      <member name="incomplete_animation"
5276              value="6"
5277              c:identifier="GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION"
5278              glib:nick="incomplete-animation"
5279              glib:name="GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION">
5280        <doc xml:space="preserve"
5281             filename="gdk-pixbuf/gdk-pixbuf-core.h"
5282             line="132">Only part of the animation was loaded.</doc>
5283      </member>
5284      <function name="quark" c:identifier="gdk_pixbuf_error_quark">
5285        <return-value transfer-ownership="none">
5286          <type name="GLib.Quark" c:type="GQuark"/>
5287        </return-value>
5288      </function>
5289    </enumeration>
5290    <record name="PixbufFormat"
5291            c:type="GdkPixbufFormat"
5292            version="2.2"
5293            glib:type-name="GdkPixbufFormat"
5294            glib:get-type="gdk_pixbuf_format_get_type"
5295            c:symbol-prefix="pixbuf_format">
5296      <doc xml:space="preserve"
5297           filename="gdk-pixbuf/gdk-pixbuf-io.h"
5298           line="443">A `GdkPixbufFormat` contains information about the image format accepted
5299by a module.
5300
5301Only modules should access the fields directly, applications should
5302use the `gdk_pixbuf_format_*` family of functions.</doc>
5303      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="475"/>
5304      <field name="name" writable="1">
5305        <doc xml:space="preserve"
5306             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5307             line="445">the name of the image format</doc>
5308        <type name="utf8" c:type="gchar*"/>
5309      </field>
5310      <field name="signature" writable="1">
5311        <doc xml:space="preserve"
5312             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5313             line="446">the signature of the module</doc>
5314        <type name="PixbufModulePattern" c:type="GdkPixbufModulePattern*"/>
5315      </field>
5316      <field name="domain" writable="1">
5317        <doc xml:space="preserve"
5318             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5319             line="447">the message domain for the `description`</doc>
5320        <type name="utf8" c:type="gchar*"/>
5321      </field>
5322      <field name="description" writable="1">
5323        <doc xml:space="preserve"
5324             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5325             line="448">a description of the image format</doc>
5326        <type name="utf8" c:type="gchar*"/>
5327      </field>
5328      <field name="mime_types" writable="1">
5329        <doc xml:space="preserve"
5330             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5331             line="449">the MIME types for the image format</doc>
5332        <array c:type="gchar**">
5333          <type name="utf8" c:type="gchar*"/>
5334        </array>
5335      </field>
5336      <field name="extensions" writable="1">
5337        <doc xml:space="preserve"
5338             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5339             line="450">typical filename extensions for the
5340  image format</doc>
5341        <array c:type="gchar**">
5342          <type name="utf8" c:type="gchar*"/>
5343        </array>
5344      </field>
5345      <field name="flags" writable="1">
5346        <doc xml:space="preserve"
5347             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5348             line="452">a combination of `GdkPixbufFormatFlags`</doc>
5349        <type name="guint32" c:type="guint32"/>
5350      </field>
5351      <field name="disabled" writable="1">
5352        <doc xml:space="preserve"
5353             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5354             line="453">a boolean determining whether the loader is disabled`</doc>
5355        <type name="gboolean" c:type="gboolean"/>
5356      </field>
5357      <field name="license" writable="1">
5358        <doc xml:space="preserve"
5359             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5360             line="454">a string containing license information, typically set to
5361  shorthands like "GPL", "LGPL", etc.</doc>
5362        <type name="utf8" c:type="gchar*"/>
5363      </field>
5364      <method name="copy" c:identifier="gdk_pixbuf_format_copy" version="2.22">
5365        <doc xml:space="preserve"
5366             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5367             line="3546">Creates a copy of `format`.</doc>
5368        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="92"/>
5369        <return-value transfer-ownership="full" nullable="1">
5370          <doc xml:space="preserve"
5371               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5372               line="3552">the newly allocated copy of a `GdkPixbufFormat`. Use
5373  gdk_pixbuf_format_free() to free the resources when done</doc>
5374          <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5375        </return-value>
5376        <parameters>
5377          <instance-parameter name="format" transfer-ownership="none">
5378            <doc xml:space="preserve"
5379                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5380                 line="3548">a pixbuf format</doc>
5381            <type name="PixbufFormat" c:type="const GdkPixbufFormat*"/>
5382          </instance-parameter>
5383        </parameters>
5384      </method>
5385      <method name="free" c:identifier="gdk_pixbuf_format_free" version="2.22">
5386        <doc xml:space="preserve"
5387             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5388             line="3566">Frees the resources allocated when copying a `GdkPixbufFormat`
5389using gdk_pixbuf_format_copy()</doc>
5390        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="94"/>
5391        <return-value transfer-ownership="none">
5392          <type name="none" c:type="void"/>
5393        </return-value>
5394        <parameters>
5395          <instance-parameter name="format" transfer-ownership="none">
5396            <doc xml:space="preserve"
5397                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5398                 line="3568">a pixbuf format</doc>
5399            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5400          </instance-parameter>
5401        </parameters>
5402      </method>
5403      <method name="get_description"
5404              c:identifier="gdk_pixbuf_format_get_description"
5405              version="2.2">
5406        <doc xml:space="preserve"
5407             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5408             line="3343">Returns a description of the format.</doc>
5409        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="56"/>
5410        <return-value transfer-ownership="full" nullable="1">
5411          <doc xml:space="preserve"
5412               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5413               line="3349">a description of the format.</doc>
5414          <type name="utf8" c:type="gchar*"/>
5415        </return-value>
5416        <parameters>
5417          <instance-parameter name="format" transfer-ownership="none">
5418            <doc xml:space="preserve"
5419                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5420                 line="3345">a `GdkPixbufFormat`</doc>
5421            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5422          </instance-parameter>
5423        </parameters>
5424      </method>
5425      <method name="get_extensions"
5426              c:identifier="gdk_pixbuf_format_get_extensions"
5427              version="2.2">
5428        <doc xml:space="preserve"
5429             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5430             line="3387">Returns the filename extensions typically used for files in the
5431given format.</doc>
5432        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="60"/>
5433        <return-value transfer-ownership="full" nullable="1">
5434          <doc xml:space="preserve"
5435               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5436               line="3394">an array of
5437  filename extensions</doc>
5438          <array c:type="gchar**">
5439            <type name="utf8"/>
5440          </array>
5441        </return-value>
5442        <parameters>
5443          <instance-parameter name="format" transfer-ownership="none">
5444            <doc xml:space="preserve"
5445                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5446                 line="3389">a `GdkPixbufFormat`</doc>
5447            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5448          </instance-parameter>
5449        </parameters>
5450      </method>
5451      <method name="get_license"
5452              c:identifier="gdk_pixbuf_format_get_license"
5453              version="2.6">
5454        <doc xml:space="preserve"
5455             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5456             line="3491">Returns information about the license of the image loader for the format.
5457
5458The returned string should be a shorthand for a well known license, e.g.
5459"LGPL", "GPL", "QPL", "GPL/QPL", or "other" to indicate some other license.</doc>
5460        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="74"/>
5461        <return-value transfer-ownership="full" nullable="1">
5462          <doc xml:space="preserve"
5463               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5464               line="3500">a string describing the license of the pixbuf format</doc>
5465          <type name="utf8" c:type="gchar*"/>
5466        </return-value>
5467        <parameters>
5468          <instance-parameter name="format" transfer-ownership="none">
5469            <doc xml:space="preserve"
5470                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5471                 line="3493">a pixbuf format</doc>
5472            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5473          </instance-parameter>
5474        </parameters>
5475      </method>
5476      <method name="get_mime_types"
5477              c:identifier="gdk_pixbuf_format_get_mime_types"
5478              version="2.2">
5479        <doc xml:space="preserve"
5480             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5481             line="3369">Returns the mime types supported by the format.</doc>
5482        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="58"/>
5483        <return-value transfer-ownership="full" nullable="1">
5484          <doc xml:space="preserve"
5485               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5486               line="3375">an array of mime types</doc>
5487          <array c:type="gchar**">
5488            <type name="utf8"/>
5489          </array>
5490        </return-value>
5491        <parameters>
5492          <instance-parameter name="format" transfer-ownership="none">
5493            <doc xml:space="preserve"
5494                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5495                 line="3371">a `GdkPixbufFormat`</doc>
5496            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5497          </instance-parameter>
5498        </parameters>
5499      </method>
5500      <method name="get_name"
5501              c:identifier="gdk_pixbuf_format_get_name"
5502              version="2.2">
5503        <doc xml:space="preserve"
5504             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5505             line="3325">Returns the name of the format.</doc>
5506        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="54"/>
5507        <return-value transfer-ownership="full" nullable="1">
5508          <doc xml:space="preserve"
5509               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5510               line="3331">the name of the format.</doc>
5511          <type name="utf8" c:type="gchar*"/>
5512        </return-value>
5513        <parameters>
5514          <instance-parameter name="format" transfer-ownership="none">
5515            <doc xml:space="preserve"
5516                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5517                 line="3327">a `GdkPixbufFormat`</doc>
5518            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5519          </instance-parameter>
5520        </parameters>
5521      </method>
5522      <method name="is_disabled"
5523              c:identifier="gdk_pixbuf_format_is_disabled"
5524              version="2.6">
5525        <doc xml:space="preserve"
5526             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5527             line="3447">Returns whether this image format is disabled.
5528
5529See gdk_pixbuf_format_set_disabled().</doc>
5530        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="69"/>
5531        <return-value transfer-ownership="none">
5532          <doc xml:space="preserve"
5533               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5534               line="3455">whether this image format is disabled.</doc>
5535          <type name="gboolean" c:type="gboolean"/>
5536        </return-value>
5537        <parameters>
5538          <instance-parameter name="format" transfer-ownership="none">
5539            <doc xml:space="preserve"
5540                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5541                 line="3449">a `GdkPixbufFormat`</doc>
5542            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5543          </instance-parameter>
5544        </parameters>
5545      </method>
5546      <method name="is_save_option_supported"
5547              c:identifier="gdk_pixbuf_format_is_save_option_supported"
5548              version="2.36">
5549        <doc xml:space="preserve"
5550             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5551             line="3582">Returns `TRUE` if the save option specified by @option_key is supported when
5552saving a pixbuf using the module implementing @format.
5553
5554See gdk_pixbuf_save() for more information about option keys.</doc>
5555        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="62"/>
5556        <return-value transfer-ownership="none">
5557          <doc xml:space="preserve"
5558               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5559               line="3592">`TRUE` if the specified option is supported</doc>
5560          <type name="gboolean" c:type="gboolean"/>
5561        </return-value>
5562        <parameters>
5563          <instance-parameter name="format" transfer-ownership="none">
5564            <doc xml:space="preserve"
5565                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5566                 line="3584">a pixbuf format</doc>
5567            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5568          </instance-parameter>
5569          <parameter name="option_key" transfer-ownership="none">
5570            <doc xml:space="preserve"
5571                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5572                 line="3585">the name of an option</doc>
5573            <type name="utf8" c:type="const gchar*"/>
5574          </parameter>
5575        </parameters>
5576      </method>
5577      <method name="is_scalable"
5578              c:identifier="gdk_pixbuf_format_is_scalable"
5579              version="2.6">
5580        <doc xml:space="preserve"
5581             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5582             line="3425">Returns whether this image format is scalable.
5583
5584If a file is in a scalable format, it is preferable to load it at
5585the desired size, rather than loading it at the default size and
5586scaling the resulting pixbuf to the desired size.</doc>
5587        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="67"/>
5588        <return-value transfer-ownership="none">
5589          <doc xml:space="preserve"
5590               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5591               line="3435">whether this image format is scalable.</doc>
5592          <type name="gboolean" c:type="gboolean"/>
5593        </return-value>
5594        <parameters>
5595          <instance-parameter name="format" transfer-ownership="none">
5596            <doc xml:space="preserve"
5597                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5598                 line="3427">a `GdkPixbufFormat`</doc>
5599            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5600          </instance-parameter>
5601        </parameters>
5602      </method>
5603      <method name="is_writable"
5604              c:identifier="gdk_pixbuf_format_is_writable"
5605              version="2.2">
5606        <doc xml:space="preserve"
5607             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5608             line="3407">Returns whether pixbufs can be saved in the given format.</doc>
5609        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="65"/>
5610        <return-value transfer-ownership="none">
5611          <doc xml:space="preserve"
5612               filename="gdk-pixbuf/gdk-pixbuf-io.c"
5613               line="3413">whether pixbufs can be saved in the given format.</doc>
5614          <type name="gboolean" c:type="gboolean"/>
5615        </return-value>
5616        <parameters>
5617          <instance-parameter name="format" transfer-ownership="none">
5618            <doc xml:space="preserve"
5619                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5620                 line="3409">a `GdkPixbufFormat`</doc>
5621            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5622          </instance-parameter>
5623        </parameters>
5624      </method>
5625      <method name="set_disabled"
5626              c:identifier="gdk_pixbuf_format_set_disabled"
5627              version="2.6">
5628        <doc xml:space="preserve"
5629             filename="gdk-pixbuf/gdk-pixbuf-io.c"
5630             line="3467">Disables or enables an image format.
5631
5632If a format is disabled, GdkPixbuf won't use the image loader for
5633this format to load images.
5634
5635Applications can use this to avoid using image loaders with an
5636inappropriate license, see gdk_pixbuf_format_get_license().</doc>
5637        <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="71"/>
5638        <return-value transfer-ownership="none">
5639          <type name="none" c:type="void"/>
5640        </return-value>
5641        <parameters>
5642          <instance-parameter name="format" transfer-ownership="none">
5643            <doc xml:space="preserve"
5644                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5645                 line="3469">a `GdkPixbufFormat`</doc>
5646            <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5647          </instance-parameter>
5648          <parameter name="disabled" transfer-ownership="none">
5649            <doc xml:space="preserve"
5650                 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5651                 line="3470">`TRUE` to disable the format @format</doc>
5652            <type name="gboolean" c:type="gboolean"/>
5653          </parameter>
5654        </parameters>
5655      </method>
5656    </record>
5657    <bitfield name="PixbufFormatFlags"
5658              version="2.2"
5659              c:type="GdkPixbufFormatFlags">
5660      <doc xml:space="preserve"
5661           filename="gdk-pixbuf/gdk-pixbuf-io.h"
5662           line="424">Flags which allow a module to specify further details about the supported
5663operations.</doc>
5664      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="441"/>
5665      <member name="writable"
5666              value="1"
5667              c:identifier="GDK_PIXBUF_FORMAT_WRITABLE">
5668        <doc xml:space="preserve"
5669             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5670             line="426">the module can write out images in the format.</doc>
5671      </member>
5672      <member name="scalable"
5673              value="2"
5674              c:identifier="GDK_PIXBUF_FORMAT_SCALABLE">
5675        <doc xml:space="preserve"
5676             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5677             line="427">the image format is scalable</doc>
5678      </member>
5679      <member name="threadsafe"
5680              value="4"
5681              c:identifier="GDK_PIXBUF_FORMAT_THREADSAFE">
5682        <doc xml:space="preserve"
5683             filename="gdk-pixbuf/gdk-pixbuf-io.h"
5684             line="428">the module is threadsafe. gdk-pixbuf
5685    ignores modules that are not marked as threadsafe. (Since 2.28).</doc>
5686      </member>
5687    </bitfield>
5688    <class name="PixbufLoader"
5689           c:symbol-prefix="pixbuf_loader"
5690           c:type="GdkPixbufLoader"
5691           parent="GObject.Object"
5692           glib:type-name="GdkPixbufLoader"
5693           glib:get-type="gdk_pixbuf_loader_get_type"
5694           glib:type-struct="PixbufLoaderClass">
5695      <doc xml:space="preserve"
5696           filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5697           line="34">Incremental image loader.
5698
5699`GdkPixbufLoader` provides a way for applications to drive the
5700process of loading an image, by letting them send the image data
5701directly to the loader instead of having the loader read the data
5702from a file. Applications can use this functionality instead of
5703`gdk_pixbuf_new_from_file()` or `gdk_pixbuf_animation_new_from_file()`
5704when they need to parse image data in small chunks. For example,
5705it should be used when reading an image from a (potentially) slow
5706network connection, or when loading an extremely large file.
5707
5708To use `GdkPixbufLoader` to load an image, create a new instance,
5709and call [method@GdkPixbuf.PixbufLoader.write] to send the data
5710to it. When done, [method@GdkPixbuf.PixbufLoader.close] should be
5711called to end the stream and finalize everything.
5712
5713The loader will emit three important signals throughout the process:
5714
5715 - [signal@GdkPixbuf.PixbufLoader::size-prepared] will be emitted as
5716   soon as the image has enough information to determine the size of
5717   the image to be used. If you want to scale the image while loading
5718   it, you can call [method@GdkPixbuf.PixbufLoader.set_size] in
5719   response to this signal.
5720 - [signal@GdkPixbuf.PixbufLoader::area-prepared] will be emitted as
5721   soon as the pixbuf of the desired has been allocated. You can obtain
5722   the `GdkPixbuf` instance by calling [method@GdkPixbuf.PixbufLoader.get_pixbuf].
5723   If you want to use it, simply acquire a reference to it. You can
5724   also call `gdk_pixbuf_loader_get_pixbuf()` later to get the same
5725   pixbuf.
5726 - [signal@GdkPixbuf.PixbufLoader::area-updated] will be emitted every
5727   time a region is updated. This way you can update a partially
5728   completed image. Note that you do not know anything about the
5729   completeness of an image from the updated area. For example, in an
5730   interlaced image you will need to make several passes before the
5731   image is done loading.
5732
5733## Loading an animation
5734
5735Loading an animation is almost as easy as loading an image. Once the
5736first [signal@GdkPixbuf.PixbufLoader::area-prepared] signal has been
5737emitted, you can call [method@GdkPixbuf.PixbufLoader.get_animation] to
5738get the [class@GdkPixbuf.PixbufAnimation] instance, and then call
5739and [method@GdkPixbuf.PixbufAnimation.get_iter] to get a
5740[class@GdkPixbuf.PixbufAnimationIter] to retrieve the pixbuf for the
5741desired time stamp.</doc>
5742      <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="74"/>
5743      <constructor name="new" c:identifier="gdk_pixbuf_loader_new">
5744        <doc xml:space="preserve"
5745             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5746             line="606">Creates a new pixbuf loader object.</doc>
5747        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="79"/>
5748        <return-value transfer-ownership="full">
5749          <doc xml:space="preserve"
5750               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5751               line="611">A newly-created pixbuf loader.</doc>
5752          <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5753        </return-value>
5754      </constructor>
5755      <constructor name="new_with_mime_type"
5756                   c:identifier="gdk_pixbuf_loader_new_with_mime_type"
5757                   version="2.4"
5758                   throws="1">
5759        <doc xml:space="preserve"
5760             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5761             line="664">Creates a new pixbuf loader object that always attempts to parse
5762image data as if it were an image of MIME type @mime_type, instead of
5763identifying the type automatically.
5764
5765This function is useful if you want an error if the image isn't the
5766expected MIME type; for loading image formats that can't be reliably
5767identified by looking at the data; or if the user manually forces a
5768specific MIME type.
5769
5770The list of supported mime types depends on what image loaders
5771are installed, but typically "image/png", "image/jpeg", "image/gif",
5772"image/tiff" and "image/x-xpixmap" are among the supported mime types.
5773To obtain the full list of supported mime types, call
5774gdk_pixbuf_format_get_mime_types() on each of the #GdkPixbufFormat
5775structs returned by gdk_pixbuf_get_formats().</doc>
5776        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="84"/>
5777        <return-value transfer-ownership="full">
5778          <doc xml:space="preserve"
5779               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5780               line="685">A newly-created pixbuf loader.</doc>
5781          <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5782        </return-value>
5783        <parameters>
5784          <parameter name="mime_type" transfer-ownership="none">
5785            <doc xml:space="preserve"
5786                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5787                 line="666">the mime type to be loaded</doc>
5788            <type name="utf8" c:type="const char*"/>
5789          </parameter>
5790        </parameters>
5791      </constructor>
5792      <constructor name="new_with_type"
5793                   c:identifier="gdk_pixbuf_loader_new_with_type"
5794                   throws="1">
5795        <doc xml:space="preserve"
5796             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5797             line="619">Creates a new pixbuf loader object that always attempts to parse
5798image data as if it were an image of type @image_type, instead of
5799identifying the type automatically.
5800
5801This function is useful if you want an error if the image isn't the
5802expected type; for loading image formats that can't be reliably
5803identified by looking at the data; or if the user manually forces
5804a specific type.
5805
5806The list of supported image formats depends on what image loaders
5807are installed, but typically "png", "jpeg", "gif", "tiff" and
5808"xpm" are among the supported formats. To obtain the full list of
5809supported image formats, call gdk_pixbuf_format_get_name() on each
5810of the #GdkPixbufFormat structs returned by gdk_pixbuf_get_formats().</doc>
5811        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="81"/>
5812        <return-value transfer-ownership="full">
5813          <doc xml:space="preserve"
5814               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5815               line="639">A newly-created pixbuf loader.</doc>
5816          <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5817        </return-value>
5818        <parameters>
5819          <parameter name="image_type" transfer-ownership="none">
5820            <doc xml:space="preserve"
5821                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5822                 line="621">name of the image format to be loaded with the image</doc>
5823            <type name="utf8" c:type="const char*"/>
5824          </parameter>
5825        </parameters>
5826      </constructor>
5827      <virtual-method name="area_prepared">
5828        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="64"/>
5829        <return-value transfer-ownership="none">
5830          <type name="none" c:type="void"/>
5831        </return-value>
5832        <parameters>
5833          <instance-parameter name="loader" transfer-ownership="none">
5834            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5835          </instance-parameter>
5836        </parameters>
5837      </virtual-method>
5838      <virtual-method name="area_updated">
5839        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="67"/>
5840        <return-value transfer-ownership="none">
5841          <type name="none" c:type="void"/>
5842        </return-value>
5843        <parameters>
5844          <instance-parameter name="loader" transfer-ownership="none">
5845            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5846          </instance-parameter>
5847          <parameter name="x" transfer-ownership="none">
5848            <type name="gint" c:type="int"/>
5849          </parameter>
5850          <parameter name="y" transfer-ownership="none">
5851            <type name="gint" c:type="int"/>
5852          </parameter>
5853          <parameter name="width" transfer-ownership="none">
5854            <type name="gint" c:type="int"/>
5855          </parameter>
5856          <parameter name="height" transfer-ownership="none">
5857            <type name="gint" c:type="int"/>
5858          </parameter>
5859        </parameters>
5860      </virtual-method>
5861      <virtual-method name="closed">
5862        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="73"/>
5863        <return-value transfer-ownership="none">
5864          <type name="none" c:type="void"/>
5865        </return-value>
5866        <parameters>
5867          <instance-parameter name="loader" transfer-ownership="none">
5868            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5869          </instance-parameter>
5870        </parameters>
5871      </virtual-method>
5872      <virtual-method name="size_prepared">
5873        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="60"/>
5874        <return-value transfer-ownership="none">
5875          <type name="none" c:type="void"/>
5876        </return-value>
5877        <parameters>
5878          <instance-parameter name="loader" transfer-ownership="none">
5879            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5880          </instance-parameter>
5881          <parameter name="width" transfer-ownership="none">
5882            <type name="gint" c:type="int"/>
5883          </parameter>
5884          <parameter name="height" transfer-ownership="none">
5885            <type name="gint" c:type="int"/>
5886          </parameter>
5887        </parameters>
5888      </virtual-method>
5889      <method name="close" c:identifier="gdk_pixbuf_loader_close" throws="1">
5890        <doc xml:space="preserve"
5891             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5892             line="815">Informs a pixbuf loader that no further writes with
5893gdk_pixbuf_loader_write() will occur, so that it can free its
5894internal loading structures.
5895
5896This function also tries to parse any data that hasn't yet been parsed;
5897if the remaining data is partial or corrupt, an error will be returned.
5898
5899If `FALSE` is returned, `error` will be set to an error from the
5900`GDK_PIXBUF_ERROR` or `G_FILE_ERROR` domains.
5901
5902If you're just cancelling a load rather than expecting it to be finished,
5903passing `NULL` for `error` to ignore it is reasonable.
5904
5905Remember that this function does not release a reference on the loader, so
5906you will need to explicitly release any reference you hold.</doc>
5907        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="104"/>
5908        <return-value transfer-ownership="none">
5909          <doc xml:space="preserve"
5910               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5911               line="836">`TRUE` if all image data written so far was successfully
5912  passed out via the update_area signal</doc>
5913          <type name="gboolean" c:type="gboolean"/>
5914        </return-value>
5915        <parameters>
5916          <instance-parameter name="loader" transfer-ownership="none">
5917            <doc xml:space="preserve"
5918                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5919                 line="817">A pixbuf loader.</doc>
5920            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5921          </instance-parameter>
5922        </parameters>
5923      </method>
5924      <method name="get_animation"
5925              c:identifier="gdk_pixbuf_loader_get_animation">
5926        <doc xml:space="preserve"
5927             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5928             line="787">Queries the #GdkPixbufAnimation that a pixbuf loader is currently creating.
5929
5930In general it only makes sense to call this function after the
5931[signal@GdkPixbuf.PixbufLoader::area-prepared] signal has been emitted by
5932the loader.
5933
5934If the loader doesn't have enough bytes yet, and hasn't emitted the `area-prepared`
5935signal, this function will return `NULL`.</doc>
5936        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="102"/>
5937        <return-value transfer-ownership="none" nullable="1">
5938          <doc xml:space="preserve"
5939               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5940               line="800">The animation that the loader is
5941  currently loading</doc>
5942          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
5943        </return-value>
5944        <parameters>
5945          <instance-parameter name="loader" transfer-ownership="none">
5946            <doc xml:space="preserve"
5947                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5948                 line="789">A pixbuf loader</doc>
5949            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5950          </instance-parameter>
5951        </parameters>
5952      </method>
5953      <method name="get_format"
5954              c:identifier="gdk_pixbuf_loader_get_format"
5955              version="2.2">
5956        <doc xml:space="preserve"
5957             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5958             line="903">Obtains the available information about the format of the
5959currently loading image file.</doc>
5960        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="107"/>
5961        <return-value transfer-ownership="none" nullable="1">
5962          <doc xml:space="preserve"
5963               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5964               line="910">A #GdkPixbufFormat</doc>
5965          <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5966        </return-value>
5967        <parameters>
5968          <instance-parameter name="loader" transfer-ownership="none">
5969            <doc xml:space="preserve"
5970                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5971                 line="905">A pixbuf loader.</doc>
5972            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5973          </instance-parameter>
5974        </parameters>
5975      </method>
5976      <method name="get_pixbuf" c:identifier="gdk_pixbuf_loader_get_pixbuf">
5977        <doc xml:space="preserve"
5978             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5979             line="747">Queries the #GdkPixbuf that a pixbuf loader is currently creating.
5980
5981In general it only makes sense to call this function after the
5982[signal@GdkPixbuf.PixbufLoader::area-prepared] signal has been
5983emitted by the loader; this means that enough data has been read
5984to know the size of the image that will be allocated.
5985
5986If the loader has not received enough data via gdk_pixbuf_loader_write(),
5987then this function returns `NULL`.
5988
5989The returned pixbuf will be the same in all future calls to the loader,
5990so if you want to keep using it, you should acquire a reference to it.
5991
5992Additionally, if the loader is an animation, it will return the "static
5993image" of the animation (see gdk_pixbuf_animation_get_static_image()).</doc>
5994        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="100"/>
5995        <return-value transfer-ownership="none" nullable="1">
5996          <doc xml:space="preserve"
5997               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5998               line="767">The pixbuf that the loader is
5999  creating</doc>
6000          <type name="Pixbuf" c:type="GdkPixbuf*"/>
6001        </return-value>
6002        <parameters>
6003          <instance-parameter name="loader" transfer-ownership="none">
6004            <doc xml:space="preserve"
6005                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6006                 line="749">A pixbuf loader.</doc>
6007            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6008          </instance-parameter>
6009        </parameters>
6010      </method>
6011      <method name="set_size"
6012              c:identifier="gdk_pixbuf_loader_set_size"
6013              version="2.2">
6014        <doc xml:space="preserve"
6015             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6016             line="260">Causes the image to be scaled while it is loaded.
6017
6018The desired image size can be determined relative to the original
6019size of the image by calling gdk_pixbuf_loader_set_size() from a
6020signal handler for the ::size-prepared signal.
6021
6022Attempts to set the desired image size  are ignored after the
6023emission of the ::size-prepared signal.</doc>
6024        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="87"/>
6025        <return-value transfer-ownership="none">
6026          <type name="none" c:type="void"/>
6027        </return-value>
6028        <parameters>
6029          <instance-parameter name="loader" transfer-ownership="none">
6030            <doc xml:space="preserve"
6031                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6032                 line="262">A pixbuf loader.</doc>
6033            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6034          </instance-parameter>
6035          <parameter name="width" transfer-ownership="none">
6036            <doc xml:space="preserve"
6037                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6038                 line="263">The desired width of the image being loaded.</doc>
6039            <type name="gint" c:type="int"/>
6040          </parameter>
6041          <parameter name="height" transfer-ownership="none">
6042            <doc xml:space="preserve"
6043                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6044                 line="264">The desired height of the image being loaded.</doc>
6045            <type name="gint" c:type="int"/>
6046          </parameter>
6047        </parameters>
6048      </method>
6049      <method name="write" c:identifier="gdk_pixbuf_loader_write" throws="1">
6050        <doc xml:space="preserve"
6051             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6052             line="516">Parses the next `count` bytes in the given image buffer.</doc>
6053        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="91"/>
6054        <return-value transfer-ownership="none">
6055          <doc xml:space="preserve"
6056               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6057               line="525">`TRUE` if the write was successful, or
6058  `FALSE` if the loader cannot parse the buffer</doc>
6059          <type name="gboolean" c:type="gboolean"/>
6060        </return-value>
6061        <parameters>
6062          <instance-parameter name="loader" transfer-ownership="none">
6063            <doc xml:space="preserve"
6064                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6065                 line="518">A pixbuf loader.</doc>
6066            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6067          </instance-parameter>
6068          <parameter name="buf" transfer-ownership="none">
6069            <doc xml:space="preserve"
6070                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6071                 line="519">Pointer to image data.</doc>
6072            <array length="1" zero-terminated="0" c:type="const guchar*">
6073              <type name="guint8" c:type="guchar"/>
6074            </array>
6075          </parameter>
6076          <parameter name="count" transfer-ownership="none">
6077            <doc xml:space="preserve"
6078                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6079                 line="520">Length of the @buf buffer in bytes.</doc>
6080            <type name="gsize" c:type="gsize"/>
6081          </parameter>
6082        </parameters>
6083      </method>
6084      <method name="write_bytes"
6085              c:identifier="gdk_pixbuf_loader_write_bytes"
6086              version="2.30"
6087              throws="1">
6088        <doc xml:space="preserve"
6089             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6090             line="577">Parses the next contents of the given image buffer.</doc>
6091        <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="96"/>
6092        <return-value transfer-ownership="none">
6093          <doc xml:space="preserve"
6094               filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6095               line="585">`TRUE` if the write was successful, or `FALSE` if
6096  the loader cannot parse the buffer</doc>
6097          <type name="gboolean" c:type="gboolean"/>
6098        </return-value>
6099        <parameters>
6100          <instance-parameter name="loader" transfer-ownership="none">
6101            <doc xml:space="preserve"
6102                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6103                 line="579">A pixbuf loader.</doc>
6104            <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6105          </instance-parameter>
6106          <parameter name="buffer" transfer-ownership="none">
6107            <doc xml:space="preserve"
6108                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6109                 line="580">The image data as a `GBytes` buffer.</doc>
6110            <type name="GLib.Bytes" c:type="GBytes*"/>
6111          </parameter>
6112        </parameters>
6113      </method>
6114      <field name="parent_instance" readable="0" private="1">
6115        <type name="GObject.Object" c:type="GObject"/>
6116      </field>
6117      <field name="priv" readable="0" private="1">
6118        <type name="gpointer" c:type="gpointer"/>
6119      </field>
6120      <glib:signal name="area-prepared" when="last">
6121        <doc xml:space="preserve"
6122             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6123             line="154">This signal is emitted when the pixbuf loader has allocated the
6124pixbuf in the desired size.
6125
6126After this signal is emitted, applications can call
6127gdk_pixbuf_loader_get_pixbuf() to fetch the partially-loaded
6128pixbuf.</doc>
6129        <return-value transfer-ownership="none">
6130          <type name="none" c:type="void"/>
6131        </return-value>
6132      </glib:signal>
6133      <glib:signal name="area-updated" when="last">
6134        <doc xml:space="preserve"
6135             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6136             line="174">This signal is emitted when a significant area of the image being
6137loaded has been updated.
6138
6139Normally it means that a complete scanline has been read in, but
6140it could be a different area as well.
6141
6142Applications can use this signal to know when to repaint
6143areas of an image that is being loaded.</doc>
6144        <return-value transfer-ownership="none">
6145          <type name="none" c:type="void"/>
6146        </return-value>
6147        <parameters>
6148          <parameter name="x" transfer-ownership="none">
6149            <doc xml:space="preserve"
6150                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6151                 line="177">X offset of upper-left corner of the updated area.</doc>
6152            <type name="gint" c:type="gint"/>
6153          </parameter>
6154          <parameter name="y" transfer-ownership="none">
6155            <doc xml:space="preserve"
6156                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6157                 line="178">Y offset of upper-left corner of the updated area.</doc>
6158            <type name="gint" c:type="gint"/>
6159          </parameter>
6160          <parameter name="width" transfer-ownership="none">
6161            <doc xml:space="preserve"
6162                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6163                 line="179">Width of updated area.</doc>
6164            <type name="gint" c:type="gint"/>
6165          </parameter>
6166          <parameter name="height" transfer-ownership="none">
6167            <doc xml:space="preserve"
6168                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6169                 line="180">Height of updated area.</doc>
6170            <type name="gint" c:type="gint"/>
6171          </parameter>
6172        </parameters>
6173      </glib:signal>
6174      <glib:signal name="closed" when="last">
6175        <doc xml:space="preserve"
6176             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6177             line="204">This signal is emitted when gdk_pixbuf_loader_close() is called.
6178
6179It can be used by different parts of an application to receive
6180notification when an image loader is closed by the code that
6181drives it.</doc>
6182        <return-value transfer-ownership="none">
6183          <type name="none" c:type="void"/>
6184        </return-value>
6185      </glib:signal>
6186      <glib:signal name="size-prepared" when="last">
6187        <doc xml:space="preserve"
6188             filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6189             line="129">This signal is emitted when the pixbuf loader has been fed the
6190initial amount of data that is required to figure out the size
6191of the image that it will create.
6192
6193Applications can call gdk_pixbuf_loader_set_size() in response
6194to this signal to set the desired size to which the image
6195should be scaled.</doc>
6196        <return-value transfer-ownership="none">
6197          <type name="none" c:type="void"/>
6198        </return-value>
6199        <parameters>
6200          <parameter name="width" transfer-ownership="none">
6201            <doc xml:space="preserve"
6202                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6203                 line="132">the original width of the image</doc>
6204            <type name="gint" c:type="gint"/>
6205          </parameter>
6206          <parameter name="height" transfer-ownership="none">
6207            <doc xml:space="preserve"
6208                 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6209                 line="133">the original height of the image</doc>
6210            <type name="gint" c:type="gint"/>
6211          </parameter>
6212        </parameters>
6213      </glib:signal>
6214    </class>
6215    <record name="PixbufLoaderClass"
6216            c:type="GdkPixbufLoaderClass"
6217            glib:is-gtype-struct-for="PixbufLoader">
6218      <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="74"/>
6219      <field name="parent_class">
6220        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6221      </field>
6222      <field name="size_prepared">
6223        <callback name="size_prepared">
6224          <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6225                           line="60"/>
6226          <return-value transfer-ownership="none">
6227            <type name="none" c:type="void"/>
6228          </return-value>
6229          <parameters>
6230            <parameter name="loader" transfer-ownership="none">
6231              <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6232            </parameter>
6233            <parameter name="width" transfer-ownership="none">
6234              <type name="gint" c:type="int"/>
6235            </parameter>
6236            <parameter name="height" transfer-ownership="none">
6237              <type name="gint" c:type="int"/>
6238            </parameter>
6239          </parameters>
6240        </callback>
6241      </field>
6242      <field name="area_prepared">
6243        <callback name="area_prepared">
6244          <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6245                           line="64"/>
6246          <return-value transfer-ownership="none">
6247            <type name="none" c:type="void"/>
6248          </return-value>
6249          <parameters>
6250            <parameter name="loader" transfer-ownership="none">
6251              <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6252            </parameter>
6253          </parameters>
6254        </callback>
6255      </field>
6256      <field name="area_updated">
6257        <callback name="area_updated">
6258          <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6259                           line="67"/>
6260          <return-value transfer-ownership="none">
6261            <type name="none" c:type="void"/>
6262          </return-value>
6263          <parameters>
6264            <parameter name="loader" transfer-ownership="none">
6265              <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6266            </parameter>
6267            <parameter name="x" transfer-ownership="none">
6268              <type name="gint" c:type="int"/>
6269            </parameter>
6270            <parameter name="y" transfer-ownership="none">
6271              <type name="gint" c:type="int"/>
6272            </parameter>
6273            <parameter name="width" transfer-ownership="none">
6274              <type name="gint" c:type="int"/>
6275            </parameter>
6276            <parameter name="height" transfer-ownership="none">
6277              <type name="gint" c:type="int"/>
6278            </parameter>
6279          </parameters>
6280        </callback>
6281      </field>
6282      <field name="closed">
6283        <callback name="closed">
6284          <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6285                           line="73"/>
6286          <return-value transfer-ownership="none">
6287            <type name="none" c:type="void"/>
6288          </return-value>
6289          <parameters>
6290            <parameter name="loader" transfer-ownership="none">
6291              <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6292            </parameter>
6293          </parameters>
6294        </callback>
6295      </field>
6296    </record>
6297    <record name="PixbufModule" c:type="GdkPixbufModule">
6298      <doc xml:space="preserve"
6299           filename="gdk-pixbuf/gdk-pixbuf-io.c"
6300           line="52">A `GdkPixbufModule` contains the necessary functions to load and save
6301images in a certain file format.
6302
6303If `GdkPixbuf` has been compiled with `GModule` support, it can be extended
6304by modules which can load (and perhaps also save) new image and animation
6305formats.
6306
6307## Implementing modules
6308
6309The `GdkPixbuf` interfaces needed for implementing modules are contained in
6310`gdk-pixbuf-io.h` (and `gdk-pixbuf-animation.h` if the module supports
6311animations). They are not covered by the same stability guarantees as the
6312regular GdkPixbuf API. To underline this fact, they are protected by the
6313`GDK_PIXBUF_ENABLE_BACKEND` pre-processor symbol.
6314
6315Each loadable module must contain a `GdkPixbufModuleFillVtableFunc` function
6316named `fill_vtable`, which will get called when the module
6317is loaded and must set the function pointers of the `GdkPixbufModule`.
6318
6319In order to make format-checking work before actually loading the modules
6320(which may require calling `dlopen` to load image libraries), modules export
6321their signatures (and other information) via the `fill_info` function. An
6322external utility, `gdk-pixbuf-query-loaders`, uses this to create a text
6323file containing a list of all available loaders and  their signatures.
6324This file is then read at runtime by `GdkPixbuf` to obtain the list of
6325available loaders and their signatures.
6326
6327Modules may only implement a subset of the functionality available via
6328`GdkPixbufModule`. If a particular functionality is not implemented, the
6329`fill_vtable` function will simply not set the corresponding
6330function pointers of the `GdkPixbufModule` structure. If a module supports
6331incremental loading (i.e. provides `begin_load`, `stop_load` and
6332`load_increment`), it doesn't have to implement `load`, since `GdkPixbuf`
6333can supply a generic `load` implementation wrapping the incremental loading.
6334
6335## Installing modules
6336
6337Installing a module is a two-step process:
6338
6339 - copy the module file(s) to the loader directory (normally
6340   `$libdir/gdk-pixbuf-2.0/$version/loaders`, unless overridden by the
6341   environment variable `GDK_PIXBUF_MODULEDIR`)
6342 - call `gdk-pixbuf-query-loaders` to update the module file (normally
6343   `$libdir/gdk-pixbuf-2.0/$version/loaders.cache`, unless overridden
6344   by the environment variable `GDK_PIXBUF_MODULE_FILE`)</doc>
6345      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="400"/>
6346      <field name="module_name" writable="1">
6347        <doc xml:space="preserve"
6348             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6349             line="54">the name of the module, usually the same as the
6350 usual file extension for images of this type, eg. "xpm", "jpeg" or "png".</doc>
6351        <type name="utf8" c:type="char*"/>
6352      </field>
6353      <field name="module_path" writable="1">
6354        <doc xml:space="preserve"
6355             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6356             line="56">the path from which the module is loaded.</doc>
6357        <type name="utf8" c:type="char*"/>
6358      </field>
6359      <field name="module" writable="1">
6360        <doc xml:space="preserve"
6361             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6362             line="57">the loaded `GModule`.</doc>
6363        <type name="GModule.Module" c:type="GModule*"/>
6364      </field>
6365      <field name="info" writable="1">
6366        <doc xml:space="preserve"
6367             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6368             line="58">a `GdkPixbufFormat` holding information about the module.</doc>
6369        <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
6370      </field>
6371      <field name="load" writable="1">
6372        <doc xml:space="preserve"
6373             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6374             line="59">loads an image from a file.</doc>
6375        <type name="PixbufModuleLoadFunc" c:type="GdkPixbufModuleLoadFunc"/>
6376      </field>
6377      <field name="load_xpm_data" writable="1">
6378        <doc xml:space="preserve"
6379             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6380             line="60">loads an image from data in memory.</doc>
6381        <type name="PixbufModuleLoadXpmDataFunc"
6382              c:type="GdkPixbufModuleLoadXpmDataFunc"/>
6383      </field>
6384      <field name="begin_load" introspectable="0" writable="1">
6385        <doc xml:space="preserve"
6386             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6387             line="61">begins an incremental load.</doc>
6388        <type name="PixbufModuleBeginLoadFunc"
6389              c:type="GdkPixbufModuleBeginLoadFunc"/>
6390      </field>
6391      <field name="stop_load" writable="1">
6392        <doc xml:space="preserve"
6393             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6394             line="62">stops an incremental load.</doc>
6395        <type name="PixbufModuleStopLoadFunc"
6396              c:type="GdkPixbufModuleStopLoadFunc"/>
6397      </field>
6398      <field name="load_increment" writable="1">
6399        <doc xml:space="preserve"
6400             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6401             line="63">continues an incremental load.</doc>
6402        <type name="PixbufModuleIncrementLoadFunc"
6403              c:type="GdkPixbufModuleIncrementLoadFunc"/>
6404      </field>
6405      <field name="load_animation" writable="1">
6406        <doc xml:space="preserve"
6407             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6408             line="64">loads an animation from a file.</doc>
6409        <type name="PixbufModuleLoadAnimationFunc"
6410              c:type="GdkPixbufModuleLoadAnimationFunc"/>
6411      </field>
6412      <field name="save" writable="1">
6413        <doc xml:space="preserve"
6414             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6415             line="65">saves a `GdkPixbuf` to a file.</doc>
6416        <type name="PixbufModuleSaveFunc" c:type="GdkPixbufModuleSaveFunc"/>
6417      </field>
6418      <field name="save_to_callback" introspectable="0" writable="1">
6419        <doc xml:space="preserve"
6420             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6421             line="66">saves a `GdkPixbuf` by calling the given `GdkPixbufSaveFunc`.</doc>
6422        <type name="PixbufModuleSaveCallbackFunc"
6423              c:type="GdkPixbufModuleSaveCallbackFunc"/>
6424      </field>
6425      <field name="is_save_option_supported" writable="1">
6426        <doc xml:space="preserve"
6427             filename="gdk-pixbuf/gdk-pixbuf-io.c"
6428             line="67">returns whether a save option key is supported by the module</doc>
6429        <type name="PixbufModuleSaveOptionSupportedFunc"
6430              c:type="GdkPixbufModuleSaveOptionSupportedFunc"/>
6431      </field>
6432      <field name="_reserved1" introspectable="0">
6433        <callback name="_reserved1">
6434          <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="396"/>
6435          <return-value transfer-ownership="none">
6436            <type name="none" c:type="void"/>
6437          </return-value>
6438        </callback>
6439      </field>
6440      <field name="_reserved2" introspectable="0">
6441        <callback name="_reserved2">
6442          <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="397"/>
6443          <return-value transfer-ownership="none">
6444            <type name="none" c:type="void"/>
6445          </return-value>
6446        </callback>
6447      </field>
6448      <field name="_reserved3" introspectable="0">
6449        <callback name="_reserved3">
6450          <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="398"/>
6451          <return-value transfer-ownership="none">
6452            <type name="none" c:type="void"/>
6453          </return-value>
6454        </callback>
6455      </field>
6456      <field name="_reserved4" introspectable="0">
6457        <callback name="_reserved4">
6458          <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="399"/>
6459          <return-value transfer-ownership="none">
6460            <type name="none" c:type="void"/>
6461          </return-value>
6462        </callback>
6463      </field>
6464    </record>
6465    <callback name="PixbufModuleBeginLoadFunc"
6466              c:type="GdkPixbufModuleBeginLoadFunc"
6467              introspectable="0"
6468              throws="1">
6469      <doc xml:space="preserve"
6470           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6471           line="255">Sets up the image loading state.
6472
6473The image loader is responsible for storing the given function pointers
6474and user data, and call them when needed.
6475
6476The image loader should set up an internal state object, and return it
6477from this function; the state object will then be updated from the
6478[callback@GdkPixbuf.PixbufModuleIncrementLoadFunc] callback, and will be freed
6479by [callback@GdkPixbuf.PixbufModuleStopLoadFunc] callback.</doc>
6480      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="277"/>
6481      <return-value transfer-ownership="full" nullable="1">
6482        <doc xml:space="preserve"
6483             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6484             line="273">the data to be passed to
6485  [callback@GdkPixbuf.PixbufModuleIncrementLoadFunc]
6486  and [callback@GdkPixbuf.PixbufModuleStopLoadFunc], or `NULL` in case of error</doc>
6487        <type name="gpointer" c:type="gpointer"/>
6488      </return-value>
6489      <parameters>
6490        <parameter name="size_func" transfer-ownership="none">
6491          <doc xml:space="preserve"
6492               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6493               line="257">the function to be called when the size is known</doc>
6494          <type name="PixbufModuleSizeFunc" c:type="GdkPixbufModuleSizeFunc"/>
6495        </parameter>
6496        <parameter name="prepared_func" transfer-ownership="none">
6497          <doc xml:space="preserve"
6498               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6499               line="258">the function to be called when the data has been prepared</doc>
6500          <type name="PixbufModulePreparedFunc"
6501                c:type="GdkPixbufModulePreparedFunc"/>
6502        </parameter>
6503        <parameter name="updated_func" transfer-ownership="none" closure="3">
6504          <doc xml:space="preserve"
6505               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6506               line="259">the function to be called when the data has been updated</doc>
6507          <type name="PixbufModuleUpdatedFunc"
6508                c:type="GdkPixbufModuleUpdatedFunc"/>
6509        </parameter>
6510        <parameter name="user_data"
6511                   transfer-ownership="none"
6512                   nullable="1"
6513                   allow-none="1"
6514                   closure="3">
6515          <doc xml:space="preserve"
6516               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6517               line="260">the data to be passed to the functions</doc>
6518          <type name="gpointer" c:type="gpointer"/>
6519        </parameter>
6520      </parameters>
6521    </callback>
6522    <callback name="PixbufModuleFillInfoFunc"
6523              c:type="GdkPixbufModuleFillInfoFunc"
6524              version="2.2">
6525      <doc xml:space="preserve"
6526           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6527           line="413">Defines the type of the function used to fill a
6528#GdkPixbufFormat structure with information about a module.</doc>
6529      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="422"/>
6530      <return-value transfer-ownership="none">
6531        <type name="none" c:type="void"/>
6532      </return-value>
6533      <parameters>
6534        <parameter name="info" transfer-ownership="none">
6535          <doc xml:space="preserve"
6536               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6537               line="415">a #GdkPixbufFormat.</doc>
6538          <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
6539        </parameter>
6540      </parameters>
6541    </callback>
6542    <callback name="PixbufModuleFillVtableFunc"
6543              c:type="GdkPixbufModuleFillVtableFunc"
6544              version="2.2">
6545      <doc xml:space="preserve"
6546           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6547           line="402">Defines the type of the function used to set the vtable of a
6548#GdkPixbufModule when it is loaded.</doc>
6549      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="411"/>
6550      <return-value transfer-ownership="none">
6551        <type name="none" c:type="void"/>
6552      </return-value>
6553      <parameters>
6554        <parameter name="module" transfer-ownership="none">
6555          <doc xml:space="preserve"
6556               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6557               line="404">a #GdkPixbufModule.</doc>
6558          <type name="PixbufModule" c:type="GdkPixbufModule*"/>
6559        </parameter>
6560      </parameters>
6561    </callback>
6562    <callback name="PixbufModuleIncrementLoadFunc"
6563              c:type="GdkPixbufModuleIncrementLoadFunc"
6564              throws="1">
6565      <doc xml:space="preserve"
6566           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6567           line="297">Incrementally loads a buffer into the image data.</doc>
6568      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="308"/>
6569      <return-value transfer-ownership="none">
6570        <doc xml:space="preserve"
6571             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6572             line="306">`TRUE` if the incremental load was successful</doc>
6573        <type name="gboolean" c:type="gboolean"/>
6574      </return-value>
6575      <parameters>
6576        <parameter name="context"
6577                   transfer-ownership="none"
6578                   nullable="1"
6579                   allow-none="1">
6580          <doc xml:space="preserve"
6581               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6582               line="299">the state object created by [callback@GdkPixbuf.PixbufModuleBeginLoadFunc]</doc>
6583          <type name="gpointer" c:type="gpointer"/>
6584        </parameter>
6585        <parameter name="buf" transfer-ownership="none">
6586          <doc xml:space="preserve"
6587               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6588               line="300">the data to load</doc>
6589          <array length="2" zero-terminated="0" c:type="const guchar*">
6590            <type name="guint8"/>
6591          </array>
6592        </parameter>
6593        <parameter name="size" transfer-ownership="none">
6594          <doc xml:space="preserve"
6595               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6596               line="301">the length of the data to load</doc>
6597          <type name="guint" c:type="guint"/>
6598        </parameter>
6599      </parameters>
6600    </callback>
6601    <callback name="PixbufModuleLoadAnimationFunc"
6602              c:type="GdkPixbufModuleLoadAnimationFunc"
6603              throws="1">
6604      <doc xml:space="preserve"
6605           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6606           line="241">Loads a file from a standard C file stream into a new `GdkPixbufAnimation`.
6607
6608In case of error, this function should return `NULL` and set the `error` argument.</doc>
6609      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="252"/>
6610      <return-value transfer-ownership="full">
6611        <doc xml:space="preserve"
6612             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6613             line="250">a newly created `GdkPixbufAnimation` for the contents of the file</doc>
6614        <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
6615      </return-value>
6616      <parameters>
6617        <parameter name="f"
6618                   transfer-ownership="none"
6619                   nullable="1"
6620                   allow-none="1">
6621          <doc xml:space="preserve"
6622               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6623               line="243">the file stream from which the image should be loaded</doc>
6624          <type name="gpointer" c:type="FILE*"/>
6625        </parameter>
6626      </parameters>
6627    </callback>
6628    <callback name="PixbufModuleLoadFunc"
6629              c:type="GdkPixbufModuleLoadFunc"
6630              throws="1">
6631      <doc xml:space="preserve"
6632           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6633           line="217">Loads a file from a standard C file stream into a new `GdkPixbuf`.
6634
6635In case of error, this function should return `NULL` and set the `error` argument.</doc>
6636      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="228"/>
6637      <return-value transfer-ownership="full">
6638        <doc xml:space="preserve"
6639             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6640             line="226">a newly created `GdkPixbuf` for the contents of the file</doc>
6641        <type name="Pixbuf" c:type="GdkPixbuf*"/>
6642      </return-value>
6643      <parameters>
6644        <parameter name="f"
6645                   transfer-ownership="none"
6646                   nullable="1"
6647                   allow-none="1">
6648          <doc xml:space="preserve"
6649               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6650               line="219">the file stream from which the image should be loaded</doc>
6651          <type name="gpointer" c:type="FILE*"/>
6652        </parameter>
6653      </parameters>
6654    </callback>
6655    <callback name="PixbufModuleLoadXpmDataFunc"
6656              c:type="GdkPixbufModuleLoadXpmDataFunc">
6657      <doc xml:space="preserve"
6658           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6659           line="231">Loads XPM data into a new `GdkPixbuf`.</doc>
6660      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="239"/>
6661      <return-value transfer-ownership="full">
6662        <doc xml:space="preserve"
6663             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6664             line="237">a newly created `GdkPixbuf` for the XPM data</doc>
6665        <type name="Pixbuf" c:type="GdkPixbuf*"/>
6666      </return-value>
6667      <parameters>
6668        <parameter name="data" transfer-ownership="none">
6669          <doc xml:space="preserve"
6670               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6671               line="233">the XPM data</doc>
6672          <array c:type="const char**">
6673            <type name="utf8" c:type="char*"/>
6674          </array>
6675        </parameter>
6676      </parameters>
6677    </callback>
6678    <record name="PixbufModulePattern"
6679            c:type="GdkPixbufModulePattern"
6680            version="2.2">
6681      <doc xml:space="preserve"
6682           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6683           line="170">The signature prefix for a module.
6684
6685The signature of a module is a set of prefixes. Prefixes are encoded as
6686pairs of ordinary strings, where the second string, called the mask, if
6687not `NULL`, must be of the same length as the first one and may contain
6688' ', '!', 'x', 'z', and 'n' to indicate bytes that must be matched,
6689not matched, "don't-care"-bytes, zeros and non-zeros, respectively.
6690
6691Each prefix has an associated integer that describes the relevance of
6692the prefix, with 0 meaning a mismatch and 100 a "perfect match".
6693
6694Starting with gdk-pixbuf 2.8, the first byte of the mask may be '*',
6695indicating an unanchored pattern that matches not only at the beginning,
6696but also in the middle. Versions prior to 2.8 will interpret the '*'
6697like an 'x'.
6698
6699The signature of a module is stored as an array of
6700`GdkPixbufModulePatterns`. The array is terminated by a pattern
6701where the `prefix` is `NULL`.
6702
6703```c
6704GdkPixbufModulePattern *signature[] = {
6705  { "abcdx", " !x z", 100 },
6706  { "bla", NULL,  90 },
6707  { NULL, NULL, 0 }
6708};
6709```
6710
6711In the example above, the signature matches e.g. "auud\0" with
6712relevance 100, and "blau" with relevance 90.</doc>
6713      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="215"/>
6714      <field name="prefix" writable="1">
6715        <doc xml:space="preserve"
6716             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6717             line="172">the prefix for this pattern</doc>
6718        <type name="utf8" c:type="char*"/>
6719      </field>
6720      <field name="mask" writable="1">
6721        <doc xml:space="preserve"
6722             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6723             line="173">mask containing bytes which modify how the prefix is matched against
6724 test data</doc>
6725        <type name="utf8" c:type="char*"/>
6726      </field>
6727      <field name="relevance" writable="1">
6728        <doc xml:space="preserve"
6729             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6730             line="175">relevance of this pattern</doc>
6731        <type name="gint" c:type="int"/>
6732      </field>
6733    </record>
6734    <callback name="PixbufModulePreparedFunc"
6735              c:type="GdkPixbufModulePreparedFunc"
6736              version="2.2">
6737      <doc xml:space="preserve"
6738           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6739           line="126">Defines the type of the function that gets called once the initial
6740setup of @pixbuf is done.
6741
6742#GdkPixbufLoader uses a function of this type to emit the
6743"&lt;link linkend="GdkPixbufLoader-area-prepared"&gt;area_prepared&lt;/link&gt;"
6744signal.</doc>
6745      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="141"/>
6746      <return-value transfer-ownership="none">
6747        <type name="none" c:type="void"/>
6748      </return-value>
6749      <parameters>
6750        <parameter name="pixbuf" transfer-ownership="none">
6751          <doc xml:space="preserve"
6752               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6753               line="128">the #GdkPixbuf that is currently being loaded.</doc>
6754          <type name="Pixbuf" c:type="GdkPixbuf*"/>
6755        </parameter>
6756        <parameter name="anim" transfer-ownership="none">
6757          <doc xml:space="preserve"
6758               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6759               line="129">if an animation is being loaded, the #GdkPixbufAnimation, else %NULL.</doc>
6760          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
6761        </parameter>
6762        <parameter name="user_data"
6763                   transfer-ownership="none"
6764                   nullable="1"
6765                   allow-none="1"
6766                   closure="2">
6767          <doc xml:space="preserve"
6768               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6769               line="130">the loader.</doc>
6770          <type name="gpointer" c:type="gpointer"/>
6771        </parameter>
6772      </parameters>
6773    </callback>
6774    <callback name="PixbufModuleSaveCallbackFunc"
6775              c:type="GdkPixbufModuleSaveCallbackFunc"
6776              introspectable="0"
6777              throws="1">
6778      <doc xml:space="preserve"
6779           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6780           line="336">Saves a `GdkPixbuf` by calling the provided function.
6781
6782The optional `option_keys` and `option_values` arrays contain the keys and
6783values (in the same order) for attributes to be saved alongside the image
6784data.</doc>
6785      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="354"/>
6786      <return-value transfer-ownership="none">
6787        <doc xml:space="preserve"
6788             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6789             line="351">`TRUE` on success; in case of failure, `FALSE` is returned and
6790  the `error` is set</doc>
6791        <type name="gboolean" c:type="gboolean"/>
6792      </return-value>
6793      <parameters>
6794        <parameter name="save_func" transfer-ownership="none" closure="1">
6795          <doc xml:space="preserve"
6796               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6797               line="338">the function to call when saving</doc>
6798          <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
6799        </parameter>
6800        <parameter name="user_data"
6801                   transfer-ownership="none"
6802                   nullable="1"
6803                   allow-none="1"
6804                   closure="1">
6805          <doc xml:space="preserve"
6806               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6807               line="339">the data to pass to @save_func</doc>
6808          <type name="gpointer" c:type="gpointer"/>
6809        </parameter>
6810        <parameter name="pixbuf" transfer-ownership="none">
6811          <doc xml:space="preserve"
6812               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6813               line="340">the `GdkPixbuf` to save</doc>
6814          <type name="Pixbuf" c:type="GdkPixbuf*"/>
6815        </parameter>
6816        <parameter name="option_keys"
6817                   transfer-ownership="none"
6818                   nullable="1"
6819                   allow-none="1">
6820          <doc xml:space="preserve"
6821               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6822               line="341">an array of option names</doc>
6823          <array c:type="gchar**">
6824            <type name="utf8" c:type="gchar*"/>
6825          </array>
6826        </parameter>
6827        <parameter name="option_values"
6828                   transfer-ownership="none"
6829                   nullable="1"
6830                   allow-none="1">
6831          <doc xml:space="preserve"
6832               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6833               line="342">an array of option values</doc>
6834          <array c:type="gchar**">
6835            <type name="utf8" c:type="gchar*"/>
6836          </array>
6837        </parameter>
6838      </parameters>
6839    </callback>
6840    <callback name="PixbufModuleSaveFunc"
6841              c:type="GdkPixbufModuleSaveFunc"
6842              throws="1">
6843      <doc xml:space="preserve"
6844           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6845           line="313">Saves a `GdkPixbuf` into a standard C file stream.
6846
6847The optional `param_keys` and `param_values` arrays contain the keys and
6848values (in the same order) for attributes to be saved alongside the image
6849data.</doc>
6850      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="330"/>
6851      <return-value transfer-ownership="none">
6852        <doc xml:space="preserve"
6853             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6854             line="327">`TRUE` on success; in case of failure, `FALSE` is returned and
6855  the `error` is set</doc>
6856        <type name="gboolean" c:type="gboolean"/>
6857      </return-value>
6858      <parameters>
6859        <parameter name="f"
6860                   transfer-ownership="none"
6861                   nullable="1"
6862                   allow-none="1">
6863          <doc xml:space="preserve"
6864               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6865               line="315">the file stream into which the image should be saved</doc>
6866          <type name="gpointer" c:type="FILE*"/>
6867        </parameter>
6868        <parameter name="pixbuf" transfer-ownership="none">
6869          <doc xml:space="preserve"
6870               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6871               line="316">the image to save</doc>
6872          <type name="Pixbuf" c:type="GdkPixbuf*"/>
6873        </parameter>
6874        <parameter name="param_keys"
6875                   transfer-ownership="none"
6876                   nullable="1"
6877                   allow-none="1">
6878          <doc xml:space="preserve"
6879               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6880               line="317">parameter keys to save</doc>
6881          <array c:type="gchar**">
6882            <type name="utf8" c:type="gchar*"/>
6883          </array>
6884        </parameter>
6885        <parameter name="param_values"
6886                   transfer-ownership="none"
6887                   nullable="1"
6888                   allow-none="1">
6889          <doc xml:space="preserve"
6890               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6891               line="318">parameter values to save</doc>
6892          <array c:type="gchar**">
6893            <type name="utf8" c:type="gchar*"/>
6894          </array>
6895        </parameter>
6896      </parameters>
6897    </callback>
6898    <callback name="PixbufModuleSaveOptionSupportedFunc"
6899              c:type="GdkPixbufModuleSaveOptionSupportedFunc">
6900      <doc xml:space="preserve"
6901           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6902           line="361">Checks whether the given `option_key` is supported when saving.</doc>
6903      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="369"/>
6904      <return-value transfer-ownership="none">
6905        <doc xml:space="preserve"
6906             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6907             line="367">`TRUE` if the option is supported</doc>
6908        <type name="gboolean" c:type="gboolean"/>
6909      </return-value>
6910      <parameters>
6911        <parameter name="option_key" transfer-ownership="none">
6912          <doc xml:space="preserve"
6913               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6914               line="363">the option key to check</doc>
6915          <type name="utf8" c:type="const gchar*"/>
6916        </parameter>
6917      </parameters>
6918    </callback>
6919    <callback name="PixbufModuleSizeFunc"
6920              c:type="GdkPixbufModuleSizeFunc"
6921              version="2.2">
6922      <doc xml:space="preserve"
6923           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6924           line="100">Defines the type of the function that gets called once the size
6925of the loaded image is known.
6926
6927The function is expected to set @width and @height to the desired
6928size to which the image should be scaled. If a module has no efficient
6929way to achieve the desired scaling during the loading of the image, it may
6930either ignore the size request, or only approximate it - gdk-pixbuf will
6931then perform the required scaling on the completely loaded image.
6932
6933If the function sets @width or @height to zero, the module should interpret
6934this as a hint that it will be closed soon and shouldn't allocate further
6935resources. This convention is used to implement gdk_pixbuf_get_file_info()
6936efficiently.</doc>
6937      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="122"/>
6938      <return-value transfer-ownership="none">
6939        <type name="none" c:type="void"/>
6940      </return-value>
6941      <parameters>
6942        <parameter name="width" transfer-ownership="none">
6943          <doc xml:space="preserve"
6944               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6945               line="102">pointer to a location containing the current image width</doc>
6946          <type name="gint" c:type="gint*"/>
6947        </parameter>
6948        <parameter name="height" transfer-ownership="none">
6949          <doc xml:space="preserve"
6950               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6951               line="103">pointer to a location containing the current image height</doc>
6952          <type name="gint" c:type="gint*"/>
6953        </parameter>
6954        <parameter name="user_data"
6955                   transfer-ownership="none"
6956                   nullable="1"
6957                   allow-none="1"
6958                   closure="2">
6959          <doc xml:space="preserve"
6960               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6961               line="104">the loader.</doc>
6962          <type name="gpointer" c:type="gpointer"/>
6963        </parameter>
6964      </parameters>
6965    </callback>
6966    <callback name="PixbufModuleStopLoadFunc"
6967              c:type="GdkPixbufModuleStopLoadFunc"
6968              throws="1">
6969      <doc xml:space="preserve"
6970           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6971           line="283">Finalizes the image loading state.
6972
6973This function is called on success and error states.</doc>
6974      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="294"/>
6975      <return-value transfer-ownership="none">
6976        <doc xml:space="preserve"
6977             filename="gdk-pixbuf/gdk-pixbuf-io.h"
6978             line="292">`TRUE` if the loading operation was successful</doc>
6979        <type name="gboolean" c:type="gboolean"/>
6980      </return-value>
6981      <parameters>
6982        <parameter name="context"
6983                   transfer-ownership="full"
6984                   nullable="1"
6985                   allow-none="1">
6986          <doc xml:space="preserve"
6987               filename="gdk-pixbuf/gdk-pixbuf-io.h"
6988               line="285">the state object created by [callback@GdkPixbuf.PixbufModuleBeginLoadFunc]</doc>
6989          <type name="gpointer" c:type="gpointer"/>
6990        </parameter>
6991      </parameters>
6992    </callback>
6993    <callback name="PixbufModuleUpdatedFunc"
6994              c:type="GdkPixbufModuleUpdatedFunc"
6995              version="2.2">
6996      <doc xml:space="preserve"
6997           filename="gdk-pixbuf/gdk-pixbuf-io.h"
6998           line="145">Defines the type of the function that gets called every time a region
6999of @pixbuf is updated.
7000
7001#GdkPixbufLoader uses a function of this type to emit the
7002"&lt;link linkend="GdkPixbufLoader-area-updated"&gt;area_updated&lt;/link&gt;"
7003signal.</doc>
7004      <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="163"/>
7005      <return-value transfer-ownership="none">
7006        <type name="none" c:type="void"/>
7007      </return-value>
7008      <parameters>
7009        <parameter name="pixbuf" transfer-ownership="none">
7010          <doc xml:space="preserve"
7011               filename="gdk-pixbuf/gdk-pixbuf-io.h"
7012               line="147">the #GdkPixbuf that is currently being loaded.</doc>
7013          <type name="Pixbuf" c:type="GdkPixbuf*"/>
7014        </parameter>
7015        <parameter name="x" transfer-ownership="none">
7016          <doc xml:space="preserve"
7017               filename="gdk-pixbuf/gdk-pixbuf-io.h"
7018               line="148">the X origin of the updated area.</doc>
7019          <type name="gint" c:type="int"/>
7020        </parameter>
7021        <parameter name="y" transfer-ownership="none">
7022          <doc xml:space="preserve"
7023               filename="gdk-pixbuf/gdk-pixbuf-io.h"
7024               line="149">the Y origin of the updated area.</doc>
7025          <type name="gint" c:type="int"/>
7026        </parameter>
7027        <parameter name="width" transfer-ownership="none">
7028          <doc xml:space="preserve"
7029               filename="gdk-pixbuf/gdk-pixbuf-io.h"
7030               line="150">the width of the updated area.</doc>
7031          <type name="gint" c:type="int"/>
7032        </parameter>
7033        <parameter name="height" transfer-ownership="none">
7034          <doc xml:space="preserve"
7035               filename="gdk-pixbuf/gdk-pixbuf-io.h"
7036               line="151">the height of the updated area.</doc>
7037          <type name="gint" c:type="int"/>
7038        </parameter>
7039        <parameter name="user_data"
7040                   transfer-ownership="none"
7041                   nullable="1"
7042                   allow-none="1"
7043                   closure="5">
7044          <doc xml:space="preserve"
7045               filename="gdk-pixbuf/gdk-pixbuf-io.h"
7046               line="152">the loader.</doc>
7047          <type name="gpointer" c:type="gpointer"/>
7048        </parameter>
7049      </parameters>
7050    </callback>
7051    <class name="PixbufNonAnim"
7052           c:symbol-prefix="pixbuf_non_anim"
7053           parent="PixbufAnimation"
7054           glib:type-name="GdkPixbufNonAnim"
7055           glib:get-type="gdk_pixbuf_non_anim_get_type">
7056      <constructor name="new" c:identifier="gdk_pixbuf_non_anim_new">
7057        <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
7058                         line="216"/>
7059        <return-value transfer-ownership="full">
7060          <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
7061        </return-value>
7062        <parameters>
7063          <parameter name="pixbuf" transfer-ownership="none">
7064            <type name="Pixbuf" c:type="GdkPixbuf*"/>
7065          </parameter>
7066        </parameters>
7067      </constructor>
7068    </class>
7069    <enumeration name="PixbufRotation"
7070                 glib:type-name="GdkPixbufRotation"
7071                 glib:get-type="gdk_pixbuf_rotation_get_type"
7072                 c:type="GdkPixbufRotation">
7073      <doc xml:space="preserve"
7074           filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7075           line="80">The possible rotations which can be passed to gdk_pixbuf_rotate_simple().
7076
7077To make them easier to use, their numerical values are the actual degrees.</doc>
7078      <member name="none"
7079              value="0"
7080              c:identifier="GDK_PIXBUF_ROTATE_NONE"
7081              glib:nick="none"
7082              glib:name="GDK_PIXBUF_ROTATE_NONE">
7083        <doc xml:space="preserve"
7084             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7085             line="82">No rotation.</doc>
7086      </member>
7087      <member name="counterclockwise"
7088              value="90"
7089              c:identifier="GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE"
7090              glib:nick="counterclockwise"
7091              glib:name="GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE">
7092        <doc xml:space="preserve"
7093             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7094             line="83">Rotate by 90 degrees.</doc>
7095      </member>
7096      <member name="upsidedown"
7097              value="180"
7098              c:identifier="GDK_PIXBUF_ROTATE_UPSIDEDOWN"
7099              glib:nick="upsidedown"
7100              glib:name="GDK_PIXBUF_ROTATE_UPSIDEDOWN">
7101        <doc xml:space="preserve"
7102             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7103             line="84">Rotate by 180 degrees.</doc>
7104      </member>
7105      <member name="clockwise"
7106              value="270"
7107              c:identifier="GDK_PIXBUF_ROTATE_CLOCKWISE"
7108              glib:nick="clockwise"
7109              glib:name="GDK_PIXBUF_ROTATE_CLOCKWISE">
7110        <doc xml:space="preserve"
7111             filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7112             line="85">Rotate by 270 degrees.</doc>
7113      </member>
7114    </enumeration>
7115    <callback name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc" version="2.4">
7116      <doc xml:space="preserve"
7117           filename="gdk-pixbuf/gdk-pixbuf-core.h"
7118           line="341">Save functions used by [method@GdkPixbuf.Pixbuf.save_to_callback].
7119
7120This function is called once for each block of bytes that is "written"
7121by `gdk_pixbuf_save_to_callback()`.
7122
7123If successful it should return `TRUE`; if an error occurs it should set
7124`error` and return `FALSE`, in which case `gdk_pixbuf_save_to_callback()`
7125will fail with the same error.</doc>
7126      <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="362"/>
7127      <return-value transfer-ownership="none">
7128        <doc xml:space="preserve"
7129             filename="gdk-pixbuf/gdk-pixbuf-core.h"
7130             line="357">`TRUE` if successful, `FALSE` otherwise</doc>
7131        <type name="gboolean" c:type="gboolean"/>
7132      </return-value>
7133      <parameters>
7134        <parameter name="buf" transfer-ownership="none">
7135          <doc xml:space="preserve"
7136               filename="gdk-pixbuf/gdk-pixbuf-core.h"
7137               line="343">bytes to be written.</doc>
7138          <array length="1" zero-terminated="0" c:type="const gchar*">
7139            <type name="guint8"/>
7140          </array>
7141        </parameter>
7142        <parameter name="count" transfer-ownership="none">
7143          <doc xml:space="preserve"
7144               filename="gdk-pixbuf/gdk-pixbuf-core.h"
7145               line="344">number of bytes in @buf.</doc>
7146          <type name="gsize" c:type="gsize"/>
7147        </parameter>
7148        <parameter name="error"
7149                   direction="out"
7150                   caller-allocates="0"
7151                   transfer-ownership="full">
7152          <doc xml:space="preserve"
7153               filename="gdk-pixbuf/gdk-pixbuf-core.h"
7154               line="345">A location to return an error.</doc>
7155          <type name="GLib.Error" c:type="GError**"/>
7156        </parameter>
7157        <parameter name="data"
7158                   transfer-ownership="none"
7159                   nullable="1"
7160                   allow-none="1"
7161                   closure="3">
7162          <doc xml:space="preserve"
7163               filename="gdk-pixbuf/gdk-pixbuf-core.h"
7164               line="346">user data passed to gdk_pixbuf_save_to_callback().</doc>
7165          <type name="gpointer" c:type="gpointer"/>
7166        </parameter>
7167      </parameters>
7168    </callback>
7169    <class name="PixbufSimpleAnim"
7170           c:symbol-prefix="pixbuf_simple_anim"
7171           c:type="GdkPixbufSimpleAnim"
7172           parent="PixbufAnimation"
7173           glib:type-name="GdkPixbufSimpleAnim"
7174           glib:get-type="gdk_pixbuf_simple_anim_get_type"
7175           glib:type-struct="PixbufSimpleAnimClass">
7176      <doc xml:space="preserve"
7177           filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7178           line="33">An opaque struct representing a simple animation.</doc>
7179      <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7180                       line="39"/>
7181      <constructor name="new"
7182                   c:identifier="gdk_pixbuf_simple_anim_new"
7183                   version="2.8">
7184        <doc xml:space="preserve"
7185             filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7186             line="415">Creates a new, empty animation.</doc>
7187        <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7188                         line="55"/>
7189        <return-value transfer-ownership="full">
7190          <doc xml:space="preserve"
7191               filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7192               line="423">a newly allocated #GdkPixbufSimpleAnim</doc>
7193          <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7194        </return-value>
7195        <parameters>
7196          <parameter name="width" transfer-ownership="none">
7197            <doc xml:space="preserve"
7198                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7199                 line="417">the width of the animation</doc>
7200            <type name="gint" c:type="gint"/>
7201          </parameter>
7202          <parameter name="height" transfer-ownership="none">
7203            <doc xml:space="preserve"
7204                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7205                 line="418">the height of the animation</doc>
7206            <type name="gint" c:type="gint"/>
7207          </parameter>
7208          <parameter name="rate" transfer-ownership="none">
7209            <doc xml:space="preserve"
7210                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7211                 line="419">the speed of the animation, in frames per second</doc>
7212            <type name="gfloat" c:type="gfloat"/>
7213          </parameter>
7214        </parameters>
7215      </constructor>
7216      <method name="add_frame"
7217              c:identifier="gdk_pixbuf_simple_anim_add_frame"
7218              version="2.8">
7219        <doc xml:space="preserve"
7220             filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7221             line="442">Adds a new frame to @animation. The @pixbuf must
7222have the dimensions specified when the animation
7223was constructed.</doc>
7224        <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7225                         line="60"/>
7226        <return-value transfer-ownership="none">
7227          <type name="none" c:type="void"/>
7228        </return-value>
7229        <parameters>
7230          <instance-parameter name="animation" transfer-ownership="none">
7231            <doc xml:space="preserve"
7232                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7233                 line="444">a #GdkPixbufSimpleAnim</doc>
7234            <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7235          </instance-parameter>
7236          <parameter name="pixbuf" transfer-ownership="none">
7237            <doc xml:space="preserve"
7238                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7239                 line="445">the pixbuf to add</doc>
7240            <type name="Pixbuf" c:type="GdkPixbuf*"/>
7241          </parameter>
7242        </parameters>
7243      </method>
7244      <method name="get_loop"
7245              c:identifier="gdk_pixbuf_simple_anim_get_loop"
7246              glib:get-property="loop"
7247              version="2.18">
7248        <doc xml:space="preserve"
7249             filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7250             line="533">Gets whether @animation should loop indefinitely when it reaches the end.</doc>
7251        <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7252                         line="66"/>
7253        <return-value transfer-ownership="none">
7254          <doc xml:space="preserve"
7255               filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7256               line="539">%TRUE if the animation loops forever, %FALSE otherwise</doc>
7257          <type name="gboolean" c:type="gboolean"/>
7258        </return-value>
7259        <parameters>
7260          <instance-parameter name="animation" transfer-ownership="none">
7261            <doc xml:space="preserve"
7262                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7263                 line="535">a #GdkPixbufSimpleAnim</doc>
7264            <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7265          </instance-parameter>
7266        </parameters>
7267      </method>
7268      <method name="set_loop"
7269              c:identifier="gdk_pixbuf_simple_anim_set_loop"
7270              glib:set-property="loop"
7271              version="2.18">
7272        <doc xml:space="preserve"
7273             filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7274             line="512">Sets whether @animation should loop indefinitely when it reaches the end.</doc>
7275        <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7276                         line="63"/>
7277        <return-value transfer-ownership="none">
7278          <type name="none" c:type="void"/>
7279        </return-value>
7280        <parameters>
7281          <instance-parameter name="animation" transfer-ownership="none">
7282            <doc xml:space="preserve"
7283                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7284                 line="514">a #GdkPixbufSimpleAnim</doc>
7285            <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7286          </instance-parameter>
7287          <parameter name="loop" transfer-ownership="none">
7288            <doc xml:space="preserve"
7289                 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7290                 line="515">whether to loop the animation</doc>
7291            <type name="gboolean" c:type="gboolean"/>
7292          </parameter>
7293        </parameters>
7294      </method>
7295      <property name="loop"
7296                version="2.18"
7297                writable="1"
7298                transfer-ownership="none"
7299                setter="set_loop"
7300                getter="get_loop"
7301                default-value="FALSE">
7302        <doc xml:space="preserve"
7303             filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7304             line="154">Whether the animation should loop when it reaches the end.</doc>
7305        <type name="gboolean" c:type="gboolean"/>
7306      </property>
7307    </class>
7308    <record name="PixbufSimpleAnimClass"
7309            c:type="GdkPixbufSimpleAnimClass"
7310            disguised="1"
7311            opaque="1"
7312            glib:is-gtype-struct-for="PixbufSimpleAnim">
7313      <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7314                       line="39"/>
7315    </record>
7316    <class name="PixbufSimpleAnimIter"
7317           c:symbol-prefix="pixbuf_simple_anim_iter"
7318           parent="PixbufAnimationIter"
7319           glib:type-name="GdkPixbufSimpleAnimIter"
7320           glib:get-type="gdk_pixbuf_simple_anim_iter_get_type">
7321    </class>
7322    <function name="pixbuf_error_quark"
7323              c:identifier="gdk_pixbuf_error_quark"
7324              moved-to="PixbufError.quark">
7325      <return-value transfer-ownership="none">
7326        <type name="GLib.Quark" c:type="GQuark"/>
7327      </return-value>
7328    </function>
7329  </namespace>
7330</repository>

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close