cairo 1.8.0-x86-mswin32 → 1.8.1-x86-mswin32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of cairo might be problematic. Click here for more details.
- data/ChangeLog +25 -0
- data/NEWS +8 -0
- data/Rakefile +5 -32
- data/cairo/bin/libcairo-2.dll +0 -0
- data/cairo/bin/libpng12-0.dll +0 -0
- data/cairo/include/cairo/cairo-features.h +1 -1
- data/cairo/include/cairo/cairo-ft.h +75 -0
- data/cairo/include/cairo/cairo-version.h +1 -1
- data/cairo/include/cairo/cairo.h +16 -21
- data/cairo/include/libpng12/png.h +251 -121
- data/cairo/include/libpng12/pngconf.h +83 -56
- data/cairo/include/png.h +251 -121
- data/cairo/include/pngconf.h +83 -56
- data/cairo/lib/cairo.def +5 -0
- data/cairo/lib/cairo.lib +0 -0
- data/cairo/lib/libcairo.dll.a +0 -0
- data/cairo/lib/libpng.def +3 -0
- data/cairo/lib/libpng.lib +0 -0
- data/cairo/lib/libpng12.dll.a +0 -0
- data/cairo/lib/pkgconfig/cairo-ft.pc +12 -0
- data/cairo/lib/pkgconfig/cairo-pdf.pc +2 -2
- data/cairo/lib/pkgconfig/cairo-png.pc +2 -2
- data/cairo/lib/pkgconfig/cairo-ps.pc +2 -2
- data/cairo/lib/pkgconfig/cairo-svg.pc +2 -2
- data/cairo/lib/pkgconfig/cairo-win32-font.pc +2 -2
- data/cairo/lib/pkgconfig/cairo-win32.pc +2 -2
- data/cairo/lib/pkgconfig/cairo.pc +4 -4
- data/cairo/lib/pkgconfig/libpng.pc +2 -2
- data/cairo/lib/pkgconfig/libpng12.pc +2 -2
- data/cairo/manifest/{cairo-dev_1.8.0-1_win32.mft → cairo-dev_1.8.8-2_win32.mft} +5 -3
- data/cairo/manifest/cairo_1.8.8-2_win32.mft +5 -0
- data/cairo/manifest/{libpng-dev_1.2.32-1_win32.mft → libpng-dev_1.2.39-1_win32.mft} +3 -3
- data/cairo/manifest/libpng_1.2.39-1_win32.mft +2 -0
- data/cairo/share/doc/{cairo_1.8.0-1_win32 → cairo_1.8.8-2_win32}/COPYING +0 -0
- data/cairo/share/doc/{cairo_1.8.0-1_win32 → cairo_1.8.8-2_win32}/COPYING-LGPL-2.1 +0 -0
- data/cairo/share/doc/{cairo_1.8.0-1_win32 → cairo_1.8.8-2_win32}/COPYING-MPL-1.1 +0 -0
- data/cairo/share/gtk-doc/html/cairo/bindings-errors.html +9 -9
- data/cairo/share/gtk-doc/html/cairo/bindings-fonts.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/bindings-memory.html +8 -8
- data/cairo/share/gtk-doc/html/cairo/bindings-overloading.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/bindings-path.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/bindings-patterns.html +6 -6
- data/cairo/share/gtk-doc/html/cairo/bindings-return-values.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/bindings-streams.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/bindings-surfaces.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/cairo-context.html +200 -262
- data/cairo/share/gtk-doc/html/cairo/cairo-drawing.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/cairo-error-status.html +61 -60
- data/cairo/share/gtk-doc/html/cairo/cairo-font-face.html +51 -53
- data/cairo/share/gtk-doc/html/cairo/cairo-font-options.html +65 -78
- data/cairo/share/gtk-doc/html/cairo/cairo-fonts.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/cairo-ft-font.html +37 -34
- data/cairo/share/gtk-doc/html/cairo/cairo-image-surface.html +49 -60
- data/cairo/share/gtk-doc/html/cairo/cairo-matrix.html +30 -41
- data/cairo/share/gtk-doc/html/cairo/cairo-paths.html +72 -97
- data/cairo/share/gtk-doc/html/cairo/cairo-pattern.html +184 -175
- data/cairo/share/gtk-doc/html/cairo/cairo-pdf-surface.html +40 -34
- data/cairo/share/gtk-doc/html/cairo/cairo-png-functions.html +57 -48
- data/cairo/share/gtk-doc/html/cairo/cairo-ps-surface.html +73 -76
- data/cairo/share/gtk-doc/html/cairo/cairo-quartz-font.html +27 -30
- data/cairo/share/gtk-doc/html/cairo/cairo-quartz-surface.html +29 -34
- data/cairo/share/gtk-doc/html/cairo/cairo-scaled-font.html +102 -106
- data/cairo/share/gtk-doc/html/cairo/cairo-support.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/cairo-surface.html +101 -127
- data/cairo/share/gtk-doc/html/cairo/cairo-surfaces.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/cairo-svg-surface.html +52 -49
- data/cairo/share/gtk-doc/html/cairo/cairo-text.html +126 -146
- data/cairo/share/gtk-doc/html/cairo/cairo-transformations.html +26 -35
- data/cairo/share/gtk-doc/html/cairo/cairo-types.html +16 -17
- data/cairo/share/gtk-doc/html/cairo/cairo-user-font.html +121 -127
- data/cairo/share/gtk-doc/html/cairo/cairo-version-info.html +50 -60
- data/cairo/share/gtk-doc/html/cairo/cairo-win32-font.html +37 -46
- data/cairo/share/gtk-doc/html/cairo/cairo-win32-surface.html +58 -58
- data/cairo/share/gtk-doc/html/cairo/cairo-xlib-surface.html +47 -63
- data/cairo/share/gtk-doc/html/cairo/cairo.devhelp +21 -21
- data/cairo/share/gtk-doc/html/cairo/cairo.devhelp2 +21 -21
- data/cairo/share/gtk-doc/html/cairo/index-1.2.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/index-1.4.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/index-1.6.html +5 -5
- data/cairo/share/gtk-doc/html/cairo/index-1.8.html +8 -8
- data/cairo/share/gtk-doc/html/cairo/index-all.html +24 -24
- data/cairo/share/gtk-doc/html/cairo/index.html +6 -6
- data/cairo/share/gtk-doc/html/cairo/index.sgml +19 -19
- data/cairo/share/gtk-doc/html/cairo/language-bindings.html +6 -6
- data/cairo/share/gtk-doc/html/cairo/style.css +8 -1
- data/cairo/share/man/man3/libpng.3 +299 -59
- data/cairo/share/man/man3/libpngpf.3 +2 -2
- data/cairo/share/man/man5/png.5 +1 -1
- data/cairo/src/tml/packaging/cairo_1.8.8-2_win32.log +949 -0
- data/cairo/src/tml/{make/cairo_1.8.0-1_win32.sh → packaging/cairo_1.8.8-2_win32.sh} +6 -6
- data/cairo/src/tml/{make/libpng_1.2.32-1_win32.log → packaging/libpng_1.2.39-1_win32.log} +74 -73
- data/cairo/src/tml/{make/libpng_1.2.32-1_win32.sh → packaging/libpng_1.2.39-1_win32.sh} +4 -4
- data/doc/ja/cairo-context.html +1 -1
- data/doc/ja/index.html +0 -3
- data/extconf.rb +1 -0
- data/pkg-config.rb +4 -0
- data/src/cairo.so +0 -0
- data/src/libruby-cairo.a +0 -0
- data/src/rb_cairo.c +2 -2
- data/src/rb_cairo_surface.c +6 -2
- metadata +20 -50
- data/cairo/DLL_FAQ.txt +0 -397
- data/cairo/README.txt +0 -53
- data/cairo/USAGE.txt +0 -94
- data/cairo/bin/zlib1.dll +0 -0
- data/cairo/include/zconf.h +0 -332
- data/cairo/include/zlib.h +0 -1357
- data/cairo/lib/zdll.exp +0 -0
- data/cairo/lib/zdll.lib +0 -0
- data/cairo/lib/zlib.def +0 -60
- data/cairo/manifest/cairo_1.8.0-1_win32.mft +0 -5
- data/cairo/manifest/libpng_1.2.32-1_win32.mft +0 -2
- data/cairo/src/tml/make/cairo_1.8.0-1_win32.log +0 -1021
- data/cairo/test/example_d.exe +0 -0
- data/cairo/test/minigzip_d.exe +0 -0
- data/cairo/test/testzlib_d.exe +0 -0
- data/cairo/test/untgz_d.exe +0 -0
@@ -3,10 +3,10 @@
|
|
3
3
|
<head>
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
5
|
<title>Cairo: A Vector Graphics Library</title>
|
6
|
-
<meta name="generator" content="DocBook XSL Stylesheets V1.
|
7
|
-
<link rel="
|
6
|
+
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
7
|
+
<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
|
8
8
|
<link rel="next" href="cairo-drawing.html" title="Drawing">
|
9
|
-
<meta name="generator" content="GTK-Doc V1.
|
9
|
+
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
|
10
10
|
<link rel="stylesheet" href="style.css" type="text/css">
|
11
11
|
<link rel="chapter" href="cairo-drawing.html" title="Drawing">
|
12
12
|
<link rel="chapter" href="cairo-fonts.html" title="Fonts">
|
@@ -20,11 +20,11 @@
|
|
20
20
|
<link rel="appendix" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
|
21
21
|
</head>
|
22
22
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
23
|
-
<div class="book"
|
23
|
+
<div lang="en" class="book" title="Cairo: A Vector Graphics Library">
|
24
24
|
<div class="titlepage">
|
25
25
|
<div>
|
26
26
|
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Cairo: A Vector Graphics Library</p></th></tr></table></div>
|
27
|
-
<div><p class="releaseinfo">for Cairo 1.
|
27
|
+
<div><p class="releaseinfo">for Cairo 1.8.8
|
28
28
|
</p></div>
|
29
29
|
</div>
|
30
30
|
<hr>
|
@@ -139,6 +139,6 @@
|
|
139
139
|
</div>
|
140
140
|
<div class="footer">
|
141
141
|
<hr>
|
142
|
-
Generated by GTK-Doc V1.
|
142
|
+
Generated by GTK-Doc V1.11</div>
|
143
143
|
</body>
|
144
144
|
</html>
|
@@ -250,7 +250,7 @@
|
|
250
250
|
<ANCHOR id="cairo-ft-font.synopsis" href="cairo/cairo-ft-font.html#cairo-ft-font.synopsis">
|
251
251
|
<ANCHOR id="cairo-ft-font.description" href="cairo/cairo-ft-font.html#cairo-ft-font.description">
|
252
252
|
<ANCHOR id="cairo-ft-font.details" href="cairo/cairo-ft-font.html#cairo-ft-font.details">
|
253
|
-
<ANCHOR id="CAIRO-HAS-FT-FONT
|
253
|
+
<ANCHOR id="CAIRO-HAS-FT-FONT--CAPS" href="cairo/cairo-ft-font.html#CAIRO-HAS-FT-FONT--CAPS">
|
254
254
|
<ANCHOR id="cairo-ft-font-face-create-for-ft-face" href="cairo/cairo-ft-font.html#cairo-ft-font-face-create-for-ft-face">
|
255
255
|
<ANCHOR id="cairo-ft-font-face-create-for-pattern" href="cairo/cairo-ft-font.html#cairo-ft-font-face-create-for-pattern">
|
256
256
|
<ANCHOR id="cairo-ft-font-options-substitute" href="cairo/cairo-ft-font.html#cairo-ft-font-options-substitute">
|
@@ -261,7 +261,7 @@
|
|
261
261
|
<ANCHOR id="cairo-win32-font.synopsis" href="cairo/cairo-win32-font.html#cairo-win32-font.synopsis">
|
262
262
|
<ANCHOR id="cairo-win32-font.description" href="cairo/cairo-win32-font.html#cairo-win32-font.description">
|
263
263
|
<ANCHOR id="cairo-win32-font.details" href="cairo/cairo-win32-font.html#cairo-win32-font.details">
|
264
|
-
<ANCHOR id="CAIRO-HAS-WIN32-FONT
|
264
|
+
<ANCHOR id="CAIRO-HAS-WIN32-FONT--CAPS" href="cairo/cairo-win32-font.html#CAIRO-HAS-WIN32-FONT--CAPS">
|
265
265
|
<ANCHOR id="cairo-win32-font-face-create-for-logfontw" href="cairo/cairo-win32-font.html#cairo-win32-font-face-create-for-logfontw">
|
266
266
|
<ANCHOR id="cairo-win32-font-face-create-for-hfont" href="cairo/cairo-win32-font.html#cairo-win32-font-face-create-for-hfont">
|
267
267
|
<ANCHOR id="cairo-win32-font-face-create-for-logfontw-hfont" href="cairo/cairo-win32-font.html#cairo-win32-font-face-create-for-logfontw-hfont">
|
@@ -275,7 +275,7 @@
|
|
275
275
|
<ANCHOR id="cairo-quartz-font.synopsis" href="cairo/cairo-quartz-font.html#cairo-quartz-font.synopsis">
|
276
276
|
<ANCHOR id="cairo-quartz-font.description" href="cairo/cairo-quartz-font.html#cairo-quartz-font.description">
|
277
277
|
<ANCHOR id="cairo-quartz-font.details" href="cairo/cairo-quartz-font.html#cairo-quartz-font.details">
|
278
|
-
<ANCHOR id="CAIRO-HAS-QUARTZ-FONT
|
278
|
+
<ANCHOR id="CAIRO-HAS-QUARTZ-FONT--CAPS" href="cairo/cairo-quartz-font.html#CAIRO-HAS-QUARTZ-FONT--CAPS">
|
279
279
|
<ANCHOR id="cairo-quartz-font-face-create-for-cgfont" href="cairo/cairo-quartz-font.html#cairo-quartz-font-face-create-for-cgfont">
|
280
280
|
<ANCHOR id="cairo-quartz-font-face-create-for-atsu-font-id" href="cairo/cairo-quartz-font.html#cairo-quartz-font-face-create-for-atsu-font-id">
|
281
281
|
<ANCHOR id="cairo-quartz-font.see-also" href="cairo/cairo-quartz-font.html#cairo-quartz-font.see-also">
|
@@ -283,7 +283,7 @@
|
|
283
283
|
<ANCHOR id="cairo-user-font.synopsis" href="cairo/cairo-user-font.html#cairo-user-font.synopsis">
|
284
284
|
<ANCHOR id="cairo-user-font.description" href="cairo/cairo-user-font.html#cairo-user-font.description">
|
285
285
|
<ANCHOR id="cairo-user-font.details" href="cairo/cairo-user-font.html#cairo-user-font.details">
|
286
|
-
<ANCHOR id="CAIRO-HAS-USER-FONT
|
286
|
+
<ANCHOR id="CAIRO-HAS-USER-FONT--CAPS" href="cairo/cairo-user-font.html#CAIRO-HAS-USER-FONT--CAPS">
|
287
287
|
<ANCHOR id="cairo-user-scaled-font-init-func-t" href="cairo/cairo-user-font.html#cairo-user-scaled-font-init-func-t">
|
288
288
|
<ANCHOR id="cairo-user-scaled-font-render-glyph-func-t" href="cairo/cairo-user-font.html#cairo-user-scaled-font-render-glyph-func-t">
|
289
289
|
<ANCHOR id="cairo-user-scaled-font-text-to-glyphs-func-t" href="cairo/cairo-user-font.html#cairo-user-scaled-font-text-to-glyphs-func-t">
|
@@ -330,7 +330,7 @@
|
|
330
330
|
<ANCHOR id="cairo-image-surface.synopsis" href="cairo/cairo-image-surface.html#cairo-image-surface.synopsis">
|
331
331
|
<ANCHOR id="cairo-image-surface.description" href="cairo/cairo-image-surface.html#cairo-image-surface.description">
|
332
332
|
<ANCHOR id="cairo-image-surface.details" href="cairo/cairo-image-surface.html#cairo-image-surface.details">
|
333
|
-
<ANCHOR id="CAIRO-HAS-IMAGE-SURFACE
|
333
|
+
<ANCHOR id="CAIRO-HAS-IMAGE-SURFACE--CAPS" href="cairo/cairo-image-surface.html#CAIRO-HAS-IMAGE-SURFACE--CAPS">
|
334
334
|
<ANCHOR id="cairo-format-t" href="cairo/cairo-image-surface.html#cairo-format-t">
|
335
335
|
<ANCHOR id="cairo-format-stride-for-width" href="cairo/cairo-image-surface.html#cairo-format-stride-for-width">
|
336
336
|
<ANCHOR id="cairo-image-surface-create" href="cairo/cairo-image-surface.html#cairo-image-surface-create">
|
@@ -345,7 +345,7 @@
|
|
345
345
|
<ANCHOR id="cairo-pdf-surface.synopsis" href="cairo/cairo-pdf-surface.html#cairo-pdf-surface.synopsis">
|
346
346
|
<ANCHOR id="cairo-pdf-surface.description" href="cairo/cairo-pdf-surface.html#cairo-pdf-surface.description">
|
347
347
|
<ANCHOR id="cairo-pdf-surface.details" href="cairo/cairo-pdf-surface.html#cairo-pdf-surface.details">
|
348
|
-
<ANCHOR id="CAIRO-HAS-PDF-SURFACE
|
348
|
+
<ANCHOR id="CAIRO-HAS-PDF-SURFACE--CAPS" href="cairo/cairo-pdf-surface.html#CAIRO-HAS-PDF-SURFACE--CAPS">
|
349
349
|
<ANCHOR id="cairo-pdf-surface-create" href="cairo/cairo-pdf-surface.html#cairo-pdf-surface-create">
|
350
350
|
<ANCHOR id="cairo-pdf-surface-create-for-stream" href="cairo/cairo-pdf-surface.html#cairo-pdf-surface-create-for-stream">
|
351
351
|
<ANCHOR id="cairo-pdf-surface-set-size" href="cairo/cairo-pdf-surface.html#cairo-pdf-surface-set-size">
|
@@ -354,7 +354,7 @@
|
|
354
354
|
<ANCHOR id="cairo-png-functions.synopsis" href="cairo/cairo-png-functions.html#cairo-png-functions.synopsis">
|
355
355
|
<ANCHOR id="cairo-png-functions.description" href="cairo/cairo-png-functions.html#cairo-png-functions.description">
|
356
356
|
<ANCHOR id="cairo-png-functions.details" href="cairo/cairo-png-functions.html#cairo-png-functions.details">
|
357
|
-
<ANCHOR id="CAIRO-HAS-PNG-FUNCTIONS
|
357
|
+
<ANCHOR id="CAIRO-HAS-PNG-FUNCTIONS--CAPS" href="cairo/cairo-png-functions.html#CAIRO-HAS-PNG-FUNCTIONS--CAPS">
|
358
358
|
<ANCHOR id="cairo-image-surface-create-from-png" href="cairo/cairo-png-functions.html#cairo-image-surface-create-from-png">
|
359
359
|
<ANCHOR id="cairo-read-func-t" href="cairo/cairo-png-functions.html#cairo-read-func-t">
|
360
360
|
<ANCHOR id="cairo-image-surface-create-from-png-stream" href="cairo/cairo-png-functions.html#cairo-image-surface-create-from-png-stream">
|
@@ -366,7 +366,7 @@
|
|
366
366
|
<ANCHOR id="cairo-ps-surface.synopsis" href="cairo/cairo-ps-surface.html#cairo-ps-surface.synopsis">
|
367
367
|
<ANCHOR id="cairo-ps-surface.description" href="cairo/cairo-ps-surface.html#cairo-ps-surface.description">
|
368
368
|
<ANCHOR id="cairo-ps-surface.details" href="cairo/cairo-ps-surface.html#cairo-ps-surface.details">
|
369
|
-
<ANCHOR id="CAIRO-HAS-PS-SURFACE
|
369
|
+
<ANCHOR id="CAIRO-HAS-PS-SURFACE--CAPS" href="cairo/cairo-ps-surface.html#CAIRO-HAS-PS-SURFACE--CAPS">
|
370
370
|
<ANCHOR id="cairo-ps-surface-create" href="cairo/cairo-ps-surface.html#cairo-ps-surface-create">
|
371
371
|
<ANCHOR id="cairo-ps-surface-create-for-stream" href="cairo/cairo-ps-surface.html#cairo-ps-surface-create-for-stream">
|
372
372
|
<ANCHOR id="cairo-ps-surface-restrict-to-level" href="cairo/cairo-ps-surface.html#cairo-ps-surface-restrict-to-level">
|
@@ -384,7 +384,7 @@
|
|
384
384
|
<ANCHOR id="cairo-win32-surface.synopsis" href="cairo/cairo-win32-surface.html#cairo-win32-surface.synopsis">
|
385
385
|
<ANCHOR id="cairo-win32-surface.description" href="cairo/cairo-win32-surface.html#cairo-win32-surface.description">
|
386
386
|
<ANCHOR id="cairo-win32-surface.details" href="cairo/cairo-win32-surface.html#cairo-win32-surface.details">
|
387
|
-
<ANCHOR id="CAIRO-HAS-WIN32-SURFACE
|
387
|
+
<ANCHOR id="CAIRO-HAS-WIN32-SURFACE--CAPS" href="cairo/cairo-win32-surface.html#CAIRO-HAS-WIN32-SURFACE--CAPS">
|
388
388
|
<ANCHOR id="cairo-win32-surface-create" href="cairo/cairo-win32-surface.html#cairo-win32-surface-create">
|
389
389
|
<ANCHOR id="cairo-win32-surface-create-with-dib" href="cairo/cairo-win32-surface.html#cairo-win32-surface-create-with-dib">
|
390
390
|
<ANCHOR id="cairo-win32-surface-create-with-ddb" href="cairo/cairo-win32-surface.html#cairo-win32-surface-create-with-ddb">
|
@@ -396,7 +396,7 @@
|
|
396
396
|
<ANCHOR id="cairo-svg-surface.synopsis" href="cairo/cairo-svg-surface.html#cairo-svg-surface.synopsis">
|
397
397
|
<ANCHOR id="cairo-svg-surface.description" href="cairo/cairo-svg-surface.html#cairo-svg-surface.description">
|
398
398
|
<ANCHOR id="cairo-svg-surface.details" href="cairo/cairo-svg-surface.html#cairo-svg-surface.details">
|
399
|
-
<ANCHOR id="CAIRO-HAS-SVG-SURFACE
|
399
|
+
<ANCHOR id="CAIRO-HAS-SVG-SURFACE--CAPS" href="cairo/cairo-svg-surface.html#CAIRO-HAS-SVG-SURFACE--CAPS">
|
400
400
|
<ANCHOR id="cairo-svg-surface-create" href="cairo/cairo-svg-surface.html#cairo-svg-surface-create">
|
401
401
|
<ANCHOR id="cairo-svg-surface-create-for-stream" href="cairo/cairo-svg-surface.html#cairo-svg-surface-create-for-stream">
|
402
402
|
<ANCHOR id="cairo-svg-surface-restrict-to-version" href="cairo/cairo-svg-surface.html#cairo-svg-surface-restrict-to-version">
|
@@ -408,7 +408,7 @@
|
|
408
408
|
<ANCHOR id="cairo-quartz-surface.synopsis" href="cairo/cairo-quartz-surface.html#cairo-quartz-surface.synopsis">
|
409
409
|
<ANCHOR id="cairo-quartz-surface.description" href="cairo/cairo-quartz-surface.html#cairo-quartz-surface.description">
|
410
410
|
<ANCHOR id="cairo-quartz-surface.details" href="cairo/cairo-quartz-surface.html#cairo-quartz-surface.details">
|
411
|
-
<ANCHOR id="CAIRO-HAS-QUARTZ-SURFACE
|
411
|
+
<ANCHOR id="CAIRO-HAS-QUARTZ-SURFACE--CAPS" href="cairo/cairo-quartz-surface.html#CAIRO-HAS-QUARTZ-SURFACE--CAPS">
|
412
412
|
<ANCHOR id="cairo-quartz-surface-create" href="cairo/cairo-quartz-surface.html#cairo-quartz-surface-create">
|
413
413
|
<ANCHOR id="cairo-quartz-surface-create-for-cg-context" href="cairo/cairo-quartz-surface.html#cairo-quartz-surface-create-for-cg-context">
|
414
414
|
<ANCHOR id="cairo-quartz-surface-get-cg-context" href="cairo/cairo-quartz-surface.html#cairo-quartz-surface-get-cg-context">
|
@@ -417,7 +417,7 @@
|
|
417
417
|
<ANCHOR id="cairo-xlib-surface.synopsis" href="cairo/cairo-xlib-surface.html#cairo-xlib-surface.synopsis">
|
418
418
|
<ANCHOR id="cairo-xlib-surface.description" href="cairo/cairo-xlib-surface.html#cairo-xlib-surface.description">
|
419
419
|
<ANCHOR id="cairo-xlib-surface.details" href="cairo/cairo-xlib-surface.html#cairo-xlib-surface.details">
|
420
|
-
<ANCHOR id="CAIRO-HAS-XLIB-SURFACE
|
420
|
+
<ANCHOR id="CAIRO-HAS-XLIB-SURFACE--CAPS" href="cairo/cairo-xlib-surface.html#CAIRO-HAS-XLIB-SURFACE--CAPS">
|
421
421
|
<ANCHOR id="cairo-xlib-surface-create" href="cairo/cairo-xlib-surface.html#cairo-xlib-surface-create">
|
422
422
|
<ANCHOR id="cairo-xlib-surface-create-for-bitmap" href="cairo/cairo-xlib-surface.html#cairo-xlib-surface-create-for-bitmap">
|
423
423
|
<ANCHOR id="cairo-xlib-surface-set-size" href="cairo/cairo-xlib-surface.html#cairo-xlib-surface-set-size">
|
@@ -460,13 +460,13 @@
|
|
460
460
|
<ANCHOR id="cairo-version-info.synopsis" href="cairo/cairo-version-info.html#cairo-version-info.synopsis">
|
461
461
|
<ANCHOR id="cairo-version-info.description" href="cairo/cairo-version-info.html#cairo-version-info.description">
|
462
462
|
<ANCHOR id="cairo-version-info.details" href="cairo/cairo-version-info.html#cairo-version-info.details">
|
463
|
-
<ANCHOR id="CAIRO-VERSION
|
464
|
-
<ANCHOR id="CAIRO-VERSION-MAJOR
|
465
|
-
<ANCHOR id="CAIRO-VERSION-MINOR
|
466
|
-
<ANCHOR id="CAIRO-VERSION-MICRO
|
467
|
-
<ANCHOR id="CAIRO-VERSION-STRING
|
468
|
-
<ANCHOR id="CAIRO-VERSION-ENCODE
|
469
|
-
<ANCHOR id="CAIRO-VERSION-STRINGIZE
|
463
|
+
<ANCHOR id="CAIRO-VERSION--CAPS" href="cairo/cairo-version-info.html#CAIRO-VERSION--CAPS">
|
464
|
+
<ANCHOR id="CAIRO-VERSION-MAJOR--CAPS" href="cairo/cairo-version-info.html#CAIRO-VERSION-MAJOR--CAPS">
|
465
|
+
<ANCHOR id="CAIRO-VERSION-MINOR--CAPS" href="cairo/cairo-version-info.html#CAIRO-VERSION-MINOR--CAPS">
|
466
|
+
<ANCHOR id="CAIRO-VERSION-MICRO--CAPS" href="cairo/cairo-version-info.html#CAIRO-VERSION-MICRO--CAPS">
|
467
|
+
<ANCHOR id="CAIRO-VERSION-STRING--CAPS" href="cairo/cairo-version-info.html#CAIRO-VERSION-STRING--CAPS">
|
468
|
+
<ANCHOR id="CAIRO-VERSION-ENCODE--CAPS" href="cairo/cairo-version-info.html#CAIRO-VERSION-ENCODE--CAPS">
|
469
|
+
<ANCHOR id="CAIRO-VERSION-STRINGIZE--CAPS" href="cairo/cairo-version-info.html#CAIRO-VERSION-STRINGIZE--CAPS">
|
470
470
|
<ANCHOR id="cairo-version" href="cairo/cairo-version-info.html#cairo-version">
|
471
471
|
<ANCHOR id="cairo-version-string" href="cairo/cairo-version-info.html#cairo-version-string">
|
472
472
|
<ANCHOR id="cairo-types" href="cairo/cairo-types.html">
|
@@ -3,12 +3,12 @@
|
|
3
3
|
<head>
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
5
|
<title>Appendix A. Creating a language binding for cairo</title>
|
6
|
-
<meta name="generator" content="DocBook XSL Stylesheets V1.
|
7
|
-
<link rel="
|
6
|
+
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
7
|
+
<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
|
8
8
|
<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
|
9
9
|
<link rel="prev" href="index-1.8.html" title="Index of new symbols in 1.8">
|
10
10
|
<link rel="next" href="bindings-memory.html" title="Memory management">
|
11
|
-
<meta name="generator" content="GTK-Doc V1.
|
11
|
+
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
|
12
12
|
<link rel="stylesheet" href="style.css" type="text/css">
|
13
13
|
<link rel="chapter" href="cairo-drawing.html" title="Drawing">
|
14
14
|
<link rel="chapter" href="cairo-fonts.html" title="Fonts">
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<th width="100%" align="center">Cairo: A Vector Graphics Library</th>
|
30
30
|
<td><a accesskey="n" href="bindings-memory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
|
31
31
|
</tr></table>
|
32
|
-
<div class="appendix"
|
32
|
+
<div class="appendix" title="Appendix A. Creating a language binding for cairo">
|
33
33
|
<div class="titlepage"><div><div><h2 class="title">
|
34
34
|
<a name="language-bindings"></a>Appendix A. Creating a language binding for cairo</h2></div></div></div>
|
35
35
|
<p>
|
@@ -42,7 +42,7 @@
|
|
42
42
|
and present standardized solutions to promote consistency among
|
43
43
|
the different language bindings.
|
44
44
|
</p>
|
45
|
-
<div class="sect1"
|
45
|
+
<div class="sect1" title="General considerations">
|
46
46
|
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
47
47
|
<a name="bindings-general"></a>General considerations</h2></div></div></div>
|
48
48
|
<p>
|
@@ -78,6 +78,6 @@
|
|
78
78
|
</div>
|
79
79
|
<div class="footer">
|
80
80
|
<hr>
|
81
|
-
Generated by GTK-Doc V1.
|
81
|
+
Generated by GTK-Doc V1.11</div>
|
82
82
|
</body>
|
83
83
|
</html>
|
@@ -56,13 +56,20 @@
|
|
56
56
|
{
|
57
57
|
color: #770000;
|
58
58
|
font-size: 80%;
|
59
|
+
white-space: nowrap;
|
59
60
|
}
|
60
|
-
div.refentry, div.chapter, div.reference, div.part, div.book, div.
|
61
|
+
div.refentry, div.chapter, div.reference, div.part, div.book, div.glossary, div.sect1, div.appendix, div.preface
|
61
62
|
{
|
62
63
|
position: relative;
|
63
64
|
top: 3em;
|
64
65
|
z-index: 0;
|
65
66
|
}
|
67
|
+
div.glossary, div.index
|
68
|
+
{
|
69
|
+
position: relative;
|
70
|
+
top: 2em;
|
71
|
+
z-index: 0;
|
72
|
+
}
|
66
73
|
div.refnamediv
|
67
74
|
{
|
68
75
|
margin-top: 2em;
|
@@ -1,6 +1,6 @@
|
|
1
|
-
.TH LIBPNG 3 "
|
1
|
+
.TH LIBPNG 3 "August 13, 2009"
|
2
2
|
.SH NAME
|
3
|
-
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.
|
3
|
+
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.39
|
4
4
|
.SH SYNOPSIS
|
5
5
|
\fI\fB
|
6
6
|
|
@@ -821,18 +821,20 @@ Following is a copy of the libpng.txt file that accompanies libpng.
|
|
821
821
|
.SH LIBPNG.TXT
|
822
822
|
libpng.txt - A description on how to use and modify libpng
|
823
823
|
|
824
|
-
libpng version 1.2.
|
824
|
+
libpng version 1.2.39 - August 13, 2009
|
825
825
|
Updated and distributed by Glenn Randers-Pehrson
|
826
826
|
<glennrp at users.sourceforge.net>
|
827
|
-
Copyright (c) 1998-
|
828
|
-
|
829
|
-
|
827
|
+
Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
828
|
+
|
829
|
+
This document is released under the libpng license.
|
830
|
+
For conditions of distribution and use, see the disclaimer
|
831
|
+
and license in png.h
|
830
832
|
|
831
833
|
Based on:
|
832
834
|
|
833
|
-
libpng versions 0.97, January 1998, through 1.2.
|
835
|
+
libpng versions 0.97, January 1998, through 1.2.39 - August 13, 2009
|
834
836
|
Updated and distributed by Glenn Randers-Pehrson
|
835
|
-
Copyright (c) 1998-
|
837
|
+
Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
836
838
|
|
837
839
|
libpng 1.0 beta 6 version 0.96 May 28, 1997
|
838
840
|
Updated and distributed by Andreas Dilger
|
@@ -962,9 +964,10 @@ so if it doesn't work, you don't have much to undo. Of course, you
|
|
962
964
|
will also want to insure that you are, in fact, dealing with a PNG
|
963
965
|
file. Libpng provides a simple check to see if a file is a PNG file.
|
964
966
|
To use it, pass in the first 1 to 8 bytes of the file to the function
|
965
|
-
png_sig_cmp(), and it will return 0 if the bytes match the
|
966
|
-
bytes of the PNG signature, or nonzero otherwise.
|
967
|
-
you pass in, the greater the accuracy of the
|
967
|
+
png_sig_cmp(), and it will return 0 (false) if the bytes match the
|
968
|
+
corresponding bytes of the PNG signature, or nonzero (true) otherwise.
|
969
|
+
Of course, the more bytes you pass in, the greater the accuracy of the
|
970
|
+
prediction.
|
968
971
|
|
969
972
|
If you are intending to keep the file pointer open for use in libpng,
|
970
973
|
you must ensure you don't read more than 8 bytes from the beginning
|
@@ -1141,35 +1144,14 @@ To inform libpng about your function, use
|
|
1141
1144
|
|
1142
1145
|
png_set_read_status_fn(png_ptr, read_row_callback);
|
1143
1146
|
|
1144
|
-
.SS Width and height limits
|
1145
|
-
|
1146
|
-
The PNG specification allows the width and height of an image to be as
|
1147
|
-
large as 2^31-1 (0x7fffffff), or about 2.147 billion rows and columns.
|
1148
|
-
Since very few applications really need to process such large images,
|
1149
|
-
we have imposed an arbitrary 1-million limit on rows and columns.
|
1150
|
-
Larger images will be rejected immediately with a png_error() call. If
|
1151
|
-
you wish to override this limit, you can use
|
1152
|
-
|
1153
|
-
png_set_user_limits(png_ptr, width_max, height_max);
|
1154
|
-
|
1155
|
-
to set your own limits, or use width_max = height_max = 0x7fffffffL
|
1156
|
-
to allow all valid dimensions (libpng may reject some very large images
|
1157
|
-
anyway because of potential buffer overflow conditions).
|
1158
|
-
|
1159
|
-
You should put this statement after you create the PNG structure and
|
1160
|
-
before calling png_read_info(), png_read_png(), or png_process_data().
|
1161
|
-
If you need to retrieve the limits that are being applied, use
|
1162
|
-
|
1163
|
-
width_max = png_get_user_width_max(png_ptr);
|
1164
|
-
height_max = png_get_user_height_max(png_ptr);
|
1165
|
-
|
1166
1147
|
.SS Unknown-chunk handling
|
1167
1148
|
|
1168
1149
|
Now you get to set the way the library processes unknown chunks in the
|
1169
1150
|
input PNG stream. Both known and unknown chunks will be read. Normal
|
1170
1151
|
behavior is that known chunks will be parsed into information in
|
1171
|
-
various info_ptr members while unknown chunks will be discarded.
|
1172
|
-
|
1152
|
+
various info_ptr members while unknown chunks will be discarded. This
|
1153
|
+
behavior can be wasteful if your application will never use some known
|
1154
|
+
chunk types. To change this, you can call:
|
1173
1155
|
|
1174
1156
|
png_set_keep_unknown_chunks(png_ptr, keep,
|
1175
1157
|
chunk_list, num_chunks);
|
@@ -1227,6 +1209,27 @@ callback function:
|
|
1227
1209
|
(int)sizeof(unused_chunks)/5);
|
1228
1210
|
#endif
|
1229
1211
|
|
1212
|
+
.SS User limits
|
1213
|
+
|
1214
|
+
The PNG specification allows the width and height of an image to be as
|
1215
|
+
large as 2^31-1 (0x7fffffff), or about 2.147 billion rows and columns.
|
1216
|
+
Since very few applications really need to process such large images,
|
1217
|
+
we have imposed an arbitrary 1-million limit on rows and columns.
|
1218
|
+
Larger images will be rejected immediately with a png_error() call. If
|
1219
|
+
you wish to override this limit, you can use
|
1220
|
+
|
1221
|
+
png_set_user_limits(png_ptr, width_max, height_max);
|
1222
|
+
|
1223
|
+
to set your own limits, or use width_max = height_max = 0x7fffffffL
|
1224
|
+
to allow all valid dimensions (libpng may reject some very large images
|
1225
|
+
anyway because of potential buffer overflow conditions).
|
1226
|
+
|
1227
|
+
You should put this statement after you create the PNG structure and
|
1228
|
+
before calling png_read_info(), png_read_png(), or png_process_data().
|
1229
|
+
If you need to retrieve the limits that are being applied, use
|
1230
|
+
|
1231
|
+
width_max = png_get_user_width_max(png_ptr);
|
1232
|
+
height_max = png_get_user_height_max(png_ptr);
|
1230
1233
|
|
1231
1234
|
.SS The high-level read interface
|
1232
1235
|
|
@@ -1292,6 +1295,8 @@ row_pointers prior to calling png_read_png() with
|
|
1292
1295
|
"Image is too wide to process in memory");
|
1293
1296
|
row_pointers = png_malloc(png_ptr,
|
1294
1297
|
height*png_sizeof(png_bytep));
|
1298
|
+
for (int i=0; i<height, i++)
|
1299
|
+
row_pointers[i]=NULL; /* security precaution */
|
1295
1300
|
for (int i=0; i<height, i++)
|
1296
1301
|
row_pointers[i]=png_malloc(png_ptr,
|
1297
1302
|
width*pixel_size);
|
@@ -1668,9 +1673,6 @@ things.
|
|
1668
1673
|
|
1669
1674
|
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
|
1670
1675
|
added. It expands the sample depth without changing tRNS to alpha.
|
1671
|
-
At the same time, png_set_gray_1_2_4_to_8() was deprecated, and it
|
1672
|
-
will be removed from a future version.
|
1673
|
-
|
1674
1676
|
|
1675
1677
|
PNG can have files with 16 bits per channel. If you only can handle
|
1676
1678
|
8 bits per channel, this will strip the pixels down to 8 bit.
|
@@ -2522,7 +2524,7 @@ types.
|
|
2522
2524
|
PNG_FILTER_NONE | PNG_FILTER_VALUE_NONE |
|
2523
2525
|
PNG_FILTER_SUB | PNG_FILTER_VALUE_SUB |
|
2524
2526
|
PNG_FILTER_UP | PNG_FILTER_VALUE_UP |
|
2525
|
-
|
2527
|
+
PNG_FILTER_AVG | PNG_FILTER_VALUE_AVG |
|
2526
2528
|
PNG_FILTER_PAETH | PNG_FILTER_VALUE_PAETH|
|
2527
2529
|
PNG_ALL_FILTERS);
|
2528
2530
|
|
@@ -2612,10 +2614,14 @@ Some of the more important parts of the png_info are:
|
|
2612
2614
|
PNG_INTRAPIXEL_DIFFERENCING)
|
2613
2615
|
|
2614
2616
|
If you call png_set_IHDR(), the call must appear before any of the
|
2615
|
-
other png_set_*() functions,
|
2617
|
+
other png_set_*() functions, because they might require access to some of
|
2616
2618
|
the IHDR settings. The remaining png_set_*() functions can be called
|
2617
2619
|
in any order.
|
2618
2620
|
|
2621
|
+
If you wish, you can reset the compression_type, interlace_type, or
|
2622
|
+
filter_method later by calling png_set_IHDR() again; if you do this, the
|
2623
|
+
width, height, bit_depth, and color_type must be the same in each call.
|
2624
|
+
|
2619
2625
|
png_set_PLTE(png_ptr, info_ptr, palette,
|
2620
2626
|
num_palette);
|
2621
2627
|
palette - the palette for the file
|
@@ -2677,8 +2683,9 @@ in any order.
|
|
2677
2683
|
trans_values);
|
2678
2684
|
trans - array of transparent entries for
|
2679
2685
|
palette (PNG_INFO_tRNS)
|
2680
|
-
trans_values - graylevel or color sample values
|
2681
|
-
|
2686
|
+
trans_values - graylevel or color sample values
|
2687
|
+
(in order red, green, blue) of the
|
2688
|
+
single transparent color for
|
2682
2689
|
non-paletted images (PNG_INFO_tRNS)
|
2683
2690
|
num_trans - number of transparent entries
|
2684
2691
|
(PNG_INFO_tRNS)
|
@@ -2887,7 +2894,12 @@ transformations are permitted, enabled by the following masks.
|
|
2887
2894
|
PNG_TRANSFORM_INVERT_ALPHA Change alpha from opacity
|
2888
2895
|
to transparency
|
2889
2896
|
PNG_TRANSFORM_SWAP_ENDIAN Byte-swap 16-bit samples
|
2890
|
-
PNG_TRANSFORM_STRIP_FILLER
|
2897
|
+
PNG_TRANSFORM_STRIP_FILLER Strip out filler
|
2898
|
+
bytes (deprecated).
|
2899
|
+
PNG_TRANSFORM_STRIP_FILLER_BEFORE Strip out leading
|
2900
|
+
filler bytes
|
2901
|
+
PNG_TRANSFORM_STRIP_FILLER_AFTER Strip out trailing
|
2902
|
+
filler bytes
|
2891
2903
|
|
2892
2904
|
If you have valid image data in the info structure (you can use
|
2893
2905
|
png_set_rows() to put image data in the info structure), simply do this:
|
@@ -3294,9 +3306,15 @@ The replacement I/O functions must have prototypes as follows:
|
|
3294
3306
|
png_bytep data, png_size_t length);
|
3295
3307
|
void user_flush_data(png_structp png_ptr);
|
3296
3308
|
|
3309
|
+
The user_read_data() function is responsible for detecting and
|
3310
|
+
handling end-of-data errors.
|
3311
|
+
|
3297
3312
|
Supplying NULL for the read, write, or flush functions sets them back
|
3298
|
-
to using the default C stream functions
|
3299
|
-
a
|
3313
|
+
to using the default C stream functions, which expect the io_ptr to
|
3314
|
+
point to a standard *FILE structure. It is probably a mistake
|
3315
|
+
to use NULL for one of write_data_fn and output_flush_fn but not both
|
3316
|
+
of them, unless you have built libpng with PNG_NO_WRITE_FLUSH defined.
|
3317
|
+
It is an error to read from a write stream, and vice versa.
|
3300
3318
|
|
3301
3319
|
Error handling in libpng is done through png_error() and png_warning().
|
3302
3320
|
Errors handled through png_error() are fatal, meaning that png_error()
|
@@ -3401,11 +3419,12 @@ you may also have to change the memory allocators (png_malloc, etc.).
|
|
3401
3419
|
|
3402
3420
|
.SS Configuring for compiler xxx:
|
3403
3421
|
|
3404
|
-
All includes for libpng are in pngconf.h. If you need to add
|
3405
|
-
an include, this is the place to do it.
|
3406
|
-
needed outside libpng are protected by the
|
3407
|
-
which is only defined for those routines inside
|
3408
|
-
files in libpng proper only include png.h, which
|
3422
|
+
All includes for libpng are in pngconf.h. If you need to add, change
|
3423
|
+
or delete an include, this is the place to do it.
|
3424
|
+
The includes that are not needed outside libpng are protected by the
|
3425
|
+
PNG_INTERNAL definition, which is only defined for those routines inside
|
3426
|
+
libpng itself. The files in libpng proper only include png.h, which
|
3427
|
+
includes pngconf.h.
|
3409
3428
|
|
3410
3429
|
.SS Configuring zlib:
|
3411
3430
|
|
@@ -3474,7 +3493,7 @@ currently does not allocate the filter buffers until png_write_row()
|
|
3474
3493
|
is called for the first time.)
|
3475
3494
|
|
3476
3495
|
filters = PNG_FILTER_NONE | PNG_FILTER_SUB
|
3477
|
-
PNG_FILTER_UP |
|
3496
|
+
PNG_FILTER_UP | PNG_FILTER_AVG |
|
3478
3497
|
PNG_FILTER_PAETH | PNG_ALL_FILTERS;
|
3479
3498
|
|
3480
3499
|
png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE,
|
@@ -3596,7 +3615,7 @@ When PNG_DEBUG = 1, the macros are defined, but only png_debug statements
|
|
3596
3615
|
having level = 0 will be printed. There aren't any such statements in
|
3597
3616
|
this version of libpng, but if you insert some they will be printed.
|
3598
3617
|
|
3599
|
-
.SH
|
3618
|
+
.SH VI. MNG support
|
3600
3619
|
|
3601
3620
|
The MNG specification (available at http://www.libpng.org/pub/mng) allows
|
3602
3621
|
certain extensions to PNG for PNG images that are embedded in MNG datastreams.
|
@@ -3621,7 +3640,7 @@ or any other MNG chunks; your application must provide its own support for
|
|
3621
3640
|
them. You may wish to consider using libmng (available at
|
3622
3641
|
http://www.libmng.com) instead.
|
3623
3642
|
|
3624
|
-
.SH
|
3643
|
+
.SH VII. Changes to Libpng from version 0.88
|
3625
3644
|
|
3626
3645
|
It should be noted that versions of libpng later than 0.96 are not
|
3627
3646
|
distributed by the original libpng author, Guy Schalnat, nor by
|
@@ -3670,15 +3689,202 @@ application:
|
|
3670
3689
|
|
3671
3690
|
png_uint_32 application_vn = PNG_LIBPNG_VER;
|
3672
3691
|
|
3673
|
-
.SH
|
3692
|
+
.SH VIII. Changes to Libpng from version 1.0.x to 1.2.x
|
3693
|
+
|
3694
|
+
Support for user memory management was enabled by default. To
|
3695
|
+
accomplish this, the functions png_create_read_struct_2(),
|
3696
|
+
png_create_write_struct_2(), png_set_mem_fn(), png_get_mem_ptr(),
|
3697
|
+
png_malloc_default(), and png_free_default() were added.
|
3698
|
+
|
3699
|
+
Support for certain MNG features was enabled.
|
3700
|
+
|
3701
|
+
Support for numbered error messages was added. However, we never got
|
3702
|
+
around to actually numbering the error messages. The function
|
3703
|
+
png_set_strip_error_numbers() was added (Note: the prototype for this
|
3704
|
+
function was inadvertently removed from png.h in PNG_NO_ASSEMBLER_CODE
|
3705
|
+
builds of libpng-1.2.15. It was restored in libpng-1.2.36).
|
3706
|
+
|
3707
|
+
The png_malloc_warn() function was added at libpng-1.2.3. This issues
|
3708
|
+
a png_warning and returns NULL instead of aborting when it fails to
|
3709
|
+
acquire the requested memory allocation.
|
3710
|
+
|
3711
|
+
Support for setting user limits on image width and height was enabled
|
3712
|
+
by default. The functions png_set_user_limits(), png_get_user_width_max(),
|
3713
|
+
and png_get_user_height_max() were added at libpng-1.2.6.
|
3714
|
+
|
3715
|
+
The png_set_add_alpha() function was added at libpng-1.2.7.
|
3674
3716
|
|
3675
|
-
|
3717
|
+
The function png_set_expand_gray_1_2_4_to_8() was added at libpng-1.2.9.
|
3718
|
+
Unlike png_set_gray_1_2_4_to_8(), the new function does not expand the
|
3719
|
+
tRNS chunk to alpha. The png_set_gray_1_2_4_to_8() function is
|
3720
|
+
deprecated.
|
3721
|
+
|
3722
|
+
A number of macro definitions in support of runtime selection of
|
3723
|
+
assembler code features (especially Intel MMX code support) were
|
3724
|
+
added at libpng-1.2.0:
|
3725
|
+
|
3726
|
+
PNG_ASM_FLAG_MMX_SUPPORT_COMPILED
|
3727
|
+
PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU
|
3728
|
+
PNG_ASM_FLAG_MMX_READ_COMBINE_ROW
|
3729
|
+
PNG_ASM_FLAG_MMX_READ_INTERLACE
|
3730
|
+
PNG_ASM_FLAG_MMX_READ_FILTER_SUB
|
3731
|
+
PNG_ASM_FLAG_MMX_READ_FILTER_UP
|
3732
|
+
PNG_ASM_FLAG_MMX_READ_FILTER_AVG
|
3733
|
+
PNG_ASM_FLAG_MMX_READ_FILTER_PAETH
|
3734
|
+
PNG_ASM_FLAGS_INITIALIZED
|
3735
|
+
PNG_MMX_READ_FLAGS
|
3736
|
+
PNG_MMX_FLAGS
|
3737
|
+
PNG_MMX_WRITE_FLAGS
|
3738
|
+
PNG_MMX_FLAGS
|
3739
|
+
|
3740
|
+
We added the following functions in support of runtime
|
3741
|
+
selection of assembler code features:
|
3742
|
+
|
3743
|
+
png_get_mmx_flagmask()
|
3744
|
+
png_set_mmx_thresholds()
|
3745
|
+
png_get_asm_flags()
|
3746
|
+
png_get_mmx_bitdepth_threshold()
|
3747
|
+
png_get_mmx_rowbytes_threshold()
|
3748
|
+
png_set_asm_flags()
|
3749
|
+
|
3750
|
+
We replaced all of these functions with simple stubs in libpng-1.2.20,
|
3751
|
+
when the Intel assembler code was removed due to a licensing issue.
|
3752
|
+
|
3753
|
+
.SH IX. (Omitted)
|
3754
|
+
|
3755
|
+
.SH X. Detecting libpng
|
3756
|
+
|
3757
|
+
The png_get_io_ptr() function has been present since libpng-0.88, has never
|
3758
|
+
changed, and is unaffected by conditional compilation macros. It is the
|
3759
|
+
best choice for use in configure scripts for detecting the presence of any
|
3760
|
+
libpng version since 0.88. In an autoconf "configure.in" you could use
|
3761
|
+
|
3762
|
+
AC_CHECK_LIB(png, png_get_io_ptr, ...
|
3763
|
+
|
3764
|
+
.SH XI. Source code repository
|
3765
|
+
|
3766
|
+
Since about February 2009, version 1.2.34, libpng has been under "git" source
|
3767
|
+
control. The git repository was built from old libpng-x.y.z.tar.gz files
|
3768
|
+
going back to version 0.70. You can access the git repository (read only)
|
3769
|
+
at
|
3770
|
+
|
3771
|
+
git://libpng.git.sourceforge.net/gitroot/libpng
|
3772
|
+
|
3773
|
+
or you can browse it via "gitweb" at
|
3774
|
+
|
3775
|
+
http://libpng.git.sourceforge.net/git/gitweb.cgi?p=libpng
|
3776
|
+
|
3777
|
+
Patches can be sent to glennrp at users.sourceforge.net or to
|
3778
|
+
png-mng-implement at lists.sourceforge.net or you can upload them to
|
3779
|
+
the libpng bug tracker at
|
3780
|
+
|
3781
|
+
http://libpng.sourceforge.net
|
3782
|
+
|
3783
|
+
.SH XII. Coding style
|
3784
|
+
|
3785
|
+
Our coding style is similar to the "Allman" style, with curly
|
3786
|
+
braces on separate lines:
|
3787
|
+
|
3788
|
+
if (condition)
|
3789
|
+
{
|
3790
|
+
action;
|
3791
|
+
}
|
3792
|
+
|
3793
|
+
else if (another condition)
|
3794
|
+
{
|
3795
|
+
another action;
|
3796
|
+
}
|
3797
|
+
|
3798
|
+
The braces can be omitted from simple one-line actions:
|
3799
|
+
|
3800
|
+
if (condition)
|
3801
|
+
return (0);
|
3802
|
+
|
3803
|
+
We use 3-space indentation, except for continued statements which
|
3804
|
+
are usually indented the same as the first line of the statement
|
3805
|
+
plus four more spaces.
|
3806
|
+
|
3807
|
+
Comments appear with the leading "/*" at the same indentation as
|
3808
|
+
the statement that follows the comment:
|
3809
|
+
|
3810
|
+
/* Single-line comment */
|
3811
|
+
statement;
|
3812
|
+
|
3813
|
+
/* Multiple-line
|
3814
|
+
* comment
|
3815
|
+
*/
|
3816
|
+
statement;
|
3817
|
+
|
3818
|
+
Very short comments can be placed at the end of the statement
|
3819
|
+
to which they pertain:
|
3820
|
+
|
3821
|
+
statement; /* comment */
|
3822
|
+
|
3823
|
+
We don't use C++ style ("//") comments. We have, however,
|
3824
|
+
used them in the past in some now-abandoned MMX assembler
|
3825
|
+
code.
|
3826
|
+
|
3827
|
+
Functions and their curly braces are not indented, and
|
3828
|
+
exported functions are marked with PNGAPI:
|
3829
|
+
|
3830
|
+
/* This is a public function that is visible to
|
3831
|
+
* application programers. It does thus-and-so.
|
3832
|
+
*/
|
3833
|
+
void PNGAPI
|
3834
|
+
png_exported_function(png_ptr, png_info, foo)
|
3835
|
+
{
|
3836
|
+
body;
|
3837
|
+
}
|
3838
|
+
|
3839
|
+
The prototypes for all exported functions appear in png.h,
|
3840
|
+
above the comment that says
|
3841
|
+
|
3842
|
+
/* Maintainer: Put new public prototypes here ... */
|
3843
|
+
|
3844
|
+
We mark all non-exported functions with "/* PRIVATE */"":
|
3845
|
+
|
3846
|
+
void /* PRIVATE */
|
3847
|
+
png_non_exported_function(png_ptr, png_info, foo)
|
3848
|
+
{
|
3849
|
+
body;
|
3850
|
+
}
|
3851
|
+
|
3852
|
+
The prototypes for non-exported functions (except for those in
|
3853
|
+
pngtest) appear in
|
3854
|
+
the PNG_INTERNAL section of png.h
|
3855
|
+
above the comment that says
|
3856
|
+
|
3857
|
+
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
|
3858
|
+
|
3859
|
+
The names of all exported functions and variables begin
|
3860
|
+
with "png_", and all publicly visible C preprocessor
|
3861
|
+
macros begin with "PNG_".
|
3862
|
+
|
3863
|
+
We put a space after each comma and after each semicolon
|
3864
|
+
in "for" statments, and we put spaces before and after each
|
3865
|
+
C binary operator and after "for" or "while". We don't
|
3866
|
+
put a space between a typecast and the expression being
|
3867
|
+
cast, nor do we put one between a function name and the
|
3868
|
+
left parenthesis that follows it:
|
3869
|
+
|
3870
|
+
for (i = 2; i > 0; --i)
|
3871
|
+
x[i] = a(x) + (int)b;
|
3872
|
+
|
3873
|
+
We prefer #ifdef and #ifndef to #if defined() and if !defined()
|
3874
|
+
when there is only one macro being tested.
|
3875
|
+
|
3876
|
+
Other rules can be inferred by inspecting the libpng
|
3877
|
+
source.
|
3878
|
+
|
3879
|
+
.SH XIII. Y2K Compliance in libpng
|
3880
|
+
|
3881
|
+
August 13, 2009
|
3676
3882
|
|
3677
3883
|
Since the PNG Development group is an ad-hoc body, we can't make
|
3678
3884
|
an official declaration.
|
3679
3885
|
|
3680
3886
|
This is your unofficial assurance that libpng from version 0.71 and
|
3681
|
-
upward through 1.2.
|
3887
|
+
upward through 1.2.39 are Y2K compliant. It is my belief that earlier
|
3682
3888
|
versions were also Y2K compliant.
|
3683
3889
|
|
3684
3890
|
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
@@ -3925,6 +4131,38 @@ the first widely used release:
|
|
3925
4131
|
1.2.32rc01 13 10232 12.so.0.32[.0]
|
3926
4132
|
1.0.40 10 10040 10.so.0.40[.0]
|
3927
4133
|
1.2.32 13 10232 12.so.0.32[.0]
|
4134
|
+
1.2.33beta01-02 13 10233 12.so.0.33[.0]
|
4135
|
+
1.2.33rc01-02 13 10233 12.so.0.33[.0]
|
4136
|
+
1.0.41rc01 10 10041 10.so.0.41[.0]
|
4137
|
+
1.2.33 13 10233 12.so.0.33[.0]
|
4138
|
+
1.0.41 10 10041 10.so.0.41[.0]
|
4139
|
+
1.2.34beta01-07 13 10234 12.so.0.34[.0]
|
4140
|
+
1.0.42rc01 10 10042 10.so.0.42[.0]
|
4141
|
+
1.2.34rc01 13 10234 12.so.0.34[.0]
|
4142
|
+
1.0.42 10 10042 10.so.0.42[.0]
|
4143
|
+
1.2.34 13 10234 12.so.0.34[.0]
|
4144
|
+
1.2.35beta01-03 13 10235 12.so.0.35[.0]
|
4145
|
+
1.0.43rc01-02 10 10043 10.so.0.43[.0]
|
4146
|
+
1.2.35rc01-02 13 10235 12.so.0.35[.0]
|
4147
|
+
1.0.43 10 10043 10.so.0.43[.0]
|
4148
|
+
1.2.35 13 10235 12.so.0.35[.0]
|
4149
|
+
1.2.36beta01-05 13 10236 12.so.0.36[.0]
|
4150
|
+
1.2.36rc01 13 10236 12.so.0.36[.0]
|
4151
|
+
1.0.44 10 10044 10.so.0.44[.0]
|
4152
|
+
1.2.36 13 10236 12.so.0.36[.0]
|
4153
|
+
1.2.37beta01-03 13 10237 12.so.0.37[.0]
|
4154
|
+
1.2.37rc01 13 10237 12.so.0.37[.0]
|
4155
|
+
1.2.37 13 10237 12.so.0.37[.0]
|
4156
|
+
1.2.45 10 10045 12.so.0.45[.0]
|
4157
|
+
1.0.46 10 10046 10.so.0.46[.0]
|
4158
|
+
1.2.38beta01 13 10238 12.so.0.38[.0]
|
4159
|
+
1.2.38rc01-03 13 10238 12.so.0.38[.0]
|
4160
|
+
1.0.47 10 10047 10.so.0.47[.0]
|
4161
|
+
1.2.38 13 10238 12.so.0.38[.0]
|
4162
|
+
1.2.39beta01-05 13 10239 12.so.0.39[.0]
|
4163
|
+
1.2.39rc01 13 10239 12.so.0.39[.0]
|
4164
|
+
1.0.48 10 10048 10.so.0.48[.0]
|
4165
|
+
1.2.39 13 10239 12.so.0.39[.0]
|
3928
4166
|
|
3929
4167
|
Henceforth the source version will match the shared-library minor
|
3930
4168
|
and patch numbers; the shared-library major version number will be
|
@@ -3980,7 +4218,7 @@ possible without all of you.
|
|
3980
4218
|
|
3981
4219
|
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
3982
4220
|
|
3983
|
-
Libpng version 1.2.
|
4221
|
+
Libpng version 1.2.39 - August 13, 2009:
|
3984
4222
|
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
3985
4223
|
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
3986
4224
|
|
@@ -4001,7 +4239,9 @@ included in the libpng distribution, the latter shall prevail.)
|
|
4001
4239
|
If you modify libpng you may insert additional notices immediately following
|
4002
4240
|
this sentence.
|
4003
4241
|
|
4004
|
-
|
4242
|
+
This code is released under the libpng license.
|
4243
|
+
|
4244
|
+
libpng versions 1.2.6, August 15, 2004, through 1.2.39, August 13, 2009, are
|
4005
4245
|
Copyright (c) 2004,2006-2008 Glenn Randers-Pehrson, and are
|
4006
4246
|
distributed according to the same disclaimer and license as libpng-1.2.5
|
4007
4247
|
with the following individual added to the list of Contributing Authors
|
@@ -4100,7 +4340,7 @@ certification mark of the Open Source Initiative.
|
|
4100
4340
|
|
4101
4341
|
Glenn Randers-Pehrson
|
4102
4342
|
glennrp at users.sourceforge.net
|
4103
|
-
|
4343
|
+
August 13, 2009
|
4104
4344
|
|
4105
4345
|
.\" end of man page
|
4106
4346
|
|